[evolvis-commits] r9174: Merging Branch_3_1 back into the trunk (at tag Branch_3_1-merge_2). ↵

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 17:19:50 CET 2011


Author: mirabilos
Date: 2011-02-24 17:19:50 +0100 (Thu, 24 Feb 2011)
New Revision: 9174

Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/create-vhosts.sh
   trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/install-apache.sh
   trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/install-db.sh
   trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/ssh_dump_update.pl
   trunk/gforge_base/evolvisforge-5.1/gforge/debian/changelog
   trunk/gforge_base/evolvisforge-5.1/gforge/debian/control
   trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-helper/handle-mainconffile.config
   trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-helper/handle-mainconffile.postinst
   trunk/gforge_base/evolvisforge-5.1/gforge/debian/gforge-web-apache.postinst.dsfh-in
Log:
Merging Branch_3_1 back into the trunk (at tag Branch_3_1-merge_2).


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/create-vhosts.sh
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/create-vhosts.sh	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/create-vhosts.sh	2011-02-24 16:19:50 UTC (rev 9174)
@@ -4,8 +4,8 @@
 
 /usr/lib/gforge/bin/prepare-vhosts-file.pl
 if [ -x /usr/sbin/apache ]; then
-    invoke-rc.d apache reload > /dev/null 2>&1
+    /usr/sbin/invoke-rc.d apache reload > /dev/null 2>&1
 fi
 if [ -x /usr/sbin/apache-ssl ]; then
-    invoke-rc.d apache-ssl reload > /dev/null 2>&1
+    /usr/sbin/invoke-rc.d apache-ssl reload > /dev/null 2>&1
 fi

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/install-apache.sh
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/install-apache.sh	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/install-apache.sh	2011-02-24 16:19:50 UTC (rev 9174)
@@ -70,6 +70,12 @@
 	    /usr/sbin/modules-config apache enable mod_env
 	    /usr/sbin/modules-config apache enable mod_vhost_alias
 	fi
+	if [ -e /etc/apache-perl/httpd.conf ] ; then
+	    /usr/sbin/modules-config apache-perl enable mod_php4
+	    /usr/sbin/modules-config apache-perl enable mod_ssl
+	    /usr/sbin/modules-config apache-perl enable mod_env
+	    /usr/sbin/modules-config apache-perl enable mod_vhost_alias
+	fi
 	if [ -e /etc/apache-ssl/httpd.conf ] ; then
 	    /usr/sbin/modules-config apache-ssl enable mod_php4
 	    /usr/sbin/modules-config apache-ssl enable mod_env
@@ -78,6 +84,9 @@
 	if [ -x /usr/sbin/apache ]; then
 		invoke-rc.d apache restart || true
 	fi
+	if [ -x /usr/sbin/apache-perl ]; then
+		invoke-rc.d apache-perl restart || true
+	fi
 	if [ -x /usr/sbin/apache-ssl ]; then
 		invoke-rc.d apache-ssl restart || true
 	fi
@@ -97,6 +106,9 @@
 	if [ -x /usr/sbin/apache ]; then
 		invoke-rc.d apache restart || true
 	fi
+	if [ -x /usr/sbin/apache-perl ]; then
+		invoke-rc.d apache-perl restart || true
+	fi
 	if [ -x /usr/sbin/apache-ssl ]; then
 		invoke-rc.d apache-ssl restart || true
 	fi

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/install-db.sh
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/install-db.sh	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/install-db.sh	2011-02-24 16:19:50 UTC (rev 9174)
@@ -26,10 +26,10 @@
 	;;
     configure-files)
 	# Tell PostgreSQL to let us use the database
-	db_passwd=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbpasswd\n";')
-	ip_address=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbhost\n";')
-	db_name=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbname\n";')
-	db_user=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbuser\n";')
+	db_passwd=$(grep ^db_password= /etc/gforge/gforge.conf | cut -d= -f2-)
+	ip_address=$(grep ^ip_address= /etc/gforge/gforge.conf | cut -d= -f2-)
+	db_name=$(grep ^db_name= /etc/gforge/gforge.conf | cut -d= -f2-)
+	db_user=$(grep ^db_user= /etc/gforge/gforge.conf | cut -d= -f2-)
 	pattern=$(basename $0).XXXXXX
 	pg_version=$(dpkg -s postgresql | awk '/^Version: / { print $2 }')
 	if dpkg --compare-versions $pg_version lt 7.3 ; then
@@ -82,9 +82,9 @@
     configure)
 	# Create the appropriate database user
 	pg_version=$(dpkg -s postgresql | awk '/^Version: / { print $2 }')
-	db_name=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbname\n";')
-	db_user=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbuser\n";')
-	db_passwd=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbpasswd\n";')
+	db_passwd=$(grep ^db_password= /etc/gforge/gforge.conf | cut -d= -f2-)
+	db_name=$(grep ^db_name= /etc/gforge/gforge.conf | cut -d= -f2-)
+	db_user=$(grep ^db_user= /etc/gforge/gforge.conf | cut -d= -f2-)
 	pattern=$(basename $0).XXXXXX
 	tmp1=$(mktemp /tmp/$pattern)
 	tmp2=$(mktemp /tmp/$pattern)
@@ -191,15 +191,21 @@
         fi
 	;;
     purge)
-	db_name=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbname\n";')
-	db_user=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbuser\n";')
+	db_name=$(grep ^db_name= /etc/gforge/gforge.conf | cut -d= -f2-)
+	db_user=$(grep ^db_user= /etc/gforge/gforge.conf | cut -d= -f2-)
 	su -s /bin/sh postgres -c "dropdb $db_name" > /dev/null 2>&1 || true
 	su -s /bin/sh postgres -c "dropuser $db_user" > /dev/null 2>&1 || true
 	rm -f /var/lib/postgres/data/gforge_passwd
 	kill -HUP $(head -1 /var/lib/postgres/data/postmaster.pid)
 	;;
     dump)
-    	db_name=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbname\n";')
+	if [ -e /etc/sourceforge/local.pl ] ; then
+	    db_name=$(perl -e'require "/etc/sourceforge/local.pl"; print "$sys_dbname\n";')
+	elif [ -e /etc/gforge/gforge.conf ] ; then
+	    db_name=$(grep ^db_name= /etc/gforge/gforge.conf | cut -d= -f2-)
+	else
+	    db_name=sourceforge
+	fi
 	if [ "x$2" != "x" ] ;then
 		DUMPFILE=$2
 	else
@@ -214,7 +220,7 @@
 	su -s /bin/sh $DB -c /usr/lib/postgresql/bin/pg_dump $DB > $DUMPFILE
 	;;
     restore)
-	db_name=$(perl -e'require "/etc/gforge/local.pl"; print "$sys_dbname\n";')
+	db_name=$(grep ^db_name= /etc/gforge/gforge.conf | cut -d= -f2-)
 	pattern=$(basename $0).XXXXXX
 	newpg=$(mktemp /tmp/$pattern)
 	pg_version=$(dpkg -s postgresql | awk '/^Version: / { print $2 }')

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/ssh_dump_update.pl
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/ssh_dump_update.pl	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/ssh_dump_update.pl	2011-02-24 16:19:50 UTC (rev 9174)
@@ -13,6 +13,8 @@
 
 &db_connect;
 
+$dbh->{AutoCommit} = 0;
+
 # Dump the Table information
 $query = "SELECT user_name,unix_uid,authorized_keys FROM users WHERE authorized_keys != '' AND status !='D'";
 $c = $dbh->prepare($query);
@@ -22,16 +24,10 @@
 	push @ssh_array, $new_list;
 }
 
-# Now write out the files
-write_array_file($file_dir."dumps/ssh_dump", @ssh_array);
-
-my @ssh_key_file = open_array_file($file_dir."dumps/ssh_dump");
 my ($username, $ssh_keys, $ssh_dir);
 
 if($verbose){print("\n\n	Processing Users\n\n")};
-while ($ln = pop(@ssh_key_file)) {
-	chop($ln);
-
+while ($ln = pop(@ssh_array)) {
 	($username, $uid, $ssh_key) = split(":", $ln);
 
 	$ssh_key =~ s/\#\#\#/\n/g;
@@ -44,6 +40,7 @@
 
 	if (! -d $ssh_dir) {
 		mkdir $ssh_dir, 0755;
+		system("chown $uid:$uid $ssh_dir");
 	}
 
 	if($verbose){print("Writing authorized_keys for $username: ")};
@@ -58,3 +55,35 @@
 
 	undef @user_authorized_keys;
 }
+undef @ssh_array;
+
+### Phase 2: remove the files when needed
+
+# Dump the Table information
+$query = "SELECT user_name,unix_uid FROM users WHERE authorized_keys = '' OR authorized_keys IS NULL OR status = 'D'";
+$c = $dbh->prepare($query);
+$c->execute();
+while(my ($username, $unix_uid, $ssh_key) = $c->fetchrow()) {
+	$new_list = "$username:$unix_uid\n";
+	push @ssh_array, $new_list;
+}
+
+if($verbose){print("\n\n	Processing Users\n\n")};
+while ($ln = pop(@ssh_array)) {
+	($username, $uid) = split(":", $ln);
+
+	$username =~ tr/[A-Z]/[a-z]/;
+	$uid += $uid_add;
+
+	$ssh_dir = "$homedir_prefix$username/.ssh";
+
+	if (-d $ssh_dir) {
+	    if($verbose){print("Resetting authorized_keys for $username: ")};
+	    
+	    unlink("$ssh_dir/authorized_keys");
+	    system("chown $uid:$uid $homedir_prefix$username");
+	    system("chown $uid:$uid $ssh_dir");
+
+	    if($verbose){print ("Done\n")};
+	}
+}

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/debian/changelog
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/debian/changelog	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/debian/changelog	2011-02-24 16:19:50 UTC (rev 9174)
@@ -6,8 +6,24 @@
     updated to last cvsweb version
   * [Christian] added setup and cleanup target in install-ldap.sh
     and fill crypted password
+  * [Roland] Tightened the versioned dependency on Apache so that we can
+    rely on modules-config (closes: #220872).
+  * [Roland] Escape special characters like @ and $ before passing strings
+    containing them to a Perl script, for instance e-mail addresses.
+    Should help fix the administrator's e-mail.
+  * [Roland] install-db.sh now uses grep and cut (instead of Perl) to
+    extract the configuration variables from the configuration file, which
+    should help gforge-sourceforge-transition work better.
+  * [Roland] Added full path to invoke-rc.d in create-vhosts.sh.  This
+    script may be called from a very sparse environment (cron), in which
+    $PATH does not include /usr/sbin.
+  * [Roland] Remove .ssh/authorized_keys when they are set to empty,
+    instead of just leaving them as they are.
+  * [Roland] Added support for apache-perl too.
+  * [Roland] Fixed the way we use modules-config so that gforge-web-apache
+    does not hang on install (closes: #221172).
 
- -- Roland Mas <lolando at debian.org>  Sat, 15 Nov 2003 17:54:43 +0100
+ -- Roland Mas <lolando at debian.org>  Sat, 22 Nov 2003 18:42:41 +0100
 
 gforge (3.1-4) unstable; urgency=low
 

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/debian/control
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/debian/control	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/debian/control	2011-02-24 16:19:50 UTC (rev 9174)
@@ -35,7 +35,7 @@
 
 Package: gforge-web-apache
 Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, apache (>= 1.3.9) | apache-ssl (>= 1.3.9), libapache-mod-ssl | apache-ssl, php4, php4-cgi, php4-pgsql, php4-gd, php4-ldap, perl, perl-suid, libdbi-perl, libdbd-pg-perl, debianutils (>= 1.7), debconf (>= 1.0.32), slapd (>= 2.0.23-3), cronolog
+Depends: gforge-common, gforge-db-postgresql | gforge-db, apache (>= 1.3.29-2) | apache-ssl (>= 1.3.29-2) | apache-perl (>= 1.3.29-2), libapache-mod-ssl | apache-ssl, php4, php4-cgi, php4-pgsql, php4-gd, php4-ldap, perl, perl-suid, libdbi-perl, libdbd-pg-perl, debianutils (>= 1.7), debconf (>= 1.0.32), slapd (>= 2.0.23-3), cronolog
 Suggests: libphp-jpgraph
 Replaces: sourceforge-web-apache (>> 2.6-0+11)
 Provides: gforge-web
@@ -116,7 +116,7 @@
 
 Package: gforge-cvs
 Architecture: all
-Depends: gforge-common, gforge-ldap-openldap | gforge-ldap, cvs, rcs, apache (>= 1.3.9) | apache-ssl (>= 1.3.9), libapache-mod-ssl | apache-ssl, perl, debianutils (>= 1.7), debconf (>= 1.0.32), ssh, libnss-ldap (>=184-1), libpam-ldap
+Depends: gforge-common, gforge-ldap-openldap | gforge-ldap, cvs, rcs, apache (>= 1.3.9) | apache-ssl (>= 1.3.9) | apache-perl (1.3.9), libapache-mod-ssl | apache-ssl, perl, debianutils (>= 1.7), debconf (>= 1.0.32), ssh, libnss-ldap (>=184-1), libpam-ldap
 Replaces: sourceforge-cvs (>> 2.6-0+11)
 Conflicts: sourceforge-cvs
 Description: Collaborative development tool - CVS management
@@ -175,7 +175,7 @@
 
 Package: gforge-lists-mailman
 Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-ldap-openldap | gforge-ldap, gforge-mta-exim | gforge-mta, apache (>= 1.3.9) | apache-ssl (>= 1.3.9), perl, libdbi-perl, libdbd-pg-perl, debianutils (>= 1.7), debconf (>= 1.0.32), mailman (>= 2.1-3)
+Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-ldap-openldap | gforge-ldap, gforge-mta-exim | gforge-mta, apache (>= 1.3.9) | apache-ssl (>= 1.3.9) | apache-perl (>= 1.3.9), perl, libdbi-perl, libdbd-pg-perl, debianutils (>= 1.7), debconf (>= 1.0.32), mailman (>= 2.1-3)
 Replaces: sourceforge-lists-mailman (>> 2.6-0+11)
 Provides: gforge-lists
 Conflicts: sourceforge-lists

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-helper/handle-mainconffile.config
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-helper/handle-mainconffile.config	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-helper/handle-mainconffile.config	2011-02-24 16:19:50 UTC (rev 9174)
@@ -49,7 +49,8 @@
     key=$1
     val=$2
     if grep -q "^$key=" $mainconffile ; then
-	perl -pi -e "s/^$key=.*/$key=$val/" $mainconffile
+	newval=$(echo $val | sed -e 's/@/\\@/g' -e 's/\$/\\$/g')
+	perl -pi -e "s/^$key=.*/$key=$newval/" $mainconffile
     else
 	echo "$key=$val" >> $mainconffile
     fi

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-helper/handle-mainconffile.postinst
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-helper/handle-mainconffile.postinst	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-helper/handle-mainconffile.postinst	2011-02-24 16:19:50 UTC (rev 9174)
@@ -20,7 +20,8 @@
     key=$1
     val=$2
     if grep -q "^$key=" $mainconffile ; then
-	perl -pi -e "s/^$key=.*/$key=$val/" $mainconffile
+	newval=$(echo $val | sed -e 's/@/\\@/g' -e 's/\$/\\$/g')
+	perl -pi -e "s/^$key=.*/$key=$newval/" $mainconffile
     else
 	echo "$key=$val" >> $mainconffile
     fi

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/debian/gforge-web-apache.postinst.dsfh-in
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/debian/gforge-web-apache.postinst.dsfh-in	2011-02-24 16:19:49 UTC (rev 9173)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/debian/gforge-web-apache.postinst.dsfh-in	2011-02-24 16:19:50 UTC (rev 9174)
@@ -54,9 +54,6 @@
 	propose_update_install /etc/php4/apache/php.ini
 	propose_update_install /etc/php4/cgi/php.ini
 
-	# Clean debconf after ourselves
-	db_stop
-
         # Setup our Apache
 	/usr/lib/gforge/bin/install-apache.sh configure
 



More information about the evolvis-commits mailing list