[Fusionforge-commits] FusionForge branch GUM updated. 97626ca15c9b09e1cdddc205b7dd2eef7398536b

Sylvain Beucler beuc-inria at fusionforge.org
Thu Aug 21 17:53:08 CEST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".

The branch, GUM has been updated
       via  97626ca15c9b09e1cdddc205b7dd2eef7398536b (commit)
       via  08c38020cabdb79e5336d0d3556afebd69d3b5c5 (commit)
      from  bfc059a479a6aa1877f91999608397ab45880ee9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 97626ca15c9b09e1cdddc205b7dd2eef7398536b
Author: Sylvain Beucler <sylvain.beucler at inria.fr>
Date:   Thu Aug 21 17:52:54 2014 +0200

    install: new shell package, with ucf; split post-install.d/* install

diff --git a/src/GNUmakefile b/src/GNUmakefile
index 9a8e80b..3b92a08 100644
--- a/src/GNUmakefile
+++ b/src/GNUmakefile
@@ -14,6 +14,7 @@ install-base-dirs:
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(pkgdatadir)/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(pkgdatadir)/cronjobs/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(pkgdatadir)/plugins/
+	$(INSTALL) -d -m 00755 $(DESTDIR)$(pkgdatadir)/post-install.d/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(config_path)/config.ini.d/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(config_path)/httpd.conf.d/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(config_path)/plugins/
@@ -39,8 +40,9 @@ install-config: install-base-dirs
 
 install-common: install-config install-plugin-authbuiltin
 	$(MAKE) -C locale DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) install
-	$(CP_R) VERSION bin common post-install.d templates lib $(DESTDIR)$(pkgdatadir)/
+	$(CP_R) VERSION bin common templates lib $(DESTDIR)$(pkgdatadir)/
 	$(CP_R) cronjobs/scm $(DESTDIR)$(pkgdatadir)/cronjobs/  # no dedicated 'scm' package now
+	$(CP_R) post-install.d/common $(DESTDIR)$(pkgdatadir)/post-install.d/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(prefix)/bin/
 	ln -nfs $(pkgdatadir)/bin/forge_get_config $(DESTDIR)$(prefix)/bin/
 	ln -nfs $(pkgdatadir)/bin/forge_run_job $(DESTDIR)$(prefix)/bin/
@@ -52,6 +54,7 @@ install-common: install-config install-plugin-authbuiltin
 install-db: install-base-dirs
 	$(CP_R) db $(DESTDIR)$(pkgdatadir)/
 	$(CP_R) cronjobs/db  $(DESTDIR)$(pkgdatadir)/cronjobs/
+	$(CP_R) post-install.d/db  $(DESTDIR)$(pkgdatadir)/post-install.d/
 
 install-web: install-base-dirs
 	$(CP_R) vendor www $(DESTDIR)$(pkgdatadir)/
@@ -59,8 +62,13 @@ install-web: install-base-dirs
 	$(INSTALL) -d -m 00700 $(DESTDIR)$(data_path)/download/
 	$(INSTALL) -d -m 00700 $(DESTDIR)$(data_path)/forum/
 	$(INSTALL) -d -m 00700 $(DESTDIR)$(data_path)/tracker/
+	$(CP_R) post-install.d/web  $(DESTDIR)$(pkgdatadir)/post-install.d/
 
-install-core: install-base-dirs install-common install-web install-db
+install-shell: install-base-dirs
+	$(CP_R) cronjobs/shell  $(DESTDIR)$(pkgdatadir)/cronjobs/
+	$(CP_R) post-install.d/shell  $(DESTDIR)$(pkgdatadir)/post-install.d/
+
+install-core: install-base-dirs install-common install-web install-db install-shell
 
 PLUGINS:=$(shell utils/list-valid-plugins.sh)
 PLUGINS_INSTALL_TARGETS=$(addprefix install-plugin-,$(PLUGINS))
diff --git a/src/bin/install-nsspgsql.sh b/src/bin/install-nsspgsql.sh
deleted file mode 100755
index dfb69db..0000000
--- a/src/bin/install-nsspgsql.sh
+++ /dev/null
@@ -1,167 +0,0 @@
-#! /bin/bash
-#
-# Configure NSS for PostGreSQL for GForge
-# Christian Bayle, Roland Mas
-# Initially written for debian-sf (Sourceforge for Debian)
-# Adapted as time went by for Gforge then for FusionForge
-
-set -e
-
-if [ "$GFORGEDEBUG" != 1 ] ; then
-    DEVNULL12="> /dev/null 2>&1"
-    DEVNULL2="2> /dev/null"
-else
-    set -x
-fi
-
-if [  $(id -u) != 0 -a  "x$1" != "xlist" ] ; then
-	echo "You must be root to run this, please enter passwd"
-	exec su -c "$0 $1"
-fi
-
-PATH=$PATH:/usr/sbin
-
-setup_vars() {
-    db_name=$(forge_get_config database_name)
-    db_user=$(forge_get_config database_user)
-    db_host=$(forge_get_config database_host)
-    # homedir_prefix, e.g. /home/users/ (with trailing slash)
-    homedir_prefix=$(forge_get_config homedir_prefix | sed -e 's:[^/]$:&/:')
-
-    db_user_nss=${db_user}_nss
-
-    tmpfile_pattern=/tmp/$(basename $0).XXXXXX
-}
-
-# Should I do something for /etc/pam_pgsql.conf ?
-modify_pam_pgsql(){
-    echo -n
-    # echo "Nothing to do"
-}
-
-# Check/Modify /etc/libnss-pgsql.conf
-configure_libnss_pgsql(){
-    hostconf=''
-    case "$db_host" in
-	127.*|localhost.*|localhost) ;; # 'local'
-	*) hostconf="host=$db_host"  ;; # 'host'
-    esac
-    cat > /etc/nss-pgsql.conf.gforge-new <<EOF
-### NSS Configuration for Gforge
-
-#----------------- DB connection
-# Use 'trust' authentication, cf. https://bugs.debian.org/551389
-connectionstring = user=$db_user_nss dbname=$db_name $hostconf
-
-
-#----------------- NSS queries
-getpwnam        = SELECT login AS username,passwd,gecos,('$homedir_prefix' || login) AS homedir,shell,uid,gid FROM nss_passwd WHERE login = \$1
-getpwuid        = SELECT login AS username,passwd,gecos,('$homedir_prefix' || login) AS homedir,shell,uid,gid FROM nss_passwd WHERE uid = \$1
-#allusers        = SELECT login AS username,passwd,gecos,('$homedir_prefix' || login) AS homedir,shell,uid,gid FROM nss_passwd
-getgroupmembersbygid = SELECT login AS username FROM nss_passwd WHERE gid = \$1
-getgrnam = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups WHERE name = \$1
-getgrgid = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups WHERE gid = \$1
-#allgroups = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups 
-groups_dyn = SELECT ug.gid FROM nss_usergroups ug, nss_passwd p WHERE ug.uid = p.uid AND p.login = \$1 AND ug.gid <> \$2
-EOF
-    cat > /etc/nss-pgsql-root.conf.gforge-new <<EOF
-### NSS Configuration for Gforge
-
-#----------------- DB connection
-shadowconnectionstring = user=$db_user_nss dbname=$db_name $hostconf
-
-#----------------- NSS queries
-shadowbyname    = SELECT login AS shadow_name, passwd AS shadow_passwd, 14087 AS shadow_lstchg, 0 AS shadow_min, 99999 AS shadow_max, 7 AS shadow_warn, '' AS shadow_inact, '' AS shadow_expire, '' AS shadow_flag FROM nss_passwd WHERE login = \$1
-shadow          = SELECT login AS shadow_name, passwd AS shadow_passwd, 14087 AS shadow_lstchg, 0 AS shadow_min, 99999 AS shadow_max, 7 AS shadow_warn, '' AS shadow_inact, '' AS shadow_expire, '' AS shadow_flag FROM nss_passwd
-EOF
-
-    chmod 644 /etc/nss-pgsql.conf.gforge-new
-    chmod 600 /etc/nss-pgsql-root.conf.gforge-new
-    chown root:root /etc/nss-pgsql-root.conf.gforge-new
-}
-
-# Purge /etc/nss-pgsql.conf
-purge_libnss_pgsql(){
-    echo -n > /etc/nss-pgsql.conf.gforge-new
-    echo -n > /etc/nss-pgsql-root.conf.gforge-new
-}
-
-# Modify /etc/nsswitch.conf
-configure_nsswitch()
-{
-    cp -a /etc/nsswitch.conf /etc/nsswitch.conf.gforge-new
-    # This is sensitive file
-    # By security i let priority to files
-    # Should maybe enhance this to take in account nis
-    # Maybe ask the order db/files/nis/pgsql
-    if ! grep -q '^passwd:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
-	perl -pi -e "s/^(passwd:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
-    fi
-    if ! grep -q '^group:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
-	perl -pi -e "s/^(group:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
-    fi
-    if ! grep -q '^shadow:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
-	perl -pi -e "s/^(shadow:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
-    fi
-}
-
-# Purge /etc/nsswitch.conf
-purge_nsswitch()
-{
-    cp -a /etc/nsswitch.conf /etc/nsswitch.conf.gforge-new
-    perl -pi -e "s/^[^\n]*#Added by GForge install\n//" /etc/nsswitch.conf.gforge-new
-    perl -pi -e "s/#Comment by GForge install#//" /etc/nsswitch.conf.gforge-new
-}
-
-# Main
-case "$1" in
-    configure-files)
-	setup_vars
-	# echo "Modifying /etc/nss-pgsql.conf and /etc/nss-pgsql-root.conf"
-	configure_libnss_pgsql
-	# echo "Modifying /etc/nsswitch.conf"
-	configure_nsswitch
-	;;
-    configure)
-	;;
-    purge-files)
-	setup_vars
-	# echo "Purging /etc/nsswitch.conf"
-	purge_nsswitch
-	# echo "Purging /etc/nss-pgsql.conf and /etc/nss-pgsql-root.conf"
-	purge_libnss_pgsql
-	;;
-    test|check)
-	setup_vars
-	check_server
-	;;
-    setup)
-    $0 configure-files
-	$0 configure
-	if [ -f /etc/nss-pgsql.conf ] ; then
-		cp /etc/nss-pgsql.conf /etc/nss-pgsql.conf.gforge-old
-	fi
-	if [ -f /etc/nss-pgsql-root.conf ] ; then
-		cp /etc/nss-pgsql-root.conf /etc/nss-pgsql-root.conf.gforge-old
-	fi
-	if [ -f /etc/nsswitch.conf ] ; then
-		cp /etc/nsswitch.conf /etc/nsswitch.conf.gforge-old
-	fi
-	mv /etc/nss-pgsql.conf.gforge-new /etc/nss-pgsql.conf
-	mv /etc/nss-pgsql-root.conf.gforge-new /etc/nss-pgsql-root.conf
-	mv /etc/nsswitch.conf.gforge-new /etc/nsswitch.conf
-	;;
-    cleanup)
-	$0 purge-files
-	cp /etc/nss-pgsql.conf /etc/nss-pgsql.conf.gforge-old
-	cp /etc/nss-pgsql-root.conf /etc/nss-pgsql-root.conf.gforge-old
-	cp /etc/nsswitch.conf.gforge /etc/nsswitch.conf.gforge-old
-	mv /etc/nss-pgsql.conf.gforge-new /etc/nss-pgsql.conf
-	mv /etc/nss-pgsql-root.conf.gforge-new /etc/nss-pgsql-root.conf
-	mv /etc/nsswitch.conf.gforge-new /etc/nsswitch.conf
-	;;
-    *)
-	echo "Usage: $0 {configure|configure-files|purge-files|test|setup|cleanup}"
-	exit 1
-	;;
-esac
diff --git a/src/debian/control b/src/debian/control
index ee2ecac..7b3c10d 100644
--- a/src/debian/control
+++ b/src/debian/control
@@ -25,7 +25,7 @@ Description: FusionForge collaborative development tool - standard metapackage
 
 Package: fusionforge-common
 Architecture: all
-Depends: php5-cli, php-htmlpurifier, python, ${misc:Depends}
+Depends: php5-cli, php5-pgsql, php-htmlpurifier, perl, ${misc:Depends}
 Description: collaborative development tool - shared files
  FusionForge provides many tools to aid collaboration in a
  development project, such as bug-tracking, task management,
@@ -39,7 +39,7 @@ Description: collaborative development tool - shared files
 
 Package: fusionforge-db
 Architecture: all
-Depends: fusionforge-common, postgresql, php5-pgsql, ${misc:Depends}
+Depends: fusionforge-common (=${source:Version}), postgresql, php5-cli, ${misc:Depends}
 Description: collaborative development tool - database (using PostgreSQL)
  FusionForge provides many tools to aid collaboration in a
  development project, such as bug-tracking, task management,
@@ -70,7 +70,7 @@ Description: collaborative development tool - database (remote)
 
 Package: fusionforge-web
 Architecture: all
-Depends: fusionforge-db, libapache2-mod-php5, php5-pgsql, python, ${misc:Depends}
+Depends: fusionforge-common (=${source:Version}), fusionforge-db, php5-cli, libapache2-mod-php5, python, ${misc:Depends}
 Recommends: locales-all
 Description: collaborative development tool - web part (using Apache)
  FusionForge provides many tools to aid collaboration in a
@@ -83,6 +83,20 @@ Description: collaborative development tool - web part (using Apache)
  FusionForge on an Apache webserver.
 
 
+Package: fusionforge-shell
+Architecture: all
+Depends: fusionforge-common (=${source:Version}), php5-cli, ucf, libnss-pgsql2, openssh-server, unscd | nscd, ${misc:Depends}
+Description: collaborative development tool - shell accounts (using PostgreSQL)
+ FusionForge provides many tools to aid collaboration in a
+ development project, such as bug-tracking, task management,
+ mailing-lists, SCM repository, forums, support request helper,
+ web/FTP hosting, release management, etc. All these services are
+ integrated into one web site and managed through a web interface.
+ .
+ This package provides shell accounts authenticated via the PostGreSQL
+ database to FusionForge users.
+
+
 Package: fusionforge-plugin-authhttpd
 Architecture: all
 Depends: fusionforge-web, ${misc:Depends}
diff --git a/src/debian/fusionforge-common.postinst b/src/debian/fusionforge-common.postinst
index f6cadb6..346c379 100644
--- a/src/debian/fusionforge-common.postinst
+++ b/src/debian/fusionforge-common.postinst
@@ -20,7 +20,7 @@ set -e
 
 case "$1" in
     configure)
-        $(forge_get_config source_path)/post-install.d/ini.sh
+        $(forge_get_config source_path)/post-install.d/common/ini.sh
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/src/debian/fusionforge-db.postinst b/src/debian/fusionforge-db.postinst
index 6e28552..54797d7 100644
--- a/src/debian/fusionforge-db.postinst
+++ b/src/debian/fusionforge-db.postinst
@@ -20,7 +20,7 @@ set -e
 
 case "$1" in
     configure)
-        $(forge_get_config source_path)/post-install.d/db.sh
+        $(forge_get_config source_path)/post-install.d/db/db.sh
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/src/debian/fusionforge-db.postinst b/src/debian/fusionforge-shell.postinst
similarity index 78%
copy from src/debian/fusionforge-db.postinst
copy to src/debian/fusionforge-shell.postinst
index 6e28552..026af37 100644
--- a/src/debian/fusionforge-db.postinst
+++ b/src/debian/fusionforge-shell.postinst
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # postinst script for fusionforge
 #
 # see: dh_installdeb(1)
@@ -20,7 +20,13 @@ set -e
 
 case "$1" in
     configure)
-        $(forge_get_config source_path)/post-install.d/db.sh
+	DESTDIR=$(mktemp -d)
+        $(forge_get_config source_path)/post-install.d/shell/shell.sh configure $DESTDIR
+	for i in $(find $DESTDIR -type f); do
+	    ucf $i ${i#$DESTDIR}
+	    ucfr -f fusionforge-shell ${i#$DESTDIR}
+	done
+	rm -rf $DESTDIR/
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/src/debian/fusionforge-shell.postrm b/src/debian/fusionforge-shell.postrm
new file mode 100644
index 0000000..d791fc3
--- /dev/null
+++ b/src/debian/fusionforge-shell.postrm
@@ -0,0 +1,46 @@
+#!/bin/sh
+# postrm script for fusionforge
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postrm> `remove'
+#        * <postrm> `purge'
+#        * <old-postrm> `upgrade' <new-version>
+#        * <new-postrm> `failed-upgrade' <old-version>
+#        * <new-postrm> `abort-install'
+#        * <new-postrm> `abort-install' <old-version>
+#        * <new-postrm> `abort-upgrade' <old-version>
+#        * <disappearer's-postrm> `disappear' <overwriter>
+#          <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    purge)
+	ucfq fusionforge-shell --with-colons \
+	    | while IFS=: read i ignored; do
+	    rm -f $i $i.ucf-*
+	    ucf --purge $i
+	    ucfr --purge fusionforge-shell $i
+	done
+    ;;
+
+    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+	;;
+
+    *)
+        echo "postrm 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
diff --git a/src/debian/fusionforge-shell.prerm b/src/debian/fusionforge-shell.prerm
new file mode 100644
index 0000000..30d2a7d
--- /dev/null
+++ b/src/debian/fusionforge-shell.prerm
@@ -0,0 +1,42 @@
+#!/bin/sh
+# prerm script for fusionforge
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove)
+        $(forge_get_config source_path)/post-install.d/shell/shell.sh remove
+    ;;
+
+    upgrade|deconfigure)
+    ;;
+
+    failed-upgrade)
+    ;;
+
+    *)
+        echo "prerm 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
diff --git a/src/debian/fusionforge-web.postinst b/src/debian/fusionforge-web.postinst
index ff8b6e3..08c897d 100644
--- a/src/debian/fusionforge-web.postinst
+++ b/src/debian/fusionforge-web.postinst
@@ -20,7 +20,7 @@ set -e
 
 case "$1" in
     configure)
-        $(forge_get_config source_path)/post-install.d/httpd-configure.sh
+        $(forge_get_config source_path)/post-install.d/web/configure.sh
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/src/debian/rules b/src/debian/rules
index 11cdce4..08c4faf 100755
--- a/src/debian/rules
+++ b/src/debian/rules
@@ -24,6 +24,7 @@ include /usr/share/dpkg/default.mk
 override_dh_auto_install:
 	make install-common prefix=/usr DESTDIR=$(CURDIR)/debian/fusionforge-common
 	make install-db     prefix=/usr DESTDIR=$(CURDIR)/debian/fusionforge-db
+	make install-shell  prefix=/usr DESTDIR=$(CURDIR)/debian/fusionforge-shell
 	make install-web    prefix=/usr DESTDIR=$(CURDIR)/debian/fusionforge-web
 	make install-plugin-authhttpd prefix=/usr DESTDIR=$(CURDIR)/debian/fusionforge-plugin-authhttpd
 	make install-plugin-mediawiki prefix=/usr DESTDIR=$(CURDIR)/debian/fusionforge-plugin-mediawiki
diff --git a/src/fusionforge.spec b/src/fusionforge.spec
index b02cdf3..b159387a 100644
--- a/src/fusionforge.spec
+++ b/src/fusionforge.spec
@@ -53,6 +53,7 @@ install_listfiles common
 %find_lang %{name}
 # Install plugins
 install_listfiles db
+install_listfiles shell
 install_listfiles web
 install_listfiles plugin-authhttpd
 install_listfiles plugin-mediawiki
@@ -89,7 +90,7 @@ subpackages.
 %doc AUTHORS* CHANGES COPYING INSTALL.TXT NEWS README
 %doc docs/*
 %post common
-%{_datadir}/%{name}/post-install.d/ini.sh
+%{_datadir}/%{name}/post-install.d/common/ini.sh
 
 
 %package db
@@ -106,7 +107,7 @@ This package installs, configures and maintains the FusionForge
 database.
 %files db -f db.rpmfiles
 %post db
-%{_datadir}/%{name}/post-install.d/db.sh
+%{_datadir}/%{name}/post-install.d/db/db.sh
 
 
 %package db-remote
@@ -126,9 +127,32 @@ installs (e.g. plugins activation requires a populated db).
 %files db-remote
 
 
+%package shell
+Summary: collaborative development tool - shell accounts (using PostgreSQL)
+Requires: %{name}-common >= %{version} php openssh-server nscd
+#Requires: libnss-pgsql  # Fedora-only?
+%description shell
+FusionForge provides many tools to aid collaboration in a
+development project, such as bug-tracking, task management,
+mailing-lists, SCM repository, forums, support request helper,
+web/FTP hosting, release management, etc. All these services are
+integrated into one web site and managed through a web interface.
+
+This package provides shell accounts authenticated via the PostGreSQL
+database to FusionForge users.
+%files shell -f shell.rpmfiles
+%post shell
+%{_datadir}/%{name}/post-install.d/shell/shell.sh configure
+%preun shell
+if [ $1 -eq 0 ] ; then
+    %{_datadir}/%{name}/post-install.d/shell/shell.sh remove
+    %{_datadir}/%{name}/post-install.d/shell/shell.sh purge
+fi
+
+
 %package web
 Summary: collaborative development tool - web part (using Apache)
-Requires: %{name}-db >= %{version} httpd mod_ssl php php-pgsql
+Requires: %{name}-common >= %{version} %{name}-db >= %{version} httpd mod_ssl php php-pgsql
 %description web
 FusionForge provides many tools to aid collaboration in a
 development project, such as bug-tracking, task management,
@@ -140,7 +164,7 @@ This package contains the files needed to run the web part of
 FusionForge on an Apache webserver.
 %files web -f web.rpmfiles
 %post web
-%{_datadir}/%{name}/post-install.d/httpd-configure.sh
+%{_datadir}/%{name}/post-install.d/web/configure.sh
 
 
 %package plugin-authhttpd
diff --git a/src/post-install.d/ini.sh b/src/post-install.d/common/ini.sh
similarity index 100%
rename from src/post-install.d/ini.sh
rename to src/post-install.d/common/ini.sh
diff --git a/src/post-install.d/plugin.sh b/src/post-install.d/common/plugin.sh
similarity index 100%
rename from src/post-install.d/plugin.sh
rename to src/post-install.d/common/plugin.sh
diff --git a/src/post-install.d/core.sh b/src/post-install.d/core.sh
index 16d3d2c..b7d0fdf 100755
--- a/src/post-install.d/core.sh
+++ b/src/post-install.d/core.sh
@@ -13,10 +13,10 @@ source_path=$(forge_get_config source_path)
 #if ! getent passwd $user >/dev/null; then useradd $user -s /bin/false -d $data_path; fi
 
 # Post-install .ini configuration
-$source_path/post-install.d/ini.sh
+$source_path/post-install.d/common/ini.sh
 
 # Database
-$source_path/post-install.d/db.sh
+$source_path/post-install.d/db/db.sh
 
 # Apache
-$source_path/post-install.d/httpd-configure.sh
+$source_path/post-install.d/web/configure.sh
diff --git a/src/post-install.d/db-configure.sh b/src/post-install.d/db/configure.sh
similarity index 100%
rename from src/post-install.d/db-configure.sh
rename to src/post-install.d/db/configure.sh
diff --git a/src/post-install.d/db.sh b/src/post-install.d/db/db.sh
similarity index 61%
rename from src/post-install.d/db.sh
rename to src/post-install.d/db/db.sh
index 78c4669..981cf4f 100755
--- a/src/post-install.d/db.sh
+++ b/src/post-install.d/db/db.sh
@@ -3,6 +3,6 @@
 
 source_path=$(forge_get_config source_path)
 
-$source_path/post-install.d/db-configure.sh
-$source_path/post-install.d/db-populate.sh
+$source_path/post-install.d/db/configure.sh
+$source_path/post-install.d/db/populate.sh
 $source_path/bin/upgrade-db.php
diff --git a/src/post-install.d/db-populate.sh b/src/post-install.d/db/populate.sh
similarity index 100%
rename from src/post-install.d/db-populate.sh
rename to src/post-install.d/db/populate.sh
diff --git a/src/post-install.d/shell/shell.sh b/src/post-install.d/shell/shell.sh
new file mode 100755
index 0000000..6dfc063
--- /dev/null
+++ b/src/post-install.d/shell/shell.sh
@@ -0,0 +1,103 @@
+#! /bin/bash
+# Configure NSS+PostgreSQL shell access
+set -e
+
+db_name=$(forge_get_config database_name)
+db_user=$(forge_get_config database_user)
+db_host=$(forge_get_config database_host)
+# homedir_prefix, e.g. /home/users/ (with trailing slash)
+homedir_prefix=$(forge_get_config homedir_prefix | sed -e 's:[^/]$:&/:')
+
+db_user_nss=${db_user}_nss
+
+# Distros may want to install new conffiles using tools such as ucf(1)
+DESTDIR=$2
+mkdir -m 755 -p $DESTDIR/etc/
+
+# Check/Modify /etc/libnss-pgsql.conf
+configure_libnss_pgsql(){
+    hostconf=''
+    case "$db_host" in
+	127.*|localhost.*|localhost) ;; # 'local'
+	*) hostconf="host=$db_host"  ;; # 'host'
+    esac
+    if [ -e $DESTDIR/etc/nss-pgsql.conf ]; then return; fi
+    cat > $DESTDIR/etc/nss-pgsql.conf <<EOF
+### NSS Configuration for FusionForge
+
+#----------------- DB connection
+# Use 'trust' authentication, cf. https://bugs.debian.org/551389
+connectionstring = user=$db_user_nss dbname=$db_name $hostconf
+
+
+#----------------- NSS queries
+getpwnam        = SELECT login AS username,passwd,gecos,('$homedir_prefix' || login) AS homedir,shell,uid,gid FROM nss_passwd WHERE login = \$1
+getpwuid        = SELECT login AS username,passwd,gecos,('$homedir_prefix' || login) AS homedir,shell,uid,gid FROM nss_passwd WHERE uid = \$1
+#allusers        = SELECT login AS username,passwd,gecos,('$homedir_prefix' || login) AS homedir,shell,uid,gid FROM nss_passwd
+getgroupmembersbygid = SELECT login AS username FROM nss_passwd WHERE gid = \$1
+getgrnam = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups WHERE name = \$1
+getgrgid = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups WHERE gid = \$1
+#allgroups = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups 
+groups_dyn = SELECT ug.gid FROM nss_usergroups ug, nss_passwd p WHERE ug.uid = p.uid AND p.login = \$1 AND ug.gid <> \$2
+EOF
+    if [ -e $DESTDIR/etc/nss-pgsql-root.conf ]; then return; fi
+    cat > $DESTDIR/etc/nss-pgsql-root.conf <<EOF
+### NSS Configuration for FusionForge
+
+#----------------- DB connection
+shadowconnectionstring = user=$db_user_nss dbname=$db_name $hostconf
+
+#----------------- NSS queries
+shadowbyname    = SELECT login AS shadow_name, passwd AS shadow_passwd, 14087 AS shadow_lstchg, 0 AS shadow_min, 99999 AS shadow_max, 7 AS shadow_warn, '' AS shadow_inact, '' AS shadow_expire, '' AS shadow_flag FROM nss_passwd WHERE login = \$1
+shadow          = SELECT login AS shadow_name, passwd AS shadow_passwd, 14087 AS shadow_lstchg, 0 AS shadow_min, 99999 AS shadow_max, 7 AS shadow_warn, '' AS shadow_inact, '' AS shadow_expire, '' AS shadow_flag FROM nss_passwd
+EOF
+
+    chmod 644 $DESTDIR/etc/nss-pgsql.conf
+    chmod 600 $DESTDIR/etc/nss-pgsql-root.conf
+    chown root:root $DESTDIR/etc/nss-pgsql-root.conf
+}
+
+purge_libnss_pgsql(){
+    rm -f /etc/nss-pgsql.conf /etc/nss-pgsql-root.conf
+}
+
+# Modify /etc/nsswitch.conf
+# Not using UCF since we're sed-ing an existing file
+configure_nsswitch()
+{
+    if ! grep -q '^passwd:.*pgsql' /etc/nsswitch.conf ; then
+	perl -pi -e "s/^(passwd:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf
+    fi
+    if ! grep -q '^group:.*pgsql' /etc/nsswitch.conf ; then
+	perl -pi -e "s/^(group:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf
+    fi
+    if ! grep -q '^shadow:.*pgsql' /etc/nsswitch.conf ; then
+	perl -pi -e "s/^(shadow:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf
+    fi
+}
+
+# Revert /etc/nsswitch.conf
+remove_nsswitch()
+{
+    sed -i -e '/^.*#Added by GForge install/d' /etc/nsswitch.conf
+    sed -i -e 's/#Comment by GForge install#//' /etc/nsswitch.conf
+}
+
+# Main
+case "$1" in
+    configure)
+	configure_libnss_pgsql
+	configure_nsswitch
+	;;
+    remove)
+	remove_nsswitch
+	;;
+    purge)
+	# note: can't be called from Debian's postrm - rely on ucfq(1)
+	purge_libnss_pgsql
+	;;
+    *)
+	echo "Usage: $0 {configure|purge}"
+	exit 1
+	;;
+esac
diff --git a/src/post-install.d/httpd-configure.sh b/src/post-install.d/web/configure.sh
similarity index 96%
rename from src/post-install.d/httpd-configure.sh
rename to src/post-install.d/web/configure.sh
index ff00227..4e2ad70 100755
--- a/src/post-install.d/httpd-configure.sh
+++ b/src/post-install.d/web/configure.sh
@@ -8,7 +8,7 @@ data_path=$(forge_get_config data_path)
 cd $source_path/templates/
 for i in httpd.conf $(ls httpd.conf.d/*); do
     if [ ! -e $config_path/$i ]; then
-	$source_path/post-install.d/httpd-expand-conf.php $i $config_path/$i
+	$source_path/post-install.d/web/expand-conf.php $i $config_path/$i
     fi
     case $i in
 	*secrets*) chmod 600 $config_path/$i;;
diff --git a/src/post-install.d/httpd-expand-conf.php b/src/post-install.d/web/expand-conf.php
similarity index 100%
rename from src/post-install.d/httpd-expand-conf.php
rename to src/post-install.d/web/expand-conf.php

commit 08c38020cabdb79e5336d0d3556afebd69d3b5c5
Author: Sylvain Beucler <sylvain.beucler at inria.fr>
Date:   Thu Aug 21 15:35:59 2014 +0200

    install: group cronjobs by package

diff --git a/src/GNUmakefile b/src/GNUmakefile
index beb5420..9a8e80b 100644
--- a/src/GNUmakefile
+++ b/src/GNUmakefile
@@ -12,6 +12,7 @@ install: all install-core install-plugins
 # Directories required for stand-alone plugin install
 install-base-dirs:
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(pkgdatadir)/
+	$(INSTALL) -d -m 00755 $(DESTDIR)$(pkgdatadir)/cronjobs/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(pkgdatadir)/plugins/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(config_path)/config.ini.d/
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(config_path)/httpd.conf.d/
@@ -38,7 +39,8 @@ install-config: install-base-dirs
 
 install-common: install-config install-plugin-authbuiltin
 	$(MAKE) -C locale DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) install
-	$(CP_R) VERSION bin common cronjobs post-install.d templates lib $(DESTDIR)$(pkgdatadir)/
+	$(CP_R) VERSION bin common post-install.d templates lib $(DESTDIR)$(pkgdatadir)/
+	$(CP_R) cronjobs/scm $(DESTDIR)$(pkgdatadir)/cronjobs/  # no dedicated 'scm' package now
 	$(INSTALL) -d -m 00755 $(DESTDIR)$(prefix)/bin/
 	ln -nfs $(pkgdatadir)/bin/forge_get_config $(DESTDIR)$(prefix)/bin/
 	ln -nfs $(pkgdatadir)/bin/forge_run_job $(DESTDIR)$(prefix)/bin/
@@ -49,6 +51,7 @@ install-common: install-config install-plugin-authbuiltin
 
 install-db: install-base-dirs
 	$(CP_R) db $(DESTDIR)$(pkgdatadir)/
+	$(CP_R) cronjobs/db  $(DESTDIR)$(pkgdatadir)/cronjobs/
 
 install-web: install-base-dirs
 	$(CP_R) vendor www $(DESTDIR)$(pkgdatadir)/
diff --git a/src/cronjobs/calculate_user_metric.php b/src/cronjobs/db/calculate_user_metric.php
similarity index 100%
rename from src/cronjobs/calculate_user_metric.php
rename to src/cronjobs/db/calculate_user_metric.php
diff --git a/src/cronjobs/check_stale_tracker_items.php b/src/cronjobs/db/check_stale_tracker_items.php
similarity index 100%
rename from src/cronjobs/check_stale_tracker_items.php
rename to src/cronjobs/db/check_stale_tracker_items.php
diff --git a/src/cronjobs/daily_task_email.php b/src/cronjobs/db/daily_task_email.php
similarity index 100%
rename from src/cronjobs/daily_task_email.php
rename to src/cronjobs/db/daily_task_email.php
diff --git a/src/cronjobs/db_project_sums.php b/src/cronjobs/db/db_project_sums.php
similarity index 100%
rename from src/cronjobs/db_project_sums.php
rename to src/cronjobs/db/db_project_sums.php
diff --git a/src/cronjobs/db_stats_agg.php b/src/cronjobs/db/db_stats_agg.php
similarity index 100%
rename from src/cronjobs/db_stats_agg.php
rename to src/cronjobs/db/db_stats_agg.php
diff --git a/src/cronjobs/db_trove_maint.php b/src/cronjobs/db/db_trove_maint.php
similarity index 100%
rename from src/cronjobs/db_trove_maint.php
rename to src/cronjobs/db/db_trove_maint.php
diff --git a/src/cronjobs/get_news_notapproved.pl b/src/cronjobs/db/get_news_notapproved.pl
similarity index 100%
rename from src/cronjobs/get_news_notapproved.pl
rename to src/cronjobs/db/get_news_notapproved.pl
diff --git a/src/cronjobs/massmail.php b/src/cronjobs/db/massmail.php
similarity index 100%
rename from src/cronjobs/massmail.php
rename to src/cronjobs/db/massmail.php
diff --git a/src/cronjobs/project_cleanup.php b/src/cronjobs/db/project_cleanup.php
similarity index 100%
rename from src/cronjobs/project_cleanup.php
rename to src/cronjobs/db/project_cleanup.php
diff --git a/src/cronjobs/project_weekly_metric.php b/src/cronjobs/db/project_weekly_metric.php
similarity index 100%
rename from src/cronjobs/project_weekly_metric.php
rename to src/cronjobs/db/project_weekly_metric.php
diff --git a/src/cronjobs/rating_stats.php b/src/cronjobs/db/rating_stats.php
similarity index 100%
rename from src/cronjobs/rating_stats.php
rename to src/cronjobs/db/rating_stats.php
diff --git a/src/cronjobs/reporting_cron.php b/src/cronjobs/db/reporting_cron.php
similarity index 100%
rename from src/cronjobs/reporting_cron.php
rename to src/cronjobs/db/reporting_cron.php
diff --git a/src/cronjobs/rotate_activity.php b/src/cronjobs/db/rotate_activity.php
similarity index 100%
rename from src/cronjobs/rotate_activity.php
rename to src/cronjobs/db/rotate_activity.php
diff --git a/src/cronjobs/send_pending_items_mail.php b/src/cronjobs/db/send_pending_items_mail.php
similarity index 100%
rename from src/cronjobs/send_pending_items_mail.php
rename to src/cronjobs/db/send_pending_items_mail.php
diff --git a/src/cronjobs/site_stats.php b/src/cronjobs/db/site_stats.php
similarity index 100%
rename from src/cronjobs/site_stats.php
rename to src/cronjobs/db/site_stats.php
diff --git a/src/cronjobs/stats_projects-backfill.php b/src/cronjobs/db/stats_projects-backfill.php
similarity index 100%
rename from src/cronjobs/stats_projects-backfill.php
rename to src/cronjobs/db/stats_projects-backfill.php
diff --git a/src/cronjobs/stats_projects.inc b/src/cronjobs/db/stats_projects.inc
similarity index 100%
rename from src/cronjobs/stats_projects.inc
rename to src/cronjobs/db/stats_projects.inc
diff --git a/src/cronjobs/stats_site.inc b/src/cronjobs/db/stats_site.inc
similarity index 100%
rename from src/cronjobs/stats_site.inc
rename to src/cronjobs/db/stats_site.inc
diff --git a/src/cronjobs/update_docdata_dataword.php b/src/cronjobs/db/update_docdata_dataword.php
similarity index 100%
rename from src/cronjobs/update_docdata_dataword.php
rename to src/cronjobs/db/update_docdata_dataword.php
diff --git a/src/cronjobs/vacuum.php b/src/cronjobs/db/vacuum.php
similarity index 100%
rename from src/cronjobs/vacuum.php
rename to src/cronjobs/db/vacuum.php
diff --git a/src/cronjobs/ftp_create_group_access.php b/src/cronjobs/ftp/ftp_create_group_access.php
similarity index 100%
rename from src/cronjobs/ftp_create_group_access.php
rename to src/cronjobs/ftp/ftp_create_group_access.php
diff --git a/src/cronjobs/forum_gateway.php b/src/cronjobs/mail/forum_gateway.php
similarity index 100%
rename from src/cronjobs/forum_gateway.php
rename to src/cronjobs/mail/forum_gateway.php
diff --git a/src/cronjobs/tracker_gateway.php b/src/cronjobs/mail/tracker_gateway.php
similarity index 100%
rename from src/cronjobs/tracker_gateway.php
rename to src/cronjobs/mail/tracker_gateway.php
diff --git a/src/cronjobs/auth_unix.php b/src/cronjobs/misc/auth_unix.php
similarity index 100%
rename from src/cronjobs/auth_unix.php
rename to src/cronjobs/misc/auth_unix.php
diff --git a/src/cronjobs/backup_site.php b/src/cronjobs/misc/backup_site.php
similarity index 100%
rename from src/cronjobs/backup_site.php
rename to src/cronjobs/misc/backup_site.php
diff --git a/src/cronjobs/gforge-db-backup.sh b/src/cronjobs/misc/gforge-db-backup.sh
similarity index 100%
rename from src/cronjobs/gforge-db-backup.sh
rename to src/cronjobs/misc/gforge-db-backup.sh
diff --git a/src/cronjobs/hot-backup.py b/src/cronjobs/misc/hot-backup.py
similarity index 100%
rename from src/cronjobs/hot-backup.py
rename to src/cronjobs/misc/hot-backup.py
diff --git a/src/cronjobs/job-restart.sh b/src/cronjobs/misc/job-restart.sh
similarity index 100%
rename from src/cronjobs/job-restart.sh
rename to src/cronjobs/misc/job-restart.sh
diff --git a/src/cronjobs/job-server.pl b/src/cronjobs/misc/job-server.pl
similarity index 100%
rename from src/cronjobs/job-server.pl
rename to src/cronjobs/misc/job-server.pl
diff --git a/src/cronjobs/weekly.php b/src/cronjobs/misc/weekly.php
similarity index 100%
rename from src/cronjobs/weekly.php
rename to src/cronjobs/misc/weekly.php
diff --git a/src/cronjobs/create_scm_repos.php b/src/cronjobs/scm/create_scm_repos.php
similarity index 100%
rename from src/cronjobs/create_scm_repos.php
rename to src/cronjobs/scm/create_scm_repos.php
diff --git a/src/cronjobs/gather_scm_stats.php b/src/cronjobs/scm/gather_scm_stats.php
similarity index 100%
rename from src/cronjobs/gather_scm_stats.php
rename to src/cronjobs/scm/gather_scm_stats.php
diff --git a/src/cronjobs/generate_scm_snapshots.php b/src/cronjobs/scm/generate_scm_snapshots.php
similarity index 100%
rename from src/cronjobs/generate_scm_snapshots.php
rename to src/cronjobs/scm/generate_scm_snapshots.php
diff --git a/src/cronjobs/homedirs.php b/src/cronjobs/shell/homedirs.php
similarity index 100%
rename from src/cronjobs/homedirs.php
rename to src/cronjobs/shell/homedirs.php
diff --git a/src/cronjobs/ssh_create.php b/src/cronjobs/shell/ssh_create.php
similarity index 100%
rename from src/cronjobs/ssh_create.php
rename to src/cronjobs/shell/ssh_create.php
diff --git a/src/cronjobs/create_vhosts.php b/src/cronjobs/web-vhosts/create_vhosts.php
similarity index 100%
rename from src/cronjobs/create_vhosts.php
rename to src/cronjobs/web-vhosts/create_vhosts.php
diff --git a/src/post-install.d/db-configure.sh b/src/post-install.d/db-configure.sh
index 3109e69..0a54c11 100755
--- a/src/post-install.d/db-configure.sh
+++ b/src/post-install.d/db-configure.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Configure PostgreSQL
+# Configure local PostgreSQL server
 
 database_name=$(forge_get_config database_name)
 database_user=$(forge_get_config database_user)

-----------------------------------------------------------------------

Summary of changes:
 src/GNUmakefile                                    |   15 +-
 src/bin/install-nsspgsql.sh                        |  167 --------------------
 src/cronjobs/{ => db}/calculate_user_metric.php    |    0
 .../{ => db}/check_stale_tracker_items.php         |    0
 src/cronjobs/{ => db}/daily_task_email.php         |    0
 src/cronjobs/{ => db}/db_project_sums.php          |    0
 src/cronjobs/{ => db}/db_stats_agg.php             |    0
 src/cronjobs/{ => db}/db_trove_maint.php           |    0
 src/cronjobs/{ => db}/get_news_notapproved.pl      |    0
 src/cronjobs/{ => db}/massmail.php                 |    0
 src/cronjobs/{ => db}/project_cleanup.php          |    0
 src/cronjobs/{ => db}/project_weekly_metric.php    |    0
 src/cronjobs/{ => db}/rating_stats.php             |    0
 src/cronjobs/{ => db}/reporting_cron.php           |    0
 src/cronjobs/{ => db}/rotate_activity.php          |    0
 src/cronjobs/{ => db}/send_pending_items_mail.php  |    0
 src/cronjobs/{ => db}/site_stats.php               |    0
 src/cronjobs/{ => db}/stats_projects-backfill.php  |    0
 src/cronjobs/{ => db}/stats_projects.inc           |    0
 src/cronjobs/{ => db}/stats_site.inc               |    0
 src/cronjobs/{ => db}/update_docdata_dataword.php  |    0
 src/cronjobs/{ => db}/vacuum.php                   |    0
 src/cronjobs/{ => ftp}/ftp_create_group_access.php |    0
 src/cronjobs/{ => mail}/forum_gateway.php          |    0
 src/cronjobs/{ => mail}/tracker_gateway.php        |    0
 src/cronjobs/{ => misc}/auth_unix.php              |    0
 src/cronjobs/{ => misc}/backup_site.php            |    0
 src/cronjobs/{ => misc}/gforge-db-backup.sh        |    0
 src/cronjobs/{ => misc}/hot-backup.py              |    0
 src/cronjobs/{ => misc}/job-restart.sh             |    0
 src/cronjobs/{ => misc}/job-server.pl              |    0
 src/cronjobs/{ => misc}/weekly.php                 |    0
 src/cronjobs/{ => scm}/create_scm_repos.php        |    0
 src/cronjobs/{ => scm}/gather_scm_stats.php        |    0
 src/cronjobs/{ => scm}/generate_scm_snapshots.php  |    0
 src/cronjobs/{ => shell}/homedirs.php              |    0
 src/cronjobs/{ => shell}/ssh_create.php            |    0
 src/cronjobs/{ => web-vhosts}/create_vhosts.php    |    0
 src/debian/control                                 |   20 ++-
 src/debian/fusionforge-common.postinst             |    2 +-
 src/debian/fusionforge-db.postinst                 |    2 +-
 ...-common.postinst => fusionforge-shell.postinst} |   10 +-
 src/debian/fusionforge-shell.postrm                |   46 ++++++
 src/debian/fusionforge-shell.prerm                 |   42 +++++
 src/debian/fusionforge-web.postinst                |    2 +-
 src/debian/rules                                   |    1 +
 src/fusionforge.spec                               |   32 +++-
 src/post-install.d/{ => common}/ini.sh             |    0
 src/post-install.d/{ => common}/plugin.sh          |    0
 src/post-install.d/core.sh                         |    6 +-
 .../{db-configure.sh => db/configure.sh}           |    2 +-
 src/post-install.d/{ => db}/db.sh                  |    4 +-
 .../{db-populate.sh => db/populate.sh}             |    0
 src/post-install.d/shell/shell.sh                  |  103 ++++++++++++
 .../{httpd-configure.sh => web/configure.sh}       |    2 +-
 .../{httpd-expand-conf.php => web/expand-conf.php} |    0
 56 files changed, 268 insertions(+), 188 deletions(-)
 delete mode 100755 src/bin/install-nsspgsql.sh
 rename src/cronjobs/{ => db}/calculate_user_metric.php (100%)
 rename src/cronjobs/{ => db}/check_stale_tracker_items.php (100%)
 rename src/cronjobs/{ => db}/daily_task_email.php (100%)
 rename src/cronjobs/{ => db}/db_project_sums.php (100%)
 rename src/cronjobs/{ => db}/db_stats_agg.php (100%)
 rename src/cronjobs/{ => db}/db_trove_maint.php (100%)
 rename src/cronjobs/{ => db}/get_news_notapproved.pl (100%)
 rename src/cronjobs/{ => db}/massmail.php (100%)
 rename src/cronjobs/{ => db}/project_cleanup.php (100%)
 rename src/cronjobs/{ => db}/project_weekly_metric.php (100%)
 rename src/cronjobs/{ => db}/rating_stats.php (100%)
 rename src/cronjobs/{ => db}/reporting_cron.php (100%)
 rename src/cronjobs/{ => db}/rotate_activity.php (100%)
 rename src/cronjobs/{ => db}/send_pending_items_mail.php (100%)
 rename src/cronjobs/{ => db}/site_stats.php (100%)
 rename src/cronjobs/{ => db}/stats_projects-backfill.php (100%)
 rename src/cronjobs/{ => db}/stats_projects.inc (100%)
 rename src/cronjobs/{ => db}/stats_site.inc (100%)
 rename src/cronjobs/{ => db}/update_docdata_dataword.php (100%)
 rename src/cronjobs/{ => db}/vacuum.php (100%)
 rename src/cronjobs/{ => ftp}/ftp_create_group_access.php (100%)
 rename src/cronjobs/{ => mail}/forum_gateway.php (100%)
 rename src/cronjobs/{ => mail}/tracker_gateway.php (100%)
 rename src/cronjobs/{ => misc}/auth_unix.php (100%)
 rename src/cronjobs/{ => misc}/backup_site.php (100%)
 rename src/cronjobs/{ => misc}/gforge-db-backup.sh (100%)
 rename src/cronjobs/{ => misc}/hot-backup.py (100%)
 rename src/cronjobs/{ => misc}/job-restart.sh (100%)
 rename src/cronjobs/{ => misc}/job-server.pl (100%)
 rename src/cronjobs/{ => misc}/weekly.php (100%)
 rename src/cronjobs/{ => scm}/create_scm_repos.php (100%)
 rename src/cronjobs/{ => scm}/gather_scm_stats.php (100%)
 rename src/cronjobs/{ => scm}/generate_scm_snapshots.php (100%)
 rename src/cronjobs/{ => shell}/homedirs.php (100%)
 rename src/cronjobs/{ => shell}/ssh_create.php (100%)
 rename src/cronjobs/{ => web-vhosts}/create_vhosts.php (100%)
 copy src/debian/{fusionforge-common.postinst => fusionforge-shell.postinst} (78%)
 create mode 100644 src/debian/fusionforge-shell.postrm
 create mode 100644 src/debian/fusionforge-shell.prerm
 rename src/post-install.d/{ => common}/ini.sh (100%)
 rename src/post-install.d/{ => common}/plugin.sh (100%)
 rename src/post-install.d/{db-configure.sh => db/configure.sh} (97%)
 rename src/post-install.d/{ => db}/db.sh (61%)
 rename src/post-install.d/{db-populate.sh => db/populate.sh} (100%)
 create mode 100755 src/post-install.d/shell/shell.sh
 rename src/post-install.d/{httpd-configure.sh => web/configure.sh} (96%)
 rename src/post-install.d/{httpd-expand-conf.php => web/expand-conf.php} (100%)


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list