src/plugins/mediawiki/cronjobs/create-wikis.php -text
src/plugins/mediawiki/cronjobs/dump-wikis.php -text
src/plugins/mediawiki/db/mediawiki-init.sql -text
+src/plugins/mediawiki/debian/plugin-mediawiki.postinst -text
+src/plugins/mediawiki/debian/plugin-mediawiki.triggers -text
src/plugins/mediawiki/etc/cron.d/fusionforge-plugin-mediawiki -text
src/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki -text
src/plugins/mediawiki/etc/mediawiki.ini -text
src/utils/ldap/sql2ldifmod.pl -text svneol=unset#text/x-perl
src/utils/list-admins.php -text
src/utils/list-enabled-plugins.sh -text
+src/utils/list-projects-using-plugin.php -text
src/utils/manage-apache-config.sh -text svneol=unset#text/x-sh
src/utils/manage-translations.sh -text svneol=unset#text/x-sh
src/utils/migrate-to-ini-files.sh -text svneol=unset#text/x-sh
-- Roland Mas <lolando@debian.org> Tue, 27 Mar 2012 20:57:28 +0200
+fusionforge (5.1.1-6+1) unstable; urgency=low
+
+ * Set up a dpkg trigger to handle Mediawiki upgrades and update the
+ database schemas accordingly (closes: #673125).
+
+ -- Roland Mas <lolando@debian.org> Tue, 22 May 2012 11:24:34 +0200
+
fusionforge (5.1.1-6) unstable; urgency=low
* Fixes in search.
INSTALLFILES=$(patsubst packaging/install/%,debian/$(OLDPACKAGE)-%.install,$(wildcard packaging/install/[a-z]*))
PINSTALLFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/packaging/install/[a-z]*),debian/$(PACKAGE)-plugin-$i.install))
+PTRIGGERSFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/debian/[a-z]*.triggers),debian/$(PACKAGE)-plugin-$i.triggers))
+
DOCSFILES=$(patsubst packaging/docs/%,debian/$(OLDPACKAGE)-%.docs,$(wildcard packaging/docs/[a-z]*)) \
$(patsubst packaging/docs/%,debian/$(PACKAGE)-%.docs,$(wildcard packaging/docs/[a-z]*))
PDOCSFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/packaging/docs/[a-z]*),debian/$(PACKAGE)-plugin-$i.docs))
sh $(CURDIR)/deb-specific/manage-uufiles.sh clean
.PHONY: conffiles
-conffiles: $(PPOSTINST) $(PPRERM) $(CRONDFILES) $(DIRSFILES) $(LINKSFILES) $(INSTALLFILES) $(DOCSFILES) $(READMEFILES) $(PCRONDFILES) $(PDIRSFILES) $(PLINKSFILES) $(PINSTALLFILES) $(PDOCSFILES) $(PEXAMPLESFILES) debian/control
+conffiles: $(PPOSTINST) $(PPRERM) $(CRONDFILES) $(DIRSFILES) $(LINKSFILES) $(INSTALLFILES) $(DOCSFILES) $(READMEFILES) $(PCRONDFILES) $(PDIRSFILES) $(PLINKSFILES) $(PINSTALLFILES) $(PDOCSFILES) $(PTRIGGERSFILES) $(PEXAMPLESFILES) debian/control
# Construct the plugin's 'postinst' script out of a template in debian/dsf-in/plugin.postinst
debian/$(PACKAGE)-plugin-%.postinst:
export PLUGLONGNAME="`cat $(CURDIR)/plugins/$*/NAME`"; \
- $(SED_REPLACE) -e 's/@PLUGSHORTNAME@/$*/g' -e "s/@PLUGLONGNAME@/$$PLUGLONGNAME/g" $(CURDIR)/debian/dsf-in/plugin.postinst > $@
+ [ -e $(CURDIR)/plugins/$*/debian/plugin-$*.postinst ] \
+ && $(SED_REPLACE) -e 's/@PLUGSHORTNAME@/$*/g' -e "s/@PLUGLONGNAME@/$$PLUGLONGNAME/g" $(CURDIR)/plugins/$*/debian/plugin-$*.postinst > $@ \
+ || $(SED_REPLACE) -e 's/@PLUGSHORTNAME@/$*/g' -e "s/@PLUGLONGNAME@/$$PLUGLONGNAME/g" $(CURDIR)/debian/dsf-in/plugin.postinst > $@
# Construct the plugin's 'prerm' script out of a template in debian/dsf-in/plugin.prerm
debian/$(PACKAGE)-plugin-%.prerm:
export PLUGLONGNAME="`cat $(CURDIR)/plugins/$*/NAME`"; \
- $(SED_REPLACE) -e 's/@PLUGSHORTNAME@/$*/g' -e "s/@PLUGLONGNAME@/$$PLUGLONGNAME/g" $(CURDIR)/debian/dsf-in/plugin.prerm > $@
+ [ -e $(CURDIR)/plugins/$*/debian/plugin-$*.prerm ] \
+ && $(SED_REPLACE) -e 's/@PLUGSHORTNAME@/$*/g' -e "s/@PLUGLONGNAME@/$$PLUGLONGNAME/g" $(CURDIR)/plugins/$*/debian/plugin-$*.prerm > $@ \
+ || $(SED_REPLACE) -e 's/@PLUGSHORTNAME@/$*/g' -e "s/@PLUGLONGNAME@/$$PLUGLONGNAME/g" $(CURDIR)/debian/dsf-in/plugin.prerm > $@
# Perform substitutions in plugin's cron.d file
debian/$(PACKAGE)-plugin-%.cron.d:
debian/$(OLDPACKAGE)-%.cron.d:
(cat $(CURDIR)/packaging/cron.d/00phpcron ; $(SED_REPLACE) -e 's/\$$FFUSER/$(OLDPACKAGE)/g' $(CURDIR)/packaging/cron.d/$*) | $(SED_REPLACE) > $@
-# Perform subsitutions on 'dirs', 'links', 'install', 'docs' files
+# Perform subsitutions on 'dirs', 'links', 'install', 'docs', 'triggers' files
debian/$(PACKAGE)-plugin-%.dirs:
$(SED_REPLACE) $(CURDIR)/plugins/$*/packaging/dirs/plugin-$* > $@
debian/$(PACKAGE)-plugin-%.install:
$(SED_REPLACE) $(CURDIR)/plugins/$*/packaging/install/plugin-$* > $@
+debian/$(PACKAGE)-plugin-%.triggers:
+ $(SED_REPLACE) $(CURDIR)/plugins/$*/debian/plugin-$*.triggers > $@
+
debian/$(OLDPACKAGE)-%.install:
$(SED_REPLACE) $(CURDIR)/packaging/install/$* > $@
plugins/authbuiltin/etc/*.ini etc/@PACKAGE@/config.ini.d/
#
utils/list-admins.php usr/share/@OLDPACKAGE@/bin/
+utils/list-projects-using-plugin.php usr/share/@OLDPACKAGE@/bin/
--- /dev/null
+#! /bin/sh
+# postinst script for @PACKAGE@-plugin-mediawiki
+
+set -e
+
+case "$1" in
+ triggered)
+ if [ "$2" = /usr/share/mediawiki/maintenance/postgres ] ; then
+ # Upgrade Mediawiki database schemas
+ /usr/share/gforge/bin/list-projects-using-plugin.php mediawiki | while read i ; do
+ /usr/share/gforge/plugins/mediawiki/bin/mw-wrapper.php $i update.php
+ done
+
+ fi
+ ;;
+
+ configure|abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
--- /dev/null
+# Triggers for @PACKAGE@-plugin-mediawiki
+interest /usr/share/mediawiki/maintenance/postgres
--- /dev/null
+#! /usr/bin/php -f
+<?php
+/**
+ * FusionForge
+ *
+ * Copyright 2012, Roland Mas
+ *
+ * This file is part of FusionForge.
+ *
+ * FusionForge 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; either version 2 of the License,
+ * or (at your option) any later version.
+ *
+ * FusionForge 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 program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+if (count ($argv) < 2) {
+ echo "Usage: .../list-projects-using-plugin.php <plugin>
+For instance: .../list-projects-using-plugin.php mediawiki
+" ;
+ exit (1) ;
+}
+
+$pname = $argv[1] ;
+
+require (dirname(__FILE__).'/../common/include/env.inc.php');
+require_once $gfcommon.'include/pre.php';
+require_once $gfcommon.'include/cron_utils.php';
+
+// Plugins subsystem
+require_once($gfcommon.'include/Plugin.class.php');
+require_once($gfcommon.'include/PluginManager.class.php');
+
+setup_plugin_manager () ;
+
+$plugin = plugin_get_object($pname);
+
+if (!$plugin) {
+ die ("Wrong plugin name\n") ;
+}
+
+foreach ($plugin->getGroups() as $p) {
+ print $p->getUnixName()."\n";
+}
+?>