r80190 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r80189‎ | r80190 | r80191 >
Date:20:47, 13 January 2011
Author:catrope
Status:ok (Comments)
Tags:
Comment:
1.17: MFT first batch of installer changes: r78043, r78231, r78259, r78300, r78450, r78531, r78532, r78823, r78946, r79056, r79066, r79191, r79283, r79537, r79678, r79684, r79738, r79741, r79745, r79750, r79767, r79768. Also adds Bulgarian installer i18n
Modified paths:
  • /branches/REL1_17/phase3/config/index.php (modified) (history)
  • /branches/REL1_17/phase3/includes/Defines.php (modified) (history)
  • /branches/REL1_17/phase3/includes/GlobalFunctions.php (modified) (history)
  • /branches/REL1_17/phase3/includes/db/DatabaseOracle.php (modified) (history)
  • /branches/REL1_17/phase3/includes/db/DatabasePostgres.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/CoreInstaller.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/DatabaseUpdater.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/Installer.i18n.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/Installer.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/MysqlInstaller.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/MysqlUpdater.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/OracleInstaller.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/OracleUpdater.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/PostgresInstaller.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/PostgresUpdater.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/WebInstaller.php (modified) (history)
  • /branches/REL1_17/phase3/includes/installer/WebInstallerPage.php (modified) (history)
  • /branches/REL1_17/phase3/includes/search/SearchPostgres.php (modified) (history)
  • /branches/REL1_17/phase3/maintenance/install.php (modified) (history)
  • /branches/REL1_17/phase3/maintenance/postgres/archives/patch-change_tag.sql (modified) (history)
  • /branches/REL1_17/phase3/maintenance/postgres/archives/patch-tag_summary.sql (added) (history)
  • /branches/REL1_17/phase3/maintenance/postgres/archives/patch-valid_tag.sql (added) (history)
  • /branches/REL1_17/phase3/maintenance/upgrade1_5.php (modified) (history)
  • /branches/REL1_17/phase3/maintenance/userDupes.inc (modified) (history)

Diff [purge]

Index: branches/REL1_17/phase3/maintenance/postgres/archives/patch-tag_summary.sql
@@ -0,0 +1,9 @@
 2+CREATE TABLE tag_summary (
 3+ ts_rc_id INTEGER NULL,
 4+ ts_log_id INTEGER NULL,
 5+ ts_rev_id INTEGER NULL,
 6+ ts_tags TEXT NOT NULL
 7+);
 8+CREATE UNIQUE INDEX tag_summary_rc_id ON tag_summary(ts_rc_id);
 9+CREATE UNIQUE INDEX tag_summary_log_id ON tag_summary(ts_log_id);
 10+CREATE UNIQUE INDEX tag_summary_rev_id ON tag_summary(ts_rev_id);
Index: branches/REL1_17/phase3/maintenance/postgres/archives/patch-valid_tag.sql
@@ -0,0 +1,3 @@
 2+CREATE TABLE valid_tag (
 3+ vt_tag TEXT NOT NULL PRIMARY KEY
 4+);
Index: branches/REL1_17/phase3/maintenance/postgres/archives/patch-change_tag.sql
@@ -1,28 +1,11 @@
2 -
32 CREATE TABLE change_tag (
4 - ct_rc_id INTEGER NULL,
5 - ct_log_id INTEGER NULL,
6 - ct_rev_id INTEGER NULL,
7 - ct_tag TEXT NOT NULL,
8 - ct_params TEXT NULL
 3+ ct_rc_id INTEGER NULL,
 4+ ct_log_id INTEGER NULL,
 5+ ct_rev_id INTEGER NULL,
 6+ ct_tag TEXT NOT NULL,
 7+ ct_params TEXT NULL
98 );
109 CREATE UNIQUE INDEX change_tag_rc_tag ON change_tag(ct_rc_id,ct_tag);
1110 CREATE UNIQUE INDEX change_tag_log_tag ON change_tag(ct_log_id,ct_tag);
1211 CREATE UNIQUE INDEX change_tag_rev_tag ON change_tag(ct_rev_id,ct_tag);
1312 CREATE INDEX change_tag_tag_id ON change_tag(ct_tag,ct_rc_id,ct_rev_id,ct_log_id);
14 -
15 -
16 -CREATE TABLE tag_summary (
17 - ts_rc_id INTEGER NULL,
18 - ts_log_id INTEGER NULL,
19 - ts_rev_id INTEGER NULL,
20 - ts_tags TEXT NOT NULL
21 -);
22 -CREATE UNIQUE INDEX tag_summary_rc_id ON tag_summary(ts_rc_id);
23 -CREATE UNIQUE INDEX tag_summary_log_id ON tag_summary(ts_log_id);
24 -CREATE UNIQUE INDEX tag_summary_rev_id ON tag_summary(ts_rev_id);
25 -
26 -
27 -CREATE TABLE valid_tag (
28 - vt_tag TEXT NOT NULL PRIMARY KEY
29 -);
Index: branches/REL1_17/phase3/maintenance/install.php
@@ -65,7 +65,13 @@
6666 new CliInstaller( $siteName, $adminName, $this->mOptions );
6767
6868 if ( $this->hasOption( 'env-checks' ) ) {
69 - $installer->doEnvironmentChecks();
 69+ $status = $installer->doEnvironmentChecks();
 70+ if( $status->isGood() ) {
 71+ $installer->showMessage( 'config-env-good' );
 72+ } else {
 73+ $installer->showStatusMessage( $status );
 74+ return;
 75+ }
7076 } else {
7177 $installer->execute();
7278 $installer->writeConfigurationFile( $this->getOption( 'confpath', $IP ) );
Index: branches/REL1_17/phase3/maintenance/userDupes.inc
@@ -31,21 +31,30 @@
3232 var $reassigned;
3333 var $trimmed;
3434 var $failed;
 35+ private $outputCallback;
3536
36 - function UserDupes( &$database ) {
37 - $this->db =& $database;
 37+ function __construct( &$database, $outputCallback ) {
 38+ $this->db = $database;
 39+ $this->outputCallback = $outputCallback;
3840 }
3941
4042 /**
 43+ * Output some text via the output callback provided
 44+ * @param $str String Text to print
 45+ */
 46+ private function out( $str ) {
 47+ call_user_func( $this->outputCallback, $str );
 48+ }
 49+
 50+ /**
4151 * Check if this database's user table has already had a unique
4252 * user_name index applied.
4353 * @return bool
4454 */
4555 function hasUniqueIndex() {
46 - $fname = 'UserDupes::hasUniqueIndex';
47 - $info = $this->db->indexInfo( 'user', 'user_name', $fname );
 56+ $info = $this->db->indexInfo( 'user', 'user_name', __METHOD__ );
4857 if ( !$info ) {
49 - wfOut( "WARNING: doesn't seem to have user_name index at all!\n" );
 58+ $this->out( "WARNING: doesn't seem to have user_name index at all!\n" );
5059 return false;
5160 }
5261
@@ -92,11 +101,11 @@
93102
94103 $this->lock();
95104
96 - wfOut( "Checking for duplicate accounts...\n" );
 105+ $this->out( "Checking for duplicate accounts...\n" );
97106 $dupes = $this->getDupes();
98107 $count = count( $dupes );
99108
100 - wfOut( "Found $count accounts with duplicate records on " . wfWikiID() . ".\n" );
 109+ $this->out( "Found $count accounts with duplicate records on " . wfWikiID() . ".\n" );
101110 $this->trimmed = 0;
102111 $this->reassigned = 0;
103112 $this->failed = 0;
@@ -106,34 +115,34 @@
107116
108117 $this->unlock();
109118
110 - wfOut( "\n" );
 119+ $this->out( "\n" );
111120
112121 if ( $this->reassigned > 0 ) {
113122 if ( $doDelete ) {
114 - wfOut( "$this->reassigned duplicate accounts had edits reassigned to a canonical record id.\n" );
 123+ $this->out( "$this->reassigned duplicate accounts had edits reassigned to a canonical record id.\n" );
115124 } else {
116 - wfOut( "$this->reassigned duplicate accounts need to have edits reassigned.\n" );
 125+ $this->out( "$this->reassigned duplicate accounts need to have edits reassigned.\n" );
117126 }
118127 }
119128
120129 if ( $this->trimmed > 0 ) {
121130 if ( $doDelete ) {
122 - wfOut( "$this->trimmed duplicate user records were deleted from " . wfWikiID() . ".\n" );
 131+ $this->out( "$this->trimmed duplicate user records were deleted from " . wfWikiID() . ".\n" );
123132 } else {
124 - wfOut( "$this->trimmed duplicate user accounts were found on " . wfWikiID() . " which can be removed safely.\n" );
 133+ $this->out( "$this->trimmed duplicate user accounts were found on " . wfWikiID() . " which can be removed safely.\n" );
125134 }
126135 }
127136
128137 if ( $this->failed > 0 ) {
129 - wfOut( "Something terribly awry; $this->failed duplicate accounts were not removed.\n" );
 138+ $this->out( "Something terribly awry; $this->failed duplicate accounts were not removed.\n" );
130139 return false;
131140 }
132141
133142 if ( $this->trimmed == 0 || $doDelete ) {
134 - wfOut( "It is now safe to apply the unique index on user_name.\n" );
 143+ $this->out( "It is now safe to apply the unique index on user_name.\n" );
135144 return true;
136145 } else {
137 - wfOut( "Run this script again with the --fix option to automatically delete them.\n" );
 146+ $this->out( "Run this script again with the --fix option to automatically delete them.\n" );
138147 return false;
139148 }
140149 }
@@ -143,7 +152,6 @@
144153 * @access private
145154 */
146155 function lock() {
147 - $fname = 'UserDupes::lock';
148156 if ( $this->newSchema() ) {
149157 $set = array( 'user', 'revision' );
150158 } else {
@@ -152,7 +160,7 @@
153161 $names = array_map( array( $this, 'lockTable' ), $set );
154162 $tables = implode( ',', $names );
155163
156 - $this->db->query( "LOCK TABLES $tables", $fname );
 164+ $this->db->query( "LOCK TABLES $tables", __METHOD__ );
157165 }
158166
159167 function lockTable( $table ) {
@@ -171,8 +179,7 @@
172180 * @access private
173181 */
174182 function unlock() {
175 - $fname = 'UserDupes::unlock';
176 - $this->db->query( "UNLOCK TABLES", $fname );
 183+ $this->db->query( "UNLOCK TABLES", __METHOD__ );
177184 }
178185
179186 /**
@@ -181,13 +188,12 @@
182189 * @access private
183190 */
184191 function getDupes() {
185 - $fname = 'UserDupes::listDupes';
186192 $user = $this->db->tableName( 'user' );
187193 $result = $this->db->query(
188194 "SELECT user_name,COUNT(*) AS n
189195 FROM $user
190196 GROUP BY user_name
191 - HAVING n > 1", $fname );
 197+ HAVING n > 1", __METHOD__ );
192198
193199 $list = array();
194200 foreach ( $result as $row ) {
@@ -205,44 +211,43 @@
206212 * @access private
207213 */
208214 function examine( $name, $doDelete ) {
209 - $fname = 'UserDupes::listDupes';
210215 $result = $this->db->select( 'user',
211216 array( 'user_id' ),
212217 array( 'user_name' => $name ),
213 - $fname );
 218+ __METHOD__ );
214219
215220 $firstRow = $this->db->fetchObject( $result );
216221 $firstId = $firstRow->user_id;
217 - wfOut( "Record that will be used for '$name' is user_id=$firstId\n" );
 222+ $this->out( "Record that will be used for '$name' is user_id=$firstId\n" );
218223
219224 foreach ( $result as $row ) {
220225 $dupeId = $row->user_id;
221 - wfOut( "... dupe id $dupeId: " );
 226+ $this->out( "... dupe id $dupeId: " );
222227 $edits = $this->editCount( $dupeId );
223228 if ( $edits > 0 ) {
224229 $this->reassigned++;
225 - wfOut( "has $edits edits! " );
 230+ $this->out( "has $edits edits! " );
226231 if ( $doDelete ) {
227232 $this->reassignEdits( $dupeId, $firstId );
228233 $newEdits = $this->editCount( $dupeId );
229234 if ( $newEdits == 0 ) {
230 - wfOut( "confirmed cleaned. " );
 235+ $this->out( "confirmed cleaned. " );
231236 } else {
232237 $this->failed++;
233 - wfOut( "WARNING! $newEdits remaining edits for $dupeId; NOT deleting user.\n" );
 238+ $this->out( "WARNING! $newEdits remaining edits for $dupeId; NOT deleting user.\n" );
234239 continue;
235240 }
236241 } else {
237 - wfOut( "(will need to reassign edits on fix)" );
 242+ $this->out( "(will need to reassign edits on fix)" );
238243 }
239244 } else {
240 - wfOut( "ok, no edits. " );
 245+ $this->out( "ok, no edits. " );
241246 }
242247 $this->trimmed++;
243248 if ( $doDelete ) {
244249 $this->trimAccount( $dupeId );
245250 }
246 - wfOut( "\n" );
 251+ $this->out( "\n" );
247252 }
248253 }
249254
@@ -272,12 +277,11 @@
273278 * @access private
274279 */
275280 function editCountOn( $table, $field, $userid ) {
276 - $fname = 'UserDupes::editCountOn';
277281 return intval( $this->db->selectField(
278282 $table,
279283 'COUNT(*)',
280284 array( $field => $userid ),
281 - $fname ) );
 285+ __METHOD__ ) );
282286 }
283287
284288 /**
@@ -302,13 +306,12 @@
303307 * @access private
304308 */
305309 function reassignEditsOn( $table, $field, $from, $to ) {
306 - $fname = 'UserDupes::reassignEditsOn';
307 - wfOut( "reassigning on $table... " );
 310+ $this->out( "reassigning on $table... " );
308311 $this->db->update( $table,
309312 array( $field => $to ),
310313 array( $field => $from ),
311 - $fname );
312 - wfOut( "ok. " );
 314+ __METHOD__ );
 315+ $this->out( "ok. " );
313316 }
314317
315318 /**
@@ -317,10 +320,9 @@
318321 * @access private
319322 */
320323 function trimAccount( $userid ) {
321 - $fname = 'UserDupes::trimAccount';
322 - wfOut( "deleting..." );
323 - $this->db->delete( 'user', array( 'user_id' => $userid ), $fname );
324 - wfOut( " ok" );
 324+ $this->out( "deleting..." );
 325+ $this->db->delete( 'user', array( 'user_id' => $userid ), __METHOD__ );
 326+ $this->out( " ok" );
325327 }
326328
327329 }
Index: branches/REL1_17/phase3/maintenance/upgrade1_5.php
@@ -619,9 +619,13 @@
620620 $this->log( 'Done with links.' );
621621 }
622622
 623+ function userDupeCallback( $str ) {
 624+ echo $str;
 625+ }
 626+
623627 function upgradeUser() {
624628 // Apply unique index, if necessary:
625 - $duper = new UserDupes( $this->dbw );
 629+ $duper = new UserDupes( $this->dbw, array( $this, 'userDupeCallback' ) );
626630 if ( $duper->hasUniqueIndex() ) {
627631 $this->log( "Already have unique user_name index." );
628632 } else {
Index: branches/REL1_17/phase3/includes/Defines.php
@@ -19,6 +19,7 @@
2020 define( 'DBO_DEFAULT', 16 );
2121 define( 'DBO_PERSISTENT', 32 );
2222 define( 'DBO_SYSDBA', 64 ); //for oracle maintenance
 23+define( 'DBO_DDLMODE', 128 ); // when using schema files: mostly for Oracle
2324 /**@}*/
2425
2526 /**@{
Index: branches/REL1_17/phase3/includes/search/SearchPostgres.php
@@ -148,7 +148,7 @@
149149
150150 ## We need a separate query here so gin does not complain about empty searches
151151 $SQL = "SELECT to_tsquery($prefix $searchstring)";
152 - $res = $this->db->doQuery($SQL);
 152+ $res = $this->db->query($SQL);
153153 if (!$res) {
154154 ## TODO: Better output (example to catch: one 'two)
155155 die ("Sorry, that was not a valid search string. Please go back and try again");
@@ -206,7 +206,7 @@
207207 $SQL = "UPDATE pagecontent SET textvector = NULL WHERE old_id IN ".
208208 "(SELECT rev_text_id FROM revision WHERE rev_page = " . intval( $pageid ) .
209209 " ORDER BY rev_text_id DESC OFFSET 1)";
210 - $this->db->doQuery($SQL);
 210+ $this->db->query($SQL);
211211 return true;
212212 }
213213
Index: branches/REL1_17/phase3/includes/GlobalFunctions.php
@@ -3411,8 +3411,8 @@
34123412 }
34133413
34143414 /**
3415 - * Output some plain text in command-line mode or in the installer (updaters.inc).
3416 - * Do not use it in any other context, its behaviour is subject to change.
 3415+ * Used to be used for outputting text in the installer/updater
 3416+ * @deprecated Warnings in 1.19, removal in 1.20
34173417 */
34183418 function wfOut( $s ) {
34193419 global $wgCommandLineMode;
Property changes on: branches/REL1_17/phase3/includes/GlobalFunctions.php
___________________________________________________________________
Modified: svn:mergeinfo
34203420 Merged /trunk/phase3/includes/GlobalFunctions.php:r78231,78259,78300,78450,78531-78532,78823,78946,79056,79066,79191,79283,79537,79678,79684,79738,79741,79745,79750,79767-79768
Index: branches/REL1_17/phase3/includes/db/DatabaseOracle.php
@@ -311,9 +311,10 @@
312312
313313 // handle some oracle specifics
314314 // remove AS column/table/subquery namings
315 - if ( !defined( 'MEDIAWIKI_INSTALL' ) ) {
 315+ if( !$this->getFlag( DBO_DDLMODE ) ) {
316316 $sql = preg_replace( '/ as /i', ' ', $sql );
317317 }
 318+
318319 // Oracle has issues with UNION clause if the statement includes LOB fields
319320 // So we do a UNION ALL and then filter the results array with array_unique
320321 $union_unique = ( preg_match( '/\/\* UNION_UNIQUE \*\/ /', $sql ) != 0 );
Index: branches/REL1_17/phase3/includes/db/DatabasePostgres.php
@@ -546,36 +546,6 @@
547547 }
548548 }
549549
550 - function setup_plpgsql() {
551 - print '<li>Checking for PL/pgSQL ...';
552 - $SQL = "SELECT 1 FROM pg_catalog.pg_language WHERE lanname = 'plpgsql'";
553 - $rows = $this->numRows( $this->doQuery( $SQL ) );
554 - if ( $rows < 1 ) {
555 - // plpgsql is not installed, but if we have a pg_pltemplate table, we should be able to create it
556 - print 'not installed. Attempting to install PL/pgSQL ...';
557 - $SQL = "SELECT 1 FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace) ".
558 - "WHERE relname = 'pg_pltemplate' AND nspname='pg_catalog'";
559 - $rows = $this->numRows( $this->doQuery( $SQL ) );
560 - global $wgDBname;
561 - if ( $rows >= 1 ) {
562 - $olde = error_reporting( 0 );
563 - error_reporting( $olde - E_WARNING );
564 - $result = $this->doQuery( 'CREATE LANGUAGE plpgsql' );
565 - error_reporting( $olde );
566 - if ( !$result ) {
567 - print '<b>FAILED</b>. You need to install the language PL/pgSQL in the database <tt>' .
568 - htmlspecialchars( $wgDBname ) . '</tt></li>';
569 - dieout( );
570 - }
571 - } else {
572 - print '<b>FAILED</b>. You need to install the language PL/pgSQL in the database <tt>' .
573 - htmlspecialchars( $wgDBname ) . '</tt></li>';
574 - dieout( );
575 - }
576 - }
577 - print "OK</li>\n";
578 - }
579 -
580550 /**
581551 * Closes a database connection, if it is open
582552 * Returns success, true if already closed
Index: branches/REL1_17/phase3/includes/installer/DatabaseUpdater.php
@@ -26,6 +26,11 @@
2727
2828 protected $extensionUpdates = array();
2929
 30+ /**
 31+ * Handle to the database subclass
 32+ *
 33+ * @var DatabaseBase
 34+ */
3035 protected $db;
3136
3237 protected $shared = false;
@@ -47,6 +52,7 @@
4853 global $wgDatabase;
4954 $wgDatabase = $db;
5055 $this->db = $db;
 56+ $this->db->setFlag( DBO_DDLMODE ); // For Oracle's handling of schema files
5157 $this->shared = $shared;
5258 if ( $maintenance ) {
5359 $this->maintenance = $maintenance;
@@ -95,16 +101,20 @@
96102 }
97103
98104 /**
99 - * Output some text. Right now this is a wrapper for wfOut, but hopefully
100 - * that function can go away some day :)
 105+ * Output some text. If we're running from web, escape the text first.
101106 *
102107 * @param $str String: Text to output
103108 */
104 - protected function output( $str ) {
 109+ public function output( $str ) {
105110 if ( $this->maintenance->isQuiet() ) {
106111 return;
107112 }
108 - wfOut( $str );
 113+ global $wgCommandLineMode;
 114+ if( !$wgCommandLineMode ) {
 115+ $str = htmlspecialchars( $str );
 116+ }
 117+ echo $str;
 118+ flush();
109119 }
110120
111121 /**
@@ -115,14 +125,24 @@
116126 * first item is the callback function, it also can be a
117127 * simple string with the name of a function in this class,
118128 * following elements are parameters to the function.
119 - * Note that callback functions will recieve this object as
 129+ * Note that callback functions will receive this object as
120130 * first parameter.
121131 */
122 - public function addExtensionUpdate( $update ) {
 132+ public function addExtensionUpdate( Array $update ) {
123133 $this->extensionUpdates[] = $update;
124134 }
125135
126136 /**
 137+ * Convenience wrapper for addExtensionUpdate() when adding a new table (which
 138+ * is the most common usage of updaters in an extension)
 139+ * @param $tableName String Name of table to create
 140+ * @param $sqlPath String Full path to the schema file
 141+ */
 142+ public function addExtensionTable( $tableName, $sqlPath ) {
 143+ $this->extensionUpdates[] = array( 'addTable', $tableName, $sqlPath, true );
 144+ }
 145+
 146+ /**
127147 * Get the list of extension-defined updates
128148 *
129149 * @return Array
@@ -331,7 +351,7 @@
332352 * @param $patch String Path to the patch file
333353 * @param $fullpath Boolean Whether to treat $patch path as a relative or not
334354 */
335 - function addIndex( $table, $index, $patch, $fullpath = false ) {
 355+ protected function addIndex( $table, $index, $patch, $fullpath = false ) {
336356 if ( $this->db->indexExists( $table, $index ) ) {
337357 $this->output( "...$index key already set on $table table.\n" );
338358 } else {
@@ -349,7 +369,7 @@
350370 * @param $patch String Path to the patch file
351371 * @param $fullpath Boolean Whether to treat $patch path as a relative or not
352372 */
353 - function dropField( $table, $field, $patch, $fullpath = false ) {
 373+ protected function dropField( $table, $field, $patch, $fullpath = false ) {
354374 if ( $this->db->fieldExists( $table, $field ) ) {
355375 $this->output( "Table $table contains $field field. Dropping... " );
356376 $this->applyPatch( $patch, $fullpath );
@@ -367,7 +387,7 @@
368388 * @param $patch String: Path to the patch file
369389 * @param $fullpath Boolean: Whether to treat $patch path as a relative or not
370390 */
371 - function dropIndex( $table, $index, $patch, $fullpath = false ) {
 391+ protected function dropIndex( $table, $index, $patch, $fullpath = false ) {
372392 if ( $this->db->indexExists( $table, $index ) ) {
373393 $this->output( "Dropping $index from table $table... " );
374394 $this->applyPatch( $patch, $fullpath );
@@ -457,7 +477,7 @@
458478 $this->output( "Done populating log_search table.\n" );
459479 }
460480
461 - function doUpdateTranscacheField() {
 481+ protected function doUpdateTranscacheField() {
462482 if ( $this->updateRowExists( 'convert transcache field' ) ) {
463483 $this->output( "...transcache tc_time already converted.\n" );
464484 return;
Index: branches/REL1_17/phase3/includes/installer/MysqlUpdater.php
@@ -521,7 +521,7 @@
522522 }
523523
524524 protected function doUserUniqueUpdate() {
525 - $duper = new UserDupes( $this->db );
 525+ $duper = new UserDupes( $this->db, array( $this, 'output' ) );
526526 if ( $duper->hasUniqueIndex() ) {
527527 $this->output( "...already have unique user_name index.\n" );
528528 return;
Property changes on: branches/REL1_17/phase3/includes/installer/MysqlUpdater.php
___________________________________________________________________
Modified: svn:mergeinfo
529529 Merged /trunk/phase3/includes/installer/MysqlUpdater.php:r78043,78231,78259,78300,78450,78531-78532,78823,78946,79056,79066,79191,79283,79537,79678,79684,79738,79741,79745,79750,79767-79768
Index: branches/REL1_17/phase3/includes/installer/OracleUpdater.php
@@ -13,12 +13,6 @@
1414 * @since 1.17
1515 */
1616 class OracleUpdater extends DatabaseUpdater {
17 -
18 - protected function __construct( DatabaseBase &$db, $shared ) {
19 - define( 'MEDIAWIKI_INSTALL', true );
20 - parent::__construct( $db, $shared );
21 - }
22 -
2317 protected function getCoreUpdateList() {
2418 return array(
2519 // 1.16
@@ -29,7 +23,6 @@
3024 );
3125 }
3226
33 -
3427 /**
3528 * MySQL uses datatype defaults for NULL inserted into NOT NULL fields
3629 * In namespace case that results into insert of 0 which is default namespace
@@ -93,7 +86,7 @@
9487 public function doUpdates( $purge = true ) {
9588 parent::doUpdates();
9689
97 - $this->db->doQuery( 'BEGIN fill_wiki_info; END;' );
 90+ $this->db->query( 'BEGIN fill_wiki_info; END;' );
9891 }
9992
10093 }
Index: branches/REL1_17/phase3/includes/installer/WebInstaller.php
@@ -277,22 +277,6 @@
278278 * Start the PHP session. This may be called before execute() to start the PHP session.
279279 */
280280 public function startSession() {
281 - $sessPath = $this->getSessionSavePath();
282 -
283 - if( $sessPath != '' ) {
284 - if( strval( ini_get( 'open_basedir' ) ) != '' ) {
285 - // we need to skip the following check when open_basedir is on.
286 - // The session path probably *wont* be writable by the current
287 - // user, and telling them to change it is bad. Bug 23021.
288 - } elseif( !is_dir( $sessPath ) || !is_writeable( $sessPath ) ) {
289 - $this->showError( 'config-session-path-bad', $sessPath );
290 - return false;
291 - }
292 - } else {
293 - // If the path is unset it'll default to some system bit, which *probably* is ok...
294 - // not sure how to actually get what will be used.
295 - }
296 -
297281 if( wfIniGetBool( 'session.auto_start' ) || session_id() ) {
298282 // Done already
299283 return true;
@@ -312,23 +296,6 @@
313297 }
314298
315299 /**
316 - * Get the value of session.save_path
317 - *
318 - * Per http://www.php.net/manual/en/session.configuration.php#ini.session.save-path,
319 - * this may have an initial integer value to indicate the depth of session
320 - * storage (eg /tmp/a/b/c). Explode on ; and check and see if this part is
321 - * there or not. Should also allow paths with semicolons in them (if you
322 - * really wanted your session files stored in /tmp/some;dir) which PHP
323 - * supposedly supports.
324 - *
325 - * @return String
326 - */
327 - private function getSessionSavePath() {
328 - $parts = explode( ';', ini_get( 'session.save_path' ), 2 );
329 - return count( $parts ) == 1 ? $parts[0] : $parts[1];
330 - }
331 -
332 - /**
333300 * Get a hash of data identifying this MW installation.
334301 *
335302 * This is used by config/index.php to prevent multiple installations of MW
@@ -571,8 +538,9 @@
572539 */
573540 private function endPageWrapper() {
574541 $this->output->addHTMLNoFlush(
575 - "</div>\n" .
576 - "<br style=\"clear:both\"/>\n" .
 542+ "<div class=\"visualClear\"></div>\n" .
 543+ "</div>\n" .
 544+ "<div class=\"visualClear\"></div>\n" .
577545 "</div>" );
578546 }
579547
Index: branches/REL1_17/phase3/includes/installer/PostgresUpdater.php
@@ -48,8 +48,8 @@
4949 array( 'addTable', 'redirect', 'patch-redirect.sql' ),
5050 array( 'addTable', 'updatelog', 'patch-updatelog.sql' ),
5151 array( 'addTable', 'change_tag', 'patch-change_tag.sql' ),
52 - array( 'addTable', 'tag_summary', 'patch-change_tag.sql' ),
53 - array( 'addTable', 'valid_tag', 'patch-change_tag.sql' ),
 52+ array( 'addTable', 'tag_summary', 'patch-tag_summary.sql' ),
 53+ array( 'addTable', 'valid_tag', 'patch-valid_tag.sql' ),
5454 array( 'addTable', 'user_properties', 'patch-user_properties.sql' ),
5555 array( 'addTable', 'log_search', 'patch-log_search.sql' ),
5656 array( 'addTable', 'l10n_cache', 'patch-l10n_cache.sql' ),
@@ -516,14 +516,10 @@
517517 protected function checkPgUser() {
518518 global $wgDBmwschema, $wgDBts2schema, $wgDBuser;
519519
520 - # Just in case their LocalSettings.php does not have this:
521 - if ( !isset( $wgDBmwschema ) ) {
522 - $wgDBmwschema = 'mediawiki';
523 - }
 520+ $config = $this->db->selectField(
 521+ 'pg_catalog.pg_user', "array_to_string(useconfig,'*')",
 522+ array( 'usename' => $wgDBuser ), __METHOD__ );
524523
525 - $safeuser = $this->db->addQuotes( $wgDBuser );
526 - $SQL = "SELECT array_to_string(useconfig,'*') FROM pg_catalog.pg_user WHERE usename = $safeuser";
527 - $config = pg_fetch_result( $this->db->doQuery( $SQL ), 0, 0 );
528524 $conf = array();
529525 foreach ( explode( '*', $config ) as $c ) {
530526 list( $x, $y ) = explode( '=', $c );
@@ -546,8 +542,8 @@
547543 }
548544 $search_path = str_replace( ', ,', ',', $search_path );
549545 if ( array_key_exists( 'search_path', $conf ) === false || $search_path != $conf['search_path'] ) {
550 - $this->db->doQuery( "ALTER USER $wgDBuser SET search_path = $search_path" );
551 - $this->db->doQuery( "SET search_path = $search_path" );
 546+ $this->db->query( "ALTER USER $wgDBuser SET search_path = $search_path" );
 547+ $this->db->query( "SET search_path = $search_path" );
552548 } else {
553549 $path = $conf['search_path'];
554550 $this->output( "... search_path for user \"$wgDBuser\" looks correct ($path)\n" );
@@ -562,8 +558,8 @@
563559 foreach ( $goodconf as $key => $value ) {
564560 if ( !array_key_exists( $key, $conf ) or $conf[$key] !== $value ) {
565561 $this->output( "Setting $key to '$value' for user \"$wgDBuser\"\n" );
566 - $this->db->doQuery( "ALTER USER $wgDBuser SET $key = '$value'" );
567 - $this->db->doQuery( "SET $key = '$value'" );
 562+ $this->db->query( "ALTER USER $wgDBuser SET $key = '$value'" );
 563+ $this->db->query( "SET $key = '$value'" );
568564 } else {
569565 $this->output( "... default value of \"$key\" is correctly set to \"$value\" for user \"$wgDBuser\"\n" );
570566 }
Index: branches/REL1_17/phase3/includes/installer/Installer.php
@@ -139,7 +139,7 @@
140140 * Under the web subclass, it can already be assumed that PHP 5+ is in use
141141 * and that sessions are working.
142142 *
143 - * @return boolean
 143+ * @return Status
144144 */
145145 public function doEnvironmentChecks() {
146146 $this->showMessage( 'config-env-php', phpversion() );
@@ -155,13 +155,7 @@
156156
157157 $this->setVar( '_Environment', $good );
158158
159 - if ( $good ) {
160 - $this->showMessage( 'config-env-good' );
161 - } else {
162 - $this->showMessage( 'config-env-bad' );
163 - }
164 -
165 - return $good;
 159+ return $good ? Status::newGood() : Status::newFatal( 'config-env-bad' );
166160 }
167161
168162 /**
@@ -227,18 +221,17 @@
228222 $_lsExists = file_exists( "$IP/LocalSettings.php" );
229223 wfRestoreWarnings();
230224
231 - if( $_lsExists ) {
232 - require( "$IP/includes/DefaultSettings.php" );
233 - require( "$IP/LocalSettings.php" );
234 - if ( file_exists( "$IP/AdminSettings.php" ) ) {
235 - require( "$IP/AdminSettings.php" );
236 - }
237 - $vars = get_defined_vars();
238 - unset( $vars['_lsExists'] );
239 - return $vars;
240 - } else {
 225+ if( !$_lsExists ) {
241226 return false;
242227 }
 228+ unset($_lsExists);
 229+
 230+ require( "$IP/includes/DefaultSettings.php" );
 231+ require( "$IP/LocalSettings.php" );
 232+ if ( file_exists( "$IP/AdminSettings.php" ) ) {
 233+ require( "$IP/AdminSettings.php" );
 234+ }
 235+ return get_defined_vars();
243236 }
244237
245238 /**
@@ -573,7 +566,7 @@
574567 $names = array( "gdiff3", "diff3", "diff3.exe" );
575568 $versionInfo = array( '$1 --version 2>&1', 'GNU diffutils' );
576569
577 - $diff3 = $this->locateExecutableInDefaultPaths( $names, $versionInfo );
 570+ $diff3 = self::locateExecutableInDefaultPaths( $names, $versionInfo );
578571
579572 if ( $diff3 ) {
580573 $this->setVar( 'wgDiff3', $diff3 );
@@ -588,7 +581,7 @@
589582 */
590583 protected function envCheckGraphics() {
591584 $names = array( wfIsWindows() ? 'convert.exe' : 'convert' );
592 - $convert = $this->locateExecutableInDefaultPaths( $names, array( '$1 -version', 'ImageMagick' ) );
 585+ $convert = self::locateExecutableInDefaultPaths( $names, array( '$1 -version', 'ImageMagick' ) );
593586
594587 if ( $convert ) {
595588 $this->setVar( 'wgImageMagickConvertCommand', $convert );
Index: branches/REL1_17/phase3/includes/installer/CoreInstaller.php
@@ -179,13 +179,26 @@
180180 );
181181
182182 /**
 183+ * URL to mediawiki-announce subscription
 184+ */
 185+ protected $mediaWikiAnnounceUrl = 'https://lists.wikimedia.org/mailman/subscribe/mediawiki-announce';
 186+
 187+ /**
 188+ * Supported language codes for Mailman
 189+ */
 190+ protected $mediaWikiAnnounceLanguages = array(
 191+ 'ca', 'cs', 'da', 'de', 'en', 'es', 'et', 'eu', 'fi', 'fr', 'hr', 'hu',
 192+ 'it', 'ja', 'ko', 'lt', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ro', 'ru',
 193+ 'sl', 'sr', 'sv', 'tr', 'uk'
 194+ );
 195+
 196+ /**
183197 * TODO: document
184198 *
185199 * @param $status Status
186200 */
187201 public abstract function showStatusMessage( Status $status );
188202
189 -
190203 /**
191204 * Constructor, always call this from child classes.
192205 */
@@ -229,7 +242,7 @@
230243 }
231244
232245 $this->parserTitle = Title::newFromText( 'Installer' );
233 - $this->parserOptions = new ParserOptions;
 246+ $this->parserOptions = new ParserOptions; // language will be wrong :(
234247 $this->parserOptions->setEditSection( false );
235248 }
236249
@@ -246,6 +259,14 @@
247260 }
248261
249262 /**
 263+ * ParserOptions are constructed before we determined the language, so fix it
 264+ */
 265+ public function setParserLanguage( $lang ) {
 266+ $this->parserOptions->setTargetLanguage( $lang );
 267+ $this->parserOptions->setUserLang( $lang );
 268+ }
 269+
 270+ /**
250271 * Extension tag hook for a documentation link.
251272 */
252273 public function docLink( $linkText, $attribs, $parser ) {
@@ -480,12 +501,41 @@
481502
482503 $user->addGroup( 'sysop' );
483504 $user->addGroup( 'bureaucrat' );
 505+ if( $this->getVar( '_AdminEmail' ) ) {
 506+ $user->setEmail( $this->getVar( '_AdminEmail' ) );
 507+ }
484508 $user->saveSettings();
485509 }
 510+ $status = Status::newGood();
486511
487 - return Status::newGood();
 512+ if( $this->getVar( '_Subscribe' ) && $this->getVar( '_AdminEmail' ) ) {
 513+ $this->subscribeToMediaWikiAnnounce( $status );
 514+ }
 515+
 516+ return $status;
488517 }
489518
 519+ private function subscribeToMediaWikiAnnounce( Status $s ) {
 520+ $params = array(
 521+ 'email' => $this->getVar( '_AdminEmail' ),
 522+ 'language' => 'en',
 523+ 'digest' => 0
 524+ );
 525+
 526+ // Mailman doesn't support as many languages as we do, so check to make
 527+ // sure their selected language is available
 528+ $myLang = $this->getVar( '_UserLang' );
 529+ if( in_array( $myLang, $this->mediaWikiAnnounceLanguages ) ) {
 530+ $myLang = $myLang == 'pt-br' ? 'pt_BR' : $myLang; // rewrite to Mailman's pt_BR
 531+ $params['language'] = $myLang;
 532+ }
 533+
 534+ $res = Http::post( $this->mediaWikiAnnounceUrl, array( 'postData' => $params ) );
 535+ if( !$res ) {
 536+ $s->warning( 'config-install-subscribe-fail' );
 537+ }
 538+ }
 539+
490540 /**
491541 * Insert Main Page with default content.
492542 *
Property changes on: branches/REL1_17/phase3/includes/installer/CoreInstaller.php
___________________________________________________________________
Modified: svn:mergeinfo
493543 Merged /trunk/phase3/includes/installer/CoreInstaller.php:r78043,78231,78259,78300,78450,78531-78532,78823,78946,79056,79066,79191,79283,79537,79678,79684,79738,79741,79745,79750,79767-79768
Index: branches/REL1_17/phase3/includes/installer/Installer.i18n.php
@@ -38,7 +38,6 @@
3939 Restart the installation process.',
4040 'config-no-session' => 'Your session data was lost!
4141 Check your php.ini and make sure <code>session.save_path</code> is set to an appropriate directory.',
42 - 'config-session-path-bad' => 'Your <code>session.save_path</code> (<code>$1</code>) seems to be invalid or unwritable.',
4342 'config-your-language' => 'Your language:',
4443 'config-your-language-help' => 'Select a language to use during the installation process.',
4544 'config-wiki-language' => 'Wiki language:',
@@ -79,8 +78,8 @@
8079 * [http://www.mediawiki.org/wiki/Help:Contents User's Guide]
8180 * [http://www.mediawiki.org/wiki/Manual:Contents Administrator's Guide]
8281 * [http://www.mediawiki.org/wiki/Manual:FAQ FAQ]",
83 - 'config-env-good' => '<span class="success-message">The environment has been checked.
84 -You can install MediaWiki.</span>', // FIXME: take span out of message.
 82+ 'config-env-good' => 'The environment has been checked.
 83+You can install MediaWiki.',
8584 'config-env-bad' => 'The environment has been checked.
8685 You cannot install MediaWiki.',
8786 'config-env-php' => 'PHP $1 is installed.',
@@ -234,9 +233,9 @@
235234 'config-invalid-db-server-oracle' => 'Invalid database TNS "$1".
236235 Use only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and dots (.).',
237236 'config-invalid-db-name' => 'Invalid database name "$1".
238 -Use only ASCII letters (a-z, A-Z), numbers (0-9) and underscores (_).',
 237+Use only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).',
239238 'config-invalid-db-prefix' => 'Invalid database prefix "$1".
240 -Use only ASCII letters (a-z, A-Z), numbers (0-9) and underscores (_).',
 239+Use only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).',
241240 'config-connection-error' => '$1.
242241
243242 Check the host, username and password below and try again.',
@@ -344,6 +343,7 @@
345344 'config-admin-email-help' => 'Enter an e-mail address here to allow you to receive e-mail from other users on the wiki, reset your password, and be notified of changes to pages on your watchlist.',
346345 'config-admin-error-user' => 'Internal error when creating an admin with the name "<nowiki>$1</nowiki>".',
347346 'config-admin-error-password' => 'Internal error when setting a password for the admin "<nowiki>$1</nowiki>": <pre>$2</pre>',
 347+ 'config-admin-error-bademail' => 'You have entered an invalid e-mail address',
348348 'config-subscribe' => 'Subscribe to the [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce release announcements mailing list].',
349349 'config-subscribe-help' => 'This is a low-volume mailing list used for release announcements, including important security announcements.
350350 You should subscribe to it and update your MediaWiki installation when new versions come out.',
@@ -450,6 +450,7 @@
451451 'config-install-pg-schema-failed' => 'Tables creation failed.
452452 Make sure that the user "$1" can write to the schema "$2".',
453453 'config-install-pg-commit' => 'Committing changes',
 454+ 'config-pg-no-plpgsql' => 'You need to install the language PL/pgSQL in the database $1',
454455 'config-install-user' => 'Creating database user',
455456 'config-install-user-failed' => 'Granting permission to user "$1" failed: $2',
456457 'config-install-tables' => 'Creating tables',
@@ -465,6 +466,7 @@
466467 Consider changing it manually.",
467468 'config-install-upgradekey' => 'Generating default upgrade key',
468469 'config-install-sysop' => 'Creating administrator user account',
 470+ 'config-install-subscribe-fail' => 'Unable to subscribe to mediawiki-announce',
469471 'config-install-mainpage' => 'Creating main page with default content',
470472 'config-install-mainpage-failed' => 'Could not insert main page.',
471473 'config-install-done' => "'''Congratulations!'''
@@ -689,10 +691,10 @@
690692 * [http://www.mediawiki.org/wiki/Help:Contents Gebruikershandleiding] (Engelstalig)
691693 * [http://www.mediawiki.org/wiki/Manual:Contents Administrateurshandleiding] (Engelstalig)
692694 * [http://www.mediawiki.org/wiki/Manual:FAQ Algemene vrae] (Engelstalig)',
693 - 'config-env-good' => '<span class="success-message">Die omgewing is gekontroleer.
694 -U kan MediaWiki installeer.</span>',
 695+ 'config-env-good' => 'Die omgewing is gekontroleer.
 696+U kan MediaWiki installeer.',
695697 'config-env-bad' => 'Die omgewing is gekontroleer.
696 -U kan nie MediaWiki installeer nie.</span>',
 698+U kan nie MediaWiki installeer nie.',
697699 'config-env-php' => 'PHP $1 is tans geïnstalleer.',
698700 'config-env-latest-ok' => 'U is besig om die nuutste weergawe van MediaWiki te installeer.',
699701 'config-env-latest-new' => "'''Let op:''' U is besig om 'n ontwikkelingsweergawe van MediaWiki te installeer.",
@@ -906,8 +908,8 @@
907909 * [http://www.mediawiki.org/wiki/Help:Contents Дапамога карыстальнікам]
908910 * [http://www.mediawiki.org/wiki/Manual:Contents Дапамога адміністратарам]
909911 * [http://www.mediawiki.org/wiki/Manual:FAQ FAQ]',
910 - 'config-env-good' => '<span class="success-message">Асяродзьдзе было праверанае.
911 -Вы можаце ўсталёўваць MediaWiki.</span>',
 912+ 'config-env-good' => 'Асяродзьдзе было праверанае.
 913+Вы можаце ўсталёўваць MediaWiki.',
912914 'config-env-bad' => 'Асяродзьдзе было праверанае.
913915 Усталяваньне MediaWiki немагчымае.',
914916 'config-env-php' => 'Усталяваны PHP $1.',
@@ -1323,6 +1325,288 @@
13241326 Калі Вы гэта зробіце, Вы можаце '''[$2 ўвайсьці ў Вашую вікі]'''.",
13251327 );
13261328
 1329+/** Bulgarian (Български)
 1330+ * @author DCLXVI
 1331+ */
 1332+$messages['bg'] = array(
 1333+ 'config-desc' => 'Инсталатор на MediaWiki',
 1334+ 'config-title' => 'Инсталиране на MediaWiki $1',
 1335+ 'config-information' => 'Информация',
 1336+ 'config-localsettings-upgrade' => 'Беше открит файл <code>LocalSettings.php</code>.
 1337+За надграждане на съществуващата инсталация, необходимо е в кутията по-долу да се въведе стойността на <code>$wgUpgradeKey</code>.
 1338+Тази информация е налична в LocalSettings.php.',
 1339+ 'config-localsettings-cli-upgrade' => 'Беше открит файл LocalSettings.php.
 1340+За надграждане на наличната инсталация, необходимо е да се въведе ключ --upgrade=yes.',
 1341+ 'config-localsettings-key' => 'Ключ за надграждане:',
 1342+ 'config-localsettings-badkey' => 'Предоставеният ключ е неправилен.',
 1343+ 'config-upgrade-key-missing' => 'Беше открита съществуваща инсталация на МедияУики.
 1344+За надграждане на съществуващата инсталация, необходимо е да се постави следният ред в края на файла LocalSettings.php:
 1345+
 1346+$1',
 1347+ 'config-localsettings-incomplete' => 'Съществуващият файл LocalSettings.php изглежда непълен.
 1348+Променливата $1 не е зададена.
 1349+Необходимо е да се редактира файлът LocalSettings.php и да се зададе променливата, след което да се натисне "Продължаване".',
 1350+ 'config-localsettings-connection-error' => 'Възникна грешка при свързване с базата от данни чрез данните, посочени в LocalSettings.php или AdminSettings.php. Необходимо е да се коригират тези настройки преди повторен опит за свързване.
 1351+
 1352+$1',
 1353+ 'config-session-error' => 'Грешка при създаване на сесия: $1',
 1354+ 'config-your-language' => 'Вашият език:',
 1355+ 'config-your-language-help' => 'Избиране на език за използване по време на инсталацията.',
 1356+ 'config-wiki-language' => 'Език на уикито:',
 1357+ 'config-wiki-language-help' => 'Избиране на език, на който ще е основното съдържание на уикито.',
 1358+ 'config-back' => '← Връщане',
 1359+ 'config-continue' => 'Продължаване →',
 1360+ 'config-page-language' => 'Език',
 1361+ 'config-page-welcome' => 'Добре дошли в МедияУики!',
 1362+ 'config-page-dbconnect' => 'Свързване с базата от данни',
 1363+ 'config-page-upgrade' => 'Надграждане на съществуваща инсталация',
 1364+ 'config-page-dbsettings' => 'Настройки на базата от данни',
 1365+ 'config-page-name' => 'Име',
 1366+ 'config-page-options' => 'Настройки',
 1367+ 'config-page-install' => 'Инсталиране',
 1368+ 'config-page-complete' => 'Готово!',
 1369+ 'config-page-restart' => 'Рестартиране на инсталацията',
 1370+ 'config-page-copying' => 'Лицензно споразумение',
 1371+ 'config-page-upgradedoc' => 'Надграждане',
 1372+ 'config-page-existingwiki' => 'Съществуващо уики',
 1373+ 'config-help-restart' => 'Необходимо е потвърждение за изтриване на всички въведени и съхранени данни и започване отначало на процеса по инсталация.',
 1374+ 'config-restart' => 'Да, започване отначало',
 1375+ 'config-welcome' => '=== Проверка на средата ===
 1376+Извършени бяха основни проверки, за да се провери дали средата е подходяща за инсталиране на МедияУики.
 1377+Ако е необходима помощ по време на инсталацията, резултатите от направените проверки трябва също да бъдат предоставени.',
 1378+ 'config-copyright' => "=== Авторски права и Условия ===
 1379+
 1380+$1
 1381+
 1382+Тази програма е свободен софтуер, който може да се променя и/или разпространява според Общия публичен лиценз на GNU, както е публикуван от Free Software Foundation във версия на Лиценза 2 или по-късна версия.
 1383+
 1384+Тази програма се разпространява с надеждата, че ще е полезна, но '''без каквито и да е гаранции'''; без дори косвена гаранция за '''продаваемост''' или '''прогодност за конкретна употреба'''.
 1385+За повече подробности се препоръчва преглеждането на Общия публичен лиценз на GNU.
 1386+
 1387+Към програмата трябва да е приложено <doclink href=Copying>копие на Общия публичен лиценз на GNU</doclink>; ако не, можете да пишете на Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. или да [http://www.gnu.org/copyleft/gpl.html го прочетете онлайн].",
 1388+ 'config-sidebar' => '* [http://www.mediawiki.org Сайт на MediaWiki]
 1389+* [http://www.mediawiki.org/wiki/Help:Contents Наръчник на потребителя]
 1390+* [http://www.mediawiki.org/wiki/Manual:Contents Наръчник на администратора]
 1391+* [http://www.mediawiki.org/wiki/Manual:FAQ ЧЗВ]',
 1392+ 'config-env-good' => 'Средата беше проверена.
 1393+Инсталирането на МедияУики е възможно.',
 1394+ 'config-env-bad' => 'Средата беше проверена.
 1395+Не е възможна инсталация на МедияУики.',
 1396+ 'config-unicode-using-utf8' => 'Използване на utf8_normalize.so от Brion Vibber за Unicode-нормализация.',
 1397+ 'config-unicode-using-intl' => 'Използване на разширението [http://pecl.php.net/intl intl PECL] за Unicode-нормализация.',
 1398+ 'config-unicode-pure-php-warning' => "'''Предупреждение''': [http://pecl.php.net/intl Разширението intl PECL] не е налично за справяне с нормализацията на Unicode, превключване към по-бавното изпълнение на чист PHP.
 1399+Ако сайтът е с голям трафик, препоръчително е запознаването с [http://www.mediawiki.org/wiki/Unicode_normalization_considerations нормализацията на Unicode].",
 1400+ 'config-no-db' => 'Не може да бъде открит подходящ драйвер за база от данни!',
 1401+ 'config-no-fts3' => "'''Предупреждение''': SQLite е компилирана без [http://sqlite.org/fts3.html модула FTS3], затова възможностите за търсене няма да са достъпни.",
 1402+ 'config-register-globals' => "'''Предупреждение: Настройката на PHP <code>[http://php.net/register_globals register_globals]</code> е включена.'''
 1403+'''При възможност е препоръчително тя да бъде изключена.'''
 1404+МедияУики ще работи, но сървърът е изложен на евентуални пропуски в сигурността.",
 1405+ 'config-magic-quotes-runtime' => "'''Фатално: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] е активирана!'''
 1406+Това може да повреди непредвидимо въвеждането на данните.
 1407+Инсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
 1408+ 'config-magic-quotes-sybase' => "'''Фатално: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] е активирана!'''
 1409+Това може да повреди непредвидимо въвеждането на данните.
 1410+Инсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
 1411+ 'config-mbstring' => "'''Фатално: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] е активирана!'''
 1412+Това може да повреди непредвидимо въвеждането на данните.
 1413+Инсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
 1414+ 'config-ze1' => "'''Фатално: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] е активирана!'''
 1415+Тази настройка причинява ужасни грешки в МедияУики.
 1416+Невъзможно е инсталирането и използването на МедияУики докато тази настройка не бъде изключена.",
 1417+ 'config-safe-mode' => "'''Предупреждение:''' PHP работи в [http://www.php.net/features.safe-mode безопасен режим].
 1418+Това може да създаде проблеми, особено ако качването на файлове е разрешено, както и при поддръжката на <code>math</code>.",
 1419+ 'config-pcre-no-utf8' => "'''Фатално''': Модулът PCRE на PHP изглежда е компилиран без поддръжка на PCRE_UTF8.
 1420+За да функционира правилно, МедияУики изисква поддръжка на UTF-8.",
 1421+ 'config-memory-bad' => "'''Предупреждение:''' <code>memory_limit</code> на PHP е $1.
 1422+Стойността вероятно е твърде ниска.
 1423+Възможно е инсталацията да се провали!",
 1424+ 'config-xcache' => '[http://trac.lighttpd.net/xcache/ XCache] е инсталиран',
 1425+ 'config-apc' => '[http://www.php.net/apc APC] е инсталиран',
 1426+ 'config-eaccel' => '[http://eaccelerator.sourceforge.net/ eAccelerator] е инсталиран',
 1427+ 'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] е инсталиран',
 1428+ 'config-no-cache' => "'''Предупреждение:''' Не бяха открити [http://eaccelerator.sourceforge.net eAccelerator], [http://www.php.net/apc APC] [http://trac.lighttpd.net/xcache/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].
 1429+Обектното кеширане не е включено.",
 1430+ 'config-diff3-bad' => 'GNU diff3 не е намерен.',
 1431+ 'config-imagemagick' => 'Открит е ImageMagick: <code>$1</code>.
 1432+Преоразмеряването на картинки ще бъде включено ако качването на файлове бъде разрешено.',
 1433+ 'config-gd' => 'Открита е вградена графичната библиотека GD.
 1434+Ако качването на файлове бъде включено, ще бъде включена възможността за преоразмеряване на картинки.',
 1435+ 'config-no-scaling' => 'Не са открити библиотеките GD или ImageMagick.
 1436+Преоразмеряването на картинки ще бъде изключено.',
 1437+ 'config-no-uri' => "'''Грешка:''' Не може да се определи текущия адрес.
 1438+Инсталация беше прекратена.",
 1439+ 'config-uploads-not-safe' => "'''Предупреждение:''' Папката по подразбиране за качване <code>$1</code> е уязвима от изпълнение на зловредни скриптове.
 1440+Въпреки че МедияУики извършва проверка за заплахи в сигурността на всички качени файлове, силно препоръчително е да се [http://www.mediawiki.org/wiki/Manual:Security#Upload_security затвори тази уязвимост в сигурността] преди разрешаване за качване на файлове.",
 1441+ 'config-db-type' => 'Тип на базата от данни:',
 1442+ 'config-db-host' => 'Хост на базата от данни:',
 1443+ 'config-db-host-help' => 'Ако базата от данни е на друг сървър, в кутията се въвежда името на хоста или IP адреса.
 1444+
 1445+Ако се използва споделен уеб хостинг, доставчикът на услугата би трябвало да е предоставил в документацията си коректния хост.
 1446+
 1447+Ако инсталацията протича на Windows-сървър и се използва MySQL, използването на "localhost" може да е неприемливо. В такива случаи се използва "127.0.0.1" за локален IP адрес.',
 1448+ 'config-db-wiki-settings' => 'Идентифициране на това уики',
 1449+ 'config-db-name' => 'Име на базата от данни:',
 1450+ 'config-db-name-help' => 'Избира се име, което да идентифицира уикито.
 1451+То не трябва да съдържа интервали или тирета.
 1452+
 1453+Ако се използва споделен хостинг, доставчикът на услугата би трябвало да е предоставил или име на базата от данни, която да бъде използвана, или да позволява създаването на бази от данни чрез контролния панел.',
 1454+ 'config-db-install-account' => 'Потребителска сметка за инсталацията',
 1455+ 'config-db-username' => 'Потребителско име за базата от данни:',
 1456+ 'config-db-password' => 'Парола за базата от данни:',
 1457+ 'config-db-install-username' => 'Въвежда се потребителско име, което ще се използва за свързване с базата от данни по време на процеса по инсталация.
 1458+Това не е потребителско име за сметка в МедияУики; това е потребителско име за базата от данни.',
 1459+ 'config-db-install-password' => 'Въвежда се парола, която ще бъде използвана за свързване с базата от данни по време на инсталационния процес.
 1460+Това не е парола за сметка в МедияУики; това е парола за базата от данни.',
 1461+ 'config-db-install-help' => 'Въвеждат се потребителско име и парола, които ще бъдат използвани за свързване с базата от данни по време на инсталационния процес.',
 1462+ 'config-db-account-lock' => 'Използване на същото потребителско име и парола по време на нормална работа',
 1463+ 'config-db-wiki-help' => 'Въвежда се потребителско име и парола, които ще се използват при нормалното функциониране на уикито.
 1464+Ако сметката не съществува и използваната при инсталацията сметка има необходимите права, тази потребителска сметка ще бъде създадена с минималните необходими права за работа с уикито.',
 1465+ 'config-db-prefix' => 'Представка за таблиците в базата от данни:',
 1466+ 'config-db-prefix-help' => 'Ако е необходимо да се сподели базата от данни между няколко уикита или между МедияУики и друго уеб приложение, може да се добави представка пред имената на таблиците, за да се избегнат конфликти.
 1467+Не се използват интервали и тирета.
 1468+
 1469+Това поле обикновено се оставя празно.',
 1470+ 'config-mysql-old' => 'Изисква се MySQL $1 или по-нова версия, наличната версия е $2.',
 1471+ 'config-db-schema' => 'Схема за МедияУики',
 1472+ 'config-db-ts2-schema' => 'Схема за tsearch2',
 1473+ 'config-db-schema-help' => 'Схемите по-горе обикновено са правилни.
 1474+Промени се извършват ако наистина е необходимо.',
 1475+ 'config-sqlite-dir' => 'Директория за данни на SQLite:',
 1476+ 'config-sqlite-dir-help' => "SQLite съхранява всички данни в един файл.
 1477+
 1478+По време на инсталацията уеб сървърът трябва да има права за писане в посочената директория.
 1479+
 1480+Тя '''не трябва''' да е достъпна през уеб, затова не е там, където са PHP файловете.
 1481+
 1482+Инсталаторът ще съхрани заедно с нея файл <code>.htaccess</code>, но ако този метод пропадне, някой може да придобие даостъп до суровите данни от базата от данни.
 1483+Това включва сурови данни за потребителите (адреси за е-поща, хеширани пароли), както и изтрити версии на страници и друга чувствителна и с ограничен достъп информация от и за уикито.
 1484+
 1485+Базата от данни е препоръчително да се разположи на друго място, например в <code>/var/lib/mediawiki/yourwiki</code>.",
 1486+ 'config-support-info' => 'МедияУики поддържа следните системи за бази от данни:
 1487+
 1488+$1
 1489+
 1490+Ако не виждате желаната за използване система в списъка по-долу, следвайте инструкциите за активиране на поддръжка по-горе.',
 1491+ 'config-support-mysql' => '* $1 е най-фобре поддържата система за база от данни, най-добре поддържана от МедияУики ([http://www.php.net/manual/en/mysql.installation.php Как се компилира PHP с поддръжка на MySQL])',
 1492+ 'config-support-postgres' => '* $1 е популярна система за бази от данни с отворен изходен код, която е алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php как се компилира PHP с поддръжка на PostgreSQL])',
 1493+ 'config-support-sqlite' => '* $1 е лека система за база от данни, която е много добре поддържана. ([http://www.php.net/manual/en/pdo.installation.php Как се компилира PHP с поддръжка на SQLite], използва PDO)',
 1494+ 'config-support-oracle' => '* $1 ш комерсиална корпоративна база от данни. ([http://www.php.net/manual/en/oci8.installation.php Как се компилира PHP с поддръжка на OCI8])',
 1495+ 'config-header-mysql' => 'Настройки за MySQL',
 1496+ 'config-header-postgres' => 'Настройки за PostgreSQL',
 1497+ 'config-header-sqlite' => 'Настройки за SQLite',
 1498+ 'config-header-oracle' => 'Настройки за Oracle',
 1499+ 'config-invalid-db-type' => 'Невалиден тип база от данни',
 1500+ 'config-missing-db-name' => 'Необходимо е да се въведе стойност за "Име на базата от данни"',
 1501+ 'config-connection-error' => '$1.
 1502+
 1503+Необходимо е да се проверят хостът, потребителското име и паролата, след което да се опита отново.',
 1504+ 'config-postgres-old' => 'Изисква се PostgreSQL $1 или по-нова версия, наличната версия е $2.',
 1505+ 'config-sqlite-name-help' => 'Избира се име, което да идентифицира уикито.
 1506+Не се използват интервали или тирета.
 1507+Това име ще се използва за име на файла за данни на SQLite.',
 1508+ 'config-sqlite-readonly' => 'Файлът <code>$1</code> няма права за писане.',
 1509+ 'config-sqlite-cant-create-db' => 'Файлът за базата от данни <code>$1</code> не може да бъде създаден.',
 1510+ 'config-regenerate' => 'Създаване на LocalSettings.php →',
 1511+ 'config-show-table-status' => 'Заявката SHOW TABLE STATUS не сполучи!',
 1512+ 'config-unknown-collation' => "'''Предупреждение:''' Базата от данни използва неразпозната колация.",
 1513+ 'config-db-web-account' => 'Сметка за уеб достъп до базата от данни',
 1514+ 'config-db-web-help' => 'Избиране на потребителско име и парола, които уеб сървърът ще използва да се свързва с базата от данни при обичайната работа на уикито.',
 1515+ 'config-db-web-account-same' => 'Използване на същата сметка като при инсталацията.',
 1516+ 'config-db-web-create' => 'Създаване на сметката ако все още не съществува',
 1517+ 'config-db-web-no-create-privs' => 'Посочената сметка за инсталацията не разполага с достатъчно права за създаване на нова сметка.
 1518+Необходимо е посочената сметка вече да съществува.',
 1519+ 'config-mysql-innodb' => 'InnoDB',
 1520+ 'config-mysql-myisam' => 'MyISAM',
 1521+ 'config-mysql-engine-help' => "'''InnoDB''' почти винаги е най-добрата възможност заради навременната си поддръжка.
 1522+
 1523+'''MyISAM''' може да е по-бърза при инсталации с един потребител или само за четене.
 1524+Базите от данни MyISAM се повреждат по-често от InnoDB.",
 1525+ 'config-mysql-charset' => 'Набор от символи в базата от данни:',
 1526+ 'config-mysql-binary' => 'Бинарен',
 1527+ 'config-mysql-utf8' => 'UTF-8',
 1528+ 'config-mysql-charset-help' => "В '''бинарен режим''' МедияУики съхранява текстовете в UTF-8 в бинарни полета в базата от данни.
 1529+Това е по-ефективно от UTF-8 режима на MySQL и позволява използването на пълния набор от символи в Уникод.
 1530+
 1531+В '''UTF-8 режим''' MySQL ще знае в кой набор от символи са данните от уикито и ще може да ги показва и променя по подходящ начин, но няма да позволява складиране на символи извън [http://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основния многоезичен набор].",
 1532+ 'config-site-name' => 'Име на уикито:',
 1533+ 'config-site-name-help' => 'Това име ще се показва в заглавната лента на браузъра и на различни други места.',
 1534+ 'config-site-name-blank' => 'Необходимо е да се въведе име на уикито.',
 1535+ 'config-project-namespace' => 'Именно пространство на проекта:',
 1536+ 'config-ns-generic' => 'Проект',
 1537+ 'config-ns-site-name' => 'Същото като името на уикито: $1',
 1538+ 'config-ns-other' => 'Друго (уточняване)',
 1539+ 'config-ns-other-default' => 'МоетоУики',
 1540+ 'config-project-namespace-help' => 'Следвайки примера на Уикипедия, много уикита съхраняват страниците си с правила в "\'\'\'именно пространство на проекта\'\'\'", отделно от основното съдържание.
 1541+Всички заглавия на страниците в това именно пространство започват с определена представка, която може да бъде зададена тук.
 1542+Обикновено представката произлиза от името на уикито, но не може да съдържа символи като "#" или ":".',
 1543+ 'config-ns-invalid' => 'Посоченото именно пространство "<nowiki>$1</nowiki>" е невалидно.
 1544+Необходимо е да бъде посочено друго.',
 1545+ 'config-admin-box' => 'Администраторска сметка',
 1546+ 'config-admin-name' => 'Потребителско име:',
 1547+ 'config-admin-password' => 'Парола:',
 1548+ 'config-admin-password-confirm' => 'Парола (повторно):',
 1549+ 'config-admin-help' => 'Въвежда се предпочитаното потребителско име, например "Иванчо Иванчев".
 1550+Това ще е потребителското име, което администраторът ще използва за влизане в уикито.',
 1551+ 'config-admin-name-blank' => 'Необходимо е да бъде въведено потребителско име на администратора.',
 1552+ 'config-admin-name-invalid' => 'Посоченото потребителско име "<nowiki>$1</nowiki>" е невалидно.
 1553+Необходимо е да се посочи друго.',
 1554+ 'config-admin-password-blank' => 'Неовходимо е да се въведе парола за администраторската сметка.',
 1555+ 'config-admin-password-same' => 'Паролата не трябва да е същата като потребителското име.',
 1556+ 'config-admin-password-mismatch' => 'Двете въведени пароли не съвпадат.',
 1557+ 'config-admin-email' => 'Адрес за електронна поща:',
 1558+ 'config-admin-error-user' => 'Възникна вътрешна грешка при създаване на администратор с името "<nowiki>$1</nowiki>".',
 1559+ 'config-admin-error-password' => 'Възникна вътрешна грешка при задаване на парола за администратора "<nowiki>$1</nowiki>": <pre>$2</pre>',
 1560+ 'config-subscribe' => 'Абониране за [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce пощенския списък за нови версии].',
 1561+ 'config-almost-done' => 'Инсталацията е почти готова!
 1562+Възможно е пропускане на оставащата конфигурация и моментално инсталиране на уикито.',
 1563+ 'config-optional-continue' => 'Задаване на допълнителни въпроси.',
 1564+ 'config-optional-skip' => 'Достатъчно, инсталиране на уикито.',
 1565+ 'config-profile' => 'Профил на потребителските права:',
 1566+ 'config-profile-wiki' => 'Традиционно уики',
 1567+ 'config-profile-no-anon' => 'Необходимо е създаване на сметка',
 1568+ 'config-profile-fishbowl' => 'Само одобрени редактори',
 1569+ 'config-profile-private' => 'Затворено уики',
 1570+ 'config-profile-help' => "Уикитата функционират най-добре, когато позволяват на възможно най-много хора да ги редактират.
 1571+В МедияУики лесно се преглеждат последните промени и се възстановяват пораженип от недобронамерени потребители.
 1572+
 1573+Въпреки това мнозина смятат МедияУики за полезен софтуер по различни начини и често е трудно да се убедят всички от предимствата на уики модела.
 1574+Затова се предоставя възможност за избор.
 1575+
 1576+'''{{int:config-profile-wiki}}''' позволява на всички потребители да редактират, дори и без регистрация.
 1577+Уикитата от типа '''{{int:config-profile-no-anon}}''' позволяват достъп до страниците и редактирането им само след създаване на потребителска сметка.
 1578+
 1579+Уики, което е '''{{int:config-profile-fishbowl}}''' позволява на всички да преглеждат страниците, но само предварително одобрени редактори могат да редактират съдържанието.
 1580+В '''{{int:config-profile-private}}''' само предварително одобрени потребители могат да четат и редактират съдържанието.
 1581+
 1582+Детайлно обяснение на конфигурациите на потребителските права е достъпно след инсталацията в [http://www.mediawiki.org/wiki/Manual:User_rights Наръчника за потребителски права].",
 1583+ 'config-license' => 'Авторски права и лиценз:',
 1584+ 'config-license-cc-by-sa' => 'Криейтив Комънс Признание-Споделяне на споделеното (съвместим с Уикипедия)',
 1585+ 'config-license-cc-by-nc-sa' => 'Криейтив Комънс Признание-Некомерсиално-Споделяне на споделеното',
 1586+ 'config-license-gfdl-old' => 'Лиценз за свободна документация на GNU 1.2',
 1587+ 'config-license-gfdl-current' => 'Лиценз за свободна документация на GNU 1.3 или по-нов',
 1588+ 'config-license-pd' => 'Обществено достояние',
 1589+ 'config-license-cc-choose' => 'Избиране на друг лиценз от Криейтив Комънс',
 1590+ 'config-email-settings' => 'Настройки за е-поща',
 1591+ 'config-upload-settings' => 'Картинки и качване на файлове',
 1592+ 'config-upload-enable' => 'Позволяне качването на файлове',
 1593+ 'config-upload-deleted' => 'Директория за изтритите файлове:',
 1594+ 'config-upload-deleted-help' => 'Избиране на директория, в която ще се складират изтритите файлове.
 1595+В най-добрия случай тя не трябва да е достъпна през уеб.',
 1596+ 'config-logo' => 'Адрес на логото:',
 1597+ 'config-advanced-settings' => 'Разширена конфигурация',
 1598+ 'config-cache-options' => 'Настройки за обектното кеширане:',
 1599+ 'config-cache-none' => 'Без кеширане (не се премахва от функционалността, но това влияе на скоростта на по-големи уикита)',
 1600+ 'config-cache-accel' => 'PHP обектно кеширане (APC, eAccelerator, XCache или WinCache)',
 1601+ 'config-cache-memcached' => 'Използване на Memcached (изисква допълнителни настройки и конфигуриране)',
 1602+ 'config-memcached-servers' => 'Memcached сървъри:',
 1603+ 'config-extensions' => 'Разширения',
 1604+ 'config-install-tables' => 'Създаване на таблиците',
 1605+ 'config-install-interwiki-sql' => 'Файлът <code>interwiki.sql</code> не можа да бъде открит.',
 1606+ 'config-install-secretkey' => 'Генериране на таен ключ',
 1607+ 'config-download-localsettings' => 'Изтегляне на LocalSettings.php',
 1608+ 'config-help' => 'помощ',
 1609+);
 1610+
13271611 /** Breton (Brezhoneg)
13281612 * @author Fulup
13291613 * @author Gwendal
@@ -1514,8 +1798,8 @@
15151799 * [http://www.mediawiki.org/wiki/Help:Contents Vodič za korisnike]
15161800 * [http://www.mediawiki.org/wiki/Manual:Contents Vodič za administratore]
15171801 * [http://www.mediawiki.org/wiki/Manual:FAQ NPP]',
1518 - 'config-env-good' => '<span class="success-message">Okruženje je provjereno.
1519 -Možete instalirati MediaWiki.</span>',
 1802+ 'config-env-good' => 'Okruženje je provjereno.
 1803+Možete instalirati MediaWiki.',
15201804 'config-env-php' => 'PHP $1 je instaliran.',
15211805 'config-env-latest-ok' => 'Instalirate posljednju verziju MediaWiki.',
15221806 'config-env-latest-new' => "'''Napomena:''' Instalirate razvojnu veziju MediaWiki.",
@@ -1625,8 +1909,8 @@
16261910 * [http://www.mediawiki.org/wiki/Help:Contents Nutzeranleitung]
16271911 * [http://www.mediawiki.org/wiki/Manual:Contents Administratorenanleitung]
16281912 * [http://www.mediawiki.org/wiki/Manual:FAQ Häufig gestellte Fragen]',
1629 - 'config-env-good' => '<span class="success-message">Die Installationsumgebung wurde geprüft.
1630 -MediaWiki kann installiert werden.</span>',
 1913+ 'config-env-good' => 'Die Installationsumgebung wurde geprüft.
 1914+MediaWiki kann installiert werden.',
16311915 'config-env-bad' => 'Die Installationsumgebung wurde geprüft.
16321916 MediaWiki kann nicht installiert werden.',
16331917 'config-env-php' => 'PHP $1 ist installiert.',
@@ -2119,8 +2403,8 @@
21202404 * [http://www.mediawiki.org/wiki/Help:Contents Guía del usuario]
21212405 * [http://www.mediawiki.org/wiki/Manual:Contents Guía del administrador]
21222406 * [http://www.mediawiki.org/wiki/Manual:FAQ Preguntas frecuentes]',
2123 - 'config-env-good' => '<span class="success-message">El entorno ha sido comprobado.
2124 -Puedes instalar MediaWiki.</span>',
 2407+ 'config-env-good' => 'El entorno ha sido comprobado.
 2408+Puedes instalar MediaWiki.',
21252409 'config-env-bad' => 'El entorno ha sido comprobado.
21262410 No puedes instalar MediaWiki.',
21272411 'config-env-php' => 'PHP $1 está instalado.',
@@ -2538,8 +2822,8 @@
25392823 * [http://www.mediawiki.org/wiki/Help:Contents Käyttöopas]
25402824 * [http://www.mediawiki.org/wiki/Manual:Contents Hallintaopas]
25412825 * [http://www.mediawiki.org/wiki/Manual:FAQ UKK]',
2542 - 'config-env-good' => '<span class="success-message">Asennusympäristö on tarkastettu.
2543 -Voit asentaa MediaWikin.</span>',
 2826+ 'config-env-good' => 'Asennusympäristö on tarkastettu.
 2827+Voit asentaa MediaWikin.',
25442828 'config-env-bad' => 'Asennusympäristö on tarkastettu.
25452829 Et voi asentaa MediaWikiä.',
25462830 'config-env-php' => 'PHP $1 on asennettu.',
@@ -2695,8 +2979,8 @@
26962980 * [http://www.mediawiki.org/wiki/Help:Contents Guide de l’utilisateur]
26972981 * [http://www.mediawiki.org/wiki/Manual:Contents Guide de l’administrateur]
26982982 * [http://www.mediawiki.org/wiki/Manual:FAQ FAQ]',
2699 - 'config-env-good' => '<span class="success-message">L’environnement a été vérifié.
2700 -Vous pouvez installer MediaWiki.</span>',
 2983+ 'config-env-good' => 'L’environnement a été vérifié.
 2984+Vous pouvez installer MediaWiki.',
27012985 'config-env-bad' => 'L’environnement a été vérifié.
27022986 vous ne pouvez pas installer MediaWiki.',
27032987 'config-env-php' => 'PHP $1 est installé.',
@@ -3175,8 +3459,8 @@
31763460 * [http://www.mediawiki.org/wiki/Help:Contents Guía de usuario]
31773461 * [http://www.mediawiki.org/wiki/Manual:Contents Guía de administrador]
31783462 * [http://www.mediawiki.org/wiki/Manual:FAQ Preguntas máis frecuentes]',
3179 - 'config-env-good' => '<span class="success-message">Rematou a comprobación do entorno.
3180 -Pode instalar MediaWiki.</span>',
 3463+ 'config-env-good' => 'Rematou a comprobación do entorno.
 3464+Pode instalar MediaWiki.',
31813465 'config-env-bad' => 'Rematou a comprobación do entorno.
31823466 Non pode instalar MediaWiki.',
31833467 'config-env-php' => 'PHP $1 está instalado.',
@@ -3657,8 +3941,8 @@
36583942 * [http://www.mediawiki.org/wiki/Help:Contents Nutzeraaleitig zue MediaWiki]
36593943 * [http://www.mediawiki.org/wiki/Manual:Contents Adminischtratoreaaleitig zue MediaWiki]
36603944 * [http://www.mediawiki.org/wiki/Manual:FAQ Vilmol gstellti Froge zue MediaWiki]',
3661 - 'config-env-good' => '<span class="success-message">D Inschtallationsumgäbig isch prieft wore.
3662 -Du chasch MediaWiki inschtalliere.</span>',
 3945+ 'config-env-good' => 'D Inschtallationsumgäbig isch prieft wore.
 3946+Du chasch MediaWiki inschtalliere.',
36633947 'config-env-bad' => 'D Inschtallationsumgäbigisch prieft wore.
36643948 Du chasch MediaWiki nit inschtalliere.',
36653949 'config-env-php' => 'PHP $1 isch inschtalliert.',
@@ -3875,8 +4159,8 @@
38764160 * [http://www.mediawiki.org/wiki/Help:Contents Nawod za wužiwarjow]
38774161 * [http://www.mediawiki.org/wiki/Manual:Contents Nawod za administratorow]
38784162 * [http://www.mediawiki.org/wiki/Manual:FAQ Huste prašenja]',
3879 - 'config-env-good' => '<span class="success-message">Wokolina je so skontrolowała.
3880 -Móžeš MediaWiki instalować.</span>',
 4163+ 'config-env-good' => 'Wokolina je so skontrolowała.
 4164+Móžeš MediaWiki instalować.',
38814165 'config-env-bad' => 'Wokolina je so skontrolowała.
38824166 Njemóžeš MediaWiki instalować.',
38834167 'config-env-php' => 'PHP $1 je instalowany.',
@@ -4150,8 +4434,8 @@
41514435 * [http://www.mediawiki.org/wiki/Help:Contents Felhasználói kézikönyv]
41524436 * [http://www.mediawiki.org/wiki/Manual:Contents Útmutató adminisztrátoroknak]
41534437 * [http://www.mediawiki.org/wiki/Manual:FAQ GyIK]',
4154 - 'config-env-good' => '<span class="success-message">A környezet ellenőrzése befejeződött.
4155 -A MediaWiki telepíthető.</span>',
 4438+ 'config-env-good' => 'A környezet ellenőrzése befejeződött.
 4439+A MediaWiki telepíthető.',
41564440 'config-env-bad' => 'A környezet ellenőrzése befejeződött.
41574441 A MediaWiki nem telepíthető.',
41584442 'config-env-php' => 'A PHP verziója: $1',
@@ -4450,8 +4734,8 @@
44514735 * [http://www.mediawiki.org/wiki/Help:Contents Guida pro usatores]
44524736 * [http://www.mediawiki.org/wiki/Manual:Contents Guida pro administratores]
44534737 * [http://www.mediawiki.org/wiki/Manual:FAQ FAQ]',
4454 - 'config-env-good' => '<span class="success-message">Le ambiente ha essite verificate.
4455 -Tu pote installar MediaWiki.</span>',
 4738+ 'config-env-good' => 'Le ambiente ha essite verificate.
 4739+Tu pote installar MediaWiki.',
44564740 'config-env-bad' => 'Le ambiente ha essite verificate.
44574741 Tu non pote installar MediaWiki.',
44584742 'config-env-php' => 'PHP $1 es installate.',
@@ -4934,8 +5218,8 @@
49355219 * [http://www.mediawiki.org/wiki/Help:Contents Panduan Pengguna]
49365220 * [http://www.mediawiki.org/wiki/Manual:Contents Panduan Pengurus]
49375221 * [http://www.mediawiki.org/wiki/Manual:FAQ Pertanyaan yang Sering Diajukan]',
4938 - 'config-env-good' => '<span class="success-message">Kondisi telah diperiksa.
4939 -Anda dapat menginstal MediaWiki.</span>',
 5222+ 'config-env-good' => 'Kondisi telah diperiksa.
 5223+Anda dapat menginstal MediaWiki.',
49405224 'config-env-bad' => 'Kondisi telah diperiksa.
49415225 Anda tidak dapat menginstal MediaWiki.',
49425226 'config-env-php' => 'PHP $1 diinstal.',
@@ -5445,8 +5729,8 @@
54465730 * [http://www.mediawiki.org/wiki/Help:Contents 利用者向け案内]
54475731 * [http://www.mediawiki.org/wiki/Manual:Contents 管理人向け案内]
54485732 * [http://www.mediawiki.org/wiki/Manual:FAQ よくある質問と回答]',
5449 - 'config-env-good' => '<span class="success-message">環境は確認されました。
5450 -MediaWikiをインストール出来ます。</span>',
 5733+ 'config-env-good' => '環境は確認されました。
 5734+MediaWikiをインストール出来ます。',
54515735 'config-env-bad' => '環境が確認されました。
54525736 MediaWikiをインストール出来ません。',
54535737 'config-env-php' => 'PHP $1がインストールされています。',
@@ -5934,8 +6218,8 @@
59356219 * [http://www.mediawiki.org/wiki/Help:Contents Handbooch för Aanwender]
59366220 * [http://www.mediawiki.org/wiki/Manual:Contents Handbooch för Administratore un Köbesse]
59376221 * [http://www.mediawiki.org/wiki/Manual:FAQ Wat öff jefrooch weed, un de Antwoote]',
5938 - 'config-env-good' => '<span class="success-message">De Ömjävung es jeprööf.
5939 -Do kanns MediaWiki opsäze.</span>',
 6222+ 'config-env-good' => 'De Ömjävung es jeprööf.
 6223+Do kanns MediaWiki opsäze.',
59406224 'config-env-bad' => 'De Ömjävung es jeprööf.
59416225 Do kanns MediaWiki nit opsäze.',
59426226 'config-env-php' => 'PHP $1 es doh.',
@@ -6103,8 +6387,8 @@
61046388 * [http://www.mediawiki.org/wiki/Help:Contents Benotzerguide]
61056389 * [http://www.mediawiki.org/wiki/Manual:Contents Guide fir Administrateuren]
61066390 * [http://www.mediawiki.org/wiki/Manual:FAQ FAQ]',
6107 - 'config-env-good' => '<span class="success-message">Den Environement gouf nogekuckt.
6108 -Dir kënnt MediaWiki installéieren.</span>',
 6391+ 'config-env-good' => 'Den Environement gouf nogekuckt.
 6392+Dir kënnt MediaWiki installéieren.',
61096393 'config-env-bad' => 'Den Environnement gouf iwwerpréift.
61106394 Dir kënnt MediWiki net installéieren.',
61116395 'config-env-php' => 'PHP $1 ass installéiert.',
@@ -6296,8 +6580,8 @@
62976581 * [http://www.mediawiki.org/wiki/Help:Contents Водич закорисници]
62986582 * [http://www.mediawiki.org/wiki/Manual:Contents Водич за администратори]
62996583 * [http://www.mediawiki.org/wiki/Manual:FAQ ЧПП]',
6300 - 'config-env-good' => '<span class="success-message">Околината е проверена.
6301 -Можете да го инсталирате МедијаВики.</span>',
 6584+ 'config-env-good' => 'Околината е проверена.
 6585+Можете да го инсталирате МедијаВики.',
63026586 'config-env-bad' => 'Околината е проверена.
63036587 Не можете да го инсталирате МедијаВики.',
63046588 'config-env-php' => 'PHP $1 е инсталиран.',
@@ -6967,8 +7251,8 @@
69687252 * [http://www.mediawiki.org/wiki/Help:Contents Gebruikershandleiding] (Engelstalig)
69697253 * [http://www.mediawiki.org/wiki/Manual:Contents Beheerdershandleiding] (Engelstalig)
69707254 * [http://www.mediawiki.org/wiki/Manual:FAQ Veel gestelde vragen] (Engelstalig)',
6971 - 'config-env-good' => '<span class="success-message">De omgeving is gecontroleerd.
6972 -U kunt MediaWiki installeren.</span>',
 7255+ 'config-env-good' => 'De omgeving is gecontroleerd.
 7256+U kunt MediaWiki installeren.',
69737257 'config-env-bad' => 'De omgeving is gecontroleerd.
69747258 U kunt MediaWiki niet installeren.',
69757259 'config-env-php' => 'PHP $1 is op dit moment geïnstalleerd.',
@@ -7500,8 +7784,8 @@
75017785 * [http://www.mediawiki.org/wiki/Help:Contents Brukerguide]
75027786 * [http://www.mediawiki.org/wiki/Manual:Contents Administratorguide]
75037787 * [http://www.mediawiki.org/wiki/Manual:FAQ OSS]',
7504 - 'config-env-good' => '<span class="success-message">Miljøet har blitt sjekket.
7505 -Du kan installere MediaWiki.</span>',
 7788+ 'config-env-good' => 'Miljøet har blitt sjekket.
 7789+Du kan installere MediaWiki.',
75067790 'config-env-bad' => 'Miljøet har blitt sjekket.
75077791 Du kan installere MediaWiki.',
75087792 'config-env-php' => 'PHP $1 er innstallert.',
@@ -7920,8 +8204,8 @@
79218205 * [http://www.mediawiki.org/wiki/Help:Contents Podręcznik użytkownika]
79228206 * [http://www.mediawiki.org/wiki/Manual:Contents Podręcznik administratora]
79238207 * [http://www.mediawiki.org/wiki/Manual:FAQ Odpowiedzi na często zadawane pytania]',
7924 - 'config-env-good' => '<span class="success-message">Środowisko oprogramowania zostało sprawdzone.
7925 -Możesz teraz zainstalować MediaWiki.</span>',
 8208+ 'config-env-good' => 'Środowisko oprogramowania zostało sprawdzone.
 8209+Możesz teraz zainstalować MediaWiki.',
79268210 'config-env-bad' => 'Środowisko oprogramowania zostało sprawdzone.
79278211 Nie możesz zainstalować MediaWiki.',
79288212 'config-env-php' => 'Zainstalowane jest PHP w wersji $1.',
@@ -8251,8 +8535,8 @@
82528536 * [http://www.mediawiki.org/wiki/Help:Contents Guida dl'Utent]
82538537 * [http://www.mediawiki.org/wiki/Manual:Contents Guida dl'Aministrator]
82548538 * [http://www.mediawiki.org/wiki/Manual:FAQ Soens an ciamo]",
8255 - 'config-env-good' => '<span class="success-message">L\'ambient a l\'é stàit controlà.
8256 -It peule instalé MediaWiki.</span>',
 8539+ 'config-env-good' => 'L\'ambient a l\'é stàit controlà.
 8540+It peule instalé MediaWiki.',
82578541 'config-env-bad' => "L'ambient a l'é stàit controlà.
82588542 It peule pa instalé MediaWiki.",
82598543 'config-env-php' => "PHP $1 a l'é instalà.",
@@ -8727,8 +9011,8 @@
87289012 * [http://www.mediawiki.org/wiki/Help:Contents/pt Ajuda]
87299013 * [http://www.mediawiki.org/wiki/Manual:Contents/pt Manual técnico]
87309014 * [http://www.mediawiki.org/wiki/Manual:FAQ FAQ]',
8731 - 'config-env-good' => '<span class="success-message">O ambiente foi verificado.
8732 -Pode instalar o MediaWiki.</span>',
 9015+ 'config-env-good' => 'O ambiente foi verificado.
 9016+Pode instalar o MediaWiki.',
87339017 'config-env-bad' => 'O ambiente foi verificado.
87349018 Não pode instalar o MediaWiki.',
87359019 'config-env-php' => 'O PHP $1 está instalado.',
@@ -9206,8 +9490,8 @@
92079491 * [http://www.mediawiki.org/wiki/Help:Contents/pt Ajuda]
92089492 * [http://www.mediawiki.org/wiki/Manual:Contents/pt Manual técnico]
92099493 * [http://www.mediawiki.org/wiki/Manual:FAQ FAQ]',
9210 - 'config-env-good' => '<span class="success-message">O ambiente foi verificado.
9211 -Você pode instalar o MediaWiki.</span>',
 9494+ 'config-env-good' => 'O ambiente foi verificado.
 9495+Você pode instalar o MediaWiki.',
92129496 'config-env-bad' => 'O ambiente foi verificado.
92139497 Você não pode instalar o MediaWiki.',
92149498 'config-env-php' => 'O PHP $1 está instalado.',
@@ -9330,8 +9614,8 @@
93319615 * [http://www.mediawiki.org/wiki/Help:Contents/ru Справка для пользователей]
93329616 * [http://www.mediawiki.org/wiki/Manual:Contents/ru Справка для администраторов]
93339617 * [http://www.mediawiki.org/wiki/Manual:FAQ/ru FAQ]',
9334 - 'config-env-good' => '<span class="success-message">Проверка внешней среды была успешно проведена.
9335 -Вы можете установить MediaWiki.</span>',
 9618+ 'config-env-good' => 'Проверка внешней среды была успешно проведена.
 9619+Вы можете установить MediaWiki.',
93369620 'config-env-bad' => 'Была проведена проверка внешней среды.
93379621 Вы не можете установить MediaWiki.',
93389622 'config-env-php' => 'Установленная версия PHP: $1.',
@@ -9901,8 +10185,8 @@
990210186 * [http://www.mediawiki.org/wiki/Help:Contents Gabay ng Tagagamit]
990310187 * [http://www.mediawiki.org/wiki/Manual:Contents Gabay ng Tagapangasiwa]
990410188 * [http://www.mediawiki.org/wiki/Manual:FAQ Mga Malimit Itanong]',
9905 - 'config-env-good' => '<span class="success-message">Nasuri na ang kapaligiran.
9906 -Mailuluklok mo ang MediaWiki.</span>',
 10189+ 'config-env-good' => 'Nasuri na ang kapaligiran.
 10190+Mailuluklok mo ang MediaWiki.',
990710191 'config-env-bad' => 'Nasuri na ang kapaligiran.
990810192 Hindi mo mailuklok ang MediaWiki.',
990910193 'config-env-php' => 'Naitalaga ang PHP na $1.',
@@ -10126,8 +10410,8 @@
1012710411 * [http://www.mediawiki.org/wiki/Help:Contents/uk Керівництво користувача]
1012810412 * [http://www.mediawiki.org/wiki/Manual:Contents/uk Керівництво адміністратора]
1012910413 * [http://www.mediawiki.org/wiki/Manual:FAQ/uk FAQ]',
10130 - 'config-env-good' => '<span class="success-message">Перевірку середовища успішно завершено.
10131 -Ви можете встановити MediaWiki.</span>',
 10414+ 'config-env-good' => 'Перевірку середовища успішно завершено.
 10415+Ви можете встановити MediaWiki.',
1013210416 'config-env-bad' => 'Було проведено перевірку середовища. Ви не можете встановити MediaWiki.',
1013310417 'config-env-php' => 'Встановлено версію PHP: $1.',
1013410418 'config-env-latest-ok' => 'Ви встановлюєте останню версію MediaWiki.',
Index: branches/REL1_17/phase3/includes/installer/MysqlInstaller.php
@@ -76,10 +76,10 @@
7777 $status = Status::newGood();
7878 if ( !strlen( $newValues['wgDBname'] ) ) {
7979 $status->fatal( 'config-missing-db-name' );
80 - } elseif ( !preg_match( '/^[a-zA-Z0-9_]+$/', $newValues['wgDBname'] ) ) {
 80+ } elseif ( !preg_match( '/^[a-z0-9_-]+$/i', $newValues['wgDBname'] ) ) {
8181 $status->fatal( 'config-invalid-db-name', $newValues['wgDBname'] );
8282 }
83 - if ( !preg_match( '/^[a-zA-Z0-9_]*$/', $newValues['wgDBprefix'] ) ) {
 83+ if ( !preg_match( '/^[a-z0-9_-]*$/i', $newValues['wgDBprefix'] ) ) {
8484 $status->fatal( 'config-invalid-db-prefix', $newValues['wgDBprefix'] );
8585 }
8686 if ( !$status->isOK() ) {
Index: branches/REL1_17/phase3/includes/installer/OracleInstaller.php
@@ -195,7 +195,7 @@
196196 public function createTables() {
197197 $status = parent::createTables();
198198
199 - $this->db->doQuery( 'BEGIN fill_wiki_info; END;' );
 199+ $this->db->query( 'BEGIN fill_wiki_info; END;' );
200200
201201 return $status;
202202 }
Index: branches/REL1_17/phase3/includes/installer/PostgresInstaller.php
@@ -129,14 +129,14 @@
130130 $ctest = 'mediawiki_test_table';
131131 $safeschema = $conn->addIdentifierQuotes( $schema );
132132 if ( $conn->tableExists( $ctest, $schema ) ) {
133 - $conn->doQuery( "DROP TABLE $safeschema.$ctest" );
 133+ $conn->query( "DROP TABLE $safeschema.$ctest" );
134134 }
135 - $res = $conn->doQuery( "CREATE TABLE $safeschema.$ctest(a int)" );
 135+ $res = $conn->query( "CREATE TABLE $safeschema.$ctest(a int)" );
136136 if ( !$res ) {
137137 $status->fatal( 'config-install-pg-schema-failed',
138138 $this->getVar( 'wgDBuser'), $schema );
139139 }
140 - $conn->doQuery( "DROP TABLE $safeschema.$ctest" );
 140+ $conn->query( "DROP TABLE $safeschema.$ctest" );
141141
142142 return $status;
143143 }
@@ -166,4 +166,26 @@
167167 $wgDBuser = $this->getVar( '_InstallUser' );
168168 $wgDBpassword = $this->getVar( '_InstallPassword' );
169169 }
 170+
 171+ private function setupPLpgSQL() {
 172+ $rows = $this->numRows(
 173+ $this->db->query( "SELECT 1 FROM pg_catalog.pg_language WHERE lanname = 'plpgsql'" )
 174+ );
 175+ if ( $rows < 1 ) {
 176+ // plpgsql is not installed, but if we have a pg_pltemplate table, we should be able to create it
 177+ $SQL = "SELECT 1 FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace) ".
 178+ "WHERE relname = 'pg_pltemplate' AND nspname='pg_catalog'";
 179+ $rows = $this->numRows( $this->db->query( $SQL ) );
 180+ global $wgDBname;
 181+ if ( $rows >= 1 ) {
 182+ $result = $this->db->query( 'CREATE LANGUAGE plpgsql' );
 183+ if ( !$result ) {
 184+ return Status::newFatal( 'config-pg-no-plpgsql', $wgDBname );
 185+ }
 186+ } else {
 187+ return Status::newFatal( 'config-pg-no-plpgsql', $wgDBname );
 188+ }
 189+ }
 190+ return Status::newGood();
 191+ }
170192 }
Index: branches/REL1_17/phase3/includes/installer/WebInstallerPage.php
@@ -218,7 +218,6 @@
219219 $this->endForm( 'continue' );
220220 return 'output';
221221 }
222 - return $this->handleExistingUpgrade( $vars );
223222 }
224223
225224 // If there is no $wgUpgradeKey, tell the user to add one to LocalSettings.php
@@ -345,11 +344,15 @@
346345 }
347346 $this->parent->output->addWikiText( wfMsgNoTrans( 'config-welcome' ) );
348347 $status = $this->parent->doEnvironmentChecks();
349 - if ( $status ) {
 348+ if ( $status->isGood() ) {
 349+ $this->parent->output->addHTML( '<span class="success-message">' .
 350+ wfMsgHtml( 'config-env-good' ) . '</span>' );
350351 $this->parent->output->addWikiText( wfMsgNoTrans( 'config-copyright',
351352 SpecialVersion::getCopyrightAndAuthorList() ) );
352353 $this->startForm();
353354 $this->endForm();
 355+ } else {
 356+ $this->parent->showStatusMessage( $status );
354357 }
355358 }
356359
@@ -597,16 +600,11 @@
598601 'label' => 'config-admin-email',
599602 'help' => $this->parent->getHelpBox( 'config-admin-email-help' )
600603 ) ) .
601 - /**
602 - * Uncomment this feature once we've got some sort of API to mailman
603 - * to handle these subscriptions. Some dummy wrapper script on the
604 - * mailman box that shell's out to mailman/bin/add_members would do
605 - $this->parent->getCheckBox( array(
 604+ $this->parent->getCheckBox( array(
606605 'var' => '_Subscribe',
607606 'label' => 'config-subscribe',
608607 'help' => $this->parent->getHelpBox( 'config-subscribe-help' )
609608 ) ) .
610 - */
611609 $this->getFieldSetEnd() .
612610 $this->parent->getInfoBox( wfMsg( 'config-almost-done' ) ) .
613611 $this->parent->getRadioSet( array(
@@ -709,6 +707,14 @@
710708 $this->setVar( '_AdminPassword2', '' );
711709 $retVal = false;
712710 }
 711+
 712+ // Validate e-mail if provided
 713+ $email = $this->getVar( '_AdminEmail' );
 714+ if( $email && !User::isValidEmailAddr( $email ) ) {
 715+ $this->parent->showError( 'config-admin-error-bademail' );
 716+ $retVal = false;
 717+ }
 718+
713719 return $retVal;
714720 }
715721
Property changes on: branches/REL1_17/phase3/includes/installer/WebInstallerPage.php
___________________________________________________________________
Modified: svn:mergeinfo
716722 Merged /trunk/phase3/includes/installer/WebInstallerPage.php:r78043,78231,78259,78300,78450,78531-78532,78823,78946,79056,79066,79191,79283,79537,79678,79684,79738,79741,79745,79750,79767-79768
Index: branches/REL1_17/phase3/config/index.php
@@ -39,6 +39,8 @@
4040 }
4141 $wgLang = Language::factory( $langCode );
4242
 43+ $installer->setParserLanguage( $wgLang->getCode() );
 44+
4345 $wgMetaNamespace = $wgCanonicalNamespaceNames[NS_PROJECT];
4446
4547 $session = $installer->execute( $session );

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r78043Added array type hint to addExtensionUpdate and marked some functions "protec...aaron03:47, 8 December 2010
r78231Remove that ugly unset( $vars['_lsExists'] );...platonides22:54, 11 December 2010
r78259Remove bogus session_path checks. Reverts r67465, r63813, r75256, r64717.demon17:25, 12 December 2010
r78300Followup r76220: locateExecutableInDefaultPaths() was made static, so use sta...catrope13:13, 13 December 2010
r78450Changed doQuery() -> query()aaron20:59, 15 December 2010
r78531* Get rid of wfOut() usage in UserDupes...demon15:17, 17 December 2010
r78532* Handle output for DatabaseUpdater in the class itself, no more wfOut() usag...demon15:31, 17 December 2010
r78823Comment out unreachable code linereedy20:33, 22 December 2010
r78946Follow-up r77121...krinkle01:41, 24 December 2010
r79056* Followup r78450: just use selectField() instead of pg_fetch_result() with a...demon13:56, 27 December 2010
r79066Move setup_plpgsql() to PostgresInstaller and make it use status objects for ...demon15:41, 27 December 2010
r79191Followup r78823: just remove the offending line entirelydemon17:15, 29 December 2010
r79283Don't put multiple tables in the same file.greg18:53, 30 December 2010
r79537Add new addExtensionTable() wrapper for adding new tables for extensions: way...demon23:56, 3 January 2011
r79678* Validate e-mail address if provided...demon22:37, 5 January 2011
r79684Move pass/fail message out of doEnvironmentChecks(), return a Status and let ...demon23:20, 5 January 2011
r79738Followup r79684: forgot to commit a filedemon17:41, 6 January 2011
r79741Fix ParserOptions so it uses correct language when transforming messages as r...demon18:22, 6 January 2011
r79745Fixes for r75545: don't use MEDIAWIKI_INSTALL in the updaters classes, it's n...demon19:25, 6 January 2011
r79750Revert r78000 (removing PHP version from environment checks), never got a cha...demon20:03, 6 January 2011
r79767(bug 25969) Allow hyphens in db name/prefix. Lots of duplication here :(demon22:43, 6 January 2011
r79768Typofix key namesdemon22:45, 6 January 2011

Comments

#Comment by 😂 (talk | contribs)   21:17, 13 January 2011

Looks good other than missing r80080 and installer step cleanup (r80006, r80013), which are tagged to be merged in the next batch.

Status & tagging log