Commit graph

268 commits

Author SHA1 Message Date
umherirrender
7c6a25856c Add missing @return to function docs
Change-Id: I45b9d02f94ecc58372268ec5e6a0b572a0b7e2a9
2014-08-23 23:14:57 +02:00
Chad Horohoe
cccd402c41 Followup 248ac9e: set $wgAutoloadClasses to an array after declaring
Change-Id: I07cc526ff3145c38bc08cd9b83fb266dc20a47c1
2014-08-09 17:36:07 +01:00
Chad Horohoe
248ac9e9b1 Allow classes to be registered properly from installer
Because otherwise extensions can cause the installer to explode when
they can't find their own classes at entry point.

I feel dirty.

Bug: 67440
Change-Id: I235fe58125fd49319963d949faffe024684755bd
2014-08-01 20:49:54 +00:00
jenkins-bot
e8c46feb78 Merge "Cleanup some docs (includes/[e-l])" 2014-07-25 17:05:35 +00:00
Legoktm
7458dc32d9 Revert "Generalize Installer::showStatusMessage()"
We probably want to put errors on top in the web installer
and warnings on top in the CLI installer due to differences
in scrolling.

This reverts commit 1c1e321af7.

Change-Id: I247030f0a3da6dff44884f4a282e52e92657fd91
2014-07-25 01:38:06 +00:00
umherirrender
b883e8c7c0 Cleanup some docs (includes/[e-l])
- Swap "$variable type" to "type $variable"
- Added missing types
- Fixed spacing inside docs
- Makes beginning of @param/@return/@var/@throws in capital
- Changed some types to match the more common spelling

Change-Id: I41a84e8e1dec39170aa655250325ffc485eaeaef
2014-07-24 19:43:03 +02:00
Chad Horohoe
5a4a33a8ff Remove support for magic_quotes_gpc
This "feature" of PHP has been disabled by default for quite some
time, deprecated in 5.3 and removed entirely in 5.4.

See <http://www.php.net/manual/en/security.magicquotes.php> for
information on why this practice is bad and how to disable it.

For MediaWiki, the removed todo comment says it all. Doing this
messes with all of the super globals and makes embedding MediaWiki
inside another application problematic. It also increases our
memory footprint for every single request even when the data might
not be used.

Finally, it makes it possible to instantiate new WebRequest objects
pretty much whenever you want, so there's no reason for $wgRequest
to exist anymore.

Bug: 11558
Change-Id: I4bc0392276f454ceb966547c7fbd7c8190ebbc7c
2014-07-23 20:38:31 +00:00
jenkins-bot
a8add4693a Merge "Remove Fallback::iconv()" 2014-07-21 18:22:23 +00:00
Kevin Israel
d3b172af3b Remove Fallback::iconv()
The iconv fallback is, for the most part, a remnant of PHP 4 support.
Though iconv was not enabled by default in PHP 4, it is in PHP 5. This
is the case even for Windows builds, which use GNU libiconv.

As for the major Linux distributions:

* Debian, CentOS, Ubuntu -> always enabled
* Fedora, Slackware -> .so in the same package, enabled by default
* Arch -> .so in the same package, disabled by default
* openSUSE -> separate package

Change-Id: Ie1112a5742646a0e1f951e188480c23851859320
2014-07-21 00:36:22 -04:00
Bartosz Dziewoński
a957836f4a Support for enabling skins in the installer
Let the user choose the skins to install (like extensions)
and decide which one will be the default for the new wiki.

Right now core skins are always enabled regardless of user
choices there, but I'm working on that.

Bug: 66440
Change-Id: I2e10720a6ac327e66c415bb91dc897885f952738
2014-07-20 19:54:39 +02:00
withoutaname
1c1e321af7 Generalize Installer::showStatusMessage()
Folds functionality from child classes back into a
concrete implementation in the parent class, reducing code duplication.

Change-Id: I697fe697dbd59d5db6fc77aba20af322e6011782
2014-07-13 01:52:49 +00:00
Timo Tijhof
2bd62bae99 installer: Recompute wgStylePath etc. after setting wgScriptPath
Bug: 67810
Change-Id: I95d02b41222d25fe216453c1d795475d4acdead5
2014-07-12 11:04:51 +00:00
Timo Tijhof
1a66438a06 installer: Move Server/Extension/Path preparations out of envChecks
These aren't checks but preparations, they should always run
even when the user is further in the installer process or when
the server is generating the WebInstaller stylesheet (which needs
wgScriptPath to be set in order to remap image paths correctly).

Bug: 67810
Change-Id: I98eb15096ff4ef3e464b9d00c58b036a608deb41
2014-07-12 13:04:38 +02:00
Chad Horohoe
a4334bbef5 Use PHP_VERSION constant instead of phpversion() function call
Change-Id: Ifb3d1bd92d6abaa561e7337b311b4cb10c38a2b6
2014-07-09 16:46:35 -07:00
jenkins-bot
11c67100ba Merge "Web installer: check for low PHP versions before executing" 2014-07-09 23:41:38 +00:00
jenkins-bot
b38e0afa61 Merge "No longer support installs where register_globals is enabled" 2014-07-09 01:19:39 +00:00
Skizzerz
30a82aae9c Set the default database schema to "mediawiki" so as not to break the CLI installer.
Due to changes made to support Microsoft SQL Server, $wgDBmwschema changed its default from
"mediawiki" to null in DefaultSettings.php, as anything else horribly broke every DBMS that did
not use schemas (such as MySQL and SQLite). This change makes it so that the default value can
be properly overridden again by PostgreSQL and Microsoft SQL Server, and also enables the
--dbschema flag to the CLI installer.

Bug: 64043
Change-Id: Id364306d883e0d494b948854e05f3f79ba7dd6d2
2014-07-09 00:20:36 +00:00
Kunal Mehta
56047c36cb No longer support installs where register_globals is enabled
register_globals has been deprecated since PHP 5.3, which was released
5 years ago. There's absolutely no reason anyone should have this turned
on, and if they do, well, they probably have bigger issues than this.

Due to changes in WebStart.php, the web installer will now fail to
start, just showing an error message stating that register_globals
must be disabled beforehand.

The command-line installer will display the
"config-register-globals-error" message before exiting.

Change-Id: If951d15293c5f6aa8a92e91fefcb00f04e6c13b3
2014-07-08 16:25:58 -07:00
Sergio Santoro
c2040515ef Web installer: check for low PHP versions before executing
Web installer was not checking for unsupported PHP versions.
In those cases the script should terminate or the
installation will break (e.g. syntax errors for PHP4).

Installer::doEnvironmentChecks() no longer checks for PHP
version since it has already been done by the entry scripts
(both in cli and web modes)

Installer::MINIMUM_PHP_VERSION has been removed since it is
no longer used.

Message config-env-php-toolow is no longer used and it has
been removed

Change-Id: I9227868bd2bd4e13bad6b95ad581be3ada71c94e
2014-07-08 10:19:02 +02:00
umherirrender
de39f3e019 Use some callable hints on @param docs
Callbacks can be given as a string or array, so the hint 'callable' is
used.

Change-Id: I3842606f74c8c3705dffc70bf13e31f44a37fa65
2014-07-03 21:20:35 +02:00
Timo Tijhof
7263871639 Installer: Disable broken CACHE_DB after backend is disabled
We're currently not hitting any code that calls wfGetCache(), but
this seems like a good thing to do and would allow us to re-use
more code instead of duplicating a large method just because it
has a call to wfGetCache() somewhere.

This is already done for DB access and LocalisationCache in
general by the installer, but via SqlBagOStuff it can still
cause an exception from LBFactoryFake.

Change-Id: I69c1e34365c1d7503aea8ef47942d20c34318e85
2014-06-04 21:22:14 +02:00
jenkins-bot
0ff2c62197 Merge "Installer: properly override default $wgLogo value" 2014-05-15 13:21:21 +00:00
Waldir Pimenta
7b176bef9d Rename variable _AdminPassword2 to _AdminPasswordConfirm for clarity
Change-Id: Ica04efb07014d0e7c91ae69c1a7ba5e00c0b16c2
2014-05-10 16:56:14 +02:00
umherirrender
f5f1e38b9a Fixed some @params documentation (includes/[db|installer])
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Also added some missing @param.

Change-Id: I3595e9aac69ac42fbb74b0783fae0ad9bcc831aa
2014-04-19 13:55:27 +02:00
Siebrand Mazeland
ce6f639105 Update the installer to use JSON i18n
Change-Id: Iedcacbd26385c331cd78b92f7ec55a4ef9c015ef
2014-03-20 08:12:44 +00:00
Kevin Israel
b14a2dcfaa Installer: properly override default $wgLogo value
Setup.php uses the value of $wgScriptPath in $wgLogo before the
installer determines the former, so it is necessary to override
the latter even before the WebInstaller_Options page is shown
(because it might never be shown).

Bug: 48084
Change-Id: Icc577c1bb1f78adc7a7cfb0581ae8ea2facba4cf
2014-03-18 08:34:06 +09:00
Skizzerz
f7174057a4 Add preliminary MS SQL support
This likely has outstanding bugs but basic wiki operations work just fine in it.

Change-Id: I25df82065a307b9abc30c694f8c8afff0996d7c1
2014-02-15 10:40:19 -08:00
Siebrand Mazeland
f077c4b1d6 Update formatting
Change-Id: I18aff576262479c9bb1c56eb8e1d1aaae200e4b1
2014-02-06 09:27:05 +01:00
Chad Horohoe
4d6dad7100 Remove vestiges of AdminSettings.php
This has been deprecated and mostly unused for quite some time.
Remove the few remaining uses that exist.

Change-Id: I522ef138d291cf7567250fef1de34bb41673bc6c
2014-01-29 15:09:33 -08:00
Kevin Israel
1d049a7451 Installer: Remove two environmental checks
* envCheckPHP531: Message is outdated ("downgrade to 5.3.0"; the
  current minimum PHP version is 5.3.2), and PHP Bug #50394 has
  not reappeared in any later version.
* envCheckZE1: zend.ze1_compatibility_mode was removed in 5.3.0.

Also updated the error message for envCheckBrokenXML to remove
the "Upgrade to PHP 5.2.9 or later" wording.

Change-Id: Ifc8754151dd23a0314c6739cb78c7ac61a306bc4
2014-01-22 19:41:19 -05:00
Kevin Israel
b215d91224 Check for very old PCRE versions in installer and updater
RE_IPV6_ADD uses (?(-n)) ("relative reference condition"), and CSSMin uses
\K ("reset start of match"), which only work in PCRE 7.2 and later -- newer
versions than the PCRE 6.6 included with Red Hat Enterprise Linux 5 and its
derivatives (e.g. CentOS 5).

Because the WMF developers, in general, do not seem to support maintaining
compatibility with such old software versions, I have opted to add a check
to the MediaWiki installer for these versions of PCRE. Affected users are
directed to a MediaWiki.org page advising the use of a different PHP package
that uses the bundled PCRE version instead of the older system version.

For now, the minimum PCRE version is set to 7.2, the oldest version not
known to break MediaWiki core. Once PHP 5.3 support is dropped, we may be
able to require PCRE 8.12 (bundled with PHP 5.4.0) or later.

The existing check for mere existence of the PCRE functions is removed;
since PHP 5.3, it is impossible to compile PHP without PCRE support.

Bug: 58213
Change-Id: Icf3732b6f84eeb25990178ae8fe3bd0fe4cc833f
2014-01-21 17:28:35 -05:00
MaxSem
0998c41943 Revert "Include short descriptions for extensions bundled in the release"
Contains var_dump(), self-merged non-trivial code.

This reverts commit 96b2c66e24.

Change-Id: Ie630466ef50e6bcdabf01daff28c283c764aae35
2014-01-12 23:59:44 +00:00
Mark A. Hershberger
96b2c66e24 Include short descriptions for extensions bundled in the release
Also fix styling for the list of extensions.

Bug: 43817
Change-Id: I5335225683ec8f1c163bb67f478787ebc52ee3a9
2014-01-12 18:21:55 -05:00
Siebrand Mazeland
abd4247019 Remove unused local variables, update formatting and documentation
Change-Id: Ib17f5f05d6cc48ac448df0ea8515d570713df9b5
2013-11-25 14:42:34 +01:00
Siebrand Mazeland
8a7d5c154b Update documentation
Change-Id: Ia8ca4f3ab49e8a437830a9d15d013e9ddb0ea3ab
2013-11-01 12:40:08 +01:00
MarkAHershberger
22280a1e3b Merge "installer: Run the LESS compiler for *.less files" 2013-10-28 21:39:31 +00:00
Kevin Israel
8cc7208753 installer: Run the LESS compiler for *.less files
Includes the following improvements:

* Use the ResourceLoader module definitions (with a hardcoded list of
  module names) instead of a hardcoded list of filenames.
* Make the errors more discoverable like we do in load.php, prepending
  them instead of burying them in the middle somewhere.

Bug: 55589
Change-Id: Iab78a60209ab46a10d4c492c75527e717f36f803
2013-10-24 01:02:47 -04:00
Siebrand Mazeland
bb0044f638 Address PHP CodeSniffer errors and warnings
One class of errors left unaddressed: Class name "WebInstaller_Language"
is not in camel caps format. I think this can be changed, too, but I
wasn't able to quickly find out where class names are being created.

Change-Id: I920b0231db1b70b68c6c8907257c288a0e112668
2013-10-23 12:42:07 +00:00
YuviPanda
513a7198e8 Do not set wgServer in cli install unless explicitly passed
Currently, if we do not pass a wgServer value (via --server),
the CLI installer sets the value to the default value
specified in DefaultSettings.php - which is to 'guess' by
calling into WebRequest::detectServer. This yields terrible
results, since WebRequest::detectServer expects to be working
in the context of a Web Request - and hence with HTTP Host
header information. Since calling from the CLI does not give
it host header information, it falls back to 'localhost',
which is not the value you usually want.

If we just do not set wgServer when it is not specified,
it is automatically calculated on every request by
WebRequest::detectServer, which does a splendid job.

Bug: 55376
Change-Id: I5436dd8c340604cbb59406a507188e11c8f86e86
2013-10-10 14:01:22 +05:30
Siebrand Mazeland
626addab9e Update formatting
With some manual corrections.

Change-Id: Icd947288c32fdb90a0f35388963ef5a17ffa58e7
2013-10-09 09:35:18 +00:00
Kevin Israel
ea60cd90a6 Installer: remove dependency on JSON extension
* Remove one of the two uses of Xml::encodeJsVar(): to encode an
  unused JS variable dbTypes. The remaining use is only after
  installation is complete.
* Add an environmental check to ensure the JSON functions are
  available before attempting installation.

Bug: 54774
Change-Id: Ifb8859026b853ef3f328b796945a973c4add7eeb
2013-09-30 13:59:42 -04:00
Timo Tijhof
90749a261c doc: Remove repetitive "Give grep a chance" phrase from comments
* Follows-up b2e2b2e016.
* Minor clean up of surrounding documentation comments.
* Fixed missing keys for messages in WebInstallerPage

Change-Id: Iaa692064262f3c0e10cfa5e4b1ec8c86e5d02362
2013-08-29 10:46:46 -07:00
umherirrender
24bfde2710 Fix spacing and break some lines
Change-Id: Ia57685d8858e02e399ad5c75ce64d12609d340ac
2013-08-24 17:06:25 +02:00
MarkAHershberger
ebabe9fa35 Merge "Installer: page refresh should refresh list of supported DBs" 2013-07-29 22:30:37 +00:00
Timo Tijhof
40e18e4534 Installer: Remove wgResourceLoaderMaxQueryLength in LocalSettings
This can change from one web server to another. Hardcoding it
in LocalSettings is unnececary (and could even cause problems
when a MediaWiki install is moved to a server with a lower
limit than the original server, as ResourceLoader would still
be acting on the old limit).

Similar to how wgUsePathInfo is currently dynamically set.

The less cruft in LocalSettings by default the better imho.
Except for stuff that makes sense to be sticky, explicit and
cached. Or stuff that is every commonly enabled and is therefor
convinient (such as wgEnableUploads/wgUseInstantCommons).

Change-Id: I58cb185f8dc1650a76c60c7fd04767fb74b32be2
2013-06-05 16:07:17 +02:00
Oren Held
ed542f41da Installer: page refresh should refresh list of supported DBs
There's no need to cache _CompiledDBs's value from the first installer load.
Instead, the list should be regenerated on every page load, as it's merely being
used for displaying the user list of DBs to choose from.

This solves a common setup confusion, where user starts with no DB support, gets
a friendly error message, installs php5-mysql as requested, but refreshing the
page won't make the error go away.

Bug: 31533
Change-Id: I2e7e5b4f72e7c11706d491a205e202008e2511da
2013-05-25 13:59:13 +03:00
Timo Tijhof
50e7985d4d phpcs: Fix WhiteSpace.LanguageConstructSpacing warnings
Squiz.WhiteSpace.LanguageConstructSpacing:
   Language constructs must be followed by a single space;
   expected "require_once expression" but found
   "require_once(expression)"

It is a keyword (e.g. like `new`, `return` and `print`). As
such the parentheses don't make sense.

Per our code conventions, we use a space after keywords like
these. We appeared to have an unwritten exception for `require`
that doesn't make sense. About 60% of require/include usage
was missing the space and/or had superfluous parentheses.

It is as silly as print("foo") or return("foo"), it works
because keywords have no significance for whitespace between
it and the expression that follows, and since experessions can
be wrapped in parentheses for clarity (e.g. when doing string
concatenation or mathematical operations) the parenthesis
before and after basiclaly just ignored.

Change-Id: I2df2f80b8123714bea7e0771bf94b51ad5bb4b87
2013-05-09 05:56:26 +02:00
Tim Starling
196865004d Remove taint support
Venema's taint feature was apparently never publicised beyond the
php-dev mailing list, and now there is a PECL taint extension which is
incompatible with the interface assumed here.

Grep confirms that wfArrayMap() is not used in any extensions.

Change-Id: I17d8d302947443262474c608829c7c7504bef589
2013-05-06 17:39:07 +10:00
umherirrender
6f79eef473 Fixed spacing around parenthesis in includes
Change-Id: Ie8adc00f4ee8ecec4554e584c18d5d2073415397
2013-04-28 15:50:07 +00:00
Zhaofeng Li
95409b2a57 Minor fixes to the code documentation
Change-Id: Iddfecfea17109eeea604ef111d6f98ea8399cc96
2013-04-23 18:06:34 +00:00