[Fusionforge-commits] FusionForge branch GUM updated. f69872019d638b6b523939b2120b2da621a10653

Sylvain Beucler beuc-inria at fusionforge.org
Wed Aug 13 18:28:37 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  f69872019d638b6b523939b2120b2da621a10653 (commit)
       via  8523b45403b870285c14a2addc5e026d9b45d6e3 (commit)
       via  ab8d6d76b63bc733ce37cd9ef257ebb5cf8b6290 (commit)
      from  964258b624d44fafcde4073326b6e767bdd6606c (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 f69872019d638b6b523939b2120b2da621a10653
Author: Sylvain Beucler <sylvain.beucler at inria.fr>
Date:   Wed Aug 13 18:28:29 2014 +0200

    install: ditch confusingly obsolete etc/httpd.d/ configs

diff --git a/src/plugins/globaldashboard/etc/httpd.d/62plugin-globaldashboard b/src/plugins/globaldashboard/etc/httpd.d/62plugin-globaldashboard
deleted file mode 100644
index 119a43b..0000000
--- a/src/plugins/globaldashboard/etc/httpd.d/62plugin-globaldashboard
+++ /dev/null
@@ -1,12 +0,0 @@
-# 62plugin-globaldashboard begin
-#	AddHandler cgi-script .cgi
-
-#	ScriptAlias /cgi-bin/globaldashboard/ /var/lib/globaldashboard/cgi-bin/
-#	ScriptAlias /globaldashboard/ /var/lib/globaldashboard/cgi-bin/
-
-#	Alias /images/globaldashboard /usr/share/images/globaldashboard
-#	<Location /images/globaldashboard>
-#		order allow,deny
-#		allow from all
-#	</Location>
-# 62plugin-globaldashboard end
diff --git a/src/plugins/helloworld/etc/httpd.d/62plugin-helloworld b/src/plugins/helloworld/etc/httpd.d/62plugin-helloworld
deleted file mode 100644
index b1353a8..0000000
--- a/src/plugins/helloworld/etc/httpd.d/62plugin-helloworld
+++ /dev/null
@@ -1,12 +0,0 @@
-# 62plugin-helloworld begin
-#	AddHandler cgi-script .cgi
-
-#	ScriptAlias /cgi-bin/helloworld/ /var/lib/helloworld/cgi-bin/
-#	ScriptAlias /helloworld/ /var/lib/helloworld/cgi-bin/
-
-#	Alias /images/helloworld /usr/share/images/helloworld
-#	<Location /images/helloworld>
-#		order allow,deny
-#		allow from all
-#	</Location>
-# 62plugin-helloworld end
diff --git a/src/plugins/hudson/etc/httpd.d/62plugin-hudson b/src/plugins/hudson/etc/httpd.d/62plugin-hudson
deleted file mode 100644
index e10734c..0000000
--- a/src/plugins/hudson/etc/httpd.d/62plugin-hudson
+++ /dev/null
@@ -1,12 +0,0 @@
-# 62plugin-hudson begin
-#	AddHandler cgi-script .cgi
-
-#	ScriptAlias /cgi-bin/hudson/ /var/lib/hudson/cgi-bin/
-#	ScriptAlias /hudson/ /var/lib/hudson/cgi-bin/
-
-#	Alias /images/hudson /usr/share/images/hudson
-#	<Location /images/hudson>
-#		order allow,deny
-#		allow from all
-#	</Location>
-# 62plugin-hudson end
diff --git a/src/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki b/src/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki
deleted file mode 100644
index 5174c66..0000000
--- a/src/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki
+++ /dev/null
@@ -1,23 +0,0 @@
-# 61plugin-mediawiki begin
-RedirectMatch 301 ^({sys_urlprefix}plugins/mediawiki/wiki/[-a-zA-Z0-9_]*)/*$ $1/index.php
-AliasMatch ^{sys_urlprefix}plugins/mediawiki/wiki/[-a-zA-Z0-9_]*/api.php {usr_share_gforge}/www/plugins/mediawiki/api.php
-AliasMatch ^{sys_urlprefix}plugins/mediawiki/wiki/[-a-zA-Z0-9_]*/index.php {usr_share_gforge}/www/plugins/mediawiki/index.php
-AliasMatch ^{sys_urlprefix}plugins/mediawiki/wiki/([-a-zA-Z0-9_]*)/images/(.*) {var_lib_gforge}/plugins/mediawiki/projects/$1/images/$2
-AliasMatch ^{sys_urlprefix}plugins/mediawiki/wiki/([-a-zA-Z0-9_]*)/skins/(.*) {usr_share_gforge}/www/plugins/mediawiki/skins/$2
-
-<Directory {var_lib_gforge}/plugins/mediawiki>
-        Options +FollowSymLinks -Indexes
-        AllowOverride All
-        order allow,deny
-        allow from all
-        # Allow mediawiki to connect to gforge
-        Include {gforge_etc}/httpd.secrets
-        php_admin_value include_path "{sys_custom_path}:{etc_gforge}:{usr_share_gforge}:{usr_share_gforge}/www/include:{usr_share_gforge}/plugins:/usr/share/php:."
-</Directory>
-
-# some directories must be protected
-<DirectoryMatch {var_lib_gforge}/plugins/mediawiki/projects/[-a-zA-Z0-9_]*/images>
-        Options -FollowSymLinks
-        AllowOverride None
-</DirectoryMatch>
-# 61plugin-mediawiki end
diff --git a/src/plugins/oauthprovider/etc/httpd.d/62plugin-oauthprovider b/src/plugins/oauthprovider/etc/httpd.d/62plugin-oauthprovider
deleted file mode 100644
index 1b6b96b..0000000
--- a/src/plugins/oauthprovider/etc/httpd.d/62plugin-oauthprovider
+++ /dev/null
@@ -1,12 +0,0 @@
-# 62plugin-oauthprovider begin
-#	AddHandler cgi-script .cgi
-
-#	ScriptAlias /cgi-bin/oauthprovider/ /var/lib/oauthprovider/cgi-bin/
-#	ScriptAlias /oauthprovider/ /var/lib/oauthprovider/cgi-bin/
-
-#	Alias /images/oauthprovider /usr/share/images/oauthprovider
-#	<Location /images/oauthprovider>
-#		order allow,deny
-#		allow from all
-#	</Location>
-# 62plugin-oauthprovider end
diff --git a/src/plugins/scmcvs/etc/httpd.d/30virtualcvs b/src/plugins/scmcvs/etc/httpd.d/30virtualcvs
deleted file mode 100644
index 834292d..0000000
--- a/src/plugins/scmcvs/etc/httpd.d/30virtualcvs
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# cvs.* hosts
-#
-# This example is so beautiful that I keep it
-# And can be used in a better way e.g. creating a cvs directory by group
-<VirtualHost *:80>
-	ServerName cvs.{domain_name}
-	ServerAlias cvs.*.{domain_name}
-	DocumentRoot {gforge_chroot}{groupdir}/
-	VirtualDocumentRoot {gforge_chroot}{groupdir}/%2/htdocs
-	VirtualScriptAlias {gforge_chroot}{groupdir}/%2/cgi-bin
-	<Directory {gforge_chroot}{groupdir}>
-		Options Indexes FollowSymlinks
-		AllowOverride All
-		order allow,deny
-		allow from all
-	</Directory>
-	LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" gforge
-	CustomLog "|{cronolog_path} {var_log_gforge}/%Y/%m/%d/gforge.log" gforge
-	# Ensure that we don't try to use SSL on SSL Servers
-	<IfModule apache_ssl.c>
-		SSLDisable
-	</IfModule>
-
-        RewriteEngine on
-        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
-        RewriteRule .* - [F]
-</VirtualHost>
-
diff --git a/src/plugins/scmcvs/etc/httpd.d/31virtualcvs.ssl b/src/plugins/scmcvs/etc/httpd.d/31virtualcvs.ssl
deleted file mode 100644
index 4917a5e..0000000
--- a/src/plugins/scmcvs/etc/httpd.d/31virtualcvs.ssl
+++ /dev/null
@@ -1,33 +0,0 @@
-# CVS HTTP SSL vhosts
-<VirtualHost *:443>
-	ServerName cvs.{domain_name}
-  	ServerAlias cvs.*.{domain_name}
-	DocumentRoot {gforge_chroot}{groupdir}/
-	VirtualDocumentRoot {gforge_chroot}{groupdir}/%2/htdocs
-	VirtualScriptAlias {gforge_chroot}{groupdir}/%2/cgi-bin
-
-	<IfModule mod_ssl.c>
-		SSLEngine on
-		SSLCertificateFile {sys_sslcrt}
-		SSLCertificateKeyFile {sys_sslkey}
-		SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
-	</IfModule>
-	<IfModule apache_ssl.c>
-		SSLEnable
-		SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
-	</IfModule>
-
-	<Directory {gforge_chroot}{groupdir}>
-		Options Indexes FollowSymlinks
-		AllowOverride All
-		order allow,deny
-		allow from all
-	</Directory>
-	LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" gforge
-	CustomLog "|{cronolog_path} {var_log_gforge}/%Y/%m/%d/gforge.log" gforge
-
-        RewriteEngine on
-        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
-        RewriteRule .* - [F]
-</VirtualHost>
-
diff --git a/src/plugins/soapadmin/etc/httpd.d/62plugin-soapadmin b/src/plugins/soapadmin/etc/httpd.d/62plugin-soapadmin
deleted file mode 100644
index 415f279..0000000
--- a/src/plugins/soapadmin/etc/httpd.d/62plugin-soapadmin
+++ /dev/null
@@ -1,12 +0,0 @@
-# 62plugin-soapadmin begin
-#	AddHandler cgi-script .cgi
-
-#	ScriptAlias /cgi-bin/soapadmin/ /var/lib/soapadmin/cgi-bin/
-#	ScriptAlias /soapadmin/ /var/lib/soapadmin/cgi-bin/
-
-#	Alias /images/soapadmin /usr/share/images/soapadmin
-#	<Location /images/soapadmin>
-#		order allow,deny
-#		allow from all
-#	</Location>
-# 62plugin-soapadmin end

commit 8523b45403b870285c14a2addc5e026d9b45d6e3
Author: Sylvain Beucler <sylvain.beucler at inria.fr>
Date:   Wed Aug 13 18:26:38 2014 +0200

    install: plugin httpd configuration installed with the plugin, not with core

diff --git a/src/GNUmakefile b/src/GNUmakefile
index ea8a858..39de4ab 100644
--- a/src/GNUmakefile
+++ b/src/GNUmakefile
@@ -21,6 +21,7 @@ install-base-dirs:
 install-config: install-base-dirs
 #	Install initial configuration (without overwriting)
 #	Required for post-install scripts
+#	TODO: chown to root:root
 	cp -a --no-clobber etc/config.ini.d/* $(DESTDIR)$(config_path)/config.ini.d/
 	if [ ! -e $(DESTDIR)$(config_path)/config.ini ]; then \
 		sed etc/config.ini \
@@ -72,10 +73,10 @@ post-install: post-install-core post-install-plugins
 post-install-core:
 	$(pkgdatadir)/post-install.d/core.sh
 
-PLUGINS_INSTALLED:=$(ls $(data_path)/plugins)
+PLUGINS_INSTALLED:=$(shell ls $(pkgdatadir)/plugins)
 PLUGINS_POST_INSTALL_TARGETS=$(addprefix post-install-plugin-,$(PLUGINS_INSTALLED))
 post-install-plugins: $(PLUGINS_POST_INSTALL_TARGETS)
-post-install-plugin-%: $(data_path)/plugins/%/
+post-install-plugin-%: $(pkgdatadir)/plugins/%/
 	$(pkgdatadir)/post-install.d/plugin.sh $*
 
 clean:
diff --git a/src/templates/httpd.conf.d/plugin-authhttpd.inc b/src/plugins/authhttpd/etc/httpd.conf.d/plugin-authhttpd.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-authhttpd.inc
rename to src/plugins/authhttpd/etc/httpd.conf.d/plugin-authhttpd.inc
diff --git a/src/templates/httpd.conf.d/plugin-mediawiki.inc b/src/plugins/mediawiki/etc/httpd.conf.d/plugin-mediawiki.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-mediawiki.inc
rename to src/plugins/mediawiki/etc/httpd.conf.d/plugin-mediawiki.inc
diff --git a/src/templates/httpd.conf.d/plugin-moinmoin.inc b/src/plugins/moinmoin/etc/httpd.conf.d/plugin-moinmoin.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-moinmoin.inc
rename to src/plugins/moinmoin/etc/httpd.conf.d/plugin-moinmoin.inc
diff --git a/src/plugins/oslc/etc/httpd.d/plugin-oslc.inc b/src/plugins/oslc/etc/httpd.conf.d/plugin-oslc.inc
similarity index 100%
rename from src/plugins/oslc/etc/httpd.d/plugin-oslc.inc
rename to src/plugins/oslc/etc/httpd.conf.d/plugin-oslc.inc
diff --git a/src/templates/httpd.conf.d/plugin-phpcaptcha.inc b/src/plugins/phpcaptcha/etc/httpd.conf.d/plugin-phpcaptcha.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-phpcaptcha.inc
rename to src/plugins/phpcaptcha/etc/httpd.conf.d/plugin-phpcaptcha.inc
diff --git a/src/templates/httpd.conf.d/plugin-scmbzr.inc b/src/plugins/scmbzr/etc/httpd.conf.d/plugin-scmbzr.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-scmbzr.inc
rename to src/plugins/scmbzr/etc/httpd.conf.d/plugin-scmbzr.inc
diff --git a/src/templates/httpd.conf.d/plugin-scmdarcs.inc b/src/plugins/scmdarcs/etc/httpd.conf.d/plugin-scmdarcs.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-scmdarcs.inc
rename to src/plugins/scmdarcs/etc/httpd.conf.d/plugin-scmdarcs.inc
diff --git a/src/plugins/scmgit/etc/httpd.conf.d/plugin-scmgit-dav.inc b/src/plugins/scmgit/etc/httpd.conf.d-dav/plugin-scmgit-dav.inc
similarity index 100%
rename from src/plugins/scmgit/etc/httpd.conf.d/plugin-scmgit-dav.inc
rename to src/plugins/scmgit/etc/httpd.conf.d-dav/plugin-scmgit-dav.inc
diff --git a/src/templates/httpd.conf.d/plugin-scmgit.inc b/src/plugins/scmgit/etc/httpd.conf.d/plugin-scmgit.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-scmgit.inc
rename to src/plugins/scmgit/etc/httpd.conf.d/plugin-scmgit.inc
diff --git a/src/templates/httpd.conf.d/plugin-scmsvn.inc b/src/plugins/scmsvn/etc/httpd.conf.d/plugin-scmsvn.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-scmsvn.inc
rename to src/plugins/scmsvn/etc/httpd.conf.d/plugin-scmsvn.inc
diff --git a/src/templates/httpd.conf.d/plugin-sysauthldap-secrets.inc b/src/plugins/sysauthldap/etc/httpd.conf.d/plugin-sysauthldap-secrets.inc
similarity index 100%
rename from src/templates/httpd.conf.d/plugin-sysauthldap-secrets.inc
rename to src/plugins/sysauthldap/etc/httpd.conf.d/plugin-sysauthldap-secrets.inc
diff --git a/src/post-install.d/httpd-configure.sh b/src/post-install.d/httpd-configure.sh
index 8360f9a..b0a5b69 100755
--- a/src/post-install.d/httpd-configure.sh
+++ b/src/post-install.d/httpd-configure.sh
@@ -6,12 +6,12 @@ config_path=$(forge_get_config config_path)
 data_path=$(forge_get_config data_path)
 
 cd $source_path/templates/
-for i in httpd.conf httpd.conf.d/*; do
-    if ! [ -e $config_path/$i ]; then
+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
     fi
     case $i in
-	*secrets*) chmod 600 $i;;
+	*secrets*) chmod 600 $config_path/$i;;
     esac
 done
 
@@ -24,4 +24,4 @@ fi
 if [ -e /etc/redhat-release ]; then
     ln -nfs $config_path/httpd.conf /etc/httpd/conf.d/fusionforge.conf
 fi
-service $httpd_service restart
+service $httpd_service reload
diff --git a/src/post-install.d/plugin.sh b/src/post-install.d/plugin.sh
index 7906d9f..fe54bedc 100755
--- a/src/post-install.d/plugin.sh
+++ b/src/post-install.d/plugin.sh
@@ -9,15 +9,29 @@ if [ -z "$1" ]; then
     exit 1
 fi
 
+
 # Run plugin-specific DB install/upgrade
 # TODO: don't automatically enable the plugin, esp. for non-packaged installs
 $source_path/bin/upgrade-db.php $1
 
+
 # Restart apache if there is some change in config
-# TODO: manage this with manage-apache-config.sh
-if [ -f $config_path/httpd.conf.d/plugin-$1.inc ]; then
-    service $httpd_service reload
-fi
+(
+if [ ! -e $source_path/plugins/$1/etc/httpd.conf.d/ ]; then exit; fi
+cd $source_path/plugins/$1/etc/
+for i in $(ls httpd.conf.d/*); do
+    if [ ! -e $config_path/$i ]; then
+	$source_path/post-install.d/httpd-expand-conf.php $i $config_path/$i
+    fi
+    case $i in
+	*secrets*) chmod 600 $config_path/$i;;
+    esac
+done
+# Hard-coded detection of distro-specific Apache conf layout
+httpd_service=$(if [ -e /etc/redhat-release ]; then echo 'httpd'; else echo 'apache2'; fi)
+service $httpd_service reload
+)
+
 
 # Run plugin-specific install
 if [ -x $source_path/plugins/$1/bin/install.sh ]; then

commit ab8d6d76b63bc733ce37cd9ef257ebb5cf8b6290
Author: Sylvain Beucler <sylvain.beucler at inria.fr>
Date:   Wed Aug 13 17:11:17 2014 +0200

    install: move db credentials in post-install

diff --git a/src/GNUmakefile b/src/GNUmakefile
index b721e1c..ea8a858 100644
--- a/src/GNUmakefile
+++ b/src/GNUmakefile
@@ -18,16 +18,9 @@ install-base-dirs:
 	install -d -m 755 $(DESTDIR)$(config_path)/plugins/
 	install -d -m 755 $(DESTDIR)$(sysconfdir)/cron.d/
 
-# Initial values for generating secrets.ini
-database_host=127.0.0.1
-database_port=5432
-database_name=fusionforge
-database_user=fusionforge
-database_password:=$(shell (head -c100 /dev/urandom; date +"%s:%N") | md5sum | cut -d' ' -f1)
-session_key:=$(shell (head -c100 /dev/urandom; date +"%s:%N") | md5sum | cut -d' ' -f1)
-
 install-config: install-base-dirs
-#	Install initial configuration without overwriting
+#	Install initial configuration (without overwriting)
+#	Required for post-install scripts
 	cp -a --no-clobber etc/config.ini.d/* $(DESTDIR)$(config_path)/config.ini.d/
 	if [ ! -e $(DESTDIR)$(config_path)/config.ini ]; then \
 		sed etc/config.ini \
@@ -37,24 +30,6 @@ install-config: install-base-dirs
 			-e 's, at log_path@,$(log_path),' \
 			> $(DESTDIR)$(config_path)/config.ini; \
 	fi
-#	TODO: install the following at post-install time
-	if [ ! -e $(DESTDIR)$(config_path)/config.ini.d/secrets.ini ]; then \
-		sed templates/secrets.ini \
-			-e 's, at database_host@,$(database_host),' \
-			-e 's, at database_port@,$(database_port),' \
-			-e 's, at database_name@,$(database_name),' \
-			-e 's, at database_user@,$(database_user),' \
-			-e 's, at database_password@,$(database_password),' \
-			-e 's, at session_key@,$(session_key),' \
-			> $(DESTDIR)$(config_path)/config.ini.d/secrets.ini; \
-	fi
-	chmod 600 $(DESTDIR)$(config_path)/config.ini.d/secrets.ini
-#	TODO: support 'db_get @PACKAGE@/shared/web_host' ?
-	if [ ! -e $(DESTDIR)$(config_path)/config.ini.d/post-install.ini ]; then \
-		sed templates/post-install.ini \
-			-e 's, at web_host@,$(hostname -f),' \
-			> $(DESTDIR)$(config_path)/config.ini.d/post-install.ini; \
-	fi
 
 install-core: install-base-dirs install-config
 	cp -a VERSION bin common cronjobs db post-install.d templates vendor www lib $(DESTDIR)$(pkgdatadir)/
diff --git a/src/GNUmakefile.defaults b/src/GNUmakefile.defaults
index c054be8..b5f75c8 100644
--- a/src/GNUmakefile.defaults
+++ b/src/GNUmakefile.defaults
@@ -15,10 +15,6 @@ sysconfdir=/etc
 localstatedir=/var
 
 # Derived paths
-# TODO: override them from forge_get_config ?
-#       must not be overridable during a package build
 config_path=$(sysconfdir)/fusionforge
 data_path=$(localstatedir)/lib/fusionforge
 log_path=$(localstatedir)/log/fusionforge
-
-user=fusionforge
diff --git a/src/post-install.d/core.sh b/src/post-install.d/core.sh
index 069eff3..b9bac59 100755
--- a/src/post-install.d/core.sh
+++ b/src/post-install.d/core.sh
@@ -1,10 +1,25 @@
 #!/bin/bash -x
+# Call the post-install scripts
+# Distro packages will usually call each post-install script directly
+# Scripts is "idempotent", aka can safely be run multiple times (Puppet slang)
+
 source_path=$(forge_get_config source_path)
+config_path=$(forge_get_config config_path)
 data_path=$(forge_get_config data_path)
 
-user=gforge  # FIXME: make this a configuration option, or ditch the user
+# Forge system user
+# TODO: make this a configuration option, or ditch the user
+# TODO: move me out of this script
+user=gforge
 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
+
+# Database
 $source_path/post-install.d/db-configure.sh
 $source_path/post-install.d/db-populate.sh
 $source_path/bin/upgrade-db.php
+
+# Apache
 $source_path/post-install.d/httpd-configure.sh
diff --git a/src/post-install.d/ini.sh b/src/post-install.d/ini.sh
new file mode 100755
index 0000000..6888e83
--- /dev/null
+++ b/src/post-install.d/ini.sh
@@ -0,0 +1,55 @@
+#!/bin/bash -x
+# Post-install .ini configuration
+# (all other .ini configuration is done at install time)
+
+source_path=$(forge_get_config source_path)
+config_path=$(forge_get_config config_path)
+
+# TODO: support 'db_get @PACKAGE@/shared/web_host' ?
+if [ ! -e $config_path/config.ini.d/post-install.ini ]; then \
+	sed $source_path/templates/post-install.ini \
+		-e 's, at web_host@,$(hostname -f),' \
+		> $config_path/config.ini.d/post-install.ini; \
+fi
+
+# Don't overwrite existing config (e.g. previous or Puppet-generated)
+if [ -e $config_path/config.ini.d/post-install-secrets.ini ]; then
+    exit 0
+fi
+
+database_host=$1
+database_port=$2
+database_name=$3
+database_user=$4
+database_password_file=$5
+
+if [ -z $database_host ]; then
+    database_host=127.0.0.1
+fi
+if [ -z $database_port ]; then
+    database_port=5432
+fi
+if [ -z $database_name ]; then
+    database_name=fusionforge
+fi
+if [ -z $database_user ]; then
+    database_user=fusionforge
+fi
+database_password=$(cat "$database_password_file" 2>/dev/null)
+if [ -z $database_password ]; then
+    database_password=$((head -c100 /dev/urandom; date +"%s:%N") | md5sum | cut -d' ' -f1)
+fi
+
+# Generate session key here for simplificy
+session_key=$((head -c100 /dev/urandom; date +"%s:%N") | md5sum | cut -d' ' -f1)
+
+# Create config file
+sed $source_path/templates/post-install-secrets.ini \
+    -e "s, at database_host@,$database_host," \
+    -e "s, at database_port@,$database_port," \
+    -e "s, at database_name@,$database_name," \
+    -e "s, at database_user@,$database_user," \
+    -e "s, at database_password@,$database_password," \
+    -e "s, at session_key@,$session_key," \
+    > $config_path/config.ini.d/post-install-secrets.ini
+chmod 600 $config_path/config.ini.d/post-install-secrets.ini
diff --git a/src/templates/secrets.ini b/src/templates/post-install-secrets.ini
similarity index 100%
rename from src/templates/secrets.ini
rename to src/templates/post-install-secrets.ini

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

Summary of changes:
 src/GNUmakefile                                    |   34 ++----------
 src/GNUmakefile.defaults                           |    4 --
 .../etc}/httpd.conf.d/plugin-authhttpd.inc         |    0
 .../etc/httpd.d/62plugin-globaldashboard           |   12 -----
 .../helloworld/etc/httpd.d/62plugin-helloworld     |   12 -----
 src/plugins/hudson/etc/httpd.d/62plugin-hudson     |   12 -----
 .../etc}/httpd.conf.d/plugin-mediawiki.inc         |    0
 .../mediawiki/etc/httpd.d/61plugin-mediawiki       |   23 --------
 .../moinmoin/etc}/httpd.conf.d/plugin-moinmoin.inc |    0
 .../etc/httpd.d/62plugin-oauthprovider             |   12 -----
 .../etc/{httpd.d => httpd.conf.d}/plugin-oslc.inc  |    0
 .../etc}/httpd.conf.d/plugin-phpcaptcha.inc        |    0
 .../scmbzr/etc}/httpd.conf.d/plugin-scmbzr.inc     |    0
 src/plugins/scmcvs/etc/httpd.d/30virtualcvs        |   29 -----------
 src/plugins/scmcvs/etc/httpd.d/31virtualcvs.ssl    |   33 ------------
 .../scmdarcs/etc}/httpd.conf.d/plugin-scmdarcs.inc |    0
 .../plugin-scmgit-dav.inc                          |    0
 .../scmgit/etc}/httpd.conf.d/plugin-scmgit.inc     |    0
 .../scmsvn/etc}/httpd.conf.d/plugin-scmsvn.inc     |    0
 .../soapadmin/etc/httpd.d/62plugin-soapadmin       |   12 -----
 .../httpd.conf.d/plugin-sysauthldap-secrets.inc    |    0
 src/post-install.d/core.sh                         |   17 +++++-
 src/post-install.d/httpd-configure.sh              |    8 +--
 src/post-install.d/ini.sh                          |   55 ++++++++++++++++++++
 src/post-install.d/plugin.sh                       |   22 ++++++--
 .../{secrets.ini => post-install-secrets.ini}      |    0
 26 files changed, 98 insertions(+), 187 deletions(-)
 rename src/{templates => plugins/authhttpd/etc}/httpd.conf.d/plugin-authhttpd.inc (100%)
 delete mode 100644 src/plugins/globaldashboard/etc/httpd.d/62plugin-globaldashboard
 delete mode 100644 src/plugins/helloworld/etc/httpd.d/62plugin-helloworld
 delete mode 100644 src/plugins/hudson/etc/httpd.d/62plugin-hudson
 rename src/{templates => plugins/mediawiki/etc}/httpd.conf.d/plugin-mediawiki.inc (100%)
 delete mode 100644 src/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki
 rename src/{templates => plugins/moinmoin/etc}/httpd.conf.d/plugin-moinmoin.inc (100%)
 delete mode 100644 src/plugins/oauthprovider/etc/httpd.d/62plugin-oauthprovider
 rename src/plugins/oslc/etc/{httpd.d => httpd.conf.d}/plugin-oslc.inc (100%)
 rename src/{templates => plugins/phpcaptcha/etc}/httpd.conf.d/plugin-phpcaptcha.inc (100%)
 rename src/{templates => plugins/scmbzr/etc}/httpd.conf.d/plugin-scmbzr.inc (100%)
 delete mode 100644 src/plugins/scmcvs/etc/httpd.d/30virtualcvs
 delete mode 100644 src/plugins/scmcvs/etc/httpd.d/31virtualcvs.ssl
 rename src/{templates => plugins/scmdarcs/etc}/httpd.conf.d/plugin-scmdarcs.inc (100%)
 rename src/plugins/scmgit/etc/{httpd.conf.d => httpd.conf.d-dav}/plugin-scmgit-dav.inc (100%)
 rename src/{templates => plugins/scmgit/etc}/httpd.conf.d/plugin-scmgit.inc (100%)
 rename src/{templates => plugins/scmsvn/etc}/httpd.conf.d/plugin-scmsvn.inc (100%)
 delete mode 100644 src/plugins/soapadmin/etc/httpd.d/62plugin-soapadmin
 rename src/{templates => plugins/sysauthldap/etc}/httpd.conf.d/plugin-sysauthldap-secrets.inc (100%)
 create mode 100755 src/post-install.d/ini.sh
 rename src/templates/{secrets.ini => post-install-secrets.ini} (100%)


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list