--- mediawiki-1.12.0.orig/debian/mediawiki.dirs
+++ mediawiki-1.12.0/debian/mediawiki.dirs
@@ -0,0 +1,3 @@
+var/lib/mediawiki/images
+etc/mediawiki
+usr/share/linda/overrides/
--- mediawiki-1.12.0.orig/debian/mediawiki.docs
+++ mediawiki-1.12.0/debian/mediawiki.docs
@@ -0,0 +1,5 @@
+docs
+RELEASE-NOTES
+FAQ
+HISTORY
+UPGRADE
--- mediawiki-1.12.0.orig/debian/control
+++ mediawiki-1.12.0/debian/control
@@ -0,0 +1,43 @@
+Source: mediawiki
+Section: web
+Priority: optional
+Maintainer: Mediawiki Maintenance Team <pkg-mediawiki-devel@lists.alioth.debian.org>
+Uploaders: Romain Beauxis <toots@rastageeks.org>
+Build-Depends: debhelper (>= 4.2.0), quilt, patchutils (>= 0.2.25), cdbs (>= 0.4.27), ocaml-nox | ocaml, xsltproc, docbook-xml, docbook-xsl, po-debconf
+Homepage: http://www.mediawiki.org/
+Standards-Version: 3.7.3
+
+Package: mediawiki
+Architecture: all
+Depends: apache2 | httpd, php5, php5-mysql | php5-pgsql, mime-support, ${misc:Depends} 
+Recommends: mysql-server | postgresql-contrib, php5-cli
+Suggests: php5-gd | imagemagick, mediawiki-math, memcached, clamav
+Description: website engine for collaborative work
+ MediaWiki is a wiki engine (a program for creating a collaboratively
+ edited website). It is designed to handle heavy websites containing
+ library-like document collections, and supports user uploads of
+ images/sounds, multilingual content, TOC autogeneration, ISBN links,
+ etc.
+ .
+ Moreover, it keeps track of changes, so users can receive
+ notifications, view diffs and revert edits. This system has many
+ other features and can easily be extended.
+
+Package: mediawiki-math
+Architecture: any
+Depends: ${interpreter:Depends}, tetex-bin | texlive-latex-base, gs-gpl | gs-esp, imagemagick, ${shlibs:Depends}
+Replaces: mediawiki1.5-math, mediawiki1.9-math, mediawiki1.10-math
+Recommends: mediawiki, latex-cjk-all, tetex-extra
+Description: math rendering plugin for MediaWiki
+ MediaWiki is a wiki engine (a program for creating a collaboratively
+ edited website). It is designed to handle heavy websites containing
+ library-like document collections, and supports user uploads of
+ images/sounds, multilingual content, TOC autogeneration, ISBN links,
+ etc.
+ .
+ Moreover, it keeps track of changes, so users can receive
+ notifications, view diffs and revert edits. This system has many
+ other features and can easily be extended.
+ .
+ This package contains the math rendering plugin.
+
--- mediawiki-1.12.0.orig/debian/mediawiki.postinst
+++ mediawiki-1.12.0/debian/mediawiki.postinst
@@ -0,0 +1,71 @@
+#! /bin/sh
+# postinst script for mediawiki
+#
+# see: dh_installdeb(1)
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+case "$1" in
+    configure)
+
+        db_get mediawiki/webserver || true
+	webserver=$RET
+
+	webserver=`echo $webserver|sed -e 's/,  */ /g'`
+
+	for i in $webserver; do
+	    if [ "$webserver" != "cherokee" ]; then
+		if [ ! -d /etc/$i/conf.d/ ]; then
+			install -d -m755 /etc/$i/conf.d/
+		fi
+		if [ ! -e /etc/$i/conf.d/mediawiki.conf ]; then
+			ln -s /etc/mediawiki/apache.conf \
+			/etc/$i/conf.d/mediawiki.conf
+			if [ -f /etc/init.d/$i ]; then
+				if which invoke-rc.d >/dev/null 2>&1; then
+                			invoke-rc.d $i reload
+        			else
+                			/etc/init.d/$i reload
+        			fi
+			fi
+		fi
+	     else
+		if [ ! -d /etc/cherokee/sites-available/ ]; then
+			install -d -m755 /etc/cherokee/sites-available/
+		fi
+		if [ ! -e /etc/cherokee/sites-available/mediawiki ]; then
+			ln -s /etc/mediawiki/cherokee.conf \
+			/etc/cherokee/sites-available/mediawiki
+			if [ -f /etc/init.d/$i ]; then
+				if which invoke-rc.d >/dev/null 2>&1; then
+                			invoke-rc.d $i reload
+        			else
+                			/etc/init.d/$i reload
+        			fi	
+			fi
+		fi
+	     fi
+	done
+
+        chown -R www-data:www-data /var/lib/mediawiki/config /var/lib/mediawiki/images
+        chmod 700 /var/lib/mediawiki/config /var/lib/mediawiki/images
+
+    ;;
+    abort-upgrade|abort-remove|abort-deconfigure)
+    
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
--- mediawiki-1.12.0.orig/debian/mediawiki.links
+++ mediawiki-1.12.0/debian/mediawiki.links
@@ -0,0 +1,7 @@
+etc/mediawiki/LocalSettings.php var/lib/mediawiki/LocalSettings.php 
+etc/mediawiki/AdminSettings.php var/lib/mediawiki/AdminSettings.php 
+var/lib/mediawiki/LocalSettings.php usr/share/mediawiki/LocalSettings.php
+var/lib/mediawiki/AdminSettings.php usr/share/mediawiki/AdminSettings.php
+var/lib/mediawiki/config usr/share/mediawiki/config
+var/lib/mediawiki/images usr/share/mediawiki/images
+var/lib/mediawiki/extensions usr/share/mediawiki/extensions
--- mediawiki-1.12.0.orig/debian/rules
+++ mediawiki-1.12.0/debian/rules
@@ -0,0 +1,62 @@
+#!/usr/bin/make -f
+
+MANPAGES := debian/texvc.1
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+# In order to regenerate 'debian/control' :
+#   DEB_AUTO_UPDATE_DEBIAN_CONTROL=yes fakeroot debian/rules clean
+# Then check manually if everything's ok
+
+DEB_DH_SHLIBDEPS_ARGS :=  -Xdebian/mediawiki-math/usr/bin/texvc.bc
+
+
+build/mediawiki-math:: $(MANPAGES)
+	if [ -x /usr/bin/ocamlopt ]; then\
+		make -C math texvc;\
+	else\
+		make -C math texvc.bc;\
+		mv math/texvc.bc math/texvc;\
+	fi
+
+%.1: %.xml
+	xsltproc -nonet -o $@ /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl $<
+
+binary-install/mediawiki::
+	cp -rf $(CURDIR)/debian/etc/* $(CURDIR)/debian/mediawiki/etc/mediawiki
+	chmod a+x debian/mediawiki/usr/share/mediawiki/maintenance/fetchInterwiki.pl
+	chmod a+x debian/mediawiki/usr/share/mediawiki/maintenance/postgres/compare_schemas.pl
+	chmod a+x debian/mediawiki/usr/share/mediawiki/maintenance/postgres/mediawiki_mysql2postgres.pl
+	chmod -x debian/mediawiki/usr/share/mediawiki/includes/SpecialProtectedtitles.php
+	find debian/mediawiki/usr/share/mediawiki -maxdepth 1 -mindepth 1 | grep -v "\(LocalSettings.php\|AdminSettings.php\|debian-scripts\|images\|extensions\|config\)" | \
+	while read i; do \
+		dh_link "`echo "$$i" | sed -e s#debian/mediawiki/##`" \
+		"`echo "$$i" | sed -e s#debian/mediawiki/usr/share/mediawiki/#var/lib/mediawiki/#`"; \
+	done
+	# Remove Makefiles
+	find debian/mediawiki/ -iname makefile -exec rm {} \;
+	# License added to copyright file:
+	rm -rf debian/mediawiki/usr/share/mediawiki/skins/common/images/icons/COPYING
+	# Add linda override about a class called Licence.php
+	cp $(CURDIR)/debian/mediawiki.linda-override $(CURDIR)/debian/mediawiki/usr/share/linda/overrides/mediawiki
+
+binary-install/mediawiki-math::
+	if [ -x /usr/bin/ocamlopt ]; then\
+		echo "interpreter:Depends=" >> debian/mediawiki-math.substvars;\
+	else\
+		echo "interpreter:Depends=ocaml-base-nox" >> debian/mediawiki-math.substvars;\
+	fi
+
+
+binary-predeb/mediawiki::
+	find debian/mediawiki -depth \( -name ".cvsignore" -o -name ".arch-ids" \) -exec rm -rf {} \;
+
+binary-predeb/mediawiki-math::
+	find debian/mediawiki-math -depth \( -name ".cvsignore" -o -name ".arch-ids" \) -exec rm -rf {} \;
+
+clean::
+	rm -f $(MANPAGES)
+	make -C math clean
+	debconf-updatepo
+
--- mediawiki-1.12.0.orig/debian/watch
+++ mediawiki-1.12.0/debian/watch
@@ -0,0 +1,11 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=2
+
+# Uncomment to examine a Webserver directory
+http://prdownloads.sourceforge.net/wikipedia/mediawiki-(1\.7\.\d*)\.tar\.gz
+
--- mediawiki-1.12.0.orig/debian/svn-deblayout
+++ mediawiki-1.12.0/debian/svn-deblayout
@@ -0,0 +1 @@
+tagsUrl=svn+ssh://svn.debian.org/svn/pkg-mediawiki/mediawiki/tags/
--- mediawiki-1.12.0.orig/debian/changelog
+++ mediawiki-1.12.0/debian/changelog
@@ -0,0 +1,160 @@
+mediawiki (1:1.12.0-2lenny3) testing-security; urgency=high
+
+  * Security upload.
+  * Applied changes from 1.12.4:
+  "A number of cross-site scripting (XSS) security vulnerabilities were
+   discovered in the web-based installer (config/index.php). These 
+   vulnerabilities all require a live installer -- once the installer 
+   has been used to install a wiki, it is deactivated."
+  Closes: #514547
+
+ -- Romain Beauxis <toots@rastageeks.org>  Sat, 07 Feb 2009 19:57:08 +0100
+
+mediawiki (1:1.12.0-2lenny2) testing-security; urgency=high
+
+  * Security update, NMU to fix fix CVE-2008-5249, CVE-2008-5250, CVE-2008-5252
+  * debian/patches/CVE-2008-5249_CVE-2008-5250_CVE-2008-5252.patch:
+    - Fixed output escaping for reporting of non-MediaWiki exceptions. 
+      Potential XSS if an extension throws one of these with user input.
+    - Avoid fatal error in profileinfo.php when not configured.
+    - Fixed CSRF vulnerability in Special:Import. Fixed input validation in 
+      transwiki import feature.
+    - Add a .htaccess to deleted images directory for additional protection
+      against exposure of deleted files with known SHA-1 hashes on default
+      installations.
+    - Fixed XSS vulnerability for Internet Explorer clients, via file uploads
+      which are interpreted by IE as HTML.
+    - Fixed XSS vulnerability for clients with SVG scripting, on wikis where SVG
+      uploads are enabled. Firefox 1.5+ is affected.
+    - Avoid streaming uploaded files to the user via index.php. This allows 
+      security-conscious users to serve uploaded files via a different domain,
+      and thus client-side scripts executed from that domain cannot access the
+      login cookies. Affects Special:Undelete, img_auth.php and thumb.php.
+    - When streaming files via index.php, use the MIME type detected from the
+      file extension, not from the data. This reduces the XSS attack surface.
+    - Blacklist redirects via Special:Filepath. Such redirects exacerbate any 
+      XSS vulnerabilities involving uploads of files containing scripts.
+  Closes: #508869, #508870
+
+ -- Giuseppe Iuculano <giuseppe@iuculano.it>  Sun, 18 Jan 2009 11:54:02 +0100
+
+mediawiki (1:1.12.0-2lenny1) testing-security; urgency=high
+
+  * Security update, fix CVE-2008-4408:
+  "Cross-site scripting (XSS) vulnerability in MediaWiki 1.13.1, 1.12.0,
+   and possibly other versions before 1.13.2 allows remote attackers
+   to inject arbitrary web script or HTML via the useskin parameter 
+   to an unspecified component."
+  Closes: #501115
+
+ -- Romain Beauxis <toots@rastageeks.org>  Tue, 14 Oct 2008 15:56:19 +0200
+
+mediawiki (1:1.12.0-2) unstable; urgency=low
+
+  * Fixed postgresql dependency
+  Closes: #472987
+  * Added instructions to install and upgrade
+  Closes: #472990, #472831
+
+ -- Romain Beauxis <toots@rastageeks.org>  Mon, 24 Mar 2008 02:49:15 +0100
+
+mediawiki (1:1.12.0-1) unstable; urgency=low
+
+  * New upstream release
+  * Updated patch for postfix support: dropped what 
+    has been implemented upstream
+  * Refreshed other patches, thanks to quilt
+  * Changed postgresql recommends to "postgresql" package
+  Closes: #469582
+
+ -- Romain Beauxis <toots@rastageeks.org>  Mon, 24 Mar 2008 02:20:12 +0100
+
+mediawiki (1:1.11.2-2) unstable; urgency=high
+
+  * Added patch to fix pgsql select, thanks to Marc Dequènes
+  Closes: #469841
+  * Upated README.Debian to mention php5-gd instead of php5-gd2
+  and texlive-latex-base instead to tetex-bin.
+  Closes: #469558
+  * still setting urgency to high since previous upload didn't make it
+  to testing.
+
+ -- Romain Beauxis <toots@rastageeks.org>  Mon, 03 Mar 2008 13:58:57 +0100
+
+mediawiki (1:1.11.2-1) unstable; urgency=high
+
+  * New upstream release
+  * Security fix:
+      "Possible cross-site information leaks using the callback
+       parameter for JSON-formatted results in the API are prevented by
+       dropping user credentials."
+  * Added informations on LocalSettings.php in README.Debian
+  Closes: #462609
+
+ -- Romain Beauxis <toots@rastageeks.org>  Mon, 03 Mar 2008 13:16:27 +0100
+
+mediawiki (1:1.11.1-1) unstable; urgency=high
+
+  * New upstream release
+  * A potential XSS injection vector affecting 
+    Microsoft Internet Explorer users has been
+    closed.
+
+ -- Romain Beauxis <toots@rastageeks.org>  Sat, 26 Jan 2008 02:57:53 +0100
+
+mediawiki (1:1.11.0-4) unstable; urgency=low
+
+  * Really add the patch for #459312
+  * Added also patch to fix #459617
+    Closes: #459617
+  * Merged two previous patches
+
+ -- Romain Beauxis <toots@rastageeks.org>  Fri, 18 Jan 2008 16:14:59 +0100
+
+mediawiki (1:1.11.0-3) unstable; urgency=low
+
+  * Really remove debian specific scripts
+  * Backported patch to fix unserialize with postgre
+    Closes: #459312
+  * Added finnish translation of the debconf templates, thanks to Esko
+    Arajärvi. Closes: #456983
+  * Updated standards to 3.7.3 (no changes)
+
+ -- Romain Beauxis <toots@rastageeks.org>  Mon, 07 Jan 2008 15:03:15 +0100
+
+mediawiki (1:1.11.0-2) unstable; urgency=low
+
+  * Initial upload of 1.11.0 to unstable
+
+ -- Romain Beauxis <toots@rastageeks.org>  Sat, 03 Nov 2007 16:39:47 +0100
+
+mediawiki (1:1.11.0-1) experimental; urgency=low
+
+  * Removed mediawikiX versioned packages
+  * Updated to mediawiki 1.11
+  * Removed automatic upgrade script
+  * Updated README.Debian (Closes: #442311, #442302)
+  * Changed default upload directory (Closes: #444445)
+
+ -- Romain Beauxis <toots@rastageeks.org>  Sun, 21 Oct 2007 20:54:00 +0200
+
+mediawiki (1:1.10) unstable; urgency=low
+
+  * Switched to mediawiki1.10
+  * Mediawiki1.10 recommends mediawiki-math (Closes: #428021)
+
+ -- Romain Beauxis <toots@rastageeks.org>  Tue, 10 Jul 2007 19:29:01 +0200
+
+mediawiki (1:1.9) unstable; urgency=low
+
+  * Switched to mediawiki1.9, closes: #392932
+  * Corrected typo in control, closes: #414121
+  * Seperated -math extension to a single package, closes: #401714
+
+ -- Romain Beauxis <toots@rastageeks.org>  Thu, 12 Apr 2007 17:02:05 +0200
+
+mediawiki (1:1.7) unstable; urgency=low
+
+  * Initial Release
+
+ -- Romain Beauxis <toots@rastageeks.org>  Mon,  6 Nov 2006 15:36:44 +0100
--- mediawiki-1.12.0.orig/debian/mediawiki.linda-override
+++ mediawiki-1.12.0/debian/mediawiki.linda-override
@@ -0,0 +1,2 @@
+Tag: extra-license-file
+Data: usr/share/mediawiki/includes/Licenses.php
--- mediawiki-1.12.0.orig/debian/mediawiki-math.manpages
+++ mediawiki-1.12.0/debian/mediawiki-math.manpages
@@ -0,0 +1 @@
+debian/texvc.1
--- mediawiki-1.12.0.orig/debian/compat
+++ mediawiki-1.12.0/debian/compat
@@ -0,0 +1 @@
+4
--- mediawiki-1.12.0.orig/debian/mediawiki.examples
+++ mediawiki-1.12.0/debian/mediawiki.examples
@@ -0,0 +1 @@
+AdminSettings.sample
--- mediawiki-1.12.0.orig/debian/mediawiki.config
+++ mediawiki-1.12.0/debian/mediawiki.config
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Debconf config script for mediawiki
+
+set -e
+
+# Source debconf library
+. /usr/share/debconf/confmodule
+
+db_input medium mediawiki/webserver || true
+db_go
+
+db_stop
+
+exit 0 
--- mediawiki-1.12.0.orig/debian/README.Debian
+++ mediawiki-1.12.0/debian/README.Debian
@@ -0,0 +1,104 @@
+mediawiki for Debian
+--------------------
+
+
+Optional features:
+	- Image thumbnailing :
+	  Install 'php5-gd' or 'imagemagick' to use this feature.
+	- LaTeX-compatible math equations rendering :
+	  Install 'texlive-latex-base', 'imagemagick' and a Ghostscript interpreter
+	    ('gs-gpl' or 'gs-esp') to use this feature.
+	  To be able to render non-ASCII characters, also install 'cjk-latex'.
+	  Uncomment the following line in '/etc/mediawiki/LocalSettings.php' :
+		$wgUseTeX = true;
+
+Configuration:
+	The configuration uses an easy web-based system ; just go to this URL :
+		http://www.myserver.org/mediawiki/config/index.php
+		(replace by your own servername)
+	  You may of course configure your webserver to serve this URL. A default 
+	  configuration can be found in /etc/mediawiki/. Apache and cherokee users
+	  may have linked this in their configuration automatically if they asked
+	  the installer to do so.
+	Then just copy the generated config to the real system location :
+		mv /var/lib/mediawiki/config/LocalSettings.php \
+		 /etc/mediawiki
+	You should change file permissions for LocalSettings.php as required to 
+	prevent other users on the server from reading passwords and 
+	altering configuration data.
+	.
+	Warning: to make this work, we have to define MW_INSTALL_PATH. This is done 
+	automatically in this package. However, you may change this later if you plan 
+	to set up multisite wikis.
+	After being configured, you should begin your surf on your new wiki using this url:
+		http://www.myserver.org/mediawiki
+		(replace by your own servername)
+	Enjoy !!!
+
+Security concerns:
+  1) priviledge separation:
+		Once installed, you can improve security by separating sql priviledges. Thus having your standard
+	sql account be granted only SELECT/INSERT/DELETE/UPDATE on your mediawiki database, and an additional
+	account used for maintenance with additional CREATE/DROP/ALTER rights.
+		To use this feature, you only need to setup an additional account in the database and provide
+	the new credentials into /etc/mediawiki/AdminSettings.php (/usr/share/doc/mediawiki/examples contains
+	an example). Then don't forget to lower rights of the primary account.
+  2) file upload check:
+		You can activate file upload virus checking by installing the 'clamav' package and setting the
+	following in LocalSettings.php:
+		$wgAntivirus = 'clamav';
+
+Upgrading the database:
+	When upgrading to new releases, the database may need an upgrade before your wiki is able to 
+	work. Here is a rapid sketch:
+	1) Dump your database to a text file.
+	   mysqldump --add-drop-table -u <user> -p <my-database> > /path/to/file.sql
+	2)   You will need an AdminSettings.php file.
+ 	If you don't have any, a sample is available at:
+	   /usr/share/doc/mediawiki/examples/AdminSettings.sample
+	You may fill in this file and copy it in /etc/mediawiki.
+	If you use the mysql root account, you may delete it afterward.
+	3)  Then run this command:
+          php /var/lib/mediawiki/maintenance/update.php
+	This shall need a proper php5 binary, as provided in php5-cli
+
+Upgrading from mediawiki1.x packages:
+	A rapid sketch of what you need to do is as follow:
+	1) Dump your database to a text file.
+		mysqldump --add-drop-table -u <user> -p <my-database> > /path/to/file.sql
+	2) Copy the configuration files from /etc/mediawiki1.x to /var/lib/mediawiki and make them writable for
+	     your webserver user -- usualy www-data.
+		cp /var/lib/mediawiki1.x/LocalSettings.php /etc/mediawiki
+		cp /var/mediawiki1.x/AdminSettings.php /etc/mediawiki (if exists)
+	3) Add the following line at the begining of your /etc/mediawiki/LocalSettings.php if it does not exist:
+		define(MW_INSTALL_PATH,"/var/lib/mediawiki");
+	4) Execute the update script:
+	   You will need an AdminSettings.php file.
+  	     If you don't have any, a sample is available at:
+	       /usr/share/doc/mediawiki/examples/AdminSettings.sample
+             You may fill in this file and copy it in /etc/mediawiki.
+	     If you use the mysql root account, you may delete it afterward.
+	   Then run this command:
+		php /var/lib/mediawiki/maintenance/update.php
+	   This shall need a proper php5 binary, as provided in php5-cli
+	5) Execute the rebuildall script:
+		php /var/lib/mediawiki/maintenance/rebuildall.php
+	6) Copy the old upload directory (this location has been switched to /images, according to upstream):
+		cp -rf /var/lib/mediawiki1.x/upload/* /var/lib/mediawiki/images/
+	7) Update your web server configuration to point to /var/lib/mediawiki
+
+Configuring apache and MySQL:
+	A good how-to to correctly setup the application used by mediawiki can be found there:
+	http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_GNU/Linux
+	But, of course, you should NOT do the part that talks about mediawiki installation itself :)
+
+Editing and Syntax:
+	MediaWiki syntax is rather complex.
+	To prevent this README file from becoming a manual, 
+	we don't provide here instructions on MediaWiki syntax.
+	But you can point your browser to this page:
+	http://meta.wikimedia.org/wiki/Help:Editing
+	Where you will find all that you'd like to know about it!
+
+-- Romain Beauxis <toots@rastageeks.org> and Marc Dequènes (Duck) <Duck@DuckCorp.org>
+
--- mediawiki-1.12.0.orig/debian/control.in
+++ mediawiki-1.12.0/debian/control.in
@@ -0,0 +1,43 @@
+Source: mediawiki
+Section: web
+Priority: optional
+Maintainer: Mediawiki Maintenance Team <pkg-mediawiki-devel@lists.alioth.debian.org>
+Uploaders: Romain Beauxis <toots@rastageeks.org>
+Build-Depends: @cdbs@, ocaml-nox | ocaml, xsltproc, docbook-xml, docbook-xsl, po-debconf
+Homepage: http://www.mediawiki.org/
+Standards-Version: 3.7.3
+
+Package: mediawiki
+Architecture: all
+Depends: apache2 | httpd, php5, php5-mysql | php5-pgsql, mime-support, ${misc:Depends} 
+Recommends: mysql-server | postgresql-contrib, php5-cli
+Suggests: php5-gd | imagemagick, mediawiki-math, memcached, clamav
+Description: website engine for collaborative work
+ MediaWiki is a wiki engine (a program for creating a collaboratively
+ edited website). It is designed to handle heavy websites containing
+ library-like document collections, and supports user uploads of
+ images/sounds, multilingual content, TOC autogeneration, ISBN links,
+ etc.
+ .
+ Moreover, it keeps track of changes, so users can receive
+ notifications, view diffs and revert edits. This system has many
+ other features and can easily be extended.
+
+Package: mediawiki-math
+Architecture: any
+Depends: ${interpreter:Depends}, tetex-bin | texlive-latex-base, gs-gpl | gs-esp, imagemagick, ${shlibs:Depends}
+Replaces: mediawiki1.5-math, mediawiki1.9-math, mediawiki1.10-math
+Recommends: mediawiki, latex-cjk-all, tetex-extra
+Description: math rendering plugin for MediaWiki
+ MediaWiki is a wiki engine (a program for creating a collaboratively
+ edited website). It is designed to handle heavy websites containing
+ library-like document collections, and supports user uploads of
+ images/sounds, multilingual content, TOC autogeneration, ISBN links,
+ etc.
+ .
+ Moreover, it keeps track of changes, so users can receive
+ notifications, view diffs and revert edits. This system has many
+ other features and can easily be extended.
+ .
+ This package contains the math rendering plugin.
+
--- mediawiki-1.12.0.orig/debian/texvc.xml
+++ mediawiki-1.12.0/debian/texvc.xml
@@ -0,0 +1,178 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl manpage.dbk'.  A manual page
+<package>.<section> will be generated.  You may view the
+manual page with: nroff -man <package>.<section> | less'.  A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+        $(XP) $(DB2MAN) $<
+    
+The xsltproc binary is found in the xsltproc package.  The
+XSL files are in docbook-xsl.  Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>Marc</firstname>">
+  <!ENTITY dhsurname   "<surname>Dequ\[`e]nes</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>2005-01-02</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
+  <!ENTITY dhemail     "<email>Duck@DuckCorp.org</email>">
+  <!ENTITY dhusername  "Marc Dequ\[`e]nes (Duck)">
+  <!ENTITY dhucpackage "<refentrytitle>TEXVC</refentrytitle>">
+  <!ENTITY dhpackage   "texvc">
+
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2003</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>math equation PNG renderer</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+
+	<arg choice="req" rep="norepeat">tempdir</arg>
+	<arg choice="req" rep="norepeat">outputdir</arg>
+	<arg choice="req" rep="norepeat">texcode</arg>
+	<arg choice="req" rep="norepeat">encoding</arg>
+
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para><command>&dhpackage;</command> is designed to render math
+    	equations written in latex code into PNG images.
+	</para>
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <variablelist>
+      <varlistentry>
+        <term>
+	  <arg choice="req" rep="norepeat">tempdir</arg>
+        </term>
+        <listitem>
+          <para>directory where temporary files are created.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+	  <arg choice="req" rep="norepeat">outputdir</arg>
+        </term>
+        <listitem>
+          <para>directory where the result image is stored.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+	  <arg choice="req" rep="norepeat">texcode</arg>
+        </term>
+        <listitem>
+          <para>latex code string representing math equations.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+	  <arg choice="req" rep="norepeat">encoding</arg>
+        </term>
+        <listitem>
+          <para>used encoding in latex code string.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+  <refsect1>
+    <title>OUTPUT</title>
+      <para>Status codes and HTML/MathML transformations are returned on stdout.
+        A rasterized PNG file will be written to the output directory, named
+        for the MD5 hash code.
+      </para>
+
+      <para>texvc output format is like this:
+        <itemizedlist>
+	  <listitem><para>+%5         ok, but not html or mathml</para></listitem>
+	  <listitem><para>c%5%h       ok, conservative html, no mathml</para></listitem>
+	  <listitem><para>m%5%h       ok, moderate html, no mathml</para></listitem>
+	  <listitem><para>l%5%h       ok, liberal html, no mathml</para></listitem>
+	  <listitem><para>C%5%h\0%m   ok, conservative html, with mathml</para></listitem>
+	  <listitem><para>M%5%h\0%m   ok, moderate html, with mathml</para></listitem>
+	  <listitem><para>L%5%h\0%m   ok, liberal html, with mathml</para></listitem>
+	  <listitem><para>X%5%m       ok, no html, with mathml</para></listitem>
+	  <listitem><para>S           syntax error</para></listitem>
+	  <listitem><para>E           lexing error</para></listitem>
+	  <listitem><para>F%s         unknown function %s</para></listitem>
+	  <listitem><para>-           other error</para></listitem>
+	</itemizedlist>
+      </para>
+      <para>
+        with the following codes:
+	<itemizedlist>
+	  <listitem><para>\0 - null character</para></listitem>
+	  <listitem><para>%5 - md5, 32 hex characters</para></listitem>
+	  <listitem><para>%h - html code, without \0 characters</para></listitem>
+	  <listitem><para>%m - mathml code, without \0 characters</para></listitem>
+	</itemizedlist>
+      </para>
+  </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>This manual page was written by &dhusername; &dhemail; for
+      the &debian; system (but may be used by others).  Permission is
+      granted to copy, distribute and/or modify this document under
+      the terms of the &gnu; General Public License, Version 2 any 
+	  later version published by the Free Software Foundation.
+    </para>
+	<para>
+	  On Debian systems, the complete text of the GNU General Public
+	  License can be found in /usr/share/common-licenses/GPL.
+	</para>
+
+  </refsect1>
+</refentry>
+
--- mediawiki-1.12.0.orig/debian/mediawiki.postrm
+++ mediawiki-1.12.0/debian/mediawiki.postrm
@@ -0,0 +1,23 @@
+#! /bin/sh
+# postrm script for mediawiki
+#
+# see: dh_installdeb(1)
+
+set -e
+
+if [ -f /usr/share/debconf/confmodule ]; then
+. /usr/share/debconf/confmodule 
+fi
+
+case "$1" in
+    purge)
+	rm -rf /etc/mediawiki /var/lib/mediawiki /etc/apache*/conf.d/mediawiki.conf  /etc/cherokee/sites-available/mediawiki
+    ;;
+    *)
+    ;;
+esac
+
+
+#DEBHELPER#
+
+exit 0
--- mediawiki-1.12.0.orig/debian/copyright
+++ mediawiki-1.12.0/debian/copyright
@@ -0,0 +1,93 @@
+This package was debianized by Marc Dequènes <Duck@DuckCorp.org> on
+Fri, 31 Dec 2004 00:11:42 +0100.
+
+It was downloaded from http://wikipedia.sourceforge.net/
+
+Upstream Authors: Mediawiki Development Team <mediawiki-l@Wikimedia.org>
+
+Copyright:
+     File profileinfo.php has the following copyright:
+<!--
+     Show profiling data.
+
+     Copyright 2005 Kate Turner.
+
+     Permission is hereby granted, free of charge, to any person obtaining a copy
+     of this software and associated documentation files (the "Software"), to deal
+     in the Software without restriction, including without limitation the rights
+     to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+     copies of the Software, and to permit persons to whom the Software is
+     furnished to do so, subject to the following conditions:
+
+     The above copyright notice and this permission notice shall be included in
+     all copies or substantial portions of the Software.
+
+     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+     SOFTWARE.
+
+-->
+
+     File includes/memcached-client.php has the following copyright:
+// +---------------------------------------------------------------------------+
+// | memcached client, PHP                                                     |
+// +---------------------------------------------------------------------------+
+// | Copyright (c) 2003 Ryan T. Dean <rtdean@cytherianage.net>                 |
+// | All rights reserved.                                                      |
+// |                                                                           |
+// | Redistribution and use in source and binary forms, with or without        |
+// | modification, are permitted provided that the following conditions        |
+// | are met:                                                                  |
+// |                                                                           |
+// | 1. Redistributions of source code must retain the above copyright         |
+// |    notice, this list of conditions and the following disclaimer.          |
+// | 2. Redistributions in binary form must reproduce the above copyright      |
+// |    notice, this list of conditions and the following disclaimer in the    |
+// |    documentation and/or other materials provided with the distribution.   |
+// |                                                                           |
+// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR      |
+// | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
+// | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.   |
+// | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,          |
+// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT  |
+// | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY     |
+// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT       |
+// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF  |
+// | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.         |
+// +---------------------------------------------------------------------------+
+// | Author: Ryan T. Dean <rtdean@cytherianage.net>                            |
+// | Heavily influenced by the Perl memcached client by Brad Fitzpatrick.      |
+// |   Permission granted by Brad Fitzpatrick for relicense of ported Perl     |
+// |   client logic under 2-clause BSD license.                                |
+// +---------------------------------------------------------------------------+
+
+
+   Images found on the common skins icons images are licensed under 
+   GNU LGPL License.
+   
+   Everything else is under the following copyright/license.
+
+   Copyright (C) 2003-2004 Mediawiki Development Team
+
+   This package is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This package is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this package; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+   02110-1301, USA.
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
+
--- mediawiki-1.12.0.orig/debian/mediawiki.install
+++ mediawiki-1.12.0/debian/mediawiki.install
@@ -0,0 +1,2 @@
+*.php *.phtml includes index.php install-utils.inc languages maintenance skins usr/share/mediawiki
+config extensions var/lib/mediawiki
--- mediawiki-1.12.0.orig/debian/mediawiki-math.install
+++ mediawiki-1.12.0/debian/mediawiki-math.install
@@ -0,0 +1 @@
+math/texvc usr/bin
--- mediawiki-1.12.0.orig/debian/templates
+++ mediawiki-1.12.0/debian/templates
@@ -0,0 +1,17 @@
+# These templates have been reviewed by the debian-l10n-english
+# team
+#
+# If modifications/additions/rewording are needed, please ask
+# for an advice to debian-l10n-english@lists.debian.org
+#
+# Even minor modifications require translation updates and such
+# changes should be coordinated with translators and reviewers.
+
+Template: mediawiki/webserver
+Type: multiselect
+Choices: apache, apache-ssl, apache2, cherokee
+Default: apache2
+_Description: Web server(s) to configure automatically:
+ Please select the web server(s) that should be configured
+ automatically for MediaWiki.
+
--- mediawiki-1.12.0.orig/debian/po/templates.pot
+++ mediawiki-1.12.0/debian/po/templates.pot
@@ -0,0 +1,31 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
--- mediawiki-1.12.0.orig/debian/po/ar.po
+++ mediawiki-1.12.0/debian/po/ar.po
@@ -0,0 +1,98 @@
+# translation of mediawiki.po to Arabic
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+# Ossama M. Khayat <okhayat@yahoo.com>, 2005, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-13 12:40+0300\n"
+"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
+"Language-Team: Arabic <support@arabeyes.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=6; plural=n==1 ? 0 : n==0 ? 1 : n==2 ? 2: n%100>=3 && "
+"n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "خادم الوب الذي يجب تهيئته آلياً:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr "الرجاء اختيار خادم الوب الذي يجب تهيئته آلياً لاستخدام MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "إجراء الترقية من:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "هناك نسخة قديمة من MediaWiki مثبتة."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "يمكن ترقية التثبيت آلياً. تستخدم الحزمة الجديدة /var/lib/mediawiki لقاعدة "
+#~ "بيانات ويكي. تحتاج قاعدة البيانات القديمة كذلك إلى التحديث."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "إن اخترت القيام بترقية MediaWiki آلياً، سيتم عمل نسخة احتياطية من قاعدة "
+#~ "البيانات، ومن ثم ترقيتها، وتجهيز ملف تهيئة جديد للنسخة الجديدة. بدلاً من "
+#~ "ذلك، يمكنك تنفيذ هذه العملية لاحقاً بتنفيذ الأمر '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki'."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "المستخدم الإداري الخاص بقاعدة بيانات MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "الرجاء تحديد حساب MYSQL لديه سمات وصول إدارية لقاعدة بيانات MediaWiki "
+#~ "القديمة."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr ""
+#~ "إن كنت في شك، فيمكنك استخدام حساب المستخدم root الخاص بقاعدة بيانات MySQL."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "سيتم توليد الملف AdminSettings.php ما لم يتم تحديد حساب المستخدم root."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "كلمة سر قاعدة البيانات الخاصة لإدارة MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "الرجاء كتابة كلمة سر حاسب مستخدم MySQL لديه سمات وصول إدارية لقاعدة "
+#~ "بيانات MediaWiki القديمة."
--- mediawiki-1.12.0.orig/debian/po/ca.po
+++ mediawiki-1.12.0/debian/po/ca.po
@@ -0,0 +1,166 @@
+#
+# Catalan translation for mediawiki1.9 package.
+# Copyright (C) 2007 Mediawiki Maintenance Team.
+# This file is distributed under the same license as the mediawiki1.9
+# package.
+#
+# Álvaro Martínez Majado <alvaro_m@users.sourceforge.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki1.9_1.9.1-14_ca\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-04-21 21:36+0200\n"
+"Last-Translator: Álvaro Martínez Majado <alvaro_m@users.sourceforge.net>\n"
+"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidor(s) web que s'han de configurar automàticament:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Si us plau, seleccioneu el servidor o servidors web que s'haurien de "
+"configurar automàticament per a MediaWiki."
+
+#, fuzzy
+#~| msgid "Perform automatic upgrade from MediaWiki 1.7?"
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Voleu actualitzar automàticament des de Mediawiki 1.7?"
+
+#, fuzzy
+#~| msgid ""
+#~| "The new package version uses /var/lib/mediawiki1.9 for the wiki "
+#~| "database.  The old database files need to be moved before performing the "
+#~| "upgrade."
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "La nova versió del paquet utilitza /var/lib/mediawiki1.9 per a "
+#~ "emmagatzemar la base de dades del wiki. Els fitxers de l'antiga base de "
+#~ "dades s'han de moure abans de realitzar l'actualització."
+
+#, fuzzy
+#~| msgid ""
+#~| "This operation can be done automatically: the database will be backed "
+#~| "up, upgraded, and a new configuration file will be prepared for the new "
+#~| "version. The operation can be performed now. Alternatively, you can "
+#~| "perform it later by launching, as root, /usr/share/mediawiki1.9/debian-"
+#~| "scripts/upgrade-mediawiki1.7."
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Podeu fer aquesta operació automàticament: es farà una còpia de seguretat "
+#~ "de la vostre base de dades, s'actualitzarà i es crearà un fitxer de "
+#~ "configuració preparat per a la nova versió. Podeu fer tot això ara. "
+#~ "Alternativament, podeu fer servir aquest script més tard tot executant, "
+#~ "com a usuari primari, «/usr/share/mediawiki1.9/debian-scripts/upgrade-"
+#~ "mediawiki1.7»."
+
+#, fuzzy
+#~| msgid "Database administrative user for MediaWiki 1.7:"
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Usuari administrador per a MediaWiki 1.7:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please provide a MySQL account that has administrative access to the "
+#~| "MediaWiki 1.7 database."
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Si us plau, proporcioneu les dades del compte d'usuari administratiu que "
+#~ "permet accedir a l'antiga base de dades MySQL de MediaWiki 1.7."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Si dubteu, podeu utilitzar el compte d'usuari root de MySQL."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Es generarà un fitxer AdminSettings.php a menys que especifiqueu el "
+#~ "compte d'usuari root."
+
+#, fuzzy
+#~| msgid "Database administrative password for MediaWiki 1.7:"
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Contrasenya de l'administrador per a MediaWiki 1.7:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please specify the password of the MySQL account with administrative "
+#~| "access to the MediaWiki 1.7 database."
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Si us plau, proporcioneu les dades del compte amb permisos "
+#~ "d'administrador que permet accedir a l'antiga base de dades MySQL de "
+#~ "MediaWiki 1.7."
+
+#~ msgid "MediaWiki is being upgraded from version 1.7."
+#~ msgstr "S'està atualitzant MediaWiki des de la versió 1.7."
+
+#~ msgid "Configuration files fixed"
+#~ msgstr "S'han arreglat els fitxers de configuració"
+
+#~ msgid ""
+#~ "A previous bug in the mediawiki package forced configuration files to be "
+#~ "stored in /var/lib/mediawiki1.9."
+#~ msgstr ""
+#~ "Hi havia un error en paquets previs que obligava a posar els fitxers de "
+#~ "configuració a /var/lib/mediawiki1.9."
+
+#~ msgid ""
+#~ "These files have been moved back to /etc/mediawiki1.9 and a backup was "
+#~ "also made in that directory."
+#~ msgstr ""
+#~ "Aquests fitxers s'han tornat a moure a /etc/mediawiki1.9 i també s'ha fet "
+#~ "una còpia de seguretat al mateix directori."
+
+#~ msgid "You are upgrading from mediawiki1.7."
+#~ msgstr "S'està actualitzant des de mediawiki1.7."
+
+#~ msgid ""
+#~ "This package will install its files in a new location:\n"
+#~ " /var/lib/mediawiki1.9\n"
+#~ "Then you need to upgrade your old mediawiki1.7."
+#~ msgstr ""
+#~ "Aquest paquet instal·larà els arxius a:\n"
+#~ " /var/lib/mediawiki1.9\n"
+#~ "Desprès haureu d'actualitzar l'antic mediawiki1.7."
+
+#~ msgid "If you don't know any account, the root user is sufficient."
+#~ msgstr "Si no en coneixeu cap, amb la de l'usuari primari n'hi ha prou."
+
+#~ msgid "Please give the password for the account you specified."
+#~ msgstr ""
+#~ "Si us plau, introduïu la contrasenya per al compte que heu especificat."
+
+#~ msgid ""
+#~ "This is now solved, and your configuration files can now be found at /etc/"
+#~ "mediawiki1.9. A backup has been made in case this failed, located in /etc/"
+#~ "mediawiki1.9 too."
+#~ msgstr ""
+#~ "Això ja està resolt, i ara els arxius de confiuració es poden trobar a /"
+#~ "etc/mediawiki1.9. S'ha get una copia de seguretat per si fallés que també "
+#~ "es pot trobar a /etc/mediawiki1.9."
--- mediawiki-1.12.0.orig/debian/po/de.po
+++ mediawiki-1.12.0/debian/po/de.po
@@ -0,0 +1,140 @@
+# Translation of mediawiki debconf templates to German
+# Copyright (C) Kai Weber <kai.weber@glorybox.de>, 2005.
+# Copyright (C) Helge Kreutzmann <debian@helgefjell.de>, 2007.
+# This file is distributed under the same license as the mediawiki package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki 1.7.1-12\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-12 21:00+0200\n"
+"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
+"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Web-Server, der/die automatisch konfiguriert werden soll(en):"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Bitte w�hlen Sie den/die Webserver, die automatisch f�r MediaWiki "
+"konfiguriert werden sollen."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Upgrade durchf�hren von:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Es ist bereits eine �ltere Version von MediaWiki installiert."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Ein automatisches Upgrade der Installation ist m�glich. Die neue "
+#~ "Paketversion verwendet /var/lib/mediawiki f�r die Wiki-Dateien. Die alte "
+#~ "Datenbank muss auch aktualisiert werden."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Falls Sie das Upgrade automatisch durchf�hren lassen wollen, wird eine "
+#~ "Sicherungskopie Ihrer Datenbank erstellt, das Upgrade durchgef�hrt und "
+#~ "eine neue Konfigurationsdatei vorbereitet. Alternativ k�nnen Sie das "
+#~ "Upgrade sp�ter mit dem Befehl �/usr/share/mediawiki/debian-scripts/"
+#~ "upgrade-mediawiki� durchf�hren."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Administrativer Datenbank-Benutzer von MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Bitte stellen Sie ein MySQL-Konto bereit, das administrativen Zugriff auf "
+#~ "die alte MediaWiki-Datenbank hat."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Im Zweifelsfall kann das MySQL-Root-Konto verwendet werden."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Eine AdminSettings.php-Datei wird erstellt, falls nicht das Root-Konto "
+#~ "angegeben wird."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Administratives Datenbank-Passwort f�r MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Bitte geben Sie das Passwort f�r das MySQL-Konto an, das administrativen "
+#~ "Zugriff auf die alte MediaWiki-Datenbank hat."
+
+#~ msgid "MediaWiki is being upgraded from version 1.5."
+#~ msgstr "Ein Upgrade von MediaWiki Version 1.5 wird durchgef�hrt."
+
+#~ msgid "Configuration files fixed"
+#~ msgstr "Konfigurationsdateien korrigiert"
+
+#~ msgid ""
+#~ "A previous bug in the mediawiki package forced configuration files to be "
+#~ "stored in /var/lib/mediawiki."
+#~ msgstr ""
+#~ "Es gab einen Fehler in �lteren Versionen der Pakete, der dazu f�hrte, das "
+#~ "Konfigurationsdateien sich zwingend in /var/lib/mediawiki befanden."
+
+#~ msgid ""
+#~ "These files have been moved back to /etc/mediawiki and a backup was also "
+#~ "made in that directory."
+#~ msgstr ""
+#~ "Diese Dateien wurden nach /etc/mediawiki verschoben und eine "
+#~ "Sicherungskopie dieses Verzeichnisses wurde durchgef�hrt."
+
+#~ msgid "You are upgrading from mediawiki1.5."
+#~ msgstr "Sie f�hren ein Upgrade von Mediawiki1.5 aus durch."
+
+#~ msgid ""
+#~ "This package will install its files in a new location:\n"
+#~ " /var/lib/mediawiki\n"
+#~ "Then you need to upgrade your old mediawiki1.5."
+#~ msgstr ""
+#~ "Dieses Paket wird seine Dateien an dem neuen Ort installieren:\n"
+#~ " /var/lib/mediawiki\n"
+#~ "Sie m�ssen dann ein Upgrade Ihres alten Mediawiki1.5 durchf�hren."
+
+#~ msgid "If you don't know any account, the root user is sufficient."
+#~ msgstr "Falls Sie kein Konto kennen: der Root-Benutzer reicht aus."
+
+#~ msgid "Please give the password for the account you specified."
+#~ msgstr "Bitte geben Sie das Passwort f�r das von Ihnen angegebene Konto an."
+
+#~ msgid ""
+#~ "This is now solved, and your configuration files can now be found at /etc/"
+#~ "mediawiki. A backup has been made in case this failed, located in /etc/"
+#~ "mediawiki too."
+#~ msgstr ""
+#~ "Dies ist jetzt behoben und Ihre Konfigurationsdateien k�nnen jetzt unter /"
+#~ "etc/mediawiki gefunden werden. Eine Sicherungskopie wurde f�r den Fall "
+#~ "erstellt, dass ein Fehler passierte. Diese befindet sich auch in /etc/"
+#~ "mediawiki."
+
+#~ msgid "apache, apache-ssl, apache2"
+#~ msgstr "Apache, Apache-ssl, Apache2"
--- mediawiki-1.12.0.orig/debian/po/cs.po
+++ mediawiki-1.12.0/debian/po/cs.po
@@ -0,0 +1,97 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-13 00:18+0200\n"
+"Last-Translator: Vitezslav Kotrla <vitko@post.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Webové servery, které se mají nastavit automaticky:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Vyberte prosím webové servery, které se mají automaticky nastavit pro "
+"MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Provést přechod z:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Je nainstalována starší verze MediaWiki."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Starší instalace může být automaticky aktualizována. Nová verze balíku "
+#~ "používá pro databázi wiki stránek adresář /var/lib/mediawiki. Původní "
+#~ "databáze se také musí aktualizovat."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Zvolíte-li automatickou aktualizaci MediaWiki, bude databáze "
+#~ "zazálohována, aktualizována a připraví se nový konfigurační soubor. "
+#~ "Alternativně to můžete provést i později příkazem /usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Správcovský uživatel databáze MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Zadejte prosím MySQL účet, který má správcovský přístup k původní "
+#~ "databázi MediaWiki."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Jste-li na pochybách, je možné použít root účet MySQL."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Pokud jste nezvolili uživatele root, bude nyní vytvořen soubor "
+#~ "AdminSettings.php."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Správcovské heslo pro databázi MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Zadejte prosím heslo k MySQL účtu, který má správcovský přístup k původní "
+#~ "databázi MediaWiki."
--- mediawiki-1.12.0.orig/debian/po/es.po
+++ mediawiki-1.12.0/debian/po/es.po
@@ -0,0 +1,170 @@
+# mediawiki po-debconf translation to Spanish
+# Copyright (C) 2006 Software in the Public Interest, SPI Inc.
+# This file is distributed under the same license as the mediawiki17 package.
+#
+# Changes:
+# - Initial translation
+#   Jose Ignacio Méndez González <jose_ignacio_aky@hotmail.com>, 2006.
+# - Revision and update
+#   Javier Fernández-Sanguino , 2006-2007
+#
+#
+#  Traductores, si no conoce el formato PO, merece la pena leer la 
+#  documentación de gettext, especialmente las secciones dedicadas a este
+#  formato, por ejemplo ejecutando:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traducción de Debian al español
+#   http://www.debian.org/intl/spanish/
+#   especialmente las notas y normas de traducción en
+#   http://www.debian.org/intl/spanish/notas
+#
+# - La guía de traducción de po's de debconf:
+#   /usr/share/doc/po-debconf/README-trans
+#   o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Si tiene dudas o consultas sobre esta traducción consulte con el último
+# traductor (campo Last-Translator) y ponga en copia a la lista de
+# traducción de Debian al español (<debian-l10n-spanish@lists.debian.org>)
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki 1.7.1-5 \n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-13 22:40+0200\n"
+"Last-Translator: Javier Fernández-Sanguino <jfs@debian.org>\n"
+"Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"com>\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidor/es web que se deberían configurar automáticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Indique el/los servidor/es web que se debería/n configurar automáticamente "
+"para MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Actualizar desde:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Está instalada una versión antigua de MediaWiki."
+
+# REVIEW - Double space?
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Esta instalación puede actualizarse de forma automática. La nueva versión "
+#~ "del paquete utiliza «var/lib/mediawiki» para la base de datos del Wiki. "
+#~ "También debe actualizarse la base de datos antigua."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Se hará una copia de seguridad de su base de datos, se actualizará, y se "
+#~ "preparará un nuevo fichero de configuración si escoje actualizar "
+#~ "MediaWiki de forma automática. También puede utilizar este programa más "
+#~ "adelante ejecutando la orden «/usr/share/mediawiki/debian-scripts/upgrade-"
+#~ "mediawiki»."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Usuario administrador para la base de datos de MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Indique la cuenta MySQL que tiene acceso como administrador a la antigua "
+#~ "base de datos de MediaWiki."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Puede utilizar la cuenta de root de MySQL en caso de duda."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Se generará un fichero AdminSettings.php a no ser que especifique la "
+#~ "cuenta de root."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Contraseña del usuario administrador para MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Indique la cuenta mysql que tiene acceso como administrador a su la base "
+#~ "de datos MediaWiki antigua."
+
+#~ msgid "MediaWiki is being upgraded from version 1.5."
+#~ msgstr "Se está actualizando MediaWiki dese la versión 1.5."
+
+#~ msgid "Configuration files fixed"
+#~ msgstr "Arreglados los ficheros de configuración"
+
+#~ msgid ""
+#~ "A previous bug in the mediawiki package forced configuration files to be "
+#~ "stored in /var/lib/mediawiki."
+#~ msgstr ""
+#~ "Había una errata en versiones previas del paquete mediawiki que hacía que "
+#~ "los ficheros de configuración se almacenarán por error en «/var/lib/"
+#~ "mediawiki»."
+
+#~ msgid ""
+#~ "These files have been moved back to /etc/mediawiki and a backup was also "
+#~ "made in that directory."
+#~ msgstr ""
+#~ "Se han movido los ficheros a «/etc/mediawiki» y también se ha hecho una "
+#~ "copia de seguridad en este directorio."
+
+#~ msgid "You are upgrading from mediawiki1.5."
+#~ msgstr "Está vd. actualizando desde mediawiki1.5."
+
+#~ msgid ""
+#~ "This package will install its files in a new location:\n"
+#~ " /var/lib/mediawiki\n"
+#~ "Then you need to upgrade your old mediawiki1.5."
+#~ msgstr ""
+#~ "Este paquete instalará sus ficheros en una nueva ubicación:\n"
+#~ " /var/lib/mediawiki\n"
+#~ "Una vez hecho esto deberá actualizar su antiguo mediawiki1.5."
+
+#~ msgid "If you don't know any account, the root user is sufficient."
+#~ msgstr ""
+#~ "Si no sabe qué cuenta es, debería ser suficiente con hacerlo como root."
+
+#~ msgid "Please give the password for the account you specified."
+#~ msgstr "Indique la contraseña para la cuenta que especificó."
+
+#~ msgid ""
+#~ "This is now solved, and your configuration files can now be found at /etc/"
+#~ "mediawiki. A backup has been made in case this failed, located in /etc/"
+#~ "mediawiki too."
+#~ msgstr ""
+#~ "Ya se ha resuelto ese problema y debería tener sus ficheros de "
+#~ "configuración en «/etc/mediawiki». Se ha realizado una copia de seguridad "
+#~ "por si acaso esto fallara, que también está disponible en «/etc/"
+#~ "mediawiki»."
--- mediawiki-1.12.0.orig/debian/po/fi.po
+++ mediawiki-1.12.0/debian/po/fi.po
@@ -0,0 +1,26 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki_1:1.11.0-2\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-12-18 22:37+0200\n"
+"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: Finland\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Automaattisesti asetettavat verkkopalvelimet:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Please select the web server(s) that should be configured automatically for MediaWiki."
+msgstr "Valitse verkkopalvelimet, joille tulisi automaattisesti tehdä asetukset MediaWikiä varten."
+
--- mediawiki-1.12.0.orig/debian/po/eu.po
+++ mediawiki-1.12.0/debian/po/eu.po
@@ -0,0 +1,109 @@
+# translation of mediawiki-eu.po to Euskara
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Piarres Beobide <pi@beobide.net>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki-eu\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-05-31 22:56+0200\n"
+"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
+"Language-Team: Euskara <Librezale@librezale.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Automatikoki konfiguratu behar d(ir)en web zerbitzaria(k):"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Mesedez hautatu MediaWiki erabiltzeko automatikoki konfiguratu behar d(ir)en "
+"web zerbitzaria(k)."
+
+#, fuzzy
+#~| msgid "Perform upgrade from :"
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Bertsio berritze automatiko bat egin?"
+
+#, fuzzy
+#~| msgid "An older version of MediaWiki has been installed previously."
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Mediawiki-ren bertsio zaharrago bat instalatua izan da aurretik."
+
+#, fuzzy
+#~| msgid ""
+#~| "This installation can be upgraded automatically. The new package "
+#~| "version  uses /var/lib/mediawiki for the wiki files. The old database "
+#~| "also needs to be updated."
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Instalazio automatikoki bertsio-berritu daiteke. Pakete berriaren "
+#~ "bertsioak /var/lib/mediawiki erabiltzen du wiki fitxategietarako.  "
+#~ "Datubase zaharra ere eguneratu behar da"
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Hau automatikoki egin daiteke: Datubasearen babeskopia bat egin, bertsio "
+#~ "berritu eta konfigurazio berria prestatuko da. Bestela,  beranduago egin "
+#~ "dezakezu hau abiaraziz: /usr/share/mediawiki/debian-scripts/upgrade-"
+#~ "mediawiki1.5."
+
+#, fuzzy
+#~| msgid "MediaWiki database administrative user:"
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "MediaWiki datubase kudeatzaile erabiltzailea:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please provide a MySQL account that has administrative access to the "
+#~| "MediaWiki database."
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Mesedez idatzi MediaWiki datubasea kudeatzeko baimena duen MySQL "
+#~ "erabiltzaile bat."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Zalantzak izanez gero, root erabiltzailea erabili daiteke."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "AdminSettings.php fitxategi bat sortuko da ez baduzu root kontua ezartzen."
+
+#, fuzzy
+#~| msgid "MediaWiki database administrative password:"
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "MediaWiki datubase kudeatzaile erabiltzailearen pasahitza:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please specify the password of the MySQL account with administrative "
+#~| "access to the MediaWiki database."
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Mesedez idatzi MediaWiki datubasea kudeatzeko baimena duen MySQL "
+#~ "erabiltzailearen pasahitza."
--- mediawiki-1.12.0.orig/debian/po/fr.po
+++ mediawiki-1.12.0/debian/po/fr.po
@@ -0,0 +1,92 @@
+# translation of fr.po to
+# Copyright (C) 2007 Gabriel Laurent <lixin-anyuan@freesurf.ch>
+# This file is distributed under the same license as the mediawiki package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.10.0-2\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-02 21:46+0200\n"
+"Last-Translator: laurent gabriel <lixin-anyuan@freesurf.ch>\n"
+"Language-Team:  <debian-l10n-french@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Serveur(s) web à configurer automatiquement :"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Veuillez choisir le(s) serveur(s) web à configurer automatiquement pour "
+"MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Mise à niveau automatique depuis :"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Une version précédente de MediaWiki est installée."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Elle peut être mise à niveau automatiquement. Le nouveau paquet utilise /"
+#~ "var/lib/mediawiki pour la base de données du wiki. Celle-ci doit être "
+#~ "mise à jour. "
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Si vous choisissez d'effectuer la mise à niveau automatiquement, la base "
+#~ "de données sera sauvegardée, mise à niveau et un nouveau fichier de "
+#~ "configuration sera créé pour la nouvelle version. Vous pouvez également "
+#~ "choisir d'utiliser ce script plus tard, avec la commande « /usr/share/"
+#~ "mediawiki/debian-scripts/upgrade-mediawiki »."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Administrateur de la base de données MediaWiki :"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Veuillez indiquer l'identifiant MySQL qui a les droits d'administration "
+#~ "de l'ancienne base de données Mediawiki."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr ""
+#~ "Dans le doute, il est suggéré de choisir le superutilisateur de MySQL "
+#~ "(« root »)."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Un fichier AdminSettings.php sera créé avec ces informations et sera "
+#~ "supprimé si vous indiquez « root »."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr ""
+#~ "Mot de passe de l'administrateur pour la base de données Mediawiki :"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Veuillez indiquer le mode de passe de l'identifiant MySQL qui a les "
+#~ "droits d'administration de l'ancienne base de données Mediawiki."
--- mediawiki-1.12.0.orig/debian/po/gl.po
+++ mediawiki-1.12.0/debian/po/gl.po
@@ -0,0 +1,107 @@
+# Galician translation of mediawiki's debconf templates
+# This file is distributed under the same license as the mediawiki package.
+# Jacobo Tarrio <jtarrio@debian.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-12 23:54+0200\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidor(es) web a reconfigurar automaticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Escolla o(s) servidor(es) web que se deberían configurar automaticamente "
+"para MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Actualizar desde:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Hai unha versión anterior de MediaWiki instalada."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Pódese actualizar automaticamente esta instalación. A nova versión do "
+#~ "paquete emprega /var/lib/mediawiki para os ficheiros do wiki. Tamén é "
+#~ "preciso actualizar a base de datos antiga."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Se elixe actualizar MediaWiki automaticamente, hase copiar e actualizar a "
+#~ "base de datos, e tamén se ha preparar un novo ficheiro de configuración. "
+#~ "De xeito alternativo, pode facelo despois coa orde \"/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki\"."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Usuario administrativo da base de datos de MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Introduza unha conta de MySQL que teña acceso administrativo á base de "
+#~ "datos antiga de MediaWiki."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Se ten dúbidas, pode empregar a conta \"root\" de MySQL."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Hase xerar un ficheiro AdminSettings.php a menos que se indique a conta "
+#~ "\"root\"."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Contrasinal administrativo da base de datos de MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Introduza o contrasinal da conta de MySQL con acceso administrativo á "
+#~ "base de datos antiga de MediaWiki."
+
+#~ msgid "MediaWiki is being upgraded from version 1.5."
+#~ msgstr "Estase a actualizar MediaWiki da versión 1.5."
+
+#~ msgid "Configuration files fixed"
+#~ msgstr "Arranxáronse os ficheiros de configuración"
+
+#~ msgid ""
+#~ "A previous bug in the mediawiki package forced configuration files to be "
+#~ "stored in /var/lib/mediawiki."
+#~ msgstr ""
+#~ "Un erro anterior no paquete mediawiki obrigou a gravar os ficheiros de "
+#~ "configuración en /var/lib/mediawiki."
+
+#~ msgid ""
+#~ "These files have been moved back to /etc/mediawiki and a backup was also "
+#~ "made in that directory."
+#~ msgstr ""
+#~ "Trasladáronse eses ficheiros a /etc/mediawiki e tamén se fixo unha copia "
+#~ "de seguridade nese directorio."
--- mediawiki-1.12.0.orig/debian/po/ja.po
+++ mediawiki-1.12.0/debian/po/ja.po
@@ -0,0 +1,98 @@
+# Japanese debconf templates translation for mediawiki1.9.
+# Copyright (C) 2007 Noritada Kobayashi
+# This file is distributed under the same license as the mediawiki1.9 package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki1.9 (debconf) 1.9.1-9\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-03-01 22:44+0900\n"
+"Last-Translator: Noritada Kobayashi <nori1@dolphin.c.u-tokyo.ac.jp>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+#, fuzzy
+msgid "Web server(s) to configure automatically:"
+msgstr "自動的に設定を行うウェブサーバ:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+#, fuzzy
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr "自動的に設定を行うウェブサーバ:"
+
+#, fuzzy
+#~ msgid "Perform upgrade from:"
+#~ msgstr "mediawiki1.7 から自動的にアップグレードしますか?"
+
+#, fuzzy
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "このパッケージでは、アップグレードを自動的に行うスクリプトが提供されていま"
+#~ "す。スクリプトを実行すると、データベースのバックアップをとった上でアップグ"
+#~ "レードを実行し、新しい mediawiki 用の設定ファイルを新たに準備します。この"
+#~ "スクリプトは、後から root で /usr/share/mediawiki1.9/debian-scripts/"
+#~ "upgrade-mediawiki1.7 を呼び出して使用することも可能です。"
+
+#, fuzzy
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "mediawiki1.9 の管理用ユーザ:"
+
+#, fuzzy
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "古い mediawiki1.7 のデータベースに管理者権限でアクセスできる mysql アカウ"
+#~ "ントを入力してください。"
+
+#, fuzzy
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "AdminSettings.php ファイルが生成されます。もちろん、root アカウントを指定"
+#~ "した場合はこのファイルは削除されます。"
+
+#, fuzzy
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "mediawiki1.9 の管理用パスワード:"
+
+#, fuzzy
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "古い mediawiki1.7 のデータベースに管理者権限でアクセスできる mysql アカウ"
+#~ "ントを入力してください。"
+
+#~ msgid "You are upgrading from mediawiki1.7."
+#~ msgstr "mediawiki1.7 からアップグレードしています。"
+
+#~ msgid ""
+#~ "This package will install its files in a new location:\n"
+#~ " /var/lib/mediawiki1.9\n"
+#~ "Then you need to upgrade your old mediawiki1.7."
+#~ msgstr ""
+#~ "このパッケージではファイルが次の新しい場所にインストールされます:\n"
+#~ " /var/lib/mediawiki1.9\n"
+#~ "したがって、古い mediawiki1.7 をアップグレードする必要があります。"
+
+#~ msgid "If you don't know any account, the root user is sufficient."
+#~ msgstr "アカウントがわからない場合は root ユーザで十分です。"
+
+#~ msgid "Please give the password for the account you specified."
+#~ msgstr "指定したアカウントのパスワードを入力してください。"
--- mediawiki-1.12.0.orig/debian/po/it.po
+++ mediawiki-1.12.0/debian/po/it.po
@@ -0,0 +1,88 @@
+# Italian (it) translation of debconf templates for mediawiki
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the mediawiki package.
+# Luca Monducci <luca.mo@tiscali.it>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki italian debconf templates\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-23 11:52+0200\n"
+"Last-Translator: Luca Monducci <luca.mo@tiscali.it>\n"
+"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Server web da configurare automaticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Selezionare quale/i server web configurare automaticamente per MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Effettuare l'aggiornamento da:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "È già installata una versione più vecchia di MediaWiki."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Questa installazione può essere aggiornata automaticamente. La nuova "
+#~ "versione del pacchetto usa /var/lib/mediawiki per i file del wiki. "
+#~ "Inoltre deve essere aggiornato anche il vecchio database."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Scegliendo di aggiornare MediaWiki automaticamente, prima viene fatto il "
+#~ "backup e poi l'aggiornamento del database inoltre viene preparato un "
+#~ "nuovo file di configurazione. In alternativa è possibile effettuare "
+#~ "l'aggiornamento in seguito utilizzando il comando \"/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki\"."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Utente di amministrazione del database per MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Inserire un account MySQL con accesso come amministratore al vecchio "
+#~ "database per MediaWiki."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "In caso di dubbi, si può usare l'account root di MySQL."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Il file AdminSettings.php sarà creato solo se non viene specificato "
+#~ "l'account root."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Password di amministrazione del database per MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Inserire la password dell'account MySQL con accesso come amministratore "
+#~ "al vecchio database di MediaWiki."
--- mediawiki-1.12.0.orig/debian/po/ml.po
+++ mediawiki-1.12.0/debian/po/ml.po
@@ -0,0 +1,130 @@
+# MALAYALAM TRANSLATION OF MEDIAWIKI1.7 DEBCONF TEMPLATE.
+# Copyright (C) 2007 THE MEDIAWIKI'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the mediawiki package.
+# Sreerenj B<bsreerenj@gmail.com>, 2007
+msgid ""
+msgstr ""
+"Project-Id-Version:meidawiki1.7_ml\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-04-08 15:17-0400\n"
+"Last-Translator: Sreerenj B<bsreerenj@gmail.com>\n"
+"Language-Team: Swathanthra|സ്വതന്ത്ര Malayalam|മലയാളം Computing|കമ്പ്യൂട്ടിങ്ങ് <smc-"
+"discuss@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "സ്വതേ ക്രമീകരിക്കേണ്ട വെബ് സെര്‍വ(ര്‍)റുകള്‍:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"മീഡിയവിക്കിയ്ക്കുവേണ്ടി സ്വതേ ക്രമീകരിക്കപ്പെടേണ്ട വെബ് സെര്‍വ(ര്‍)റുകള്‍ ദയവായി തിുരഞ്ഞെടുക്കുക."
+
+#, fuzzy
+#~| msgid "Perform automatic upgrade from MediaWiki 1.5?"
+#~ msgid "Perform upgrade from:"
+#~ msgstr "മീഡിയവിക്കി 1.5 ല്‍ നിന്നും സ്വതേ പുതുക്കല്‍ ചെയ്യണമോ?"
+
+#, fuzzy
+#~| msgid ""
+#~| "The new package version uses /var/lib/mediawiki1.7 for the wiki "
+#~| "database.  The old database files need to be moved before performing the "
+#~| "upgrade."
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "പുതിയ പാക്കേജ് ലക്കം വിക്കി ‍ഡാറ്റാബേസിനു വേണ്ടി  /var/lib/mediawiki1.7 ഉപയോഗിക്കുന്നു."
+#~ "പുതുക്കുന്നതിനുമുന്‍പ് പഴയ ഡാറ്റാബേസ് ഫയലുകള്‍ മാറ്റേണ്ടതുണ്ട് ."
+
+#, fuzzy
+#~| msgid ""
+#~| "This operation can be done automatically: the database will be backed "
+#~| "up, upgraded, and a new configuration file will be prepared for the new "
+#~| "version. The operation can be performed now. Alternatively,  you can "
+#~| "perform it later by launching, as root, /usr/share/mediawiki1.7/debian-"
+#~| "scripts/upgrade-mediawiki1.5."
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "ഈ പ്രവര്‍ത്തനം സ്വതേ ചെയ്യാവുന്നതാണ്: ഡാറ്റാബേസ് പകര്‍പ്പ് സൂക്ഷിക്കുകയും, പുതുക്കുകയും, പുതിയ "
+#~ "ലക്കത്തിനുവേണ്ടി പുതിയ ക്രമീകരികരണ ഫയലുകള്‍ ഉണ്ടാകുകയും ചെയ്യുന്നതായിരിയ്ക്കും.ഈ പ്രവര്‍ത്തനം "
+#~ "ഇപ്പോള്‍ ചെയ്യാവുന്നതാണ്. ഇതിന് പകരമായി, ഇത് പിന്നീട്  /usr/share/mediawiki1.7/"
+#~ "debian-scripts/upgrade-mediawiki1.5  റൂട്ടായി തുടങ്ങിക്കൊണ്ട് ചെയ്യാവുന്നതാണ്."
+
+#, fuzzy
+#~| msgid "Database administrative user for MediaWiki 1.7:"
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "മീഡിയവിക്കി 1.7 ഡാറ്റാബേസിന്റെ നടത്തിപ്പുകാരനായ ഉപയോക്താവ്:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please provide a MySQL account that has administrative access to the "
+#~| "MediaWiki 1.5 database."
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "മീഡിയവിക്കി 1.5 ഡാറ്റാബേസില്‍ നടത്തിപ്പവകാശമുള്ള ഒരു  മൈെെസീക്വല്‍ (MySQL) അക്കൌണ്ട്  "
+#~ "ദയവായി തരുക."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "സംശയമുള്ളപ്പോള്‍ മൈെെസീക്വല്‍ (MySQL) റൂട്ട് അക്കൌണ്ട്  ഉപയോഗിക്കാവുന്നതാണ്."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "റൂട്ട് അക്കൌണ്ട്  സൂചിപ്പിച്ചില്ലെങ്കില്‍ ഒരു AdminSettings.php ഫയല്‍ "
+#~ "ഉണ്ടാക്കപ്പെടുന്നതായിരിയ്ക്കും."
+
+#, fuzzy
+#~| msgid "Database administrative password for MediaWiki 1.5:"
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "മീഡിയവിക്കി 1.5 നു വേണ്ടിയുള്ള ഡാറ്റാബേസ് നടത്തിപ്പിിനായുള്ള അടയാളവാക്ക്:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please specify the password of the MySQL account with administrative "
+#~| "access to the MediaWiki 1.5 database."
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "ദയവായി മീഡിയവിക്കി 1.5 ഡാറ്റാബേസ് നടത്തിപ്പവകാശമുള്ള  മൈെെസീക്വല്‍ (MySQL) "
+#~ "അക്കൌണ്ടിന്റെ  അടയാളവാക്ക് സൂചിപ്പിക്കുക."
+
+#~ msgid "MediaWiki is being upgraded from version 1.5."
+#~ msgstr "ലക്കം 1.5 ല്‍ നിന്നും മീഡിയവിക്കി പുതുക്കിക്കൊണ്ടിരിക്കുന്നു."
+
+#~ msgid "Configuration files fixed"
+#~ msgstr "ക്രമീകരികരണ ഫയലുകള്‍ ശരിയാക്കി."
+
+#~ msgid ""
+#~ "A previous bug in the mediawiki package forced configuration files to be "
+#~ "stored in /var/lib/mediawiki1.7."
+#~ msgstr ""
+#~ "മീഡിയവിക്കി പാക്കേജിലെ ഒരു പഴയ പിഴവ്  കാരണം ക്രമീകരികരണ ഫയലുകള്‍ /var/lib/"
+#~ "mediawiki1.7 ല്‍ ശേഖരിയ്കാന്‍ നിര്‍ബന്ധിതമായി."
+
+#~ msgid ""
+#~ "These files have been moved back to /etc/mediawiki1.7 and a backup  was "
+#~ "also made in that directory."
+#~ msgstr ""
+#~ "ഈ ഫയലുകള്‍ /etc/mediawiki1.7 ലേക്ക് തിരിച്ച് മാറ്റപ്പെടുകയും അതിന്റെ പകര്‍പ്പ്  ആ "
+#~ "ഡയറക്റ്ററിയിില്‍ ഉണ്ടാക്കപ്പെടുകയും ചെയ്തു."
--- mediawiki-1.12.0.orig/debian/po/nl.po
+++ mediawiki-1.12.0/debian/po/nl.po
@@ -0,0 +1,158 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-01 13:32+0100\n"
+"Last-Translator: Bart Cornelis <cobaco@linux.be>\n"
+"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Dutch\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Automatisch in te stellen webserver(s):"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Welke webserver(s) wilt u automatisch in laten  stellen voor MediaWiki?"
+
+#, fuzzy
+#~| msgid "Perform upgrade from :"
+#~ msgid "Perform upgrade from:"
+#~ msgstr "De automatische opwaardering uitvoeren van: "
+
+#, fuzzy
+#~| msgid "An older version of MediaWiki has been installed previously."
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Er was ooit al een oudere versie van MediaWiki geïnstalleerd."
+
+#, fuzzy
+#~| msgid ""
+#~| "This installation can be upgraded automatically. The new package "
+#~| "version  uses /var/lib/mediawiki for the wiki files. The old database "
+#~| "also needs to be updated."
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Deze installatie kan automatisch opgewaardeerd worden. Het nieuwe pakket "
+#~ "gebruikt /var/lib/mediawiki voor de wiki-bestanden. De oude database "
+#~ "dient ook opgewaardeerd te worden."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Als u deze operatie automatisch laat uitvoeren wordt er een reservekopie "
+#~ "van uw database gemaakt, vervolgens wordt de database opgewaardeerd en er "
+#~ "wordt een nieuw configuratiebestand aangemaakt voor de nieuwe versie. U "
+#~ "kunt ook later doen via het commando '/usr/share/mediawiki/debian-scripts/"
+#~ "upgrade-mediawiki'."
+
+#, fuzzy
+#~| msgid "MediaWiki database administrative user:"
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Databasebeheerder voor MediaWiki:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please provide a MySQL account that has administrative access to the "
+#~| "MediaWiki database."
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Gelieve hier een MySQL-account aan te geven die beheerdersrechten heeft "
+#~ "voor uw oude MediaWiki  database."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Bij twijfel kan de MySQL-root-account gebruikt worden."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Tenzij u de account 'root' aangegeven heeft wordt er een bestand "
+#~ "'AdminSettings.php' aangemaakt."
+
+#, fuzzy
+#~| msgid "MediaWiki database administrative password:"
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Databasebeheerderswachtwoord voor MediaWiki:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please specify the password of the MySQL account with administrative "
+#~| "access to the MediaWiki database."
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Gelieve hier een MySQL-account aan te geven die beheerdersrechten heeft "
+#~ "voor uw oude MediaWiki database."
+
+#~ msgid "MediaWiki is being upgraded from version 1.5."
+#~ msgstr "MediaWiki wordt opgewaardeerd vanaf versie 1.5."
+
+#~ msgid "Configuration files fixed"
+#~ msgstr "Configuratiebestanden zijn hersteld"
+
+#~ msgid ""
+#~ "A previous bug in the mediawiki package forced configuration files to be "
+#~ "stored in /var/lib/mediawiki."
+#~ msgstr ""
+#~ "Eerdere pakketten hadden een bug waardoor de configuratiebestanden in /"
+#~ "var/lib/mediawiki werden opgeslagen."
+
+#~ msgid ""
+#~ "These files have been moved back to /etc/mediawiki and a backup was also "
+#~ "made in that directory."
+#~ msgstr ""
+#~ "Deze bestanden zijn teruggeplaatst naar /etc/mediawiki en er is een "
+#~ "reservekopie gemaakt in diezelfde map."
+
+#~ msgid "You are upgrading from mediawiki1.5."
+#~ msgstr "U waardeert op vanaf mediawiki1.5."
+
+#~ msgid ""
+#~ "This package will install its files in a new location:\n"
+#~ " /var/lib/mediawiki\n"
+#~ "Then you need to upgrade your old mediawiki1.5."
+#~ msgstr ""
+#~ "Dit pakket installeert zijn bestanden in een nieuwe locatie:\n"
+#~ " /var/lib/mediawiki\n"
+#~ "U dient vervolgens uw oude mediawiki1.5 op te waarderen."
+
+#~ msgid "If you don't know any account, the root user is sufficient."
+#~ msgstr "Als u geen account weet, kunt u 'root' opgeven."
+
+#~ msgid "Please give the password for the account you specified."
+#~ msgstr ""
+#~ "Gelieve hier het wachtwoord van de eerder aangegeven account op te geven:"
+
+#~ msgid ""
+#~ "This is now solved, and your configuration files can now be found at /etc/"
+#~ "mediawiki. A backup has been made in case this failed, located in /etc/"
+#~ "mediawiki too."
+#~ msgstr ""
+#~ "Deze bug is nu opgelost en uw configuratiebestanden vindt u in /etc/"
+#~ "mediawiki . Voor de zekerheid is er een reservekopie gemaakt ,  u vindt "
+#~ "deze in /etc/mediawiki ."
--- mediawiki-1.12.0.orig/debian/po/pt.po
+++ mediawiki-1.12.0/debian/po/pt.po
@@ -0,0 +1,87 @@
+# Portuguese translation for mediawiki debconf messages.
+# This file is distributed under the same license as the mediawiki package.
+# Luísa Lourenço <kikentai@gmail.com>, 2006
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-04-30 23:40+0100\n"
+"Last-Translator: Luísa Lourenço <kikentai@gmail.com>\n"
+"Language-Team: Native Portuguese <traduz@debianpt.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidor(es) web a ser(em) configurado(s) automaticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Por favor seleccione o(s) servidor(es) de web que deve(m) ser configurado(s) "
+"automaticamente para o MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Efectuar actualização a partir de:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Uma versão mais antiga do MediaWiki está instalada."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Esta instalação pode ser actualizada automaticamente. A nova versão do "
+#~ "pacote usa o /var/lib/mediawiki para os ficheiros da wiki. A base de "
+#~ "dados antiga também precisa de ser actualizada."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Se escolher actualizar o MediaWiki automaticamente, a base de dados será "
+#~ "salvaguardada, actualizada, e um novo ficheiro de configuração será "
+#~ "preparado. Alternativamente, poderá efectuá-la mais tarde com o comando '/"
+#~ "usr/share/mediawiki/debian-scripts/upgrade-mediawiki'."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Utilizador administrativo do MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Por favor indique uma conta MySQL que tenha acesso administrativo à "
+#~ "antiga base de dados do MediaWiki."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Em caso de dúvida, a conta de root do MySQL pode ser usada."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Um ficheiro AdminSettings.php irá ser gerado a não ser que uma conta root "
+#~ "seja especificada."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Palavra passe administrativa do MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Por favor especifique a palavra chave da conta MySQL com acesso "
+#~ "administrativo à antiga base de dados do MediaWiki."
--- mediawiki-1.12.0.orig/debian/po/ru.po
+++ mediawiki-1.12.0/debian/po/ru.po
@@ -0,0 +1,91 @@
+# translation of t1.po to Russian
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki10\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-17 17:56+0400\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Веб-сервер(ы) для автоматической настройки:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr "Выберите веб-сервер(ы) для автоматической настройки под MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Выполнить обновление с:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Установлена старая версия MediaWiki."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "При установке может быть выполнено автоматическое обновление. В новой "
+#~ "версии пакета для wiki-файлов используется каталог /var/lib/mediawiki. "
+#~ "Старую базу данных также необходимо обновить."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Если вы выберете автоматическое обновление MediaWiki, будет выполнено "
+#~ "резервное копирование базы данных, обновление и подготовка нового файла "
+#~ "конфигурации. Или же вы можете сделать это позднее с помощью команды '/"
+#~ "usr/share/mediawiki/debian-scripts/upgrade-mediawiki'."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Административный пользователь базы данных MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Введите учётную запись MySQL с административным доступом к базе данных "
+#~ "MediaWiki."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr ""
+#~ "Если не знаете, можно использовать учётную запись суперпользователя MySQL "
+#~ "(root)."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Если указана не учётная запись root, то будет создан файл AdminSettings."
+#~ "php."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Административный пароль к базе данных MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Введите пароль учётной записи MySQL с административным доступом к базе "
+#~ "данных MediaWiki."
--- mediawiki-1.12.0.orig/debian/po/sk.po
+++ mediawiki-1.12.0/debian/po/sk.po
@@ -0,0 +1,84 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-08-13 02:41+0100\n"
+"Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
+"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Slovak\n"
+"X-Poedit-Country: SLOVAKIA\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Webový server/servery, ktoré sa majú automaticky nakonfigurovať:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Prosím, zvoľte webový server/servery, ktoré sa majú automaticky "
+"nakonfigurovať pre MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Vykonať upgrade z:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Staršia verzia MediaWiki je už nainštalovaná."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Je možné vykonať automatický upgradetejto inštalácie. Nová verzia balíka "
+#~ "používa /var/lib/mediawiki pre súbory wiki. Je tiež potrebné aktualizovať "
+#~ "starú databázu."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Ak si vyberiete automatický upgrade MediaWiki, databáza bude zálohovaná, "
+#~ "vykoná sa upgrade, a pripraví sa nový konfiguračný súbor. Môžete to tiež "
+#~ "urobiť neskôr pomocou príkazu '/usr/share/mediawiki/debian-scripts/"
+#~ "upgrade-mediawiki'."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Správca databázy MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Prosím zadajte MySQL účet, ktorý má prístup úrovne správcu k starej "
+#~ "databáze MediaWiki."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Ak ste na pochybách, je možné použiť MySQL root účet."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Ak nebude špecifikovaný root účet, vygeneruje sa súbor AdminSettings.php."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Heslo správcu databázy MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Prosím zadajte heslo MySQL účetu, ktorý má prístup úrovne správcu k "
+#~ "starej databáze MediaWiki."
--- mediawiki-1.12.0.orig/debian/po/ta.po
+++ mediawiki-1.12.0/debian/po/ta.po
@@ -0,0 +1,86 @@
+# translation of mediawiki.po to TAMIL
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Dr.T.Vasudevan <agnihot3@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-13 14:19+0530\n"
+"Last-Translator: Dr.T.Vasudevan <agnihot3@gmail.com>\n"
+"Language-Team: TAMIL <ubuntu-l10n-tam@lists.ubuntu.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "தானியங்கியாக வடிவமைக்க வேண்டிய சேவையகம்(ங்கள்)"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"மீடியாவிகி  தானியங்கியாக  வடிவமைக்கப்பட வேண்டிய சேவையகம்(ங்கள்) ஐ தேர்ந்தெடுக்கவும்."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "இதிலிருந்து மேம் படுத்தவும்:"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "பழைய பதிப்பு மீடியா விகி நிறுவப்பட்டுள்ளது."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "இந்த நிறுவலை தானியங்கியாக மேம்படுத்த இயலும். புதிய பொதி பதிப்பு விகி "
+#~ "கோப்புகளுக்கு /var/lib/mediawiki ஐ பயன்படுத்துகிறது.பழைய தரவுத்தளமும் புதிப்பிக்க "
+#~ "பட வேண்டும்"
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "தானியங்கியாக மேம்படுத்தலை தேர்ந்தெடுத்தால் தரவுத்தளம் காப்பு பிரதி எடுக்கப்பட்டு, "
+#~ "மேம்படுத்தப்பட்டு, புதிய வடிவமைப்பு கோப்பும் உருவாகப்படும். மாறாக நீங்கள் பின்னால் அதை "
+#~ "''/usr/share/mediawiki/'debian-scripts/upgrade-mediawiki' கட்டளை மூலம் "
+#~ "செய்யலாம். "
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "மீடியா விகி தரவுத்தள நிர்வாகி பயனர்:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "பழைய மீடியவிகி தரவுத்தளத்துக்கு நிர்வாகி அணுகல் தரும் மைஎஸ்க்யூஎல் கணக்கை தருக."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "சந்தேகமாக இருப்பின்  மைஎஸ்க்யூஎல் ரூட் கணக்கை பயன்படுத்தலாம்."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "ரூட் கணக்கை குறிக்கவில்லையானால் ஒரு AdminSettings.php கோப்பு உருவாக்கப்படும்."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "மீடியவிகி தரவுத்தள நிர்வாகி கடவுச்சொல்:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "பழைய மீடியவிகி தரவுத்தளத்துக்கு நிர்வாகி அணுகல் தரும் மைஎஸ்க்யூஎல் கணக்குக்கு "
+#~ "கடவுச்சொல்லை தருக."
--- mediawiki-1.12.0.orig/debian/po/sv.po
+++ mediawiki-1.12.0/debian/po/sv.po
@@ -0,0 +1,117 @@
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+# Developers do not need to manually edit POT or PO files.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki 1.4.10-1\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-01 09:59+0100\n"
+"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Webbservrar som automatiskt ska konfigureras:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr "V�lj de webbservrar som ska konfigureras automatiskt f�r MediaWiki."
+
+#, fuzzy
+#~| msgid "Perform upgrade from :"
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Genomf�r uppgradering fr�n :"
+
+#, fuzzy
+#~| msgid "An older version of MediaWiki has been installed previously."
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "En �ldre version av MediaWiki har tidigare installerats."
+
+#, fuzzy
+#~| msgid ""
+#~| "This installation can be upgraded automatically. The new package "
+#~| "version  uses /var/lib/mediawiki for the wiki files. The old database "
+#~| "also needs to be updated."
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Den h�r installationen kan uppgraderas automatiskt. Den nya "
+#~ "paketversionen anv�nder /var/lib/mediawiki f�r wikifilerna. Den gamla "
+#~ "databasen beh�ver ocks� uppdateras."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Om du v�ljer att automatiskt uppgradera MediaWiki kommer databasen att "
+#~ "s�kerhetskopieras, uppgraderas och en ny konfigurationsfil kommer att "
+#~ "f�rberedas. Alternativt kan du genomf�ra den senare med kommandot \"/usr/"
+#~ "share/mediawiki/debian-scripts/upgrade-mediawiki\"."
+
+#, fuzzy
+#~| msgid "MediaWiki database administrative user:"
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Administrativ anv�ndare f�r MediaWikis databas:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please provide a MySQL account that has administrative access to the "
+#~| "MediaWiki database."
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Ange ett MySQL-konto som har administrativ �tkomst till MediaWikis "
+#~ "databas."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Om du �r os�ker kan MySQL:s root-konto anv�ndas."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Filen AdminSettings.php kommer att genereras s�vida inte root-kontot "
+#~ "anges."
+
+#, fuzzy
+#~| msgid "MediaWiki database administrative password:"
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Administrativt l�senord f�r MediaWikis databas:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please specify the password of the MySQL account with administrative "
+#~| "access to the MediaWiki database."
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Ange l�senordet f�r MySQL-kontot med administrativ �tkomst till "
+#~ "MediaWikis databas."
+
+#~ msgid "apache, apache-ssl, apache2"
+#~ msgstr "apache, apache-ssl, apache2"
--- mediawiki-1.12.0.orig/debian/po/vi.po
+++ mediawiki-1.12.0/debian/po/vi.po
@@ -0,0 +1,86 @@
+# Vietnamese translation for MediaWiki.
+# Copyright © 2007 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@riverland.net.au>, 2007
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-06-14 16:36+0930\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.6.3b1\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Trình phục vụ Mạng cần tự động cấu hình:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Hãy chọn những trình phục vụ Mạng nên được cấu hình tự động cho MediaWiki."
+
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Nâng cấp từ :"
+
+#~ msgid "An older version of MediaWiki is installed."
+#~ msgstr "Phiên bản MediaWiki cũ được cài đặt."
+
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "Bản cài đặt này có thể tự động được nâng cấp. Phiên bản gói mới dùng « /"
+#~ "var/lib/mediawiki » cho các tập tin wiki. Cơ sở dữ liệu cũ cũng cần phải "
+#~ "được cập nhật."
+
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Nếu bạn chọn nâng cấp MediaWiki một cách tự động, cơ sở dữ liệu sẽ được "
+#~ "sao lưu và nâng cấp, và tập tin cấu hình mới được chuẩn bị. Hoặc bạn có "
+#~ "thể nâng cấp về sau, bằng lệnh « /usr/share/mediawiki/debian-scripts/"
+#~ "upgrade-mediawiki »."
+
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Người dùng quản trị cơ sở dữ liệu MediaWiki:"
+
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Hãy cung cấp tài khoản MySQL có quyền quản trị cơ sở dữ liệu MediaWiki cũ."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Chưa chắc thì có thể dùng tài khoản MySQL người chủ."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Không ghi rõ tài khoản người chủ thì tạo ra tập tin « AdminSettings.php »."
+
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Mật khẩu quản trị cơ sở dữ liệu MediaWiki:"
+
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Hãy ghi rõ mật khẩu của tài khoản MySQL có quyền quản trị cơ sở dữ liệu "
+#~ "MediaWiki cũ."
--- mediawiki-1.12.0.orig/debian/po/POTFILES.in
+++ mediawiki-1.12.0/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] templates
--- mediawiki-1.12.0.orig/debian/po/pt_BR.po
+++ mediawiki-1.12.0/debian/po/pt_BR.po
@@ -0,0 +1,133 @@
+# Brazilian Portuguese translation (mediawiki1.9)
+# Copyright (C) 2007 THE mediawiki1.9'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the mediawiki1.9 package.
+# Felipe Augusto van de Wiel (faw) <faw@debian.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: (20070409)\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel@lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2007-04-09 00:44-0300\n"
+"Last-Translator: Felipe Augusto van de Wiel (faw) <faw@debian.org>\n"
+"Language-Team: l10n portuguese <debian-l10n-portuguese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"pt_BR utf-8\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidor(es) web para configurar automaticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"MediaWiki."
+msgstr ""
+"Por favor, selecione o(s) servidor(es) web que deveria(m) ser "
+"automaticamente configurado(s) para o MediaWiki."
+
+#, fuzzy
+#~| msgid "Perform automatic upgrade from MediaWiki 1.7?"
+#~ msgid "Perform upgrade from:"
+#~ msgstr "Realizar a atualização automática a partir do MediaWiki 1.7?"
+
+#, fuzzy
+#~| msgid ""
+#~| "The new package version uses /var/lib/mediawiki1.9 for the wiki "
+#~| "database.  The old database files need to be moved before performing the "
+#~| "upgrade."
+#~ msgid ""
+#~ "This installation can be upgraded automatically. The new package version "
+#~ "uses /var/lib/mediawiki for the wiki files. The old database also needs "
+#~ "to be updated."
+#~ msgstr ""
+#~ "A nova versão do pacote usa /var/lib/mediawiki1.9 para a base de dados do "
+#~ "wiki. Os antigos arquivos da base de dados precisam ser movidos antes de "
+#~ "realizar a atualização."
+
+#, fuzzy
+#~| msgid ""
+#~| "This operation can be done automatically: the database will be backed "
+#~| "up, upgraded, and a new configuration file will be prepared for the new "
+#~| "version. The operation can be performed now. Alternatively, you can "
+#~| "perform it later by launching, as root, /usr/share/mediawiki1.9/debian-"
+#~| "scripts/upgrade-mediawiki1.7."
+#~ msgid ""
+#~ "If you choose to upgrade MediaWiki automatically, the database will be "
+#~ "backed up, upgraded, and a new configuration file will be prepared. "
+#~ "Alternatively, you can perform it later with the '/usr/share/mediawiki/"
+#~ "debian-scripts/upgrade-mediawiki' command."
+#~ msgstr ""
+#~ "Esta operação pode ser feita automaticamente: a base de dados será "
+#~ "copiada, atualizada, e um novo arquivo de configuração será preparado "
+#~ "para a nova versão. A operação pode ser realizada agora. "
+#~ "Alternativamente, você pode realizá-la posteriormente executando, como "
+#~ "root, /usr/share/mediawiki1.9/debian-scripts/upgrade-mediawiki1.7."
+
+#, fuzzy
+#~| msgid "Database administrative user for MediaWiki 1.7:"
+#~ msgid "MediaWiki database administrative user:"
+#~ msgstr "Usuário administrativo da base de dados para o MediaWiki 1.7:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please provide a MySQL account that has administrative access to the "
+#~| "MediaWiki 1.7 database."
+#~ msgid ""
+#~ "Please provide a MySQL account that has administrative access to the old "
+#~ "MediaWiki database."
+#~ msgstr ""
+#~ "Por favor, forneça uma conta MySQL que possua acesso administrativo à "
+#~ "base de dados do MediaWiki 1.7."
+
+#~ msgid "When in doubt, the MySQL root account can be used."
+#~ msgstr "Quando em dúvida, a conta root do MySQL pode ser usada."
+
+#~ msgid ""
+#~ "An AdminSettings.php file will be generated unless the root account is "
+#~ "specified."
+#~ msgstr ""
+#~ "Um arquivo AdminSettings.php será gerado a menos que a conta do root seja "
+#~ "especificada."
+
+#, fuzzy
+#~| msgid "Database administrative password for MediaWiki 1.7:"
+#~ msgid "MediaWiki database administrative password:"
+#~ msgstr "Senha administrativa da base de dados para o MediaWiki 1.7:"
+
+#, fuzzy
+#~| msgid ""
+#~| "Please specify the password of the MySQL account with administrative "
+#~| "access to the MediaWiki 1.7 database."
+#~ msgid ""
+#~ "Please specify the password of the MySQL account with administrative "
+#~ "access to the old MediaWiki database."
+#~ msgstr ""
+#~ "Por favor, especifique a senha da conta MySQL com acesso administrativo à "
+#~ "base de dados do MediaWiki 1.7."
+
+#~ msgid "MediaWiki is being upgraded from version 1.7."
+#~ msgstr "O MediaWiki está sendo atualizado a partir da versão 1.7."
+
+#~ msgid "Configuration files fixed"
+#~ msgstr "Arquivos de configuração corrigidos"
+
+#~ msgid ""
+#~ "A previous bug in the mediawiki package forced configuration files to be "
+#~ "stored in /var/lib/mediawiki1.9."
+#~ msgstr ""
+#~ "Um bug anterior no pacote mediawiki forçou os arquivos de configuração a "
+#~ "serem armazenados em /var/lib/mediawiki1.9."
+
+#~ msgid ""
+#~ "These files have been moved back to /etc/mediawiki1.9 and a backup was "
+#~ "also made in that directory."
+#~ msgstr ""
+#~ "Este arquivos foram movidos de volta para /etc/mediawiki1.9 e uma cópia "
+#~ "de segurança também foi feita nesse diretório."
--- mediawiki-1.12.0.orig/debian/etc/apache.conf
+++ mediawiki-1.12.0/debian/etc/apache.conf
@@ -0,0 +1,20 @@
+# Uncomment this to add an alias.
+# This does not work properly with virtual hosts..
+#Alias /mediawiki /var/lib/mediawiki
+
+<Directory /var/lib/mediawiki/>
+	Options +FollowSymLinks
+	AllowOverride All
+	order allow,deny
+	allow from all
+</Directory>
+
+# some directories must be protected
+<Directory /var/lib/mediawiki/config>
+	Options -FollowSymLinks
+	AllowOverride None
+</Directory>
+<Directory /var/lib/mediawiki/upload>
+	Options -FollowSymLinks
+	AllowOverride None
+</Directory>
--- mediawiki-1.12.0.orig/debian/etc/cherokee.conf
+++ mediawiki-1.12.0/debian/etc/cherokee.conf
@@ -0,0 +1,9 @@
+
+##
+## Virtual server for mediawiki
+##
+Directory /mediawiki {
+          Handler common
+          DocumentRoot /var/lib/mediawiki/
+}
+ 
--- mediawiki-1.12.0.orig/debian/patches/CVE-2008-4408.patch
+++ mediawiki-1.12.0/debian/patches/CVE-2008-4408.patch
@@ -0,0 +1,15 @@
+Index: mediawiki-1.12.0/includes/SkinTemplate.php
+===================================================================
+--- mediawiki-1.12.0.orig/includes/SkinTemplate.php	2008-10-14 15:54:23.000000000 +0200
++++ mediawiki-1.12.0/includes/SkinTemplate.php	2008-10-14 15:55:32.000000000 +0200
+@@ -1001,9 +1001,7 @@
+ 		# If we use the site's dynamic CSS, throw that in, too
+ 		if ( $wgUseSiteCss ) {
+ 			$query = "usemsgcache=yes&action=raw&ctype=text/css&smaxage=$wgSquidMaxage";
+-			$skinquery = '';
+-			if (($us = $wgRequest->getVal('useskin', '')) !== '')
+-				$skinquery = "&useskin=$us";
++			$skinquery = "&useskin=" . urlencode( $this->getSkinName() );
+ 			$sitecss .= '@import "' . self::makeNSUrl( 'Common.css', $query, NS_MEDIAWIKI) . '";' . "\n";
+ 			$sitecss .= '@import "' . self::makeNSUrl( ucfirst( $this->skinname ) . '.css', $query, NS_MEDIAWIKI ) . '";' . "\n";
+ 			$sitecss .= '@import "' . self::makeUrl( '-', "action=raw&gen=css$siteargs$skinquery" ) . '";' . "\n";
--- mediawiki-1.12.0.orig/debian/patches/mimetypes.patch
+++ mediawiki-1.12.0/debian/patches/mimetypes.patch
@@ -0,0 +1,15 @@
+Index: mediawiki-1.12.0/includes/DefaultSettings.php
+===================================================================
+--- mediawiki-1.12.0.orig/includes/DefaultSettings.php	2008-03-24 02:30:29.000000000 +0100
++++ mediawiki-1.12.0/includes/DefaultSettings.php	2008-03-24 02:30:29.000000000 +0100
+@@ -349,8 +349,8 @@
+ /** Sets the mime type definition file to use by MimeMagic.php.
+ * @global string $wgMimeTypeFile
+ */
+-$wgMimeTypeFile= "includes/mime.types";
+-#$wgMimeTypeFile= "/etc/mime.types";
++#$wgMimeTypeFile= "includes/mime.types";
++$wgMimeTypeFile= "/etc/mime.types";
+ #$wgMimeTypeFile= NULL; #use built-in defaults only.
+ 
+ /** Sets the mime type info file to use by MimeMagic.php.
--- mediawiki-1.12.0.orig/debian/patches/debian_specific_config.patch
+++ mediawiki-1.12.0/debian/patches/debian_specific_config.patch
@@ -0,0 +1,65 @@
+Index: mediawiki-1.12.0/config/index.php
+===================================================================
+--- mediawiki-1.12.0.orig/config/index.php	2008-03-20 23:08:49.000000000 +0100
++++ mediawiki-1.12.0/config/index.php	2008-03-24 02:31:45.000000000 +0100
+@@ -212,7 +212,7 @@
+ if( !is_writable( "." ) ) {
+ 	dieout( "<h2>Can't write config file, aborting</h2>
+ 
+-	<p>In order to configure the wiki you have to make the <tt>config</tt> subdirectory
++	<p>In order to configure the wiki you have to make the <tt>/var/lib/mediawiki/config</tt> subdirectory
+ 	writable by the web server. Once configuration is done you'll move the created
+ 	<tt>LocalSettings.php</tt> to the parent directory, and for added safety you can
+ 	then remove the <tt>config</tt> subdirectory entirely.</p>
+@@ -1454,16 +1454,7 @@
+ <div class="success-box">
+ <p>Installation successful!</p>
+ <p>To complete the installation, please do the following:
+-<ol>
+-	<li>Download config/LocalSettings.php with your FTP client or file manager</li>
+-	<li>Upload it to the parent directory</li>
+-	<li>Delete config/LocalSettings.php</li>
+-	<li>Start using <a href='../$script'>your wiki</a>!
+-</ol>
+-<p>If you are in a shared hosting environment, do <strong>not</strong> just move LocalSettings.php
+-remotely. LocalSettings.php is currently owned by the user your webserver is running under,
+-which means that anyone on the same server can read your database password! Downloading
+-it and uploading it again will hopefully change the ownership to a user ID specific to you.</p>
++<p>Move <tt>/var/lib/mediawiki/config/LocalSettings.php</tt> to <tt>/etc/mediawiki/LocalSettings.php</tt> for normal install, root of your install for multisite, with rights 640</p>
+ </div>
+ EOT;
+ 	} else {
+@@ -1471,7 +1462,7 @@
+ <div class="success-box">
+ <p>
+ <span class="success-message">Installation successful!</span>
+-Move the <tt>config/LocalSettings.php</tt> file to the parent directory, then follow
++Move <tt>/var/lib/mediawiki/config/LocalSettings.php</tt> to /etc/mediawiki, then follow
+ <a href="../$script"> this link</a> to your wiki.</p>
+ <p>You should change file permissions for <tt>LocalSettings.php</tt> as required to
+ prevent other users on the server reading passwords and altering configuration data.</p>
+@@ -1579,6 +1570,12 @@
+ 
+ # If you customize your file layout, set \$IP to the directory that contains
+ # the other MediaWiki files. It will be used as a base to locate files.
++
++# We define this to allow the configuration file to be explicitly 
++# located in /etc/mediawiki.
++# Change this if you are setting up multisite wikis on your server.
++define('MW_INSTALL_PATH','/var/lib/mediawiki');
++
+ if( defined( 'MW_INSTALL_PATH' ) ) {
+ 	\$IP = MW_INSTALL_PATH;
+ } else {
+@@ -1689,6 +1686,11 @@
+ 
+ \$wgDiff3 = \"{$slconf['diff3']}\";
+ 
++# debian specific include:
++if (is_file(\"/etc/mediawiki-extensions/extensions.php\")) {
++        include( \"/etc/mediawiki-extensions/extensions.php\" );
++}
++
+ # When you make changes to this configuration file, this will make
+ # sure that cached pages are cleared.
+ \$wgCacheEpoch = max( \$wgCacheEpoch, gmdate( 'YmdHis', @filemtime( __FILE__ ) ) );
--- mediawiki-1.12.0.orig/debian/patches/1.12.4-security.patch
+++ mediawiki-1.12.0/debian/patches/1.12.4-security.patch
@@ -0,0 +1,1680 @@
+Index: mediawiki-1.12.0/config/index.php
+===================================================================
+--- mediawiki-1.12.0.orig/config/index.php	2009-02-07 19:58:44.000000000 +0100
++++ mediawiki-1.12.0/config/index.php	2009-02-07 19:58:44.000000000 +0100
+@@ -72,7 +72,8 @@
+ <html>
+ <head>
+ 	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+-	<title>MediaWiki <?php echo( $wgVersion ); ?> Installation</title>
++	<meta name="robots" content="noindex,nofollow"/>
++	<title>MediaWiki <?php echo htmlspecialchars( $wgVersion ); ?> Installation</title>
+ 	<style type="text/css">
+ 
+ 		@import "../skins/monobook/main.css";
+@@ -190,7 +191,7 @@
+ <div id="content">
+ <div id="bodyContent">
+ 
+-<h1>MediaWiki <?php print $wgVersion ?> Installation</h1>
++<h1>MediaWiki <?php print htmlspecialchars( $wgVersion ) ?> Installation</h1>
+ 
+ <?php
+ 
+@@ -289,7 +290,7 @@
+ install_version_checks();
+ $self = 'Installer'; # Maintenance script name, to please Setup.php
+ 
+-print "<li>PHP " . phpversion() . " installed</li>\n";
++print "<li>PHP " . htmlspecialchars( phpversion() ) . " installed</li>\n";
+ 
+ error_reporting( 0 );
+ $phpdatabases = array();
+@@ -388,7 +389,7 @@
+ 	$conf->safeMode = false;
+ }
+ 
+-$sapi = php_sapi_name();
++$sapi = htmlspecialchars( php_sapi_name() );
+ print "<li>PHP server API is $sapi; ";
+ $script = defined('MW_INSTALL_PHP5_EXT') ? 'index.php5' : 'index.php';
+ if( $wgUsePathInfo ) {
+@@ -571,6 +572,9 @@
+ 		: $_SERVER["SERVER_ADMIN"];
+ 	$conf->EmergencyContact = importPost( "EmergencyContact", $defaultEmail );
+ 	$conf->DBtype = importPost( "DBtype", $DefaultDBtype );
++	if ( !isset( $ourdb[$conf->DBtype] ) ) {
++		$conf->DBtype = $DefaultDBtype;
++	}
+ ?>
+ 
+ <?php
+@@ -738,7 +742,7 @@
+ 			$errs["DBtype"] = "Unknown database type '$conf->DBtype'";
+ 			continue;
+ 		}
+-		print "<li>Database type: {$conf->DBtypename}</li>\n";
++		print "<li>Database type: " . htmlspecialchars( $conf->DBtypename ) . "</li>\n";
+ 		$dbclass = 'Database'.ucfirst($conf->DBtype);
+ 		$wgDBtype = $conf->DBtype;
+ 		$wgDBadminuser = "root";
+@@ -761,7 +765,7 @@
+ 
+ 		$wgTitle = Title::newFromText( "Installation script" );
+ 		error_reporting( E_ALL );
+-		print "<li>Loading class: $dbclass";
++		print "<li>Loading class: " . htmlspecialchars( $dbclass ) . "</li>\n";
+ 		$dbc = new $dbclass;
+ 
+ 		if( $conf->DBtype == 'mysql' ) {
+@@ -785,7 +789,7 @@
+ 			}
+ 
+ 			# Attempt to connect
+-			echo( "<li>Attempting to connect to database server as $db_user..." );
++			echo( "<li>Attempting to connect to database server as " . htmlspecialchars( $db_user ) . "..." );
+ 			$wgDatabase = Database::newFromParams( $wgDBserver, $db_user, $db_pass, '', 1 );
+ 
+ 			# Check the connection and respond to errors
+@@ -820,7 +824,7 @@
+ 					case 2003:
+ 					default:
+ 						# General connection problem
+-						echo( "failed with error [$errno] $errtx.</li>\n" );
++						echo( htmlspecialchars( "failed with error [$errno] $errtx." ) . "</li>\n" );
+ 						$errs["DBserver"] = "Connection failed";
+ 						break;
+ 				} # switch
+@@ -834,10 +838,11 @@
+ 			## Possible connect as a superuser
+ 			if( $useRoot ) {
+ 				$wgDBsuperuser = $conf->RootUser;
+-				echo( "<li>Attempting to connect to database \"postgres\" as superuser \"$wgDBsuperuser\"..." );
++				echo( "<li>Attempting to connect to database \"postgres\" as superuser \"" . 
++					htmlspecialchars( $wgDBsuperuser ) . "\"..." );
+ 				$wgDatabase = $dbc->newFromParams($wgDBserver, $wgDBsuperuser, $conf->RootPW, "postgres", 1);
+ 				if (!$wgDatabase->isOpen()) {
+-					print " error: " . $wgDatabase->lastError() . "</li>\n";
++					print " error: " . htmlspecialchars( $wgDatabase->lastError() ) . "</li>\n";
+ 					$errs["DBserver"] = "Could not connect to database as superuser";
+ 					$errs["RootUser"] = "Check username";
+ 					$errs["RootPW"] = "and password";
+@@ -845,10 +850,11 @@
+ 				}
+ 				$wgDatabase->initial_setup($conf->RootPW, 'postgres');
+ 			}
+-			echo( "<li>Attempting to connect to database \"$wgDBname\" as \"$wgDBuser\"..." );
++			echo( "<li>Attempting to connect to database \"" . htmlspecialchars( $wgDBname ) . 
++				"\" as \"" . htmlspecialchars( $wgDBuser ) . "\"..." );
+ 			$wgDatabase = $dbc->newFromParams($wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, 1);
+ 			if (!$wgDatabase->isOpen()) {
+-				print " error: " . $wgDatabase->lastError() . "</li>\n";
++				print " error: " . htmlspecialchars( $wgDatabase->lastError() ) . "</li>\n";
+ 			} else {
+ 				$myver = $wgDatabase->getServerVersion();
+ 			}
+@@ -860,7 +866,7 @@
+ 			continue;
+ 		}
+ 
+-		print "<li>Connected to $myver";
++		print "<li>Connected to " . htmlspecialchars( $myver );
+ 		if ($conf->DBtype == 'mysql') {
+ 			if( version_compare( $myver, "4.0.14" ) < 0 ) {
+ 				dieout( " -- mysql 4.0.14 or later required. Aborting." );
+@@ -946,15 +952,19 @@
+ 						}
+ 					}
+ 					if ( $existingSchema && $existingSchema != $conf->DBschema ) {
+-						print "<li><strong>Warning:</strong> you requested the {$conf->DBschema} schema, " .
+-							"but the existing database has the $existingSchema schema. This upgrade script ". 
+-							"can't convert it, so it will remain $existingSchema.</li>\n";
++						$encExisting = htmlspecialchars( $existingSchema );
++						$encRequested = htmlspecialchars( $conf->DBschema );
++						print "<li><strong>Warning:</strong> you requested the $encRequested schema, " .
++							"but the existing database has the $encExisting schema. This upgrade script ". 
++							"can't convert it, so it will remain $encExisting.</li>\n";
+ 						$conf->setSchema( $existingSchema, $conf->DBengine );
+ 					}
+ 					if ( $existingEngine && $existingEngine != $conf->DBengine ) {
+-						print "<li><strong>Warning:</strong> you requested the {$conf->DBengine} storage " .
+-							"engine, but the existing database uses the $existingEngine engine. This upgrade " .
+-							"script can't convert it, so it will remain $existingEngine.</li>\n";
++						$encExisting = htmlspecialchars( $existingEngine );
++						$encRequested = htmlspecialchars( $conf->DBengine );
++						print "<li><strong>Warning:</strong> you requested the $encRequested storage " .
++							"engine, but the existing database uses the $encExisting engine. This upgrade " .
++							"script can't convert it, so it will remain $encExisting.</li>\n";
+ 						$conf->setSchema( $conf->DBschema, $existingEngine );
+ 					}
+ 				}
+@@ -995,7 +1005,8 @@
+ 				}
+ 				$wgDatabase->freeResult( $res );
+ 				if ( !$found && $conf->DBengine != 'MyISAM' ) {
+-					echo "<li><strong>Warning:</strong> {$conf->DBengine} storage engine not available, " .
++					echo "<li><strong>Warning:</strong> " . htmlspecialchars( $conf->DBengine ) . 
++						" storage engine not available, " .
+ 						"using MyISAM instead</li>\n";
+ 					$conf->setSchema( $conf->DBschema, 'MyISAM' );
+ 				}
+@@ -1034,10 +1045,10 @@
+ 				if( $wgDatabase2->isOpen() ) {
+ 					# Nope, just close the test connection and continue
+ 					$wgDatabase2->close();
+-					echo( "<li>User $wgDBuser exists. Skipping grants.</li>\n" );
++					echo( "<li>User " . htmlspecialchars( $wgDBuser ) . " exists. Skipping grants.</li>\n" );
+ 				} else {
+ 					# Yes, so run the grants
+-					echo( "<li>Granting user permissions to $wgDBuser on $wgDBname..." );
++					echo( "<li>" . htmlspecialchars( "Granting user permissions to $wgDBuser on $wgDBname..." ) );
+ 					dbsource( "../maintenance/users.sql", $wgDatabase );
+ 					echo( "success.</li>\n" );
+ 				}
+@@ -1151,7 +1162,9 @@
+ 			$list = getLanguageList();
+ 			foreach( $list as $code => $name ) {
+ 				$sel = ($code == $conf->LanguageCode) ? 'selected="selected"' : '';
+-				echo "\t\t<option value=\"$code\" $sel>$name</option>\n";
++				$encCode = htmlspecialchars( $code );
++				$encName = htmlspecialchars( $name );
++				echo "\n\t\t<option value=\"$encCode\" $sel>$encName</option>";
+ 			}
+ 		?>
+ 		</select>
+@@ -1316,7 +1329,7 @@
+ <div class="config-section">
+ <div class="config-input">
+ 		<label class='column'>Database type:</label>
+-<?php if (isset($errs['DBpicktype'])) print "<span class='error'>$errs[DBpicktype]</span>\n"; ?>
++<?php if (isset($errs['DBpicktype'])) print "<span class='error'>" . htmlspecialchars( $errs['DBpicktype'] ) . "</span>\n"; ?>
+ 		<ul class='plain'><?php database_picker($conf) ?></ul>
+ 	</div>
+ 
+@@ -1434,7 +1447,7 @@
+ </div>
+ 
+ <script type="text/javascript">
+-window.onload = toggleDBarea('<?php echo $conf->DBtype; ?>',
++window.onload = toggleDBarea('<?php echo Xml::encodeJsVar( $conf->DBtype ); ?>',
+ <?php
+ 	## If they passed in a root user name, don't populate it on page load
+ 	echo strlen(importPost('RootUser', '')) ? 0 : 1;
+@@ -1729,10 +1742,8 @@
+ 	return importVar( $_REQUEST, $name, $default );
+ }
+ 
+-$radioCount = 0;
+-
+ function aField( &$conf, $field, $text, $type = "text", $value = "", $onclick = '' ) {
+-	global $radioCount;
++	static $radioCount = 0;
+ 	if( $type != "" ) {
+ 		$xtype = "type=\"$type\"";
+ 	} else {
+@@ -1774,7 +1785,9 @@
+ 	}
+ 
+ 	global $errs;
+-	if(isset($errs[$field])) echo "<span class='error'>" . $errs[$field] . "</span>\n";
++	if(isset($errs[$field])) {
++		echo "<span class='error'>" . htmlspecialchars( $errs[$field] ) . "</span>\n";
++	}
+ }
+ 
+ function getLanguageList() {
+@@ -1867,7 +1880,7 @@
+ 		fclose( $fp );
+ 	}
+ 	if ( !$errstr ) {
+-		echo "<li>Connected to memcached on $host:$port successfully";
++		echo "<li>Connected to memcached on " . htmlspecialchars( "$host:$port" ) ." successfully</li>";
+ 	}
+ 	return $errstr;
+ }
+Index: mediawiki-1.12.0/includes/GlobalFunctions.php
+===================================================================
+--- mediawiki-1.12.0.orig/includes/GlobalFunctions.php	2008-03-20 23:08:48.000000000 +0100
++++ mediawiki-1.12.0/includes/GlobalFunctions.php	2009-02-07 19:58:44.000000000 +0100
+@@ -2405,3 +2405,18 @@
+ 		echo "Waiting for a database server: $lag seconds lagged\n";
+ 	}
+ }
++
++/**
++ * Output some plain text in command-line mode or in the installer (updaters.inc).
++ * Do not use it in any other context, its behaviour is subject to change.
++ */
++function wfOut( $s ) {
++	static $lineStarted = false;
++	global $wgCommandLineMode;
++	if ( $wgCommandLineMode && !defined( 'MEDIAWIKI_INSTALL' ) ) {
++		echo $s;
++	} else {
++		echo htmlspecialchars( $s );
++	}
++	flush();
++}
+Index: mediawiki-1.12.0/maintenance/convertLinks.inc
+===================================================================
+--- mediawiki-1.12.0.orig/maintenance/convertLinks.inc	2008-03-20 23:08:42.000000000 +0100
++++ mediawiki-1.12.0/maintenance/convertLinks.inc	2009-02-07 19:58:44.000000000 +0100
+@@ -8,11 +8,11 @@
+ function convertLinks() {
+ 	global $wgDBtype;
+ 	if( $wgDBtype == 'postgres' ) {
+-		print "Links table already ok on Postgres.\n";
++		wfOut( "Links table already ok on Postgres.\n" );
+ 		return;
+ 	}
+ 
+-	print "Converting links table to ID-ID...\n";
++	wfOut( "Converting links table to ID-ID...\n" );
+ 
+ 	global $wgLang, $wgDBserver, $wgDBadminuser, $wgDBadminpassword, $wgDBname;
+ 	global $noKeys, $logPerformance, $fh;
+@@ -47,7 +47,7 @@
+ 
+ 	$res = $dbw->query( "SELECT l_from FROM $links LIMIT 1" );
+ 	if ( $dbw->fieldType( $res, 0 ) == "int" ) {
+-		print "Schema already converted\n";
++		wfOut( "Schema already converted\n" );
+ 		return;
+ 	}
+ 
+@@ -57,13 +57,13 @@
+ 	$dbw->freeResult( $res );
+ 
+ 	if ( $numRows == 0 ) {
+-		print "Updating schema (no rows to convert)...\n";
++		wfOut( "Updating schema (no rows to convert)...\n" );
+ 		createTempTable();
+ 	} else {
+ 		if ( $logPerformance ) { $fh = fopen ( $perfLogFilename, "w" ); }
+ 		$baseTime = $startTime = getMicroTime();
+ 		# Create a title -> cur_id map
+-		print "Loading IDs from $cur table...\n";
++		wfOut( "Loading IDs from $cur table...\n" );
+ 		performanceLog ( "Reading $numRows rows from cur table...\n" );
+ 		performanceLog ( "rows read vs seconds elapsed:\n" );
+ 
+@@ -81,13 +81,13 @@
+ 			if ($reportCurReadProgress) {
+ 				if (($curRowsRead % $curReadReportInterval) == 0) {
+ 					performanceLog( $curRowsRead . " " . (getMicroTime() - $baseTime) . "\n" );
+-					print "\t$curRowsRead rows of $cur table read.\n";
++					wfOut( "\t$curRowsRead rows of $cur table read.\n" );
+ 				}
+ 			}
+ 		}
+ 		$dbw->freeResult( $res );
+ 		$dbw->bufferResults( true );
+-		print "Finished loading IDs.\n\n";
++		wfOut( "Finished loading IDs.\n\n" );
+ 		performanceLog( "Took " . (getMicroTime() - $baseTime) . " seconds to load IDs.\n\n" );
+ 	#--------------------------------------------------------------------
+ 
+@@ -96,7 +96,7 @@
+ 		createTempTable();
+ 		performanceLog( "Resetting timer.\n\n" );
+ 		$baseTime = getMicroTime();
+-		print "Processing $numRows rows from $links table...\n";
++		wfOut( "Processing $numRows rows from $links table...\n" );
+ 		performanceLog( "Processing $numRows rows from $links table...\n" );
+ 		performanceLog( "rows inserted vs seconds elapsed:\n" );
+ 
+@@ -126,19 +126,19 @@
+ 				}
+ 			}
+ 			$dbw->freeResult($res);
+-			#print "rowOffset: $rowOffset\ttuplesAdded: $tuplesAdded\tnumBadLinks: $numBadLinks\n";
++			#wfOut( "rowOffset: $rowOffset\ttuplesAdded: $tuplesAdded\tnumBadLinks: $numBadLinks\n" );
+ 			if ( $tuplesAdded != 0  ) {
+ 				if ($reportLinksConvProgress) {
+-					print "Inserting $tuplesAdded tuples into $links_temp...";
++					wfOut( "Inserting $tuplesAdded tuples into $links_temp..." );
+ 				}
+ 				$dbw->query( implode("",$sqlWrite) );
+ 				$totalTuplesInserted += $tuplesAdded;
+ 				if ($reportLinksConvProgress)
+-					print " done. Total $totalTuplesInserted tuples inserted.\n";
++					wfOut( " done. Total $totalTuplesInserted tuples inserted.\n" );
+ 					performanceLog( $totalTuplesInserted . " " . (getMicroTime() - $baseTime) . "\n"  );
+ 			}
+ 		}
+-		print "$totalTuplesInserted valid titles and $numBadLinks invalid titles were processed.\n\n";
++		wfOut( "$totalTuplesInserted valid titles and $numBadLinks invalid titles were processed.\n\n" );
+ 		performanceLog( "$totalTuplesInserted valid titles and $numBadLinks invalid titles were processed.\n" );
+ 		performanceLog( "Total execution time: " . (getMicroTime() - $startTime) . " seconds.\n" );
+ 		if ( $logPerformance ) { fclose ( $fh ); }
+@@ -148,25 +148,25 @@
+ 	if ( $overwriteLinksTable ) {
+ 		$dbConn = Database::newFromParams( $wgDBserver, $wgDBadminuser, $wgDBadminpassword, $wgDBname );
+ 		if (!($dbConn->isOpen())) {
+-			print "Opening connection to database failed.\n";
++			wfOut( "Opening connection to database failed.\n" );
+ 			return;
+ 		}
+ 		# Check for existing links_backup, and delete it if it exists.
+-		print "Dropping backup links table if it exists...";
++		wfOut( "Dropping backup links table if it exists..." );
+ 		$dbConn->query( "DROP TABLE IF EXISTS $links_backup", DB_MASTER);
+-		print " done.\n";
++		wfOut( " done.\n" );
+ 
+ 		# Swap in the new table, and move old links table to links_backup
+-		print "Swapping tables '$links' to '$links_backup'; '$links_temp' to '$links'...";
++		wfOut( "Swapping tables '$links' to '$links_backup'; '$links_temp' to '$links'..." );
+ 		$dbConn->query( "RENAME TABLE links TO $links_backup, $links_temp TO $links", DB_MASTER );
+-		print " done.\n\n";
++		wfOut( " done.\n\n" );
+ 
+ 		$dbConn->close();
+-		print "Conversion complete. The old table remains at $links_backup;\n";
+-		print "delete at your leisure.\n";
++		wfOut( "Conversion complete. The old table remains at $links_backup;\n" );
++		wfOut( "delete at your leisure.\n" );
+ 	} else {
+-		print "Conversion complete.  The converted table is at $links_temp;\n";
+-		print "the original links table is unchanged.\n";
++		wfOut( "Conversion complete.  The converted table is at $links_temp;\n" );
++		wfOut( "the original links table is unchanged.\n" );
+ 	}
+ }
+ 
+@@ -178,16 +178,16 @@
+ 	$dbConn = Database::newFromParams( $wgDBserver, $wgDBadminuser, $wgDBadminpassword, $wgDBname );
+ 
+ 	if (!($dbConn->isOpen())) {
+-		print "Opening connection to database failed.\n";
++		wfOut( "Opening connection to database failed.\n" );
+ 		return;
+ 	}
+ 	$links_temp = $dbConn->tableName( 'links_temp' );
+ 
+-	print "Dropping temporary links table if it exists...";
++	wfOut( "Dropping temporary links table if it exists..." );
+ 	$dbConn->query( "DROP TABLE IF EXISTS $links_temp");
+-	print " done.\n";
++	wfOut( " done.\n" );
+ 
+-	print "Creating temporary links table...";
++	wfOut( "Creating temporary links table..." );
+ 	if ( $noKeys ) {
+ 		$dbConn->query( "CREATE TABLE $links_temp ( " .
+ 		"l_from int(8) unsigned NOT NULL default '0', " .
+@@ -199,7 +199,7 @@
+ 		"UNIQUE KEY l_from(l_from,l_to), " .
+ 		"KEY (l_to))");
+ 	}
+-	print " done.\n\n";
++	wfOut( " done.\n\n" );
+ }
+ 
+ function performanceLog( $text ) {
+Index: mediawiki-1.12.0/maintenance/initStats.inc
+===================================================================
+--- mediawiki-1.12.0.orig/maintenance/initStats.inc	2008-03-20 23:08:41.000000000 +0100
++++ mediawiki-1.12.0/maintenance/initStats.inc	2009-02-07 19:58:44.000000000 +0100
+@@ -3,34 +3,34 @@
+ function wfInitStats( $options=array() ) {
+ 	$dbr = wfGetDB( DB_SLAVE );
+ 
+-	echo "Counting total edits...";
++	wfOut( "Counting total edits..." );
+ 	$edits = $dbr->selectField( 'revision', 'COUNT(*)', '', __METHOD__ );
+ 	$edits += $dbr->selectField( 'archive', 'COUNT(*)', '', __METHOD__ );
+-	echo "{$edits}\nCounting number of articles...";
++	wfOut( "{$edits}\nCounting number of articles..." );
+ 
+ 	global $wgContentNamespaces;
+ 	$good  = $dbr->selectField( 'page', 'COUNT(*)', array( 'page_namespace' => $wgContentNamespaces, 'page_is_redirect' => 0, 'page_len > 0' ), __METHOD__ );
+-	echo "{$good}\nCounting total pages...";
++	wfOut( "{$good}\nCounting total pages..." );
+ 
+ 	$pages = $dbr->selectField( 'page', 'COUNT(*)', '', __METHOD__ );
+-	echo "{$pages}\nCounting number of users...";
++	wfOut( "{$pages}\nCounting number of users..." );
+ 
+ 	$users = $dbr->selectField( 'user', 'COUNT(*)', '', __METHOD__ );
+-	echo "{$users}\nCounting number of admins...";
++	wfOut( "{$users}\nCounting number of admins..." );
+ 
+ 	$admin = $dbr->selectField( 'user_groups', 'COUNT(*)', array( 'ug_group' => 'sysop' ), __METHOD__ );
+-	echo "{$admin}\nCounting number of images...";
++	wfOut( "{$admin}\nCounting number of images..." );
+ 
+ 	$image = $dbr->selectField( 'image', 'COUNT(*)', '', __METHOD__ );
+-	echo "{$image}\n";
++	wfOut( "{$image}\n" );
+ 
+ 	if( !isset( $options['noviews'] ) ) {
+-		echo "Counting total page views...";
++		wfOut( "Counting total page views..." );
+ 		$views = $dbr->selectField( 'page', 'SUM(page_counter)', '', __METHOD__ );
+-		echo "{$views}\n";
++		wfOut( "{$views}\n" );
+ 	}
+ 
+-	echo "\nUpdating site statistics...";
++	wfOut( "\nUpdating site statistics..." );
+ 
+ 	$dbw = wfGetDB( DB_MASTER );
+ 	$values = array( 'ss_total_edits' => $edits,
+@@ -49,7 +49,7 @@
+ 		$dbw->insert( 'site_stats', array_merge( $values, $conds, $views ), __METHOD__ );
+ 	}
+ 
+-	echo( "done.\n" );
++	wfOut( "done.\n" );
+ }
+ 
+ ?>
+\ No newline at end of file
+Index: mediawiki-1.12.0/maintenance/updaters.inc
+===================================================================
+--- mediawiki-1.12.0.orig/maintenance/updaters.inc	2008-03-20 23:08:42.000000000 +0100
++++ mediawiki-1.12.0/maintenance/updaters.inc	2009-02-07 19:58:44.000000000 +0100
+@@ -142,11 +142,11 @@
+ 	global $wgDatabase;
+ 	if ( $wgDatabase->tableExists( $from ) ) {
+ 		if ( $wgDatabase->tableExists( $to ) ) {
+-			echo "...can't move table $from to $to, $to already exists.\n";
++			wfOut( "...can't move table $from to $to, $to already exists.\n" );
+ 		} else {
+-			echo "Moving table $from to $to...";
++			wfOut( "Moving table $from to $to..." );
+ 			dbsource( archive($patch), $wgDatabase );
+-			echo "ok\n";
++			wfOut( "ok\n" );
+ 		}
+ 	} else {
+ 		// Source table does not exist
+@@ -158,47 +158,47 @@
+ function add_table( $name, $patch, $fullpath=false ) {
+ 	global $wgDatabase;
+ 	if ( $wgDatabase->tableExists( $name ) ) {
+-		echo "...$name table already exists.\n";
++		wfOut( "...$name table already exists.\n" );
+ 	} else {
+-		echo "Creating $name table...";
++		wfOut( "Creating $name table..." );
+ 		if( $fullpath ) {
+ 			dbsource( $patch, $wgDatabase );
+ 		} else {
+ 			dbsource( archive($patch), $wgDatabase );
+ 		}
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+ function add_field( $table, $field, $patch, $fullpath=false ) {
+ 	global $wgDatabase;
+ 	if ( !$wgDatabase->tableExists( $table ) ) {
+-		echo "...$table table does not exist, skipping new field patch\n";
++		wfOut( "...$table table does not exist, skipping new field patch\n" );
+ 	} elseif ( $wgDatabase->fieldExists( $table, $field ) ) {
+-		echo "...have $field field in $table table.\n";
++		wfOut( "...have $field field in $table table.\n" );
+ 	} else {
+-		echo "Adding $field field to table $table...";
++		wfOut( "Adding $field field to table $table..." );
+ 		if( $fullpath ) {
+ 			dbsource( $patch, $wgDatabase );
+ 		} else {
+ 			dbsource( archive($patch), $wgDatabase );
+ 		}
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+ function add_index( $table, $index, $patch, $fullpath=false ) {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->indexExists( $table, $index ) ) {
+-		echo "...$index key already set on $table table.\n";
++		wfOut( "...$index key already set on $table table.\n" );
+ 	} else {
+-		echo "Adding $index key to table $table... ";
++		wfOut( "Adding $index key to table $table... " );
+ 		if( $fullpath ) {
+ 			dbsource( $patch, $wgDatabase );
+ 		} else {
+ 			dbsource( archive($patch), $wgDatabase );
+ 		}
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+@@ -214,11 +214,11 @@
+ 
+ 	global $wgDatabase;
+ 	$fname = "Update script: update_passwords()";
+-	print "\nIt appears that you need to update the user passwords in your\n" .
++	wfOut( "\nIt appears that you need to update the user passwords in your\n" .
+ 	  "database. If you have already done this (if you've run this update\n" .
+ 	  "script once before, for example), doing so again will make all your\n" .
+ 	  "user accounts inaccessible, so be sure you only do this once.\n" .
+-	  "Update user passwords? (yes/no)";
++	  "Update user passwords? (yes/no)" );
+ 
+ 	$resp = readconsole();
+     if ( ! ( "Y" == $resp{0} || "y" == $resp{0} ) ) { return; }
+@@ -241,15 +241,15 @@
+ 	# Check that interwiki table exists; if it doesn't source it
+ 	global $wgDatabase, $IP;
+ 	if( $wgDatabase->tableExists( "interwiki" ) ) {
+-		echo "...already have interwiki table\n";
++		wfOut( "...already have interwiki table\n" );
+ 		return true;
+ 	}
+-	echo "Creating interwiki table: ";
++	wfOut( "Creating interwiki table: " );
+ 	dbsource( archive("patch-interwiki.sql") );
+-	echo "ok\n";
+-	echo "Adding default interwiki definitions: ";
++	wfOut( "ok\n" );
++	wfOut( "Adding default interwiki definitions: " );
+ 	dbsource( "$IP/maintenance/interwiki.sql" );
+-	echo "ok\n";
++	wfOut( "ok\n" );
+ }
+ 
+ function do_index_update() {
+@@ -257,12 +257,12 @@
+ 	global $wgDatabase;
+ 	$meta = $wgDatabase->fieldInfo( "recentchanges", "rc_timestamp" );
+ 	if( !$meta->isMultipleKey() ) {
+-		echo "Updating indexes to 20031107: ";
++		wfOut( "Updating indexes to 20031107: " );
+ 		dbsource( archive("patch-indexes.sql") );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 		return true;
+ 	}
+-	echo "...indexes seem up to 20031107 standards\n";
++	wfOut( "...indexes seem up to 20031107 standards\n" );
+ 	return false;
+ }
+ 
+@@ -271,67 +271,67 @@
+ 
+ 	$meta = $wgDatabase->fieldInfo( "image", "img_major_mime" );
+ 	if( !$meta->isMultipleKey() ) {
+-		echo "Updating indexes to 20050912: ";
++		wfOut( "Updating indexes to 20050912: " );
+ 		dbsource( archive("patch-mimesearch-indexes.sql") );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 		return true;
+ 	}
+-	echo "...indexes seem up to 20050912 standards\n";
++	wfOut( "...indexes seem up to 20050912 standards\n" );
+ 	return false;
+ }
+ 
+ function do_image_name_unique_update() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->indexExists( 'image', 'PRIMARY' ) ) {
+-		echo "...image primary key already set.\n";
++		wfOut( "...image primary key already set.\n" );
+ 	} else {
+-		echo "Making img_name the primary key... ";
++		wfOut( "Making img_name the primary key... " );
+ 		dbsource( archive("patch-image_name_primary.sql"), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+ function do_logging_timestamp_index() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->indexExists( 'logging', 'times' ) ) {
+-		echo "...timestamp key on logging already exists.\n";
++		wfOut( "...timestamp key on logging already exists.\n" );
+ 	} else {
+-		echo "Adding timestamp key on logging table... ";
++		wfOut( "Adding timestamp key on logging table... " );
+ 		dbsource( archive("patch-logging-times-index.sql"), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+ function do_archive_user_index() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->indexExists( 'archive', 'usertext_timestamp' ) ) {
+-		echo "...usertext,timestamp key on archive already exists.\n";
++		wfOut( "...usertext,timestamp key on archive already exists.\n" );
+ 	} else {
+-		echo "Adding usertext,timestamp key on archive table... ";
++		wfOut( "Adding usertext,timestamp key on archive table... " );
+ 		dbsource( archive("patch-archive-user-index.sql"), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+ function do_image_user_index() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->indexExists( 'image', 'img_usertext_timestamp' ) ) {
+-		echo "...usertext,timestamp key on image already exists.\n";
++		wfOut( "...usertext,timestamp key on image already exists.\n" );
+ 	} else {
+-		echo "Adding usertext,timestamp key on image table... ";
++		wfOut( "Adding usertext,timestamp key on image table... " );
+ 		dbsource( archive("patch-image-user-index.sql"), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+ function do_oldimage_user_index() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->indexExists( 'oldimage', 'oi_usertext_timestamp' ) ) {
+-		echo "...usertext,timestamp key on oldimage already exists.\n";
++		wfOut( "...usertext,timestamp key on oldimage already exists.\n" );
+ 	} else {
+-		echo "Adding usertext,timestamp key on oldimage table... ";
++		wfOut( "Adding usertext,timestamp key on oldimage table... " );
+ 		dbsource( archive("patch-oldimage-user-index.sql"), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+@@ -339,18 +339,18 @@
+ 	global $wgDatabase;
+ 	$fname = 'do_watchlist_update';
+ 	if( $wgDatabase->fieldExists( 'watchlist', 'wl_notificationtimestamp' ) ) {
+-		echo "The watchlist table is already set up for email notification.\n";
++		wfOut( "The watchlist table is already set up for email notification.\n" );
+ 	} else {
+-		echo "Adding wl_notificationtimestamp field for email notification management.";
++		wfOut( "Adding wl_notificationtimestamp field for email notification management." );
+ 		/* ALTER TABLE watchlist ADD (wl_notificationtimestamp varchar(14) binary NOT NULL default '0'); */
+ 		dbsource( archive( 'patch-email-notification.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ 	# Check if we need to add talk page rows to the watchlist
+ 	$talk = $wgDatabase->selectField( 'watchlist', 'count(*)', 'wl_namespace & 1', $fname );
+ 	$nontalk = $wgDatabase->selectField( 'watchlist', 'count(*)', 'NOT (wl_namespace & 1)', $fname );
+ 	if ( $talk != $nontalk ) {
+-		echo "Adding missing watchlist talk page rows... ";
++		wfOut( "Adding missing watchlist talk page rows... " );
+ 		flush();
+ 
+ 		$wgDatabase->insertSelect( 'watchlist', 'watchlist', 
+@@ -360,9 +360,9 @@
+ 				'wl_title' => 'wl_title',
+ 				'wl_notificationtimestamp' => 'wl_notificationtimestamp'
+ 			), array( 'NOT (wl_namespace & 1)' ), $fname, 'IGNORE' );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	} else {
+-		echo "...watchlist talk page rows already present\n";
++		wfOut( "...watchlist talk page rows already present\n" );
+ 	}
+ }
+ 
+@@ -373,7 +373,7 @@
+ 	$res = $wgDatabase->safeQuery( 'SELECT user_id, user_ip FROM !',
+ 		$wgDatabase->tableName( 'user_newtalk' ) );
+ 	$num_newtalks=$wgDatabase->numRows($res);
+-	echo "Now converting ".$num_newtalks." user_newtalk entries to watchlist table entries ... \n";
++	wfOut( "Now converting $num_newtalks user_newtalk entries to watchlist table entries ... \n" );
+ 
+ 	$user = new User();
+ 	for ( $i = 1; $i <= $num_newtalks; $i++ ) {
+@@ -401,18 +401,18 @@
+ 				);
+ 		}
+ 	}
+-	echo "Done.\n";
++	wfOut( "Done.\n" );
+ }
+ 
+ 
+ function do_user_update() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->fieldExists( 'user', 'user_emailauthenticationtimestamp' ) ) {
+-		echo "User table contains old email authentication field. Dropping... ";
++		wfOut( "User table contains old email authentication field. Dropping... " );
+ 		dbsource( archive( 'patch-email-authentication.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	} else {
+-		echo "...user table does not contain old email authentication field.\n";
++		wfOut( "...user table does not contain old email authentication field.\n" );
+ 	}
+ }
+ 
+@@ -430,11 +430,11 @@
+ 	$wgDatabase->freeResult( $res );
+ 
+ 	if( in_array( 'binary', $flags ) ) {
+-		echo "Logging table has correct title encoding.\n";
++		wfOut( "Logging table has correct title encoding.\n" );
+ 	} else {
+-		echo "Fixing title encoding on logging table... ";
++		wfOut( "Fixing title encoding on logging table... " );
+ 		dbsource( archive( 'patch-logging-title.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+@@ -442,11 +442,11 @@
+ 	global $wgDatabase;
+ 	$fname="do_schema_restructuring";
+ 	if ( $wgDatabase->tableExists( 'page' ) ) {
+-		echo "...page table already exists.\n";
++		wfOut( "...page table already exists.\n" );
+ 	} else {
+-		echo "...converting from cur/old to page/revision/text DB structure.\n"; flush();
+-		echo wfTimestamp( TS_DB );
+-		echo "......checking for duplicate entries.\n"; flush();
++		wfOut( "...converting from cur/old to page/revision/text DB structure.\n" );
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "......checking for duplicate entries.\n" );
+ 
+ 		list ($cur, $old, $page, $revision, $text) = $wgDatabase->tableNamesN( 'cur', 'old', 'page', 'revision', 'text' );
+ 
+@@ -454,15 +454,15 @@
+ 				FROM $cur GROUP BY cur_title, cur_namespace HAVING c>1", $fname );
+ 
+ 		if ( $wgDatabase->numRows( $rows ) > 0 ) {
+-			echo wfTimestamp( TS_DB );
+-			echo "......<b>Found duplicate entries</b>\n";
+-			echo ( sprintf( "<b>      %-60s %3s %5s</b>\n", 'Title', 'NS', 'Count' ) );
++			wfOut( wfTimestamp( TS_DB ) );
++			wfOut( "......<b>Found duplicate entries</b>\n" );
++			wfOut( sprintf( "<b>      %-60s %3s %5s</b>\n", 'Title', 'NS', 'Count' ) );
+ 			while ( $row = $wgDatabase->fetchObject( $rows ) ) {
+ 				if ( ! isset( $duplicate[$row->cur_namespace] ) ) {
+ 					$duplicate[$row->cur_namespace] = array();
+ 				}
+ 				$duplicate[$row->cur_namespace][] = $row->cur_title;
+-				echo ( sprintf( "      %-60s %3s %5s\n", $row->cur_title, $row->cur_namespace, $row->c ) );
++				wfOut( sprintf( "      %-60s %3s %5s\n", $row->cur_title, $row->cur_namespace, $row->c ) );
+ 			}
+ 			$sql = "SELECT cur_title, cur_namespace, cur_id, cur_timestamp FROM $cur WHERE ";
+ 			$firstCond = true;
+@@ -502,13 +502,13 @@
+ 			}
+ 			$sql = "DELETE FROM $cur WHERE cur_id IN ( " . join( ',', $deleteId ) . ')';
+ 			$rows = $wgDatabase->query( $sql, $fname );
+-			echo wfTimestamp( TS_DB );
+-			echo "......<b>Deleted</b> ".$wgDatabase->affectedRows()." records.\n";
++			wfOut( wfTimestamp( TS_DB ) );
++			wfOut( "......<b>Deleted</b> ".$wgDatabase->affectedRows()." records.\n" );
+ 		}
+ 
+ 
+-		echo wfTimestamp( TS_DB );
+-		echo "......Creating tables.\n";
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "......Creating tables.\n" );
+ 		$wgDatabase->query("CREATE TABLE $page (
+   			page_id int(8) unsigned NOT NULL auto_increment,
+   			page_namespace int NOT NULL,
+@@ -546,26 +546,26 @@
+   			INDEX usertext_timestamp (rev_user_text,rev_timestamp)
+ 			) TYPE=InnoDB", $fname );
+ 
+-		echo wfTimestamp( TS_DB );
+-		echo "......Locking tables.\n";
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "......Locking tables.\n" );
+ 		$wgDatabase->query( "LOCK TABLES $page WRITE, $revision WRITE, $old WRITE, $cur WRITE", $fname );
+ 
+ 		$maxold = intval( $wgDatabase->selectField( 'old', 'max(old_id)', '', $fname ) );
+-		echo wfTimestamp( TS_DB );
+-		echo "......maxold is {$maxold}\n";
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "......maxold is {$maxold}\n" );
+ 
+-		echo wfTimestamp( TS_DB );
++		wfOut( wfTimestamp( TS_DB ) );
+ 		global $wgLegacySchemaConversion;
+ 		if( $wgLegacySchemaConversion ) {
+ 			// Create HistoryBlobCurStub entries.
+ 			// Text will be pulled from the leftover 'cur' table at runtime.
+-			echo "......Moving metadata from cur; using blob references to text in cur table.\n";
++			wfOut( "......Moving metadata from cur; using blob references to text in cur table.\n" );
+ 			$cur_text = "concat('O:18:\"historyblobcurstub\":1:{s:6:\"mCurId\";i:',cur_id,';}')";
+ 			$cur_flags = "'object'";
+ 		} else {
+ 			// Copy all cur text in immediately: this may take longer but avoids
+ 			// having to keep an extra table around.
+-			echo "......Moving text from cur.\n";
++			wfOut( "......Moving text from cur.\n" );
+ 			$cur_text = 'cur_text';
+ 			$cur_flags = "''";
+ 		}
+@@ -574,16 +574,16 @@
+   			SELECT cur_namespace, cur_title, $cur_text, cur_comment, cur_user, cur_user_text, cur_timestamp, cur_minor_edit, $cur_flags
+   			FROM $cur", $fname );
+ 
+-		echo wfTimestamp( TS_DB );
+-		echo "......Setting up revision table.\n";
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "......Setting up revision table.\n" );
+ 		$wgDatabase->query( "INSERT INTO $revision (rev_id, rev_page, rev_comment, rev_user, rev_user_text, rev_timestamp,
+     				rev_minor_edit)
+ 			SELECT old_id, cur_id, old_comment, old_user, old_user_text,
+     				old_timestamp, old_minor_edit
+ 			FROM $old,$cur WHERE old_namespace=cur_namespace AND old_title=cur_title", $fname );
+ 
+-		echo wfTimestamp( TS_DB );
+-		echo "......Setting up page table.\n";
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "......Setting up page table.\n" );
+ 		$wgDatabase->query( "INSERT INTO $page (page_id, page_namespace, page_title, page_restrictions, page_counter,
+     				page_is_redirect, page_is_new, page_random, page_touched, page_latest, page_len)
+   			SELECT cur_id, cur_namespace, cur_title, cur_restrictions, cur_counter, cur_is_redirect, cur_is_new,
+@@ -591,38 +591,38 @@
+   			FROM $cur,$revision
+   			WHERE cur_id=rev_page AND rev_timestamp=cur_timestamp AND rev_id > {$maxold}", $fname );
+ 
+-		echo wfTimestamp( TS_DB );
+-		echo "......Unlocking tables.\n";
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "......Unlocking tables.\n" );
+ 		$wgDatabase->query( "UNLOCK TABLES", $fname );
+ 
+-		echo wfTimestamp( TS_DB );
+-		echo "......Renaming old.\n";
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "......Renaming old.\n" );
+ 		$wgDatabase->query( "ALTER TABLE $old RENAME TO $text", $fname );
+ 
+-		echo wfTimestamp( TS_DB );
+-		echo "...done.\n";
++		wfOut( wfTimestamp( TS_DB ) );
++		wfOut( "...done.\n" );
+ 	}
+ }
+ 
+ function do_inverse_timestamp() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->fieldExists( 'revision', 'inverse_timestamp' ) ) {
+-		echo "Removing revision.inverse_timestamp and fixing indexes... ";
++		wfOut( "Removing revision.inverse_timestamp and fixing indexes... " );
+ 		dbsource( archive( 'patch-inverse_timestamp.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	} else {
+-		echo "revision timestamp indexes already up to 2005-03-13\n";
++		wfOut( "revision timestamp indexes already up to 2005-03-13\n" );
+ 	}
+ }
+ 
+ function do_text_id() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->fieldExists( 'revision', 'rev_text_id' ) ) {
+-		echo "...rev_text_id already in place.\n";
++		wfOut( "...rev_text_id already in place.\n" );
+ 	} else {
+-		echo "Adding rev_text_id field... ";
++		wfOut( "Adding rev_text_id field... " );
+ 		dbsource( archive( 'patch-rev_text_id.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+@@ -653,25 +653,25 @@
+ 	$wgDatabase->freeResult( $result );
+ 
+ 	if( substr( $info->Type, 0, 3 ) == 'int' ) {
+-		echo "...$field is already a full int ($info->Type).\n";
++		wfOut( "...$field is already a full int ($info->Type).\n" );
+ 	} else {
+-		echo "Promoting $field from $info->Type to int... ";
++		wfOut( "Promoting $field from $info->Type to int... " );
+ 
+ 		$sql = "ALTER TABLE $tablename MODIFY $field int NOT NULL";
+ 		$wgDatabase->query( $sql );
+ 
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+ function do_pagelinks_update() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->tableExists( 'pagelinks' ) ) {
+-		echo "...already have pagelinks table.\n";
++		wfOut( "...already have pagelinks table.\n" );
+ 	} else {
+-		echo "Converting links and brokenlinks tables to pagelinks... ";
++		wfOut( "Converting links and brokenlinks tables to pagelinks... " );
+ 		dbsource( archive( 'patch-pagelinks.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 		flush();
+ 
+ 		global $wgCanonicalNamespaceNames;
+@@ -687,7 +687,7 @@
+ 	global $wgDatabase, $wgContLang;
+ 
+ 	$ns = intval( $namespace );
+-	echo "Cleaning up broken links for namespace $ns... ";
++	wfOut( "Cleaning up broken links for namespace $ns... " );
+ 
+ 	$pagelinks = $wgDatabase->tableName( 'pagelinks' );
+ 	$name = $wgContLang->getNsText( $ns );
+@@ -701,25 +701,25 @@
+ 	           AND pl_title LIKE '$likeprefix:%'";
+ 
+ 	$wgDatabase->query( $sql, 'do_pagelinks_namespace' );
+-	echo "ok\n";
++	wfOut( "ok\n" );
+ }
+ 
+ function do_drop_img_type() {
+ 	global $wgDatabase;
+ 
+ 	if( $wgDatabase->fieldExists( 'image', 'img_type' ) ) {
+-		echo "Dropping unused img_type field in image table... ";
++		wfOut( "Dropping unused img_type field in image table... " );
+ 		dbsource( archive( 'patch-drop_img_type.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	} else {
+-		echo "No img_type field in image table; Good.\n";
++		wfOut( "No img_type field in image table; Good.\n" );
+ 	}
+ }
+ 
+ function do_old_links_update() {
+ 	global $wgDatabase;
+ 	if( $wgDatabase->tableExists( 'pagelinks' ) ) {
+-		echo "Already have pagelinks; skipping old links table updates.\n";
++		wfOut( "Already have pagelinks; skipping old links table updates.\n" );
+ 	} else {
+ 		convertLinks(); flush();
+ 	}
+@@ -729,14 +729,14 @@
+ 	global $wgDatabase;
+ 	$duper = new UserDupes( $wgDatabase );
+ 	if( $duper->hasUniqueIndex() ) {
+-		echo "Already have unique user_name index.\n";
++		wfOut( "Already have unique user_name index.\n" );
+ 	} else {
+ 		if( !$duper->clearDupes() ) {
+-			echo "WARNING: This next step will probably fail due to unfixed duplicates...\n";
++			wfOut( "WARNING: This next step will probably fail due to unfixed duplicates...\n" );
+ 		}
+-		echo "Adding unique index on user_name... ";
++		wfOut( "Adding unique index on user_name... " );
+ 		dbsource( archive( 'patch-user_nameindex.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ }
+ 
+@@ -745,28 +745,28 @@
+ 	global $wgDatabase;
+ 
+ 	if( $wgDatabase->tableExists( 'user_groups' ) ) {
+-		echo "...user_groups table already exists.\n";
++		wfOut( "...user_groups table already exists.\n" );
+ 		return do_user_groups_reformat();
+ 	}
+ 
+-	echo "Adding user_groups table... ";
++	wfOut( "Adding user_groups table... " );
+ 	dbsource( archive( 'patch-user_groups.sql' ), $wgDatabase );
+-	echo "ok\n";
++	wfOut( "ok\n" );
+ 
+ 	if( !$wgDatabase->tableExists( 'user_rights' ) ) {
+ 		if( $wgDatabase->fieldExists( 'user', 'user_rights' ) ) {
+-			echo "Upgrading from a 1.3 or older database? Breaking out user_rights for conversion...";
++			wfOut( "Upgrading from a 1.3 or older database? Breaking out user_rights for conversion..." );
+ 			dbsource( archive( 'patch-user_rights.sql' ), $wgDatabase );
+-			echo "ok\n";
++			wfOut( "ok\n" );
+ 		} else {
+-			echo "*** WARNING: couldn't locate user_rights table or field for upgrade.\n";
+-			echo "*** You may need to manually configure some sysops by manipulating\n";
+-			echo "*** the user_groups table.\n";
++			wfOut( "*** WARNING: couldn't locate user_rights table or field for upgrade.\n" );
++			wfOut( "*** You may need to manually configure some sysops by manipulating\n" );
++			wfOut( "*** the user_groups table.\n" );
+ 			return;
+ 		}
+ 	}
+ 
+-	echo "Converting user_rights table to user_groups... ";
++	wfOut( "Converting user_rights table to user_groups... " );
+ 	$result = $wgDatabase->select( 'user_rights',
+ 		array( 'ur_user', 'ur_rights' ),
+ 		array( "ur_rights != ''" ),
+@@ -786,7 +786,7 @@
+ 		}
+ 	}
+ 	$wgDatabase->freeResult( $result );
+-	echo "ok\n";
++	wfOut( "ok\n" );
+ }
+ 
+ function do_user_groups_reformat() {
+@@ -797,20 +797,20 @@
+ 	if( $info->type() == 'int' ) {
+ 		$oldug = $wgDatabase->tableName( 'user_groups' );
+ 		$newug = $wgDatabase->tableName( 'user_groups_bogus' );
+-		echo "user_groups is in bogus intermediate format. Renaming to $newug... ";
++		wfOut( "user_groups is in bogus intermediate format. Renaming to $newug... " );
+ 		$wgDatabase->query( "ALTER TABLE $oldug RENAME TO $newug" );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 
+-		echo "Re-adding fresh user_groups table... ";
++		wfOut( "Re-adding fresh user_groups table... " );
+ 		dbsource( archive( 'patch-user_groups.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 
+-		echo "***\n";
+-		echo "*** WARNING: You will need to manually fix up user permissions in the user_groups\n";
+-		echo "*** table. Old 1.5 alpha versions did some pretty funky stuff...\n";
+-		echo "***\n";
++		wfOut( "***\n" );
++		wfOut( "*** WARNING: You will need to manually fix up user permissions in the user_groups\n" );
++		wfOut( "*** table. Old 1.5 alpha versions did some pretty funky stuff...\n" );
++		wfOut( "***\n" );
+ 	} else {
+-		echo "...user_groups is in current format.\n";
++		wfOut( "...user_groups is in current format.\n" );
+ 	}
+ 
+ }
+@@ -822,11 +822,11 @@
+ 	$info = $wgDatabase->fieldInfo( 'watchlist', 'wl_notificationtimestamp' );
+ 
+ 	if( !$info->nullable() ) {
+-		echo "Making wl_notificationtimestamp nullable... ";
++		wfOut( "Making wl_notificationtimestamp nullable... " );
+ 		dbsource( archive( 'patch-watchlist-null.sql' ), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 	} else {
+-		echo "...wl_notificationtimestamp is already nullable.\n";
++		wfOut( "...wl_notificationtimestamp is already nullable.\n" );
+ 	}
+ 
+ }
+@@ -837,13 +837,13 @@
+ function do_page_random_update() {
+ 	global $wgDatabase;
+ 
+-	echo "Setting page_random to a random value on rows where it equals 0...";
++	wfOut( "Setting page_random to a random value on rows where it equals 0..." );
+ 
+ 	$page = $wgDatabase->tableName( 'page' );
+ 	$wgDatabase->query( "UPDATE $page SET page_random = RAND() WHERE page_random = 0", 'do_page_random_update' );
+ 	$rows = $wgDatabase->affectedRows();
+ 
+-	echo "changed $rows rows\n";
++	wfOut( "changed $rows rows\n" );
+ }
+ 
+ function do_templatelinks_update() {
+@@ -851,12 +851,12 @@
+ 	$fname = 'do_templatelinks_update';
+ 
+ 	if ( $wgDatabase->tableExists( 'templatelinks' ) ) {
+-		echo "...templatelinks table already exists\n";
++		wfOut( "...templatelinks table already exists\n" );
+ 		return;
+ 	}
+-	echo "Creating templatelinks table...\n";
++	wfOut( "Creating templatelinks table...\n" );
+ 	dbsource( archive('patch-templatelinks.sql'), $wgDatabase );
+-	echo "Populating...\n";
++	wfOut( "Populating...\n" );
+ 	if ( isset( $wgLoadBalancer ) && $wgLoadBalancer->getServerCount() > 1 ) {
+ 		// Slow, replication-friendly update
+ 		$res = $wgDatabase->select( 'pagelinks', array( 'pl_from', 'pl_namespace', 'pl_title' ),
+@@ -893,14 +893,14 @@
+ 			), $fname
+ 		);
+ 	}
+-	echo "Done. Please run maintenance/refreshLinks.php for a more thorough templatelinks update.\n";
++	wfOut( "Done. Please run maintenance/refreshLinks.php for a more thorough templatelinks update.\n" );
+ }
+ 
+ // Add index on ( rc_namespace, rc_user_text ) [Jul. 2006]
+ // Add index on ( rc_user_text, rc_timestamp ) [Nov. 2006]
+ function do_rc_indices_update() {
+ 	global $wgDatabase;
+-	echo( "Checking for additional recent changes indices...\n" );
++	wfOut( "Checking for additional recent changes indices...\n" );
+ 
+ 	$indexes = array(
+ 		'rc_ns_usertext' => 'patch-recentchanges-utindex.sql',
+@@ -910,33 +910,33 @@
+ 	foreach( $indexes as $index => $patch ) {
+ 		$info = $wgDatabase->indexInfo( 'recentchanges', $index, __METHOD__ );
+ 		if( !$info ) {
+-			echo( "...index `{$index}` not found; adding..." );
++			wfOut( "...index `{$index}` not found; adding..." );
+ 			dbsource( archive( $patch ) );
+-			echo( "done.\n" );
++			wfOut( "done.\n" );
+ 		} else {
+-			echo( "...index `{$index}` seems ok.\n" );
++			wfOut( "...index `{$index}` seems ok.\n" );
+ 		}
+ 	}
+ }
+ 
+ function index_has_field($table, $index, $field) {
+ 	global $wgDatabase;
+-	echo( "Checking if $table index $index includes field $field...\n" );
++	wfOut( "Checking if $table index $index includes field $field...\n" );
+ 	$info = $wgDatabase->indexInfo( $table, $index, __METHOD__ );
+ 	if( $info ) {
+ 		foreach($info as $row) {
+ 			if($row->Column_name == $field) {
+-				echo( "...index $index on table $table seems to be ok\n" );
++				wfOut( "...index $index on table $table seems to be ok\n" );
+ 				return true;
+ 			}
+ 		}
+ 	}
+-	echo( "...index $index on table $table has no field $field; adding\n" );
++	wfOut( "...index $index on table $table has no field $field; adding\n" );
+ 	return false;
+ }
+ 
+ function do_backlinking_indices_update() {
+-	echo( "Checking for backlinking indices...\n" );
++	wfOut( "Checking for backlinking indices...\n" );
+ 	if (!index_has_field('pagelinks', 'pl_namespace', 'pl_from') ||
+ 		!index_has_field('templatelinks', 'tl_namespace', 'tl_from') ||
+ 		!index_has_field('imagelinks', 'il_to', 'il_from'))
+@@ -946,7 +946,7 @@
+ }
+ 
+ function do_categorylinks_indices_update() {
+-	echo( "Checking for categorylinks indices...\n" );
++	wfOut( "Checking for categorylinks indices...\n" );
+ 	if (!index_has_field('categorylinks', 'cl_sortkey', 'cl_from'))
+ 	{	
+ 		dbsource( archive( 'patch-categorylinksindex.sql' ) );
+@@ -956,16 +956,15 @@
+ function do_stats_init() {
+ 	// Sometimes site_stats table is not properly populated.
+ 	global $wgDatabase;
+-	echo "Checking site_stats row...";
++	wfOut( "Checking site_stats row..." );
+ 	$row = $wgDatabase->selectRow( 'site_stats', '*', array( 'ss_row_id' => 1 ), __METHOD__ );
+ 	if( $row === false ) {
+-		echo "data is missing! rebuilding...\n";
+-		
++		wfOut( "data is missing! rebuilding...\n" );
+ 		global $IP;
+ 		require_once "$IP/maintenance/initStats.inc";
+ 		wfInitStats();
+ 	} else {
+-		echo "ok.\n";
++		wfOut( "ok.\n" );
+ 	}
+ }
+ 
+@@ -973,9 +972,9 @@
+ 	global $wgDatabase;
+ 	# We can't guarantee that the user will be able to use TRUNCATE,
+ 	# but we know that DELETE is available to us
+-	echo( "Purging caches..." );
++	wfOut( "Purging caches..." );
+ 	$wgDatabase->delete( 'objectcache', '*', __METHOD__ );
+-	echo( "done.\n" );
++	wfOut( "done.\n" );
+ }
+ 
+ function do_all_updates( $shared = false, $purge = true ) {
+@@ -1019,15 +1018,14 @@
+ 	}
+ 
+ 
+-	echo "Deleting old default messages (this may take a long time!)..."; flush();
++	wfOut( "Deleting old default messages (this may take a long time!)..." ); 
+ 	deleteDefaultMessages();
+-	echo "Done\n"; flush();
++	wfOut( "Done\n" );
+ 	
+-	do_stats_init(); flush();
++	do_stats_init();
+ 	
+ 	if( $purge ) {
+ 		purge_cache();
+-		flush();
+ 	}
+ }
+ 
+@@ -1053,14 +1051,14 @@
+ 	$patch2 = 'patch-page_restrictions_sortkey.sql';
+ 
+ 	if ( $wgDatabase->tableExists( $name ) ) {
+-		echo "...$name table already exists.\n";
++		wfOut( "...$name table already exists.\n" );
+ 	} else {
+-		echo "Creating $name table...";
++		wfOut( "Creating $name table..." );
+ 		dbsource( archive($patch), $wgDatabase );
+ 		dbsource( archive($patch2), $wgDatabase );
+-		echo "ok\n";
++		wfOut( "ok\n" );
+ 
+-		echo "Migrating old restrictions to new table...";
++		wfOut( "Migrating old restrictions to new table..." );
+ 
+ 		$res = $wgDatabase->select( 'page', array( 'page_id', 'page_restrictions' ), array("page_restrictions!=''", "page_restrictions!='edit=:move='"), __METHOD__ );
+ 
+@@ -1112,7 +1110,7 @@
+ 											__METHOD__ );
+ 			}
+ 		}
+-		print "ok\n";
++		wfOut( "ok\n" );
+ 	}
+ 	
+ }
+@@ -1270,12 +1268,12 @@
+ 	$newpath = array();
+ 	if( $wgDBmwschema === 'mediawiki' ) {
+ 		if (!array_key_exists( 'search_path', $conf ) or strpos( $conf['search_path'],$wgDBmwschema ) === false ) {
+-			echo "Adding in schema \"$wgDBmwschema\" to search_path for user \"$wgDBuser\"\n";
++			wfOut( "Adding in schema \"$wgDBmwschema\" to search_path for user \"$wgDBuser\"\n" );
+ 			$newpath[$wgDBmwschema] = 1;
+ 		}
+ 	}
+ 	if( !array_key_exists( 'search_path', $conf ) or strpos( $conf['search_path'],$wgDBts2schema ) === false ) {
+-		echo "Adding in schema \"$wgDBts2schema\" to search_path for user \"$wgDBuser\"\n";
++		wfOut( "Adding in schema \"$wgDBts2schema\" to search_path for user \"$wgDBuser\"\n" );
+ 		$newpath[$wgDBts2schema] = 1;
+ 	}
+ 	$searchpath = implode( ',', array_keys( $newpath ) );
+@@ -1285,7 +1283,7 @@
+ 	}
+ 	else {
+ 		$path = $conf['search_path'];
+-		echo "... search_path for user \"$wgDBuser\" looks correct ($path)\n";
++		wfOut( "... search_path for user \"$wgDBuser\" looks correct ($path)\n" );
+ 	}
+ 	$goodconf = array(
+ 		'client_min_messages' => 'error',
+@@ -1295,12 +1293,12 @@
+ 	foreach( array_keys( $goodconf ) AS $key ) {
+ 		$value = $goodconf[$key];
+ 		if( !array_key_exists( $key, $conf ) or $conf[$key] !== $value ) {
+-			echo "Setting $key to '$value' for user \"$wgDBuser\"\n";
++			wfOut( "Setting $key to '$value' for user \"$wgDBuser\"\n" );
+ 			$wgDatabase->doQuery( "ALTER USER $wgDBuser SET $key = '$value'" );
+ 			$wgDatabase->doQuery( "SET $key = '$value'" );
+ 		}
+ 		else {
+-			echo "... default value of \"$key\" is correctly set to \"$value\" for user \"$wgDBuser\"\n";
++			wfOut( "... default value of \"$key\" is correctly set to \"$value\" for user \"$wgDBuser\"\n" );
+ 		}
+ 	}
+ 
+@@ -1414,62 +1412,62 @@
+ 
+ 	foreach ($newsequences as $ns) {
+ 		if ($wgDatabase->sequenceExists($ns)) {
+-			echo "... sequence \"$ns\" already exists\n";
++			wfOut( "... sequence \"$ns\" already exists\n" );
+ 			continue;
+ 		}
+ 
+-		echo "Creating sequence \"$ns\"\n";
++		wfOut( "Creating sequence \"$ns\"\n" );
+ 		$wgDatabase->query("CREATE SEQUENCE $ns");
+ 	}
+ 
+ 	foreach ($newtables as $nt) {
+ 		if ($wgDatabase->tableExists($nt[0])) {
+-			echo "... table \"$nt[0]\" already exists\n";
++			wfOut( "... table \"$nt[0]\" already exists\n" );
+ 			continue;
+ 		}
+ 
+-		echo "Creating table \"$nt[0]\"\n";
++		wfOut( "Creating table \"$nt[0]\"\n" );
+ 		dbsource(archive($nt[1]));
+ 	}
+ 
+ 	## Needed before newcols
+ 	if ($wgDatabase->tableExists("archive2")) {
+-		echo "Converting \"archive2\" back to normal archive table\n";
++		wfOut( "Converting \"archive2\" back to normal archive table\n" );
+ 		if ($wgDatabase->ruleExists("archive", "archive_insert")) {
+-			echo "Dropping rule \"archive_insert\"\n";
++			wfOut( "Dropping rule \"archive_insert\"\n" );
+ 			$wgDatabase->query("DROP RULE archive_insert ON archive");
+ 		}
+ 		if ($wgDatabase->ruleExists("archive", "archive_delete")) {
+-			echo "Dropping rule \"archive_delete\"\n";
++			wfOut( "Dropping rule \"archive_delete\"\n" );
+ 			$wgDatabase->query("DROP RULE archive_delete ON archive");
+ 		}
+ 		dbsource(archive("patch-remove-archive2.sql"));
+ 	}
+ 	else
+-		echo "... obsolete table \"archive2\" does not exist\n";
++		wfOut( "... obsolete table \"archive2\" does not exist\n" );
+ 
+ 	foreach ($newcols as $nc) {
+ 		$fi = $wgDatabase->fieldInfo($nc[0], $nc[1]);
+ 		if (!is_null($fi)) {
+-			echo "... column \"$nc[0].$nc[1]\" already exists\n";
++			wfOut( "... column \"$nc[0].$nc[1]\" already exists\n" );
+ 			continue;
+ 		}
+ 
+-		echo "Adding column \"$nc[0].$nc[1]\"\n";
++		wfOut( "Adding column \"$nc[0].$nc[1]\"\n" );
+ 		$wgDatabase->query("ALTER TABLE $nc[0] ADD $nc[1] $nc[2]");
+ 	}
+ 
+ 	foreach ($typechanges as $tc) {
+ 		$fi = $wgDatabase->fieldInfo($tc[0], $tc[1]);
+ 		if (is_null($fi)) {
+-			echo "... error: expected column $tc[0].$tc[1] to exist\n";
++			wfOut( "... error: expected column $tc[0].$tc[1] to exist\n" );
+ 			exit(1);
+ 		}
+ 
+ 		if ($fi->type() === $tc[2])
+-			echo "... column \"$tc[0].$tc[1]\" is already of type \"$tc[2]\"\n";
++			wfOut( "... column \"$tc[0].$tc[1]\" is already of type \"$tc[2]\"\n" );
+ 		else {
+-			echo "Changing column type of \"$tc[0].$tc[1]\" from \"{$fi->type()}\" to \"$tc[2]\"\n";
++			wfOut( "Changing column type of \"$tc[0].$tc[1]\" from \"{$fi->type()}\" to \"$tc[2]\"\n" );
+ 			$sql = "ALTER TABLE $tc[0] ALTER $tc[1] TYPE $tc[2]";
+ 			if (strlen($tc[3])) {
+ 				$default = array();
+@@ -1486,78 +1484,78 @@
+ 	}
+ 
+ 	if ($wgDatabase->fieldInfo('oldimage','oi_deleted')->type() !== 'smallint') {
+-		echo "Changing \"oldimage.oi_deleted\" to type \"smallint\"\n";
++		wfOut( "Changing \"oldimage.oi_deleted\" to type \"smallint\"\n" );
+ 		$wgDatabase->query( "ALTER TABLE oldimage ALTER oi_deleted DROP DEFAULT" );
+ 		$wgDatabase->query( "ALTER TABLE oldimage ALTER oi_deleted TYPE SMALLINT USING (oi_deleted::smallint)" );
+ 		$wgDatabase->query( "ALTER TABLE oldimage ALTER oi_deleted SET DEFAULT 0" );
+ 	}
+ 	else
+-		echo "... column \"oldimage.oi_deleted\" is already of type \"smallint\"\n";
++		wfOut( "... column \"oldimage.oi_deleted\" is already of type \"smallint\"\n" );
+ 
+ 
+ 	foreach ($newindexes as $ni) {
+ 		if (pg_index_exists($ni[0], $ni[1])) {
+-			echo "... index \"$ni[1]\" on table \"$ni[0]\" already exists\n";
++			wfOut( "... index \"$ni[1]\" on table \"$ni[0]\" already exists\n" );
+ 			continue;
+ 		}
+-		echo "Creating index \"$ni[1]\" on table \"$ni[0]\" $ni[2]\n";
++		wfOut( "Creating index \"$ni[1]\" on table \"$ni[0]\" $ni[2]\n" );
+ 		$wgDatabase->query( "CREATE INDEX $ni[1] ON $ni[0] $ni[2]" );
+ 	}
+ 
+ 	foreach ($newrules as $nr) {
+ 		if ($wgDatabase->ruleExists($nr[0], $nr[1])) {
+-			echo "... rule \"$nr[1]\" on table \"$nr[0]\" already exists\n";
++			wfOut( "... rule \"$nr[1]\" on table \"$nr[0]\" already exists\n" );
+ 			continue;
+ 		}
+-		echo "Adding rule \"$nr[1]\" to table \"$nr[0]\"\n";
++		wfOut( "Adding rule \"$nr[1]\" to table \"$nr[0]\"\n" );
+ 		dbsource(archive($nr[2]));
+ 	}
+ 
+ 	if ($wgDatabase->hasConstraint("oldimage_oi_name_fkey")) {
+-		echo "Making foriegn key on table \"oldimage\" (to image) a cascade delete\n";
++		wfOut( "Making foriegn key on table \"oldimage\" (to image) a cascade delete\n" );
+ 		$wgDatabase->query( "ALTER TABLE oldimage DROP CONSTRAINT oldimage_oi_name_fkey" );
+ 		$wgDatabase->query( "ALTER TABLE oldimage ADD CONSTRAINT oldimage_oi_name_fkey_cascade ".
+ 			"FOREIGN KEY (oi_name) REFERENCES image(img_name) ON DELETE CASCADE" );
+ 	}
+ 	else
+-		echo "... table \"oldimage\" has correct cascade delete foreign key to image\n";
++		wfOut( "... table \"oldimage\" has correct cascade delete foreign key to image\n" );
+ 
+ 	if (!$wgDatabase->triggerExists("page", "page_deleted")) {
+-		echo "Adding function and trigger \"page_deleted\" to table \"page\"\n";
++		wfOut( "Adding function and trigger \"page_deleted\" to table \"page\"\n" );
+ 		dbsource(archive('patch-page_deleted.sql'));
+ 	}
+ 	else
+-		echo "... table \"page\" has \"page_deleted\" trigger\n";
++		wfOut( "... table \"page\" has \"page_deleted\" trigger\n" );
+ 
+ 	$fi = $wgDatabase->fieldInfo("recentchanges", "rc_cur_id");
+ 	if (!$fi->nullable()) {
+-		echo "Removing NOT NULL constraint from \"recentchanges.rc_cur_id\"\n";
++		wfOut( "Removing NOT NULL constraint from \"recentchanges.rc_cur_id\"\n" );
+ 		dbsource(archive('patch-rc_cur_id-not-null.sql'));
+ 	}
+ 	else
+-		echo "... column \"recentchanges.rc_cur_id\" has a NOT NULL constraint\n";
++		wfOut( "... column \"recentchanges.rc_cur_id\" has a NOT NULL constraint\n" );
+ 
+ 	$pu = pg_describe_index("pagelink_unique");
+ 	if (!is_null($pu) && ($pu[0] != "pl_from" || $pu[1] != "pl_namespace" || $pu[2] != "pl_title")) {
+-		echo "Dropping obsolete version of index \"pagelink_unique index\"\n";
++		wfOut( "Dropping obsolete version of index \"pagelink_unique index\"\n" );
+ 		$wgDatabase->query("DROP INDEX pagelink_unique");
+ 		$pu = null;
+ 	}
+ 	else
+-		echo "... obsolete version of index \"pagelink_unique index\" does not exist\n";
++		wfOut( "... obsolete version of index \"pagelink_unique index\" does not exist\n" );
+ 
+ 	if (is_null($pu)) {
+-		echo "Creating index \"pagelink_unique index\"\n";
++		wfOut( "Creating index \"pagelink_unique index\"\n" );
+ 		$wgDatabase->query("CREATE UNIQUE INDEX pagelink_unique ON pagelinks (pl_from,pl_namespace,pl_title)");
+ 	}
+ 	else
+-		echo "... index \"pagelink_unique_index\" aready exists\n";
++		wfOut( "... index \"pagelink_unique_index\" already exists\n" );
+ 
+ 	if (pg_fkey_deltype("revision_rev_user_fkey") == 'r') {
+-		echo "... constraint \"revision_rev_user_fkey\" is ON DELETE RESTRICT\n";
++		wfOut( "... constraint \"revision_rev_user_fkey\" is ON DELETE RESTRICT\n" );
+ 	}
+ 	else {
+-		echo "Changing constraint \"revision_rev_user_fkey\" to ON DELETE RESTRICT\n";
++		wfOut( "Changing constraint \"revision_rev_user_fkey\" to ON DELETE RESTRICT\n" );
+ 		dbsource(archive('patch-revision_rev_user_fkey.sql'));
+ 	}
+ 
+@@ -1565,29 +1563,29 @@
+ 	# Add missing extension tables
+ 	foreach ( $wgExtNewTables as $nt ) {
+ 		if ($wgDatabase->tableExists($nt[0])) {
+-			echo "... table \"$nt[0]\" already exists\n";
++			wfOut( "... table \"$nt[0]\" already exists\n" );
+ 			continue;
+ 		}
+-		echo "Creating table \"$nt[0]\"\n";
++		wfOut( "Creating table \"$nt[0]\"\n" );
+ 		dbsource($nt[1]);
+ 	}
+ 	# Add missing extension fields
+ 	foreach ( $wgExtPGNewFields as $nc ) {
+ 		$fi = $wgDatabase->fieldInfo($nc[0], $nc[1]);
+ 		if (!is_null($fi)) {
+-			echo "... column \"$nc[0].$nc[1]\" already exists\n";
++			wfOut( "... column \"$nc[0].$nc[1]\" already exists\n" );
+ 			continue;
+ 		}
+-		echo "Adding column \"$nc[0].$nc[1]\"\n";
++		wfOut( "Adding column \"$nc[0].$nc[1]\"\n" );
+ 		$wgDatabase->query( "ALTER TABLE $nc[0] ADD $nc[1] $nc[2]" );
+ 	}
+ 	# Add missing extension indexes
+ 	foreach ( $wgExtNewIndexes as $ni ) {
+ 		if (pg_index_exists($ni[0], $ni[1])) {
+-			echo "... index \"$ni[1]\" on table \"$ni[0]\" already exists\n";
++			wfOut( "... index \"$ni[1]\" on table \"$ni[0]\" already exists\n" );
+ 			continue;
+ 		}
+-		echo "Creating index \"$ni[1]\" on table \"$ni[0]\"\n";
++		wfOut( "Creating index \"$ni[1]\" on table \"$ni[0]\"\n" );
+ 		dbsource($ni[2]);
+ 	}
+ 
+Index: mediawiki-1.12.0/maintenance/userDupes.inc
+===================================================================
+--- mediawiki-1.12.0.orig/maintenance/userDupes.inc	2008-03-20 23:08:42.000000000 +0100
++++ mediawiki-1.12.0/maintenance/userDupes.inc	2009-02-07 19:58:44.000000000 +0100
+@@ -39,7 +39,7 @@
+ 		$fname = 'UserDupes::hasUniqueIndex';
+ 		$info = $this->db->indexInfo( 'user', 'user_name', $fname );
+ 		if( !$info ) {
+-			echo "WARNING: doesn't seem to have user_name index at all!\n";
++			wfOut( "WARNING: doesn't seem to have user_name index at all!\n" );
+ 			return false;
+ 		}
+ 
+@@ -86,11 +86,11 @@
+ 
+ 		$this->lock();
+ 
+-		echo "Checking for duplicate accounts...\n";
++		wfOut( "Checking for duplicate accounts...\n" );
+ 		$dupes = $this->getDupes();
+ 		$count = count( $dupes );
+ 
+-		echo "Found $count accounts with duplicate records on ".wfWikiID().".\n";
++		wfOut( "Found $count accounts with duplicate records on ".wfWikiID().".\n" );
+ 		$this->trimmed    = 0;
+ 		$this->reassigned = 0;
+ 		$this->failed     = 0;
+@@ -100,34 +100,34 @@
+ 
+ 		$this->unlock();
+ 
+-		echo "\n";
++		wfOut( "\n" );
+ 
+ 		if( $this->reassigned > 0 ) {
+ 			if( $doDelete ) {
+-				echo "$this->reassigned duplicate accounts had edits reassigned to a canonical record id.\n";
++				wfOut( "$this->reassigned duplicate accounts had edits reassigned to a canonical record id.\n" );
+ 			} else {
+-				echo "$this->reassigned duplicate accounts need to have edits reassigned.\n";
++				wfOut( "$this->reassigned duplicate accounts need to have edits reassigned.\n" );
+ 			}
+ 		}
+ 
+ 		if( $this->trimmed > 0 ) {
+ 			if( $doDelete ) {
+-				echo "$this->trimmed duplicate user records were deleted from ".wfWikiID().".\n";
++				wfOut( "$this->trimmed duplicate user records were deleted from ".wfWikiID().".\n" );
+ 			} else {
+-				echo "$this->trimmed duplicate user accounts were found on ".wfWikiID()." which can be removed safely.\n";
++				wfOut( "$this->trimmed duplicate user accounts were found on ".wfWikiID()." which can be removed safely.\n" );
+ 			}
+ 		}
+ 
+ 		if( $this->failed > 0 ) {
+-			echo "Something terribly awry; $this->failed duplicate accounts were not removed.\n";
++			wfOut( "Something terribly awry; $this->failed duplicate accounts were not removed.\n" );
+ 			return false;
+ 		}
+ 
+ 		if( $this->trimmed == 0 || $doDelete ) {
+-			echo "It is now safe to apply the unique index on user_name.\n";
++			wfOut( "It is now safe to apply the unique index on user_name.\n" );
+ 			return true;
+ 		} else {
+-			echo "Run this script again with the --fix option to automatically delete them.\n";
++			wfOut( "Run this script again with the --fix option to automatically delete them.\n" );
+ 			return false;
+ 		}
+ 	}
+@@ -209,36 +209,36 @@
+ 
+ 		$firstRow = $this->db->fetchObject( $result );
+ 		$firstId  = $firstRow->user_id;
+-		echo "Record that will be used for '$name' is user_id=$firstId\n";
++		wfOut( "Record that will be used for '$name' is user_id=$firstId\n" );
+ 
+ 		while( $row = $this->db->fetchObject( $result ) ) {
+ 			$dupeId = $row->user_id;
+-			echo "... dupe id $dupeId: ";
++			wfOut( "... dupe id $dupeId: " );
+ 			$edits = $this->editCount( $dupeId );
+ 			if( $edits > 0 ) {
+ 				$this->reassigned++;
+-				echo "has $edits edits! ";
++				wfOut( "has $edits edits! " );
+ 				if( $doDelete ) {
+ 					$this->reassignEdits( $dupeId, $firstId );
+ 					$newEdits = $this->editCount( $dupeId );
+ 					if( $newEdits == 0 ) {
+-						echo "confirmed cleaned. ";
++						wfOut( "confirmed cleaned. " );
+ 					} else {
+ 						$this->failed++;
+-						echo "WARNING! $newEdits remaining edits for $dupeId; NOT deleting user.\n";
++						wfOut( "WARNING! $newEdits remaining edits for $dupeId; NOT deleting user.\n" );
+ 						continue;
+ 					}
+ 				} else {
+-					echo "(will need to reassign edits on fix)";
++					wfOut( "(will need to reassign edits on fix)" );
+ 				}
+ 			} else {
+-				echo "ok, no edits. ";
++				wfOut( "ok, no edits. " );
+ 			}
+ 			$this->trimmed++;
+ 			if( $doDelete ) {
+ 				$this->trimAccount( $dupeId );
+ 			}
+-			echo "\n";
++			wfOut( "\n" );
+ 		}
+ 		$this->db->freeResult( $result );
+ 	}
+@@ -300,12 +300,12 @@
+ 	 */
+ 	function reassignEditsOn( $table, $field, $from, $to ) {
+ 		$fname = 'UserDupes::reassignEditsOn';
+-		echo "reassigning on $table... ";
++		wfOut( "reassigning on $table... " );
+ 		$this->db->update( $table,
+ 			array( $field => $to ),
+ 			array( $field => $from ),
+ 			$fname );
+-		echo "ok. ";
++		wfOut( "ok. " );
+ 	}
+ 
+ 	/**
+@@ -315,9 +315,9 @@
+ 	 */
+ 	function trimAccount( $userid ) {
+ 		$fname = 'UserDupes::trimAccount';
+-		echo "deleting...";
++		wfOut( "deleting..." );
+ 		$this->db->delete( 'user', array( 'user_id' => $userid ), $fname );
+-		echo " ok";
++		wfOut( " ok" );
+ 	}
+ 
+ }
--- mediawiki-1.12.0.orig/debian/patches/series
+++ mediawiki-1.12.0/debian/patches/series
@@ -0,0 +1,7 @@
+texvc_location.patch
+mimetypes.patch
+debian_specific_config.patch
+fix_postgre.patch
+CVE-2008-4408.patch
+CVE-2008-5249_CVE-2008-5250_CVE-2008-5252.patch
+1.12.4-security.patch
--- mediawiki-1.12.0.orig/debian/patches/fix_postgre.patch
+++ mediawiki-1.12.0/debian/patches/fix_postgre.patch
@@ -0,0 +1,49 @@
+Index: mediawiki-1.12.0/includes/DatabasePostgres.php
+===================================================================
+--- mediawiki-1.12.0.orig/includes/DatabasePostgres.php	2008-03-20 23:08:48.000000000 +0100
++++ mediawiki-1.12.0/includes/DatabasePostgres.php	2008-03-24 02:30:29.000000000 +0100
+@@ -93,6 +93,44 @@
+ 
+ 	}
+ 
++	/**
++	 * SELECT wrapper
++	 *
++	 * @param mixed  $table   Array or string, table name(s) (prefix auto-added)
++	 * @param mixed  $vars    Array or string, field name(s) to be retrieved
++	 * @param mixed  $conds   Array or string, condition(s) for WHERE
++	 * @param string $fname   Calling function name (use __METHOD__) for logs/profiling
++	 * @param array  $options Associative array of options (e.g. array('GROUP BY' => 'page_title')),
++	 *                        see Database::makeSelectOptions code for list of supported stuff
++	 * @return mixed Database result resource (feed to Database::fetchObject or whatever), or false on failure
++	 */
++	function select( $table, $vars, $conds='', $fname = 'Database::select', $options = array() )
++	{
++		$noKeyOptions = array();
++		foreach ( $options as $key => $option ) {
++			if ( is_numeric( $key ) ) {
++				$noKeyOptions[$option] = true;
++			}
++		}
++
++		if (is_array($vars) === false) {
++			$vars = (string)$vars;
++			$var_list = explode(',', $vars);
++		}
++		else {
++			$var_list = $vars;
++			$vars = implode(',', $var_list);
++		}
++
++		## in certain conditions with ORDER BY and GROUP BY, the specified fields *MUST* be included in fetched data
++		if (array_key_exists('ORDER BY', $options) && (strpos($vars, '(') === false) && ((stripos($vars, "DISTINCT ") !== false) || (array_key_exists('DISTINCT', $noKeyOptions))))
++			$var_list[] = preg_replace("/ (ASC|DESC|USING .*?)(,| |$)/i", "", $options['ORDER BY']);
++		else if (array_key_exists('GROUP BY', $options))
++			$var_list[] = $options['GROUP BY'];
++
++		return parent::select( $table, $var_list, $conds, $fname, $options );
++	}
++
+ 	function cascadingDeletes() {
+ 		return true;
+ 	}
--- mediawiki-1.12.0.orig/debian/patches/CVE-2008-5249_CVE-2008-5250_CVE-2008-5252.patch
+++ mediawiki-1.12.0/debian/patches/CVE-2008-5249_CVE-2008-5250_CVE-2008-5252.patch
@@ -0,0 +1,1516 @@
+Backported fix for CVE-2008-5249 CVE-2008-5250 CVE-2008-5252
+--- a/img_auth.php
++++ b/img_auth.php
+@@ -17,6 +17,12 @@ require_once( dirname( __FILE__ ) . '/in
+ wfProfileIn( 'img_auth.php' );
+ require_once( dirname( __FILE__ ) . '/includes/StreamFile.php' );
+ 
++$perms = User::getGroupPermissions( array( '*' ) );
++if ( in_array( 'read', $perms, true ) ) {
++	wfDebugLog( 'img_auth', 'Public wiki' );
++	wfPublicError();
++}
++
+ // Extract path and image information
+ if( !isset( $_SERVER['PATH_INFO'] ) ) {
+ 	wfDebugLog( 'img_auth', 'Missing PATH_INFO' );
+@@ -88,3 +94,25 @@ ENDS;
+ 	wfLogProfilingData();
+ 	exit();
+ }
++
++/**
++ * Show a 403 error for use when the wiki is public
++ */
++function wfPublicError() {
++	header( 'HTTP/1.0 403 Forbidden' );
++	header( 'Content-Type: text/html; charset=utf-8' );
++	echo <<<ENDS
++<html>
++<body>
++<h1>Access Denied</h1>
++<p>The function of img_auth.php is to output files from a private wiki. This wiki
++is configured as a public wiki. For optimal security, img_auth.php is disabled in
++this case.
++</p>
++</body>
++</html>
++ENDS;
++	wfLogProfilingData();
++	exit;
++}
++
+--- a/includes/AutoLoader.php
++++ b/includes/AutoLoader.php
+@@ -99,6 +99,7 @@ function __autoload($className) {
+ 		'HistoryBlobCurStub' => 'includes/HistoryBlob.php',
+ 		'HTMLCacheUpdate' => 'includes/HTMLCacheUpdate.php',
+ 		'Http' => 'includes/HttpFunctions.php',
++		'IEContentAnalyzer' => 'includes/IEContentAnalyzer.php',
+ 		'IP' => 'includes/IP.php',
+ 		'ImageGallery' => 'includes/ImageGallery.php',
+ 		'ImagePage' => 'includes/ImagePage.php',
+--- a/includes/DefaultSettings.php
++++ b/includes/DefaultSettings.php
+@@ -1666,6 +1666,8 @@ $wgMimeTypeBlacklist= array(
+ 	'application/x-php', 'text/x-php',
+ 	# Other types that may be interpreted by some servers
+ 	'text/x-python', 'text/x-perl', 'text/x-bash', 'text/x-sh', 'text/x-csh',
++	# Client-side hazards on Internet Explorer
++	'text/scriptlet', 'application/x-msdownload',
+ 	# Windows metafile, client-side vulnerability on some systems
+ 	'application/x-msmetafile'
+ );
+--- a/includes/Exception.php
++++ b/includes/Exception.php
+@@ -227,7 +227,16 @@ function wfReportException( Exception $e
+ 			 }
+ 		 }
+ 	 } else {
+-		 echo $e->__toString();
++		 $message = "Unexpected non-MediaWiki exception encountered, of type \"" . get_class( $e ) . "\"\n" .
++			 $e->__toString() . "\n";
++		 if ( $GLOBALS['wgShowExceptionDetails'] ) {
++			 $message .= "\n" . $e->getTraceAsString() ."\n";
++		 }
++		 if ( !empty( $GLOBALS['wgCommandLineMode'] ) ) {
++			 wfPrintError( $message );
++		 } else {
++			 echo nl2br( htmlspecialchars( $message ) ). "\n";
++		 }
+ 	 }
+ }
+ 
+--- /dev/null
++++ b/includes/IEContentAnalyzer.php
+@@ -0,0 +1,823 @@
++<?php
++
++/**
++ * This class simulates Microsoft Internet Explorer's terribly broken and
++ * insecure MIME type detection algorithm. It can be used to check web uploads
++ * with an apparently safe type, to see if IE will reinterpret them to produce
++ * something dangerous.
++ *
++ * It is full of bugs and strange design choices should not under any
++ * circumstances be used to determine a MIME type to present to a user or
++ * client. (Apple Safari developers, this means you too.)
++ *
++ * This class is based on a disassembly of IE 5.0, 6.0 and 7.0. Although I have
++ * attempted to ensure that this code works in exactly the same way as Internet
++ * Explorer, it does not share any source code, or creative choices such as
++ * variable names, thus I (Tim Starling) claim copyright on it.
++ *
++ * It may be redistributed without restriction. To aid reuse, this class does
++ * not depend on any MediaWiki module.
++ */
++class IEContentAnalyzer {
++	/**
++	 * Relevant data taken from the type table in IE 5
++	 */
++	protected $baseTypeTable = array(
++		'ambiguous' /*1*/ => array(
++			'text/plain',
++			'application/octet-stream',
++			'application/x-netcdf', // [sic]
++		),
++		'text' /*3*/ => array(
++			'text/richtext', 'image/x-bitmap', 'application/postscript', 'application/base64',
++			'application/macbinhex40', 'application/x-cdf', 'text/scriptlet'
++		),
++		'binary' /*4*/ => array(
++			'application/pdf', 'audio/x-aiff', 'audio/basic', 'audio/wav', 'image/gif',
++			'image/pjpeg', 'image/jpeg', 'image/tiff', 'image/x-png', 'image/png', 'image/bmp',
++			'image/x-jg', 'image/x-art', 'image/x-emf', 'image/x-wmf', 'video/avi',
++			'video/x-msvideo', 'video/mpeg', 'application/x-compressed',
++			'application/x-zip-compressed', 'application/x-gzip-compressed', 'application/java',
++			'application/x-msdownload'
++		),
++		'html' /*5*/ => array( 'text/html' ),
++	);
++
++	/**
++	 * Changes to the type table in later versions of IE
++	 */
++	protected $addedTypes = array(
++		'ie07' => array(
++			'text' => array( 'text/xml', 'application/xml' )
++		),
++	);
++
++	/**
++	 * An approximation of the "Content Type" values in HKEY_CLASSES_ROOT in a
++	 * typical Windows installation.
++	 *
++	 * Used for extension to MIME type mapping if detection fails.
++	 */
++	protected $registry = array(
++		'.323' => 'text/h323',
++		'.3g2' => 'video/3gpp2',
++		'.3gp' => 'video/3gpp',
++		'.3gp2' => 'video/3gpp2',
++		'.3gpp' => 'video/3gpp',
++		'.aac' => 'audio/aac',
++		'.ac3' => 'audio/ac3',
++		'.accda' => 'application/msaccess',
++		'.accdb' => 'application/msaccess',
++		'.accdc' => 'application/msaccess',
++		'.accde' => 'application/msaccess',
++		'.accdr' => 'application/msaccess',
++		'.accdt' => 'application/msaccess',
++		'.ade' => 'application/msaccess',
++		'.adp' => 'application/msaccess',
++		'.adts' => 'audio/aac',
++		'.ai' => 'application/postscript',
++		'.aif' => 'audio/aiff',
++		'.aifc' => 'audio/aiff',
++		'.aiff' => 'audio/aiff',
++		'.amc' => 'application/x-mpeg',
++		'.application' => 'application/x-ms-application',
++		'.asf' => 'video/x-ms-asf',
++		'.asx' => 'video/x-ms-asf',
++		'.au' => 'audio/basic',
++		'.avi' => 'video/avi',
++		'.bmp' => 'image/bmp',
++		'.caf' => 'audio/x-caf',
++		'.cat' => 'application/vnd.ms-pki.seccat',
++		'.cbo' => 'application/sha',
++		'.cdda' => 'audio/aiff',
++		'.cer' => 'application/x-x509-ca-cert',
++		'.conf' => 'text/plain',
++		'.crl' => 'application/pkix-crl',
++		'.crt' => 'application/x-x509-ca-cert',
++		'.css' => 'text/css',
++		'.csv' => 'application/vnd.ms-excel',
++		'.der' => 'application/x-x509-ca-cert',
++		'.dib' => 'image/bmp',
++		'.dif' => 'video/x-dv',
++		'.dll' => 'application/x-msdownload',
++		'.doc' => 'application/msword',
++		'.docm' => 'application/vnd.ms-word.document.macroEnabled.12',
++		'.docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
++		'.dot' => 'application/msword',
++		'.dotm' => 'application/vnd.ms-word.template.macroEnabled.12',
++		'.dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
++		'.dv' => 'video/x-dv',
++		'.dwfx' => 'model/vnd.dwfx+xps',
++		'.edn' => 'application/vnd.adobe.edn',
++		'.eml' => 'message/rfc822',
++		'.eps' => 'application/postscript',
++		'.etd' => 'application/x-ebx',
++		'.exe' => 'application/x-msdownload',
++		'.fdf' => 'application/vnd.fdf',
++		'.fif' => 'application/fractals',
++		'.gif' => 'image/gif',
++		'.gsm' => 'audio/x-gsm',
++		'.hqx' => 'application/mac-binhex40',
++		'.hta' => 'application/hta',
++		'.htc' => 'text/x-component',
++		'.htm' => 'text/html',
++		'.html' => 'text/html',
++		'.htt' => 'text/webviewhtml',
++		'.hxa' => 'application/xml',
++		'.hxc' => 'application/xml',
++		'.hxd' => 'application/octet-stream',
++		'.hxe' => 'application/xml',
++		'.hxf' => 'application/xml',
++		'.hxh' => 'application/octet-stream',
++		'.hxi' => 'application/octet-stream',
++		'.hxk' => 'application/xml',
++		'.hxq' => 'application/octet-stream',
++		'.hxr' => 'application/octet-stream',
++		'.hxs' => 'application/octet-stream',
++		'.hxt' => 'application/xml',
++		'.hxv' => 'application/xml',
++		'.hxw' => 'application/octet-stream',
++		'.ico' => 'image/x-icon',
++		'.iii' => 'application/x-iphone',
++		'.ins' => 'application/x-internet-signup',
++		'.iqy' => 'text/x-ms-iqy',
++		'.isp' => 'application/x-internet-signup',
++		'.jfif' => 'image/jpeg',
++		'.jnlp' => 'application/x-java-jnlp-file',
++		'.jpe' => 'image/jpeg',
++		'.jpeg' => 'image/jpeg',
++		'.jpg' => 'image/jpeg',
++		'.jtx' => 'application/x-jtx+xps',
++		'.latex' => 'application/x-latex',
++		'.log' => 'text/plain',
++		'.m1v' => 'video/mpeg',
++		'.m2v' => 'video/mpeg',
++		'.m3u' => 'audio/x-mpegurl',
++		'.mac' => 'image/x-macpaint',
++		'.man' => 'application/x-troff-man',
++		'.mda' => 'application/msaccess',
++		'.mdb' => 'application/msaccess',
++		'.mde' => 'application/msaccess',
++		'.mfp' => 'application/x-shockwave-flash',
++		'.mht' => 'message/rfc822',
++		'.mhtml' => 'message/rfc822',
++		'.mid' => 'audio/mid',
++		'.midi' => 'audio/mid',
++		'.mod' => 'video/mpeg',
++		'.mov' => 'video/quicktime',
++		'.mp2' => 'video/mpeg',
++		'.mp2v' => 'video/mpeg',
++		'.mp3' => 'audio/mpeg',
++		'.mp4' => 'video/mp4',
++		'.mpa' => 'video/mpeg',
++		'.mpe' => 'video/mpeg',
++		'.mpeg' => 'video/mpeg',
++		'.mpf' => 'application/vnd.ms-mediapackage',
++		'.mpg' => 'video/mpeg',
++		'.mpv2' => 'video/mpeg',
++		'.mqv' => 'video/quicktime',
++		'.NMW' => 'application/nmwb',
++		'.nws' => 'message/rfc822',
++		'.odc' => 'text/x-ms-odc',
++		'.ols' => 'application/vnd.ms-publisher',
++		'.p10' => 'application/pkcs10',
++		'.p12' => 'application/x-pkcs12',
++		'.p7b' => 'application/x-pkcs7-certificates',
++		'.p7c' => 'application/pkcs7-mime',
++		'.p7m' => 'application/pkcs7-mime',
++		'.p7r' => 'application/x-pkcs7-certreqresp',
++		'.p7s' => 'application/pkcs7-signature',
++		'.pct' => 'image/pict',
++		'.pdf' => 'application/pdf',
++		'.pdx' => 'application/vnd.adobe.pdx',
++		'.pfx' => 'application/x-pkcs12',
++		'.pic' => 'image/pict',
++		'.pict' => 'image/pict',
++		'.pinstall' => 'application/x-picasa-detect',
++		'.pko' => 'application/vnd.ms-pki.pko',
++		'.png' => 'image/png',
++		'.pnt' => 'image/x-macpaint',
++		'.pntg' => 'image/x-macpaint',
++		'.pot' => 'application/vnd.ms-powerpoint',
++		'.potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
++		'.potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
++		'.ppa' => 'application/vnd.ms-powerpoint',
++		'.ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
++		'.pps' => 'application/vnd.ms-powerpoint',
++		'.ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
++		'.ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
++		'.ppt' => 'application/vnd.ms-powerpoint',
++		'.pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
++		'.pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
++		'.prf' => 'application/pics-rules',
++		'.ps' => 'application/postscript',
++		'.pub' => 'application/vnd.ms-publisher',
++		'.pwz' => 'application/vnd.ms-powerpoint',
++		'.py' => 'text/plain',
++		'.pyw' => 'text/plain',
++		'.qht' => 'text/x-html-insertion',
++		'.qhtm' => 'text/x-html-insertion',
++		'.qt' => 'video/quicktime',
++		'.qti' => 'image/x-quicktime',
++		'.qtif' => 'image/x-quicktime',
++		'.qtl' => 'application/x-quicktimeplayer',
++		'.rat' => 'application/rat-file',
++		'.rmf' => 'application/vnd.adobe.rmf',
++		'.rmi' => 'audio/mid',
++		'.rqy' => 'text/x-ms-rqy',
++		'.rtf' => 'application/msword',
++		'.sct' => 'text/scriptlet',
++		'.sd2' => 'audio/x-sd2',
++		'.sdp' => 'application/sdp',
++		'.shtml' => 'text/html',
++		'.sit' => 'application/x-stuffit',
++		'.sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
++		'.sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
++		'.slk' => 'application/vnd.ms-excel',
++		'.snd' => 'audio/basic',
++		'.so' => 'application/x-apachemodule',
++		'.sol' => 'text/plain',
++		'.sor' => 'text/plain',
++		'.spc' => 'application/x-pkcs7-certificates',
++		'.spl' => 'application/futuresplash',
++		'.sst' => 'application/vnd.ms-pki.certstore',
++		'.stl' => 'application/vnd.ms-pki.stl',
++		'.swf' => 'application/x-shockwave-flash',
++		'.thmx' => 'application/vnd.ms-officetheme',
++		'.tif' => 'image/tiff',
++		'.tiff' => 'image/tiff',
++		'.txt' => 'text/plain',
++		'.uls' => 'text/iuls',
++		'.vcf' => 'text/x-vcard',
++		'.vdx' => 'application/vnd.ms-visio.viewer',
++		'.vsd' => 'application/vnd.ms-visio.viewer',
++		'.vss' => 'application/vnd.ms-visio.viewer',
++		'.vst' => 'application/vnd.ms-visio.viewer',
++		'.vsx' => 'application/vnd.ms-visio.viewer',
++		'.vtx' => 'application/vnd.ms-visio.viewer',
++		'.wav' => 'audio/wav',
++		'.wax' => 'audio/x-ms-wax',
++		'.wbk' => 'application/msword',
++		'.wdp' => 'image/vnd.ms-photo',
++		'.wiz' => 'application/msword',
++		'.wm' => 'video/x-ms-wm',
++		'.wma' => 'audio/x-ms-wma',
++		'.wmd' => 'application/x-ms-wmd',
++		'.wmv' => 'video/x-ms-wmv',
++		'.wmx' => 'video/x-ms-wmx',
++		'.wmz' => 'application/x-ms-wmz',
++		'.wpl' => 'application/vnd.ms-wpl',
++		'.wsc' => 'text/scriptlet',
++		'.wvx' => 'video/x-ms-wvx',
++		'.xaml' => 'application/xaml+xml',
++		'.xbap' => 'application/x-ms-xbap',
++		'.xdp' => 'application/vnd.adobe.xdp+xml',
++		'.xfdf' => 'application/vnd.adobe.xfdf',
++		'.xht' => 'application/xhtml+xml',
++		'.xhtml' => 'application/xhtml+xml',
++		'.xla' => 'application/vnd.ms-excel',
++		'.xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
++		'.xlk' => 'application/vnd.ms-excel',
++		'.xll' => 'application/vnd.ms-excel',
++		'.xlm' => 'application/vnd.ms-excel',
++		'.xls' => 'application/vnd.ms-excel',
++		'.xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
++		'.xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
++		'.xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
++		'.xlt' => 'application/vnd.ms-excel',
++		'.xltm' => 'application/vnd.ms-excel.template.macroEnabled.12',
++		'.xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
++		'.xlw' => 'application/vnd.ms-excel',
++		'.xml' => 'text/xml',
++		'.xps' => 'application/vnd.ms-xpsdocument',
++		'.xsl' => 'text/xml',
++	);
++
++	/**
++	 * IE versions which have been analysed to bring you this class, and for
++	 * which some substantive difference exists. These will appear as keys
++	 * in the return value of getRealMimesFromData(). The names are chosen to sort correctly.
++	 */
++	protected $versions = array( 'ie05', 'ie06', 'ie07', 'ie07.strict', 'ie07.nohtml' );
++
++	/**
++	 * Type table with versions expanded
++	 */
++	protected $typeTable = array();
++
++	/** constructor */
++	function __construct() {
++		// Construct versioned type arrays from the base type array plus additions
++		$types = $this->baseTypeTable;
++		foreach ( $this->versions as $version ) {
++			if ( isset( $this->addedTypes[$version] ) ) {
++				foreach ( $this->addedTypes[$version] as $format => $addedTypes ) {
++					$types[$format] = array_merge( $types[$format], $addedTypes );
++				}
++			}
++			$this->typeTable[$version] = $types;
++		}
++	}
++
++	/**
++	 * Get the MIME types from getMimesFromData(), but convert the result from IE's
++	 * idiosyncratic private types into something other apps will understand.
++	 *
++	 * @param string $fileName The file name (unused at present)
++	 * @param string $chunk The first 256 bytes of the file
++	 * @param string $proposed The MIME type proposed by the server
++	 *
++	 * @return array Map of IE version to detected mime type
++	 */
++	public function getRealMimesFromData( $fileName, $chunk, $proposed ) {
++		$types = $this->getMimesFromData( $fileName, $chunk, $proposed );
++		$types = array_map( array( $this, 'translateMimeType' ), $types );
++		return $types;
++	}
++
++	/**
++	 * Translate a MIME type from IE's idiosyncratic private types into
++	 * more commonly understood type strings
++	 */
++	public function translateMimeType( $type ) {
++		static $table = array(
++			'image/pjpeg' => 'image/jpeg',
++			'image/x-png' => 'image/png',
++			'image/x-wmf' => 'application/x-msmetafile',
++			'image/bmp' => 'image/x-bmp',
++			'application/x-zip-compressed' => 'application/zip',
++			'application/x-compressed' => 'application/x-compress',
++			'application/x-gzip-compressed' => 'application/x-gzip',
++			'audio/mid' => 'audio/midi',
++		);
++		if ( isset( $table[$type] ) ) {
++			$type = $table[$type];
++		}
++		return $type;
++	}
++
++	/**
++	 * Get the untranslated MIME types for all known versions
++	 *
++	 * @param string $fileName The file name (unused at present)
++	 * @param string $chunk The first 256 bytes of the file
++	 * @param string $proposed The MIME type proposed by the server
++	 *
++	 * @return array Map of IE version to detected mime type
++	 */
++	public function getMimesFromData( $fileName, $chunk, $proposed ) {
++		$types = array();
++		foreach ( $this->versions as $version ) {
++			$types[$version] = $this->getMimeTypeForVersion( $version, $fileName, $chunk, $proposed );
++		}
++		return $types;
++	}
++
++	/**
++	 * Get the MIME type for a given named version
++	 */
++	protected function getMimeTypeForVersion( $version, $fileName, $chunk, $proposed ) {
++		// Strip text after a semicolon
++		$semiPos = strpos( $proposed, ';' );
++		if ( $semiPos !== false ) {
++			$proposed = substr( $proposed, 0, $semiPos );
++		}
++
++		$proposedFormat = $this->getDataFormat( $version, $proposed );
++		if ( $proposedFormat == 'unknown'
++			&& $proposed != 'multipart/mixed'
++			&& $proposed != 'multipart/x-mixed-replace' )
++		{
++			return $proposed;
++		}
++		if ( strval( $chunk ) === '' ) {
++			return $proposed;
++		}
++
++		// Truncate chunk at 255 bytes
++		$chunk = substr( $chunk, 0, 255 );
++
++		// IE does the Check*Headers() calls last, and instead does the following image
++		// type checks by directly looking for the magic numbers. What I do here should
++		// have the same effect since the magic number checks are identical in both cases.
++		$result = $this->sampleData( $version, $chunk );
++		$sampleFound = $result['found'];
++		$counters = $result['counters'];
++		$binaryType = $this->checkBinaryHeaders( $version, $chunk );
++		$textType = $this->checkTextHeaders( $version, $chunk );
++
++		if ( $proposed == 'text/html' && isset( $sampleFound['html'] ) ) {
++			return 'text/html';
++		}
++		if ( $proposed == 'image/gif' && $binaryType == 'image/gif' ) {
++			return 'image/gif';
++		}
++		if ( ( $proposed == 'image/pjpeg' || $proposed == 'image/jpeg' )
++			&& $binaryType == 'image/pjpeg' )
++		{
++			return $proposed;
++		}
++		// PNG check added in IE 7
++		if ( $version >= 'ie07'
++			&& ( $proposed == 'image/x-png' || $proposed == 'image/png' )
++			&& $binaryType == 'image/x-png' )
++		{
++			return $proposed;
++		}
++
++		// CDF was removed in IE 7 so it won't be in $sampleFound for later versions
++		if ( isset( $sampleFound['cdf'] ) ) {
++			return 'application/x-cdf';
++		}
++
++		// RSS and Atom were added in IE 7 so they won't be in $sampleFound for
++		// previous versions
++		if ( isset( $sampleFound['rss'] ) ) {
++			return 'application/rss+xml';
++		}
++		if ( isset( $sampleFound['rdf-tag'] )
++			&& isset( $sampleFound['rdf-url'] )
++			&& isset( $sampleFound['rdf-purl'] ) )
++		{
++			return 'application/rss+xml';
++		}
++		if ( isset( $sampleFound['atom'] ) ) {
++			return 'application/atom+xml';
++		}
++
++		if ( isset( $sampleFound['xml'] ) ) {
++			// TODO: I'm not sure under what circumstances this flag is enabled
++			if ( strpos( $version, 'strict' ) !== false ) {
++				if ( $proposed == 'text/html' || $proposed == 'text/xml' ) {
++					return 'text/xml';
++				}
++			} else {
++				return 'text/xml';
++			}
++		}
++		if ( isset( $sampleFound['html'] ) ) {
++			// TODO: I'm not sure under what circumstances this flag is enabled
++			if ( strpos( $version, 'nohtml' ) !== false ) {
++				if ( $proposed == 'text/plain' ) {
++					return 'text/html';
++				}
++			} else {
++				return 'text/html';
++			}
++		}
++		if ( isset( $sampleFound['xbm'] ) ) {
++			return 'image/x-bitmap';
++		}
++		if ( isset( $sampleFound['binhex'] ) ) {
++			return 'application/macbinhex40';
++		}
++		if ( isset( $sampleFound['scriptlet'] ) ) {
++			if ( strpos( $version, 'strict' ) !== false ) {
++				if ( $proposed == 'text/plain' || $proposed == 'text/scriptlet' ) {
++					return 'text/scriptlet';
++				}
++			} else {
++				return 'text/scriptlet';
++			}
++		}
++
++		// Freaky heuristics to determine if the data is text or binary
++		// The heuristic is of course broken for non-ASCII text
++		if ( $counters['ctrl'] != 0 && ( $counters['ff'] + $counters['low'] )
++			< ( $counters['ctrl'] + $counters['high'] ) * 16 )
++		{
++			$kindOfBinary = true;
++			$type = $binaryType ? $binaryType : $textType;
++			if ( $type === false ) {
++				$type = 'application/octet-stream';
++			}
++		} else {
++			$kindOfBinary = false;
++			$type = $textType ? $textType : $binaryType;
++			if ( $type === false ) {
++				$type = 'text/plain';
++			}
++		}
++
++		// Check if the output format is ambiguous
++		// This generally means that detection failed, real types aren't ambiguous
++		$detectedFormat = $this->getDataFormat( $version, $type );
++		if ( $detectedFormat != 'ambiguous' ) {
++			return $type;
++		}
++
++		if ( $proposedFormat != 'ambiguous' ) {
++			// FormatAgreesWithData()
++			if ( $proposedFormat == 'text' && !$kindOfBinary ) {
++				return $proposed;
++			}
++			if ( $proposedFormat == 'binary' && $kindOfBinary ) {
++				return $proposed;
++			}
++			if ( $proposedFormat == 'html' ) {
++				return $proposed;
++			}
++		}
++
++		// Find a MIME type by searching the registry for the file extension.
++		$dotPos = strrpos( $fileName, '.' );
++		if ( $dotPos === false ) {
++			return $type;
++		}
++		$ext = substr( $fileName, $dotPos );
++		if ( isset( $this->registry[$ext] ) ) {
++			return $this->registry[$ext];
++		}
++
++		// TODO: If the extension has an application registered to it, IE will return
++		// application/octet-stream. We'll skip that, so we could erroneously
++		// return text/plain or application/x-netcdf where application/octet-stream
++		// would be correct.
++
++		return $type;
++	}
++
++	/**
++	 * Check for text headers at the start of the chunk
++	 * Confirmed same in 5 and 7.
++	 */
++	private function checkTextHeaders( $version, $chunk ) {
++		$chunk2 = substr( $chunk, 0, 2 );
++		$chunk4 = substr( $chunk, 0, 4 );
++		$chunk5 = substr( $chunk, 0, 5 );
++		if ( $chunk4 == '%PDF' ) {
++			return 'application/pdf';
++		}
++		if ( $chunk2 == '%!' ) {
++			return 'application/postscript';
++		}
++		if ( $chunk5 == '{\\rtf' ) {
++			return 'text/richtext';
++		}
++		if ( $chunk5 == 'begin' ) {
++			return 'application/base64';
++		}
++		return false;
++	}
++
++	/**
++	 * Check for binary headers at the start of the chunk
++	 * Confirmed same in 5 and 7.
++	 */
++	private function checkBinaryHeaders( $version, $chunk ) {
++		$chunk2 = substr( $chunk, 0, 2 );
++		$chunk3 = substr( $chunk, 0, 3 );
++		$chunk4 = substr( $chunk, 0, 4 );
++		$chunk5 = substr( $chunk, 0, 5 );
++		$chunk8 = substr( $chunk, 0, 8 );
++		if ( $chunk5 == 'GIF87' || $chunk5 == 'GIF89' ) {
++			return 'image/gif';
++		}
++		if ( $chunk2 == "\xff\xd8" ) {
++			return 'image/pjpeg'; // actually plain JPEG but this is what IE returns
++		}
++
++		if ( $chunk2 == 'BM'
++			&& substr( $chunk, 6, 2 ) == "\000\000"
++			&& substr( $chunk, 8, 2 ) != "\000\000" )
++		{
++			return 'image/bmp'; // another non-standard MIME
++		}
++		if ( $chunk4 == 'RIFF'
++			&& substr( $chunk, 8, 4 ) == 'WAVE' )
++		{
++			return 'audio/wav';
++		}
++		// These were integer literals in IE
++		// Perhaps the author was not sure what the target endianness was
++		if ( $chunk4 == ".sd\000"
++			|| $chunk4 == ".snd"
++			|| $chunk4 == "\000ds."
++			|| $chunk4 == "dns." )
++		{
++			return 'audio/basic';
++		}
++		if ( $chunk3 == "MM\000" ) {
++			return 'image/tiff';
++		}
++		if ( $chunk2 == 'MZ' ) {
++			return 'application/x-msdownload';
++		}
++		if ( $chunk8 == "\x89PNG\x0d\x0a\x1a\x0a" ) {
++			return 'image/x-png'; // [sic]
++		}
++		if ( strlen( $chunk ) >= 5 ) {
++			$byte2 = ord( $chunk[2] );
++			$byte4 = ord( $chunk[4] );
++			if ( $byte2 >= 3 && $byte2 <= 31 && $byte4 == 0 && $chunk2 == 'JG' ) {
++				return 'image/x-jg';
++			}
++		}
++		// More endian confusion?
++		if ( $chunk4 == 'MROF' ) {
++			return 'audio/x-aiff';
++		}
++		$chunk4_8 = substr( $chunk, 8, 4 );
++		if ( $chunk4 == 'FORM' && ( $chunk4_8 == 'AIFF' || $chunk4_8 == 'AIFC' ) ) {
++			return 'audio/x-aiff';
++		}
++		if ( $chunk4 == 'RIFF' && $chunk4_8 == 'AVI ' ) {
++			return 'video/avi';
++		}
++		if ( $chunk4 == "\x00\x00\x01\xb3" || $chunk4 == "\x00\x00\x01\xba" ) {
++			return 'video/mpeg';
++		}
++		if ( $chunk4 == "\001\000\000\000"
++			&& substr( $chunk, 40, 4 ) == ' EMF' )
++		{
++			return 'image/x-emf';
++		}
++		if ( $chunk4 == "\xd7\xcd\xc6\x9a" ) {
++			return 'image/x-wmf';
++		}
++		if ( $chunk4 == "\xca\xfe\xba\xbe" ) {
++			return 'application/java';
++		}
++		if ( $chunk2 == 'PK' ) {
++			return 'application/x-zip-compressed';
++		}
++		if ( $chunk2 == "\x1f\x9d" ) {
++			return 'application/x-compressed';
++		}
++		if ( $chunk2 == "\x1f\x8b" ) {
++			return 'application/x-gzip-compressed';
++		}
++		// Skip redundant check for ZIP
++		if ( $chunk5 == "MThd\000" ) {
++			return 'audio/mid';
++		}
++		if ( $chunk4 == '%PDF' ) {
++			return 'application/pdf';
++		}
++		return false;
++	}
++
++	/**
++	 * Do heuristic checks on the bulk of the data sample.
++	 * Search for HTML tags.
++	 */
++	protected function sampleData( $version, $chunk ) {
++		$found = array();
++		$counters = array(
++			'ctrl' => 0,
++			'high' => 0,
++			'low' => 0,
++			'lf' => 0,
++			'cr' => 0,
++			'ff' => 0
++		);
++		$htmlTags = array(
++			'html',
++			'head',
++			'title',
++			'body',
++			'script',
++			'a href',
++			'pre',
++			'img',
++			'plaintext',
++			'table'
++		);
++		$rdfUrl = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
++		$rdfPurl = 'http://purl.org/rss/1.0/';
++		$xbmMagic1 = '#define';
++		$xbmMagic2 = '_width';
++		$xbmMagic3 = '_bits';
++		$binhexMagic = 'converted with BinHex';
++
++		for ( $offset = 0; $offset < strlen( $chunk ); $offset++ ) {
++			$curChar = $chunk[$offset];
++			if ( $curChar == "\x0a" ) {
++				$counters['lf']++;
++				continue;
++			} elseif ( $curChar == "\x0d" ) {
++				$counters['cr']++;
++				continue;
++			} elseif ( $curChar == "\x0c" ) {
++				$counters['ff']++;
++				continue;
++			} elseif ( $curChar == "\t" ) {
++				$counters['low']++;
++				continue;
++			} elseif ( ord( $curChar ) < 32 ) {
++				$counters['ctrl']++;
++				continue;
++			} elseif ( ord( $curChar ) >= 128 ) {
++				$counters['high']++;
++				continue;
++			}
++
++			$counters['low']++;
++			if ( $curChar == '<' ) {
++				// XML
++				$remainder = substr( $chunk, $offset + 1 );
++				if ( !strncasecmp( $remainder, '?XML', 4 ) ) {
++					$nextChar = substr( $chunk, $offset + 5, 1 );
++					if ( $nextChar == ':' || $nextChar == ' ' || $nextChar == "\t" ) {
++						$found['xml'] = true;
++					}
++				}
++				// Scriptlet (JSP)
++				if ( !strncasecmp( $remainder, 'SCRIPTLET', 9 ) ) {
++					$found['scriptlet'] = true;
++					break;
++				}
++				// HTML
++				foreach ( $htmlTags as $tag ) {
++					if ( !strncasecmp( $remainder, $tag, strlen( $tag ) ) ) {
++						$found['html'] = true;
++					}
++				}
++				// Skip broken check for additional tags (HR etc.)
++
++				// CHANNEL replaced by RSS, RDF and FEED in IE 7
++				if ( $version < 'ie07' ) {
++					if ( !strncasecmp( $remainder, 'CHANNEL', 7 ) ) {
++						$found['cdf'] = true;
++					}
++				} else {
++					// RSS
++					if ( !strncasecmp( $remainder, 'RSS', 3 ) ) {
++						$found['rss'] = true;
++						break; // return from SampleData
++					}
++					if ( !strncasecmp( $remainder, 'rdf:RDF', 7 ) ) {
++						$found['rdf-tag'] = true;
++						// no break
++					}
++					if ( !strncasecmp( $remainder, 'FEED', 4 ) ) {
++						$found['atom'] = true;
++						break;
++					}
++				}
++				continue;
++			}
++			// Skip broken check for -->
++
++			// RSS URL checks
++			// For some reason both URLs must appear before it is recognised
++			$remainder = substr( $chunk, $offset );
++			if ( !strncasecmp( $remainder, $rdfUrl, strlen( $rdfUrl ) ) ) {
++				$found['rdf-url'] = true;
++				if ( isset( $found['rdf-tag'] )
++					&& isset( $found['rdf-purl'] ) ) // [sic]
++				{
++					break;
++				}
++				continue;
++			}
++
++			if ( !strncasecmp( $remainder, $rdfPurl, strlen( $rdfPurl ) ) ) {
++				if ( isset( $found['rdf-tag'] )
++					&& isset( $found['rdf-url'] ) ) // [sic]
++				{
++					break;
++				}
++				continue;
++			}
++
++			// XBM checks
++			if ( !strncasecmp( $remainder, $xbmMagic1, strlen( $xbmMagic1 ) ) ) {
++				$found['xbm1'] = true;
++				continue;
++			}
++			if ( $curChar == '_' ) {
++				if ( isset( $found['xbm2'] ) ) {
++					if ( !strncasecmp( $remainder, $xbmMagic3, strlen( $xbmMagic3 ) ) ) {
++						$found['xbm'] = true;
++						break;
++					}
++				} elseif ( isset( $found['xbm1'] ) ) {
++					if ( !strncasecmp( $remainder, $xbmMagic2, strlen( $xbmMagic2 ) ) ) {
++						$found['xbm2'] = true;
++					}
++				}
++			}
++
++			// BinHex
++			if ( !strncasecmp( $remainder, $binhexMagic, strlen( $binhexMagic ) ) ) {
++				$found['binhex'] = true;
++			}
++		}
++		return array( 'found' => $found, 'counters' => $counters );
++	}
++
++	protected function getDataFormat( $version, $type ) {
++		$types = $this->typeTable[$version];
++		if ( $type == '(null)' || strval( $type ) === '' ) {
++			return 'ambiguous';
++		}
++		foreach ( $types as $format => $list ) {
++			if ( in_array( $type, $list ) ) {
++				return $format;
++			}
++		}
++		return 'unknown';
++	}
++}
++
+--- a/includes/MimeMagic.php
++++ b/includes/MimeMagic.php
+@@ -100,6 +100,10 @@ class MimeMagic {
+ 	*/
+ 	var $mExtToMime= NULL;
+ 
++	/** IEContentAnalyzer instance
++	 */
++	var $mIEAnalyzer;
++
+ 	/** The singleton instance
+ 	 */
+ 	private static $instance;
+@@ -733,6 +737,29 @@ class MimeMagic {
+ 
+ 		return MEDIATYPE_UNKNOWN;
+ 	}
++
++	/**
++	 * Get the MIME types that various versions of Internet Explorer would
++	 * detect from a chunk of the content.
++	 *
++	 * @param string $fileName The file name (unused at present)
++	 * @param string $chunk The first 256 bytes of the file
++	 * @param string $proposed The MIME type proposed by the server
++	 */
++	public function getIEMimeTypes( $fileName, $chunk, $proposed ) {
++		$ca = $this->getIEContentAnalyzer();
++		return $ca->getRealMimesFromData( $fileName, $chunk, $proposed );
++	}
++
++	/**
++	 * Get a cached instance of IEContentAnalyzer
++	 */
++	protected function getIEContentAnalyzer() {
++		if ( is_null( $this->mIEAnalyzer ) ) {
++			$this->mIEAnalyzer = new IEContentAnalyzer;
++		}
++		return $this->mIEAnalyzer;
++	}
+ }
+ 
+ 
+--- a/includes/SpecialImport.php
++++ b/includes/SpecialImport.php
+@@ -42,26 +42,30 @@ function wfSpecialImport( $page = '' ) {
+ 	if( $wgRequest->wasPosted() && $wgRequest->getVal( 'action' ) == 'submit') {
+ 		$isUpload = false;
+ 		$namespace = $wgRequest->getIntOrNull( 'namespace' );
++		$sourceName = $wgRequest->getVal( "source" );
+ 
+-		switch( $wgRequest->getVal( "source" ) ) {
+-		case "upload":
++		if ( !$wgUser->matchEditToken( $wgRequest->getVal( 'editToken' ) ) ) {
++			$source = new WikiErrorMsg( 'import-token-mismatch' );
++		} elseif ( $sourceName == 'upload' ) {
+ 			$isUpload = true;
+ 			if( $wgUser->isAllowed( 'importupload' ) ) {
+ 				$source = ImportStreamSource::newFromUpload( "xmlimport" );
+ 			} else {
+ 				return $wgOut->permissionRequired( 'importupload' );
+ 			}
+-			break;
+-		case "interwiki":
++		} elseif ( $sourceName == "interwiki" ) {
+ 			$interwiki = $wgRequest->getVal( 'interwiki' );
+-			$history = $wgRequest->getCheck( 'interwikiHistory' );
+-			$frompage = $wgRequest->getText( "frompage" );
+-			$source = ImportStreamSource::newFromInterwiki(
+-				$interwiki,
+-				$frompage,
+-				$history );
+-			break;
+-		default:
++			if ( !in_array( $interwiki, $wgImportSources ) ) {
++				$source = new WikiErrorMsg( "import-invalid-interwiki" );
++			} else {
++				$history = $wgRequest->getCheck( 'interwikiHistory' );
++				$frompage = $wgRequest->getText( "frompage" );
++				$source = ImportStreamSource::newFromInterwiki(
++					$interwiki,
++					$frompage,
++					$history );
++			}
++		} else {
+ 			$source = new WikiErrorMsg( "importunknownsource" );
+ 		}
+ 
+@@ -105,6 +109,7 @@ function wfSpecialImport( $page = '' ) {
+ 			Xml::hidden( 'action', 'submit' ) .
+ 			Xml::hidden( 'source', 'upload' ) .
+ 			"<input type='file' name='xmlimport' value='' size='30' />" . // No Xml function for type=file? Todo?
++			Xml::hidden( 'editToken', $wgUser->editToken() ) .
+ 			Xml::submitButton( wfMsg( 'uploadbtn' ) ) . 
+ 			Xml::closeElement( 'form' ) .
+ 			Xml::closeElement( 'fieldset' )
+@@ -123,6 +128,7 @@ function wfSpecialImport( $page = '' ) {
+ 			wfMsgExt( 'import-interwiki-text', array( 'parse' ) ) .
+ 			Xml::hidden( 'action', 'submit' ) .
+ 			Xml::hidden( 'source', 'interwiki' ) .
++			Xml::hidden( 'editToken', $wgUser->editToken() ) .
+ 			Xml::openElement( 'table' ) .
+ 			"<tr>
+ 				<td>" .
+--- a/includes/SpecialUndelete.php
++++ b/includes/SpecialUndelete.php
+@@ -530,7 +530,7 @@ class PageArchive {
+  */
+ class UndeleteForm {
+ 	var $mAction, $mTarget, $mTimestamp, $mRestore, $mTargetObj;
+-	var $mTargetTimestamp, $mAllowed, $mComment;
++	var $mTargetTimestamp, $mAllowed, $mComment, $mToken;
+ 
+ 	function UndeleteForm( $request, $par = "" ) {
+ 		global $wgUser;
+@@ -547,6 +547,7 @@ class UndeleteForm {
+ 		$this->mPreview = $request->getCheck( 'preview' ) && $posted;
+ 		$this->mDiff = $request->getCheck( 'diff' );
+ 		$this->mComment = $request->getText( 'wpComment' );
++		$this->mToken = $request->getVal( 'token' );
+ 		
+ 		if( $par != "" ) {
+ 			$this->mTarget = $par;
+@@ -604,7 +605,12 @@ class UndeleteForm {
+ 			return $this->showRevision( $this->mTimestamp );
+ 		}
+ 		if( $this->mFile !== null ) {
+-			return $this->showFile( $this->mFile );
++			if ( !$wgUser->matchEditToken( $this->mToken, $this->mFile ) ) {
++				$this->showFileConfirmationForm( $this->mFile );
++				return false;
++ 			} else {
++				return $this->showFile( $this->mFile );
++			}
+ 		}
+ 		if( $this->mRestore && $this->mAction == "submit" ) {
+ 			return $this->undelete();
+@@ -810,6 +816,29 @@ class UndeleteForm {
+ 	}
+ 	
+ 	/**
++	 * Show a form confirming whether a tokenless user really wants to see a file
++	 */
++	private function showFileConfirmationForm( $key ) {
++		global $wgOut, $wgUser, $wgLang;
++		$file = new ArchivedFile( $this->mTargetObj, '', $this->mFile );
++		$wgOut->addWikiMsg( 'undelete-show-file-confirm',
++			$this->mTargetObj->getText(),
++			$wgLang->timeanddate( $file->getTimestamp() ) );
++		$wgOut->addHTML(
++			Xml::openElement( 'form', array(
++				'method' => 'POST',
++				'action' => SpecialPage::getTitleFor( 'Undelete' )->getLocalUrl(
++					'target=' . urlencode( $this->mTarget ) .
++					'&file=' . urlencode( $key ) .
++					'&token=' . urlencode( $wgUser->editToken( $key ) ) )
++				)
++			) .
++			Xml::submitButton( wfMsg( 'undelete-show-file-submit' ) ) .
++			'</form>'
++		);
++	}
++
++	/**
+ 	 * Show a deleted file version requested by the visitor.
+ 	 */
+ 	function showFile( $key ) {
+@@ -997,7 +1026,9 @@ class UndeleteForm {
+ 					$target = urlencode( $this->mTarget );
+ 					$pageLink = $sk->makeKnownLinkObj( $titleObj,
+ 						$wgLang->timeanddate( $ts, true ),
+-						"target=$target&file=$key" );
++						"target=$target" .
++						"&file=$key" .
++						"&token=" . urlencode( $wgUser->editToken( $key ) ) );
+ 				} else {
+ 					$checkBox = '';
+ 					$pageLink = $wgLang->timeanddate( $ts, true );
+--- a/includes/SpecialUpload.php
++++ b/includes/SpecialUpload.php
+@@ -1214,11 +1214,11 @@ EOT
+ 		$magic=& MimeMagic::singleton();
+ 		$mime= $magic->guessMimeType($tmpfile,false);
+ 
++
+ 		#check mime type, if desired
+ 		global $wgVerifyMimeType;
+ 		if ($wgVerifyMimeType) {
+-
+-		  wfDebug ( "\n\nmime: <$mime> extension: <$extension>\n\n");
++			wfDebug ( "\n\nmime: <$mime> extension: <$extension>\n\n");
+ 			#check mime type against file extension
+ 			if( !$this->verifyExtension( $mime, $extension ) ) {
+ 				return new WikiErrorMsg( 'uploadcorrupt' );
+@@ -1226,9 +1226,22 @@ EOT
+ 
+ 			#check mime type blacklist
+ 			global $wgMimeTypeBlacklist;
+-			if( isset($wgMimeTypeBlacklist) && !is_null($wgMimeTypeBlacklist)
+-				&& $this->checkFileExtension( $mime, $wgMimeTypeBlacklist ) ) {
+-				return new WikiErrorMsg( 'filetype-badmime', htmlspecialchars( $mime ) );
++			if( isset($wgMimeTypeBlacklist) && !is_null($wgMimeTypeBlacklist) ) {
++				if ( $this->checkFileExtension( $mime, $wgMimeTypeBlacklist ) ) {
++					return new WikiErrorMsg( 'filetype-badmime', htmlspecialchars( $mime ) );
++				}
++
++				# Check IE type
++				$fp = fopen( $tmpfile, 'rb' );
++				$chunk = fread( $fp, 256 );
++				fclose( $fp );
++				$extMime = $magic->guessTypesForExtension( $extension );
++				$ieTypes = $magic->getIEMimeTypes( $tmpfile, $chunk, $extMime );
++				foreach ( $ieTypes as $ieType ) {
++					if ( $this->checkFileExtension( $ieType, $wgMimeTypeBlacklist ) ) {
++						return new WikiErrorMsg( 'filetype-bad-ie-mime', $ieType );
++					}
++				}
+ 			}
+ 		}
+ 
+@@ -1236,6 +1249,11 @@ EOT
+ 		if( $this->detectScript ( $tmpfile, $mime, $extension ) ) {
+ 			return new WikiErrorMsg( 'uploadscripted' );
+ 		}
++		if( $extension == 'svg' || $mime == 'image/svg+xml' ) {
++			if( $this->detectScriptInSvg( $tmpfile ) ) {
++				return new WikiErrorMsg( 'uploadscripted' );
++			}
++		}
+ 
+ 		/**
+ 		* Scan the uploaded file for viruses
+@@ -1249,6 +1267,7 @@ EOT
+ 		return true;
+ 	}
+ 
++
+ 	/**
+ 	 * Checks if the mime type of the uploaded file matches the file extension.
+ 	 *
+@@ -1347,6 +1366,7 @@ EOT
+ 		*/
+ 
+ 		$tags = array(
++			'<a href',
+ 			'<body',
+ 			'<head',
+ 			'<html',   #also in safari
+@@ -1385,6 +1405,41 @@ EOT
+ 		return false;
+ 	}
+ 
++	function detectScriptInSvg( $filename ) {
++		$check = new XmlTypeCheck( $filename, array( $this, 'checkSvgScriptCallback' ) );
++		return $check->filterMatch;
++	}
++
++ 	/**
++	 * @todo Replace this with a whitelist filter!
++	 */
++	function checkSvgScriptCallback( $element, $attribs ) {
++		$stripped = $this->stripXmlNamespace( $element );
++
++		if( $stripped == 'script' ) {
++			wfDebug( __METHOD__ . ": Found script element '$element' in uploaded file.\n" );
++			return true;
++		}
++
++		foreach( $attribs as $attrib => $value ) {
++			$stripped = $this->stripXmlNamespace( $attrib );
++			if( substr( $stripped, 0, 2 ) == 'on' ) {
++				wfDebug( __METHOD__ . ": Found script attribute '$attrib'='value' in uploaded file.\n" );
++				return true;
++			}
++			if( $stripped == 'href' && strpos( strtolower( $value ), 'javascript:' ) !== false ) {
++				wfDebug( __METHOD__ . ": Found script href attribute '$attrib'='$value' in uploaded file.\n" );
++				return true;
++			}
++		}
++	}
++
++	private function stripXmlNamespace( $name ) {
++		// 'http://www.w3.org/2000/svg:script' -> 'script'
++		$parts = explode( ':', strtolower( $name ) );
++		return array_pop( $parts );
++	}
++
+ 	/** 
+ 	 * Generic wrapper function for a virus scanner program.
+ 	 * This relies on the $wgAntivirus and $wgAntivirusSetup variables.
+--- a/includes/StreamFile.php
++++ b/includes/StreamFile.php
+@@ -31,6 +31,12 @@ function wfStreamFile( $fname, $headers 
+ 		header('Content-type: application/x-wiki');
+ 	}
+ 
++	// Don't stream it out as text/html if there was a PHP error
++	if ( headers_sent() ) {
++		echo "Headers already sent, terminating.\n";
++		return;
++	}
++
+ 	global $wgContLanguageCode;
+ 	header( "Content-Disposition: inline;filename*=utf-8'$wgContLanguageCode'" . urlencode( basename( $fname ) ) );
+ 
+@@ -53,27 +59,54 @@ function wfStreamFile( $fname, $headers 
+ }
+ 
+ /** */
+-function wfGetType( $filename ) {
++function wfGetType( $filename, $safe = true ) {
+ 	global $wgTrivialMimeDetection;
+ 
++	$ext = strrchr($filename, '.');
++	$ext = $ext === false ? '' : strtolower( substr( $ext, 1 ) );
++
+ 	# trivial detection by file extension,
+ 	# used for thumbnails (thumb.php)
+ 	if ($wgTrivialMimeDetection) {
+-		$ext= strtolower(strrchr($filename, '.'));
+ 
+ 		switch ($ext) {
+-			case '.gif': return 'image/gif';
+-			case '.png': return 'image/png';
+-			case '.jpg': return 'image/jpeg';
+-			case '.jpeg': return 'image/jpeg';
++			case 'gif': return 'image/gif';
++			case 'png': return 'image/png';
++			case 'jpg': return 'image/jpeg';
++			case 'jpeg': return 'image/jpeg';
+ 		}
+ 
+ 		return 'unknown/unknown';
+ 	}
+-	else {
+-		$magic=& MimeMagic::singleton();
+-		return $magic->guessMimeType($filename); //full fancy mime detection
++
++	$magic = MimeMagic::singleton();
++	// Use the extension only, rather than magic numbers, to avoid opening
++	// up vulnerabilities due to uploads of files with allowed extensions
++	// but disallowed types.
++	$type = $magic->guessTypesForExtension( $ext );
++
++	/**
++	 * Double-check some security settings that were done on upload but might
++	 * have changed since.
++	 */
++	if ( $safe ) {
++		global $wgFileBlacklist, $wgCheckFileExtensions, $wgStrictFileExtensions,
++			$wgFileExtensions, $wgVerifyMimeType, $wgMimeTypeBlacklist, $wgRequest;
++		$form = new UploadForm( $wgRequest );
++		list( $partName, $extList ) = $form->splitExtensions( $filename );
++		if ( $form->checkFileExtensionList( $extList, $wgFileBlacklist ) ) {
++			return 'unknown/unknown';
++		}
++		if ( $wgCheckFileExtensions && $wgStrictFileExtensions
++			&& !$form->checkFileExtensionList( $extList, $wgFileExtensions ) )
++		{
++			return 'unknown/unknown';
++		}
++		if ( $wgVerifyMimeType && in_array( strtolower( $type ), $wgMimeTypeBlacklist ) ) {
++			return 'unknown/unknown';
++		}
+ 	}
++	return $type;
+ }
+ 
+ 
+--- a/includes/Title.php
++++ b/includes/Title.php
+@@ -298,9 +298,13 @@ class Title {
+ 					$m[1] = urldecode( ltrim( $m[1], ':' ) );
+ 				}
+ 				$title = Title::newFromText( $m[1] );
+-				// Redirects to Special:Userlogout are not permitted
+-				if( $title instanceof Title && !$title->isSpecial( 'Userlogout' ) )
++				// Redirects to some special pages are not permitted
++				if( $title instanceof Title
++						&& !$title->isSpecial( 'Userlogout' )
++						&& !$title->isSpecial( 'Filepath' ) )
++				{
+ 					return $title;
++				}
+ 			}
+ 		}
+ 		return null;
+--- a/includes/XmlTypeCheck.php
++++ b/includes/XmlTypeCheck.php
+@@ -8,38 +8,37 @@ class XmlTypeCheck {
+ 	public $wellFormed = false;
+ 	
+ 	/**
++	 * Will be set to true if the optional element filter returned
++	 * a match at some point.
++	 */
++	public $filterMatch = false;
++
++	/**
+ 	 * Name of the document's root element, including any namespace
+ 	 * as an expanded URL.
+ 	 */
+ 	public $rootElement = '';
+ 	
+-	private $softNamespaces;
+-	private $namespaces = array();
+-	
+ 	/**
+ 	 * @param $file string filename
+-	 * @param $softNamespaces bool
+-	 *        If set to true, use of undeclared XML namespaces will be ignored.
+-	 *        This matches the behavior of rsvg, but more compliant consumers
+-	 *        such as Firefox will reject such files.
+-	 *        Leave off for the default, stricter checks.
++	 * @param $filterCallback callable (optional)
++	 *        Function to call to do additional custom validity checks from the
++	 *        SAX element handler event. This gives you access to the element
++	 *        namespace, name, and attributes, but not to text contents.
++	 *        Filter should return 'true' to toggle on $this->filterMatch
+ 	 */
+-	function __construct( $file, $softNamespaces=false ) {
+-		$this->softNamespaces = $softNamespaces;
++	function __construct( $file, $filterCallback=null ) {
++		$this->filterCallback = $filterCallback;
+ 		$this->run( $file );
+ 	}
+ 	
+ 	private function run( $fname ) {
+-		if( $this->softNamespaces ) {
+-			$parser = xml_parser_create( 'UTF-8' );
+-		} else {
+-			$parser = xml_parser_create_ns( 'UTF-8' );
+-		}
++		$parser = xml_parser_create_ns( 'UTF-8' );
+ 		
+ 		// case folding violates XML standard, turn it off
+ 		xml_parser_set_option( $parser, XML_OPTION_CASE_FOLDING, false );
+ 		
+-		xml_set_element_handler( $parser, array( $this, 'elementOpen' ), false );
++		xml_set_element_handler( $parser, array( $this, 'rootElementOpen' ), false );
+ 
+ 		$file = fopen( $fname, "rb" );
+ 		do {
+@@ -59,35 +58,22 @@ class XmlTypeCheck {
+ 		xml_parser_free( $parser );
+ 	}
+ 
+-	private function elementOpen( $parser, $name, $attribs ) {
+-		if( $this->softNamespaces ) {
+-			// Check namespaces manually, so expat doesn't throw
+-			// errors on use of undeclared namespaces.
+-			foreach( $attribs as $attrib => $val ) {
+-				if( $attrib == 'xmlns' ) {
+-					$this->namespaces[''] = $val;
+-				} elseif( substr( $attrib, 0, strlen( 'xmlns:' ) ) == 'xmlns:' ) {
+-					$this->namespaces[substr( $attrib, strlen( 'xmlns:' ) )] = $val;
+-				}
+-			}
+-			
+-			if( strpos( $name, ':' ) === false ) {
+-				$ns = '';
+-				$subname = $name;
+-			} else {
+-				list( $ns, $subname ) = explode( ':', $name, 2 );
+-			}
+-			
+-			if( isset( $this->namespaces[$ns] ) ) {
+-				$name = $this->namespaces[$ns] . ':' . $subname;
+-			} else {
+-				// Technically this is invalid for XML with Namespaces.
+-				// But..... we'll just let it slide in soft mode.
+-			}
+-		}
+-		
+-		// We only need the first open element
++	private function rootElementOpen( $parser, $name, $attribs ) {
+ 		$this->rootElement = $name;
+-		xml_set_element_handler( $parser, false, false );
++
++		if( is_callable( $this->filterCallback ) ) {
++			xml_set_element_handler( $parser, array( $this, 'elementOpen' ), false );
++			$this->elementOpen( $parser, $name, $attribs );
++		} else {
++			// We only need the first open element
++			xml_set_element_handler( $parser, false, false );
++		}
++	}
++
++	private function elementOpen( $parser, $name, $attribs ) {
++		if( call_user_func( $this->filterCallback, $name, $attribs ) ) {
++			// Filter hit!
++			$this->filterMatch = true;
++ 		}
+ 	}
+ }
+--- a/includes/filerepo/FSRepo.php
++++ b/includes/filerepo/FSRepo.php
+@@ -146,10 +146,8 @@ class FSRepo extends FileRepo {
+ 				if ( !wfMkdirParents( $dstDir ) ) {
+ 					return $this->newFatal( 'directorycreateerror', $dstDir );
+ 				}
+-				// In the deleted zone, seed new directories with a blank 
+-				// index.html, to prevent crawling
+ 				if ( $dstZone == 'deleted' ) {
+-					file_put_contents( "$dstDir/index.html", '' );
++					$this->initDeletedDir( $dstDir );
+ 				}
+ 			}
+ 			
+@@ -212,6 +210,20 @@ class FSRepo extends FileRepo {
+ 	}
+ 
+ 	/**
++	 * Take all available measures to prevent web accessibility of new deleted
++	 * directories, in case the user has not configured offline storage
++	 */
++	protected function initDeletedDir( $dir ) {
++		// Add a .htaccess file to the root of the deleted zone
++		$root = $this->getZonePath( 'deleted' );
++		if ( !file_exists( "$root/.htaccess" ) ) {
++			file_put_contents( "$root/.htaccess", "Deny from all\n" );
++		}
++		// Seed new directories with a blank index.html, to prevent crawling
++		file_put_contents( "$dir/index.html", '' );
++	}
++
++	/**
+ 	 * Pick a random name in the temp zone and store a file to it.
+ 	 * @param string $originalName The base name of the file as specified 
+ 	 *     by the user. The file extension will be maintained.
+@@ -387,8 +399,7 @@ class FSRepo extends FileRepo {
+ 					$status->fatal( 'directorycreateerror', $archiveDir );
+ 					continue;
+ 				}
+-				// Seed new directories with a blank index.html, to prevent crawling
+-				file_put_contents( "$archiveDir/index.html", '' );
++				$this->initDeletedDir( $archiveDir );
+ 			}
+ 			// Check if the archive directory is writable
+ 			// This doesn't appear to work on NTFS
+--- a/languages/messages/MessagesEn.php
++++ b/languages/messages/MessagesEn.php
+@@ -1414,6 +1414,7 @@ To include a file in a page, use a link 
+ 'illegalfilename'             => 'The filename "$1" contains characters that are not allowed in page titles. Please rename the file and try uploading it again.',
+ 'badfilename'                 => 'File name has been changed to "$1".',
+ 'filetype-badmime'            => 'Files of the MIME type "$1" are not allowed to be uploaded.',
++'filetype-bad-ie-mime'        => 'Cannot upload this file because Internet Explorer would detect it as "$1", which is a disallowed and potentially dangerous file type.',
+ 'filetype-unwanted-type'      => "'''\".\$1\"''' is an unwanted file type.  Preferred file types are \$2.",
+ 'filetype-banned-type'        => "'''\".\$1\"''' is not a permitted file type.  Permitted file types are \$2.",
+ 'filetype-missing'            => 'The file has no extension (like ".jpg").',
+@@ -1978,6 +1979,8 @@ Consult the [[Special:Log/delete|deletio
+ 'undelete-error-long'          => 'Errors were encountered while undeleting the file:
+ 
+ $1',
++'undelete-show-file-confirm'   => 'Are you sure you want to view a deleted revision of the file "<nowiki>$1</nowiki>" from $2?',
++'undelete-show-file-submit'    => 'Yes',
+ 
+ # Namespace form on various pages
+ 'namespace'      => 'Namespace:',
+@@ -2241,6 +2244,8 @@ All transwiki import actions are logged 
+ 'import-noarticle'           => 'No page to import!',
+ 'import-nonewrevisions'      => 'All revisions were previously imported.',
+ 'xml-error-string'           => '$1 at line $2, col $3 (byte $4): $5',
++'import-token-mismatch'      => 'Loss of session data. Please try again.',
++'import-invalid-interwiki'   => 'Cannot import from the specified wiki.',
+ 
+ # Import log
+ 'importlogpage'                    => 'Import log',
+--- a/maintenance/language/messages.inc
++++ b/maintenance/language/messages.inc
+@@ -848,6 +848,7 @@ $wgMessageStructure = array(
+ 		'illegalfilename',
+ 		'badfilename',
+ 		'filetype-badmime',
++		'filetype-bad-ie-mime',
+ 		'filetype-unwanted-type',
+ 		'filetype-banned-type',
+ 		'filetype-missing',
+@@ -1350,6 +1351,8 @@ $wgMessageStructure = array(
+ 		'undelete-missing-filearchive',
+ 		'undelete-error-short',
+ 		'undelete-error-long',
++		'undelete-show-file-confirm',
++		'undelete-show-file-submit',
+ 	),
+ 	'nsform' => array(
+ 		'namespace',
+@@ -1577,6 +1580,8 @@ $wgMessageStructure = array(
+ 		'import-noarticle',
+ 		'import-nonewrevisions',
+ 		'xml-error-string',
++		'import-token-mismatch',
++		'import-invalid-interwiki',
+ 	),
+ 	'importlog' => array(
+ 		'importlogpage',
+--- a/profileinfo.php
++++ b/profileinfo.php
+@@ -48,7 +48,7 @@ $wgDBadminuser = $wgDBadminpassword = $w
+ 
+ define( 'MW_NO_SETUP', 1 );
+ require_once( './includes/WebStart.php' );
+-require_once("./AdminSettings.php");
++@include_once("./AdminSettings.php");
+ require_once( './includes/GlobalFunctions.php' );
+ 
+ if (!$wgEnableProfileInfo) {
--- mediawiki-1.12.0.orig/debian/patches/texvc_location.patch
+++ mediawiki-1.12.0/debian/patches/texvc_location.patch
@@ -0,0 +1,13 @@
+Index: mediawiki-1.12.0/includes/DefaultSettings.php
+===================================================================
+--- mediawiki-1.12.0.orig/includes/DefaultSettings.php	2008-03-20 23:08:48.000000000 +0100
++++ mediawiki-1.12.0/includes/DefaultSettings.php	2008-03-24 02:32:07.000000000 +0100
+@@ -1530,7 +1530,7 @@
+  */
+ $wgUseTeX = false;
+ /** Location of the texvc binary */
+-$wgTexvc = './math/texvc';
++$wgTexvc = '/usr/bin/texvc';
+ 
+ #
+ # Profiling / debugging
