[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#596869: Possible unblock for fusionforge/5.0.2-1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Hi,

I'd like to ask for permission for an upload of FusionForge 5.0.2, which
is a collection of bugfixes over the 5.0.1+svn10155 snapshot we
currently have in squeeze.  30 commits have happened on the 5.0 branch
upstream since then; we've been careful of only applying fixes, but your
approval would be appreciated.  I can, of course, apply only a few of
the patches for a smaller-diff upload, but I figure it would be simpler
to keep a version close to upstream.

The debdiff is attached, and here's an explanation of its contents based
on a (reordered) diffstat, by decreasing order of importance.

* Compatibility with postgresql-8.4 >= 8.4.4-2: the postgresql-8.4
  package changed the name of the init script, these three patches add
  logic to call the appropriate script.  This is probably the most
  important patch; there's no bug report open about it, but it would
  definitely be RC because it means the package couldn't install.  I can
  open it if required :-)
 deb-specific/install-db.sh                    |   25 ++++-
 debian/dsf-in/db-postgresql.postinst.dsfh-in  |   14 ++
 debian/dsf-in/db-postgresql.prerm             |   12 ++
 debian/control                                |    2 
 packaging/control/050db-postgresql            |    2 

* Preparation for post-5.0 upgrades: the upstream trunk implements a new
  configuration system based on a simple API and a set of *.ini files.
  To preserve existing configuration, a migration script has been
  written that reads the old-style configuration and converts it to
  *.ini files.  Unfortunately, the code that reads the configuration
  needs all plugins to be loaded (so their variables are available)
  before it can do its job; the following patches turn a require_once()
  into a require() and enable this migration.  Although this isn't a bug
  for Squeeze, it's a way of preventing one from occurring in Wheezy.
 plugins/scmarch/common/ArchPlugin.class.php   |    2 
 plugins/scmbzr/common/BzrPlugin.class.php     |    2 
 plugins/scmccase/common/CCasePlugin.class.php |    2 
 plugins/scmcpold/common/CpoldPlugin.class.php |    2 
 plugins/scmcvs/common/CVSPlugin.class.php     |    2 
 plugins/scmdarcs/common/DarcsPlugin.class.php |    2 
 plugins/scmgit/common/GitPlugin.class.php     |    2 
 plugins/scmhg/common/HgPlugin.class.php       |    2 

* Bugfixes in the SVN plugin: in addition to the previous patch, the SVN
  plugin contains a few changes to how repositories are handled,
  especially in the case where SVN access happens over WebDAV (as
  opposed to over SSH).  This shouldn't have any incidence on how the
  Debian-packaged FusionForge behaves, since WebDAV access isn't enabled
  there, but it makes sense to have these fixes in case someone wants to
  do a locally patched installation.
 plugins/scmsvn/common/SVNPlugin.class.php     |   42 +++++---

* Use of Unix-family sockets to access the database: this to ensure
  further upgrades run smoothly.  The database access already happens
  over Unix sockets, but the default configuration doesn't match, and
  this patch fixes that.
 debian/patches/00list                         |    1 
 debian/patches/db-on-localhost.dpatch         |   19 +++

* Handling of SSL certificate chains: when using “certified” keys for
  HTTPS, it is sometimes necessary to point Apache at the intermediate
  CAs used to sign the key, because only the root CAs are trusted by
  browsers.  The following patches add the possibility to add such a
  line to the Apache config.
 etc/gforge.conf.example                       |    1 
 etc/httpd.conf.example                        |    1 
 etc/httpd.d/07maindirhttp.vhost.ssl           |    1 
 etc/httpd.d/21list.vhost.ssl                  |    1 

* Not gobbling up lots of entropy: the maintainer scripts generate a
  handful of random passwords and keys, by reading /dev/urandom with dd;
  it seems that reading 256 blocks of 1 byte uses 256 times more entropy
  than just reading one larger block, so this patch may help in servers
  where entropy is scarce.
 debian/dsf-helper/create-random-pw.config     |    2 
 debian/dsf-in/web-apache2.postinst.dsfh-in    |    4 
 setup                                         |   13 +-

* Mediawiki permissions: this is code being moved around, and group
  names being renamed, to make the Mediawiki permissions match the
  FusionForge ones.
 plugins/mediawiki/cronjobs/create-wikis.sh    |   28 +++--
 plugins/mediawiki/www/LocalSettings.php       |   39 +++++--

* One-line fixes (SQL syntax, PHP errors, and so on):
 common/docman/Document.class.php              |    2 
 common/frs/FRSFile.class.php                  |    8 -
 common/tracker/ArtifactCanned.class.php       |    2 
 translations/de.po                            |    4 
 www/account/lostlogin.php                     |    4 
 www/docman/admin/index.php                    |    2 
 www/docman/new.php                            |    2 
 www/my/index.php                              |   14 +-
 www/news/admin/index.php                      |    4 

* Documentation of version numbers:
 CHANGES                                       |    3 
 common/include/FusionForge.class.php          |    2 
 debian/changelog                              |    9 +

* “Manual” installation scripts.  *Not* used by the Debian packaging.
 fusionforge-install-2.php                     |  128 +++++++++++++-------------
 fusionforge-install-3-db.php                  |   42 +++-----
 install-common.inc                            |   24 ++++

* PHPWiki plugin: not used (not packaged).
 plugins/wiki/common/WikiPlugin.class.php      |    2 

In total, that's 41 files changed, 297 insertions(+), 178 deletions(-).
I should insist that many of the patches come from fixing bugs
discovered by the Hudson+Selenium continuous integration system in use
upstream, and could therefore be considered safe.  I would upload
without a second thought, but I'd still like your approbation
beforehand.  Again, if you'd rather I prepared an upload with only a
subset of the patches, which I would understand given the timing of this
request, please say so.

Roland.
-- 
Roland Mas

Certains disent que les vrais hommes ne font pas de backups.
Mais ils disent aussi que même les vrais hommes pleurent parfois.
diff -Nru fusionforge-5.0.1+svn10155/CHANGES fusionforge-5.0.2/CHANGES
--- fusionforge-5.0.1+svn10155/CHANGES	2010-04-30 16:38:26.000000000 +0200
+++ fusionforge-5.0.2/CHANGES	2010-09-14 14:07:46.000000000 +0200
@@ -1,3 +1,6 @@
+FusionForge-5.0.2:
+* Maintenance release, bugfixes mostly.
+
 FusionForge-5.0.1:
 * Maintenance release, bugfixes and translations only.
 
diff -Nru fusionforge-5.0.1+svn10155/common/docman/Document.class.php fusionforge-5.0.2/common/docman/Document.class.php
--- fusionforge-5.0.1+svn10155/common/docman/Document.class.php	2010-03-05 10:49:45.000000000 +0100
+++ fusionforge-5.0.2/common/docman/Document.class.php	2010-08-11 14:18:57.000000000 +0200
@@ -253,7 +253,7 @@
 	 */
 	function isText() {
 		$doctype = $this->data_array['filetype'];
-		if (preg_match('/text/i',$doctype)) { // text plain, text html, text x-patch, etc
+		if (preg_match('|^text/|i',$doctype)) { // text plain, text html, text x-patch, etc
 			return true;
 		}	
 		return false;
diff -Nru fusionforge-5.0.1+svn10155/common/frs/FRSFile.class.php fusionforge-5.0.2/common/frs/FRSFile.class.php
--- fusionforge-5.0.1+svn10155/common/frs/FRSFile.class.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/common/frs/FRSFile.class.php	2010-09-03 13:39:22.000000000 +0200
@@ -248,7 +248,7 @@
 	 *  @return int	The size.
 	 */
 	function getSize() {
-		return $this->data_array['size'];
+		return $this->data_array['file_size'];
 	}
 
 	/**
@@ -306,12 +306,12 @@
 	}
 
 	/**
-	 *  getPostDate - get the post time of this file.
+	 *  getPostDate - get the post date of this file.
 	 *
-	 *  @return int	The post time in unix time.
+	 *  @return int	The post date in unix time.
 	 */
 	function getPostDate() {
-		return $this->data_array['post_time'];
+		return $this->data_array['post_date'];
 	}
 
 	/**
diff -Nru fusionforge-5.0.1+svn10155/common/include/FusionForge.class.php fusionforge-5.0.2/common/include/FusionForge.class.php
--- fusionforge-5.0.1+svn10155/common/include/FusionForge.class.php	2010-04-30 16:38:26.000000000 +0200
+++ fusionforge-5.0.2/common/include/FusionForge.class.php	2010-09-14 14:07:46.000000000 +0200
@@ -36,7 +36,7 @@
 		$this->Error();
 
 		$this->software_name = 'FusionForge' ;
-		$this->software_version = '5.0.1' ;
+		$this->software_version = '5.0.2' ;
 
 		return true;
 	}
diff -Nru fusionforge-5.0.1+svn10155/common/tracker/ArtifactCanned.class.php fusionforge-5.0.2/common/tracker/ArtifactCanned.class.php
--- fusionforge-5.0.1+svn10155/common/tracker/ArtifactCanned.class.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/common/tracker/ArtifactCanned.class.php	2010-09-14 14:07:46.000000000 +0200
@@ -192,7 +192,7 @@
 		}   
 
 		$result = db_query_params ('UPDATE artifact_canned_responses
-			SET title=$1,body=$2,
+			SET title=$1,body=$2
 			WHERE group_artifact_id=$3 AND id=$4',
 					   array (htmlspecialchars($title),
 						  htmlspecialchars($body),
diff -Nru fusionforge-5.0.1+svn10155/debian/changelog fusionforge-5.0.2/debian/changelog
--- fusionforge-5.0.1+svn10155/debian/changelog	2010-06-29 14:25:50.000000000 +0200
+++ fusionforge-5.0.2/debian/changelog	2010-09-14 17:33:44.000000000 +0200
@@ -1,3 +1,12 @@
+fusionforge (5.0.2-1) UNRELEASED; urgency=low
+
+  * New upstream bugfix release.
+  * Switch to Unix sockets for DB access by default.
+  * Cope with postgresql-8.4 on both sides of 8.4.4-2, where the init
+    script can be called either "postgresql-8.4" or "postgresql".
+
+ -- Roland Mas <lolando@debian.org>  Tue, 14 Sep 2010 17:33:44 +0200
+
 fusionforge (5.0.1+svn10155-1) unstable; urgency=low
 
   * Fixed embedded copy of viewvc for Python 2.6 (closes: #582012).
diff -Nru fusionforge-5.0.1+svn10155/debian/control fusionforge-5.0.2/debian/control
--- fusionforge-5.0.1+svn10155/debian/control	2010-06-29 14:25:15.000000000 +0200
+++ fusionforge-5.0.2/debian/control	2010-08-19 16:47:05.000000000 +0200
@@ -126,7 +126,7 @@
 
 Package: gforge-db-postgresql
 Architecture: all
-Depends: gforge-common, postgresql-8.3 | postgresql-8.2 | postgresql-8.1 | postgresql (>= 8.1), perl, libdbi-perl, libdbd-pg-perl, libmime-base64-perl, libhtml-parser-perl, libtext-autoformat-perl, libmail-sendmail-perl, libsort-versions-perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, php5-cli, ${misc:Depends}
+Depends: gforge-common, postgresql (>= 8.1) | postgresql-8.4 | postgresql-8.3 | postgresql-8.2 | postgresql-8.1, perl, libdbi-perl, libdbd-pg-perl, libmime-base64-perl, libhtml-parser-perl, libtext-autoformat-perl, libmail-sendmail-perl, libsort-versions-perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, php5-cli, ${misc:Depends}
 Provides: gforge-db
 Conflicts: gforge-db
 Description: collaborative development tool - database (using PostgreSQL)
diff -Nru fusionforge-5.0.1+svn10155/debian/dsf-helper/create-random-pw.config fusionforge-5.0.2/debian/dsf-helper/create-random-pw.config
--- fusionforge-5.0.1+svn10155/debian/dsf-helper/create-random-pw.config	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/debian/dsf-helper/create-random-pw.config	2010-08-05 16:33:40.000000000 +0200
@@ -1,6 +1,6 @@
 gen_random_pw () {		# Generate a random password
     if [ -c /dev/urandom ]; then  # ...using /dev/urandom when possible
-	tmp=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
+	tmp=$(dd if=/dev/urandom count=1 bs=8 2> /dev/null | md5sum | cut -b1-8)
     else			# ...or something else if need be.
 	# Last I was told, the Hurd had no /dev/urandom
 	# (Correct me if it has changed)
diff -Nru fusionforge-5.0.1+svn10155/debian/dsf-in/db-postgresql.postinst.dsfh-in fusionforge-5.0.2/debian/dsf-in/db-postgresql.postinst.dsfh-in
--- fusionforge-5.0.1+svn10155/debian/dsf-in/db-postgresql.postinst.dsfh-in	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/debian/dsf-in/db-postgresql.postinst.dsfh-in	2010-09-03 13:39:22.000000000 +0200
@@ -63,9 +63,17 @@
 	ucf --debconf-ok ${pg_hba_dir}/pg_hba.conf.@OLDPACKAGE@-new ${pg_hba_dir}/pg_hba.conf
 	rm ${pg_hba_dir}/pg_hba.conf.@OLDPACKAGE@-new
 
-	# Make sure the database accepts connections from these new users
-	pg_name=postgresql-$pg_version
-	invoke-rc.d ${pg_name} reload
+	# Reload postgresql to make sure the database accepts connections from the new users
+	# Trying "postgresql" init script...
+	invoke-rc.d postgresql reload || v=$?
+	if test x"$v" = x"100"; then
+		# No "postgresql" init script (for packages << 8.4.4-2)
+		pg_name=postgresql-$pg_version
+		invoke-rc.d ${pg_name} reload
+	elif test x"$v" != x"0"; then
+		# Needed, since we run under "set -e"...
+		exit $v
+	fi
 
         # Setup our DB
 	/usr/share/@OLDPACKAGE@/bin/install-db.sh configure
diff -Nru fusionforge-5.0.1+svn10155/debian/dsf-in/db-postgresql.prerm fusionforge-5.0.2/debian/dsf-in/db-postgresql.prerm
--- fusionforge-5.0.1+svn10155/debian/dsf-in/db-postgresql.prerm	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/debian/dsf-in/db-postgresql.prerm	2010-09-03 13:39:22.000000000 +0200
@@ -54,8 +54,16 @@
 	rm ${pg_hba_dir}/pg_hba.conf.@OLDPACKAGE@-new
 	ucf --purge ${pg_hba_dir}/pg_hba.conf
 
-	pg_name=postgresql-$pg_version
-	invoke-rc.d ${pg_name} reload
+	# Trying "postgresql" init script...
+	invoke-rc.d postgresql reload || v=$?
+	if test x"$v" = x"100"; then
+		# No "postgresql" init script (for packages << 8.4.4-2)
+		pg_name=postgresql-$pg_version
+		invoke-rc.d ${pg_name} reload
+	elif test x"$v" != x"0"; then
+		# Needed, since we run under "set -e"...
+		exit $v
+	fi
 	;;
     upgrade|deconfigure|failed-upgrade)
         ;;
diff -Nru fusionforge-5.0.1+svn10155/debian/dsf-in/web-apache2.postinst.dsfh-in fusionforge-5.0.2/debian/dsf-in/web-apache2.postinst.dsfh-in
--- fusionforge-5.0.1+svn10155/debian/dsf-in/web-apache2.postinst.dsfh-in	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/debian/dsf-in/web-apache2.postinst.dsfh-in	2010-08-05 16:33:40.000000000 +0200
@@ -30,11 +30,11 @@
 case "$1" in
     configure)
 	if [ -c /dev/urandom ]; then  # ...using /dev/urandom when possible
-	    sys_session_key=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-32)
+	    sys_session_key=$(dd if=/dev/urandom count=1 bs=16 2> /dev/null | md5sum | cut -b1-32)
 	else			# ...or something else if need be.
 	    # Last I was told, the Hurd had no /dev/urandom
 	    # (Correct me if it has changed)
-	    sys_session_key=$(dd if=/dev/random count=256 bs=1 2> /dev/null | md5sum | cut -b1-32)
+	    sys_session_key=$(dd if=/dev/random count=1 bs=8 2> /dev/null | md5sum | cut -b1-32)
 	fi
 	add_onevar_mainconfile sys_session_key $sys_session_key
 	add_onevar_mainconfile sys_show_source 0
diff -Nru fusionforge-5.0.1+svn10155/debian/patches/00list fusionforge-5.0.2/debian/patches/00list
--- fusionforge-5.0.1+svn10155/debian/patches/00list	2010-06-28 11:32:47.000000000 +0200
+++ fusionforge-5.0.2/debian/patches/00list	2010-06-30 16:08:51.000000000 +0200
@@ -5,3 +5,4 @@
 use-nusoap-from-distro
 
 use-yui-from-distro
+db-on-localhost
diff -Nru fusionforge-5.0.1+svn10155/debian/patches/db-on-localhost.dpatch fusionforge-5.0.2/debian/patches/db-on-localhost.dpatch
--- fusionforge-5.0.1+svn10155/debian/patches/db-on-localhost.dpatch	1970-01-01 01:00:00.000000000 +0100
+++ fusionforge-5.0.2/debian/patches/db-on-localhost.dpatch	2010-06-30 16:08:51.000000000 +0200
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 99-unnamed.dpatch by Christian Bayle <bayle@debian.org> and/or Roland Mas <lolando@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' gforge~/setup gforge/setup
+--- gforge~/setup	2010-04-22 20:52:26.000000000 +0200
++++ gforge/setup	2010-06-30 16:08:48.000000000 +0200
+@@ -16,7 +16,7 @@
+ 	DEFAULTsystem_name=MyForge
+ 	DEFAULTdomain_name=`hostname -f`
+ 	DEFAULTserver_admin=webmaster@$DEFAULTdomain_name
+-	DEFAULTdb_host=`hostname -i`
++	DEFAULTdb_host=
+ 	DEFAULTdb_port=5432
+ 	DEFAULTdb_name=gforge
+ 	DEFAULTdb_user=gforge
diff -Nru fusionforge-5.0.1+svn10155/deb-specific/install-db.sh fusionforge-5.0.2/deb-specific/install-db.sh
--- fusionforge-5.0.1+svn10155/deb-specific/install-db.sh	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/deb-specific/install-db.sh	2010-09-03 13:39:22.000000000 +0200
@@ -279,7 +279,18 @@
 	cat ${pg_hba_dir}/pg_hba.conf >> $newpg
 	mv $newpg ${pg_hba_dir}/pg_hba.conf
 	chmod 644 ${pg_hba_dir}/pg_hba.conf
-	invoke-rc.d ${pg_name} restart
+
+	# Trying "postgresql" init script...
+	invoke-rc.d postgresql restart || v=$?
+	if test x"$v" = x"100"; then
+		# No "postgresql" init script (for packages << 8.4.4-2)
+		pg_name=postgresql-$pg_version
+		invoke-rc.d ${pg_name} restart
+	elif test x"$v" != x"0"; then
+		# Needed, since we run under "set -e"...
+		exit $v
+	fi
+
 	if [ "x$2" != "x" ] ;then
 		RESTFILE=$2
 	else
@@ -291,6 +302,16 @@
 	su -s /bin/sh postgres -c "/usr/bin/psql -f $RESTFILE $db_name"
         perl -pi -e "s/### Next line inserted by GForge restore\n//" ${pg_hba_dir}/pg_hba.conf
         perl -pi -e "s/$localtrust\n//" ${pg_hba_dir}/pg_hba.conf
-	invoke-rc.d ${pg_name} reload
+
+	# Trying "postgresql" init script...
+	invoke-rc.d postgresql reload || v=$?
+	if test x"$v" = x"100"; then
+		# No "postgresql" init script (for packages << 8.4.4-2)
+		pg_name=postgresql-$pg_version
+		invoke-rc.d ${pg_name} reload
+	elif test x"$v" != x"0"; then
+		# Needed, since we run under "set -e"...
+		exit $v
+	fi
 	;;
 esac
diff -Nru fusionforge-5.0.1+svn10155/etc/gforge.conf.example fusionforge-5.0.2/etc/gforge.conf.example
--- fusionforge-5.0.1+svn10155/etc/gforge.conf.example	2010-04-22 20:52:26.000000000 +0200
+++ fusionforge-5.0.2/etc/gforge.conf.example	2010-08-05 16:33:40.000000000 +0200
@@ -94,6 +94,7 @@
 sys_plugins_path=/usr/share/gforge/plugins/
 sys_sslcrt=/etc/apache2/ssl/apache.pem
 sys_sslkey=/etc/apache2/ssl/apache.pem
+sys_ssl_apache_extra_cmd=SSLCertificateChainFile /etc/ssl/chain.pem
 noreply_to_bitbucket=true
 sys_simple_dns=true
 sys_apache_user=www-gforge
diff -Nru fusionforge-5.0.1+svn10155/etc/httpd.conf.example fusionforge-5.0.2/etc/httpd.conf.example
--- fusionforge-5.0.1+svn10155/etc/httpd.conf.example	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/etc/httpd.conf.example	2010-08-05 16:33:40.000000000 +0200
@@ -154,6 +154,7 @@
 		SSLEngine on
 		SSLCertificateFile /etc/apache2/ssl/apache.pem
 		SSLCertificateKeyFile /etc/apache2/ssl/apache.pem
+		SSLCertificateChainFile /etc/apache2/ssl/chain.pem
 		<Files ~ "\.(cgi|shtml)$">
 			SSLOptions +StdEnvVars
 		</Files>
diff -Nru fusionforge-5.0.1+svn10155/etc/httpd.d/07maindirhttp.vhost.ssl fusionforge-5.0.2/etc/httpd.d/07maindirhttp.vhost.ssl
--- fusionforge-5.0.1+svn10155/etc/httpd.d/07maindirhttp.vhost.ssl	2010-06-28 10:37:07.000000000 +0200
+++ fusionforge-5.0.2/etc/httpd.d/07maindirhttp.vhost.ssl	2010-08-05 16:33:40.000000000 +0200
@@ -87,6 +87,7 @@
 		SSLEngine on
 		SSLCertificateFile {sys_sslcrt}
 		SSLCertificateKeyFile {sys_sslkey}
+		{sys_ssl_apache_extra_cmd}
 		<Files ~ "\.(cgi|shtml)$">
 			SSLOptions +StdEnvVars
 		</Files>
diff -Nru fusionforge-5.0.1+svn10155/etc/httpd.d/21list.vhost.ssl fusionforge-5.0.2/etc/httpd.d/21list.vhost.ssl
--- fusionforge-5.0.1+svn10155/etc/httpd.d/21list.vhost.ssl	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/etc/httpd.d/21list.vhost.ssl	2010-08-05 16:33:40.000000000 +0200
@@ -6,6 +6,7 @@
 		SSLEngine on
 		SSLCertificateFile {sys_sslcrt}
 		SSLCertificateKeyFile {sys_sslkey}
+		{sys_ssl_apache_extra_cmd}
 		<Files ~ "\.(cgi|shtml)$">
 			SSLOptions +StdEnvVars
 		</Files>
diff -Nru fusionforge-5.0.1+svn10155/fusionforge-install-2.php fusionforge-5.0.2/fusionforge-install-2.php
--- fusionforge-5.0.1+svn10155/fusionforge-install-2.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/fusionforge-install-2.php	2010-09-14 14:07:46.000000000 +0200
@@ -80,31 +80,35 @@
 	 	exit(2);
 	}
 
-	echo "Creating /opt/gforge  ";
-	system("mkdir -p /opt/gforge");
-	if (!is_dir("/opt/gforge"))
+require_once 'install-common.inc' ;
+
+	echo "Creating $fusionforge_src_dir";
+	system("mkdir -p $fusionforge_src_dir");
+	if (!is_dir("$fusionforge_src_dir"))
 	{
-		echo "FAIL\n  /opt/gforge didn't exist - error - make sure you've got permission";
+		echo "FAIL\n  $fusionforge_src_dir didn't exist - error - make sure you've got permission";
 		exit(2);
 	}
 	echo "OK\n";
 
-	echo "Creating /var/lib/gforge  ";
-	system("mkdir -p /var/lib/gforge  ");
-	if (!is_dir("/var/lib/gforge"))
+	echo "Creating $fusionforge_data_dir  ";
+	system("mkdir -p $fusionforge_data_dir  ");
+	if (!is_dir("$fusionforge_data_dir"))
 	{
-		echo "FAIL\n  /var/lib/gforge didn't exist - error - make sure you've got permission";
+		echo "FAIL\n  $fusionforge_data_dir didn't exist - error - make sure you've got permission";
 		exit(2);
 	}
 	echo "OK\n";
 
 
-	system("cp -r * /opt/gforge");
+	system("cp -r * $fusionforge_src_dir");
 
-	chdir("/var/lib/gforge");
+	chdir("$fusionforge_data_dir");
 	system("mkdir -p uploads");
 	system("mkdir -p scmtarballs");
 	system("mkdir -p scmsnapshots");
+	system("mkdir -p scmrepos/svn");
+	system("mkdir -p scmrepos/cvs");
 
 	//#project vhost space
 	system("mkdir -p homedirs");
@@ -114,25 +118,27 @@
 		symlink("/home/groups", "homedirs/groups");
 	}
 
-	// Create default location for SVN repositories
-	system("mkdir -p svnroot");
+	if (!is_dir("/scmrepos"))
+	{
+		symlink("$fusionforge_data_dir/scmrepos", "/scmrepos");
+	}
+
+	// Create the old symlink /svnroot for compatibility.
 	if (!is_dir("/svnroot"))
 	{
-		symlink("/var/lib/gforge/svnroot", "/svnroot");
+		symlink("$fusionforge_data_dir/scmrepos/svn", "/svnroot");
 	}
 
-	// Create default location for CVS repositories
-	system("mkdir -p cvsroot");
+	// Create the old symlink /cvsroot for compatibility.
 	if (!is_dir("/cvsroot"))
 	{
-		symlink("/var/lib/gforge/cvsroot", "/cvsroot");
+		symlink("$fusionforge_data_dir/scmrepos/cvs", "/cvsroot");
 	}
 
 	// Create default dumps dir
-	system("mkdir -p /var/lib/gforge/dumps");
+	system("mkdir -p $fusionforge_data_dir/dumps");
 
-	//cd /opt/gforge
-	chdir("/opt/gforge");
+	chdir("$fusionforge_src_dir");
 
 	//#restricted shell for cvs accounts
 	//echo "linea 1\n";
@@ -141,24 +147,24 @@
 	system("chmod 755 /bin/cvssh.pl");
 
 	// Create default location for gforge config files
-	system("mkdir -p /etc/gforge");
-	if (!is_file("/etc/gforge/local.inc")) {
-		system("cp etc/local.inc.example /etc/gforge/local.inc");
+	system("mkdir -p $fusionforge_etc_dir");
+	if (!is_file("$fusionforge_etc_dir/local.inc")) {
+		system("cp etc/local.inc.example $fusionforge_etc_dir/local.inc");
 	}
-	if (!is_file("/etc/gforge/httpd.conf")) {
-		system("cp etc/gforge-httpd.conf.example /etc/gforge/httpd.conf");
+	if (!is_file("$fusionforge_etc_dir/httpd.conf")) {
+		system("cp etc/gforge-httpd.conf.example $fusionforge_etc_dir/httpd.conf");
 	}
 
-	system("mkdir -p /etc/gforge/httpd.d");
-	system("cp plugins/*/etc/httpd.d/*.conf /etc/gforge/httpd.d");
+	system("mkdir -p $fusionforge_etc_dir/httpd.d");
+	system("cp plugins/*/etc/httpd.d/*.conf $fusionforge_etc_dir/httpd.d");
 
 	// Install default configuration files for all plugins.
-	system("mkdir -p /etc/gforge/plugins/");
-	chdir("/opt/gforge/plugins");
+	system("mkdir -p $fusionforge_etc_dir/plugins/");
+	chdir("$fusionforge_src_dir/plugins");
 	foreach( glob("*") as $plugin) {
-		$source = "/opt/gforge/plugins/$plugin/etc/plugins/$plugin";
+		$source = "$fusionforge_src_dir/plugins/$plugin/etc/plugins/$plugin";
 		if (is_dir($source)) {
-			system("cp -r $source /etc/gforge/plugins/");
+			system("cp -r $source $fusionforge_etc_dir/plugins/");
 		}
 	}
 
@@ -175,21 +181,20 @@
 
 	foreach ($apacheconffiles as $apacheconffile) {
 		echo('Setting FusionForge Include For Apache...');
-		system("grep \"^Include /etc/gforge/httpd.conf\" $apacheconffile > /dev/null", $ret);
+		system("grep \"^Include $fusionforge_etc_dir/httpd.conf\" $apacheconffile > /dev/null", $ret);
 		if ($ret == 1) {
-			system("echo \"Include /etc/gforge/httpd.conf\" >> $apacheconffile");
+			system("echo \"Include $fusionforge_etc_dir/httpd.conf\" >> $apacheconffile");
 		}
 	}
 
 	// Create symlink for the wiki plugin.
-	if (!is_dir("/opt/gforge/www/wiki"))
+	if (!is_dir("$fusionforge_src_dir/www/wiki"))
 	{
-		symlink ("../plugins/wiki/www/", "/opt/gforge/www/wiki");
+		symlink ("../plugins/wiki/www/", "$fusionforge_src_dir/www/wiki");
 	}
 
 	//#symlink plugin www's
-	//cd /opt/gforge/www
-	chdir("/opt/gforge/www");
+	chdir("$fusionforge_src_dir/www");
 	if (!is_dir("plugins"))
 	{
 		system("mkdir -p plugins");
@@ -213,39 +218,38 @@
 		symlink ("../../plugins/fckeditor/www", "fckeditor");
 	}
 
-	//cd /opt/gforge
-	chdir("/opt/gforge");
-	system("chown -R root:$args[3] /opt/gforge");
-	system("chmod -R 644 /opt/gforge/");
-	system("cd /opt/gforge && find -type d | xargs chmod 755");
-	system("chown -R $args[2]:$args[3] /var/lib/gforge/uploads");
-	system("chmod -R 755 /opt/gforge/cronjobs/");
-	system("chmod 755 /opt/gforge/www/scm/viewvc/bin/cgi/viewvc.cgi");
+	chdir("$fusionforge_src_dir");
+	system("chown -R root:$args[3] $fusionforge_src_dir");
+	system("chmod -R 644 $fusionforge_src_dir/");
+	system("cd $fusionforge_src_dir && find . -type d | xargs chmod 755");
+	system("chown -R $args[2]:$args[3] $fusionforge_data_dir/uploads");
+	system("chmod -R 755 $fusionforge_src_dir/cronjobs/");
+	system("chmod 755 $fusionforge_src_dir/www/scm/viewvc/bin/cgi/viewvc.cgi");
 	
-	if (!is_dir("/etc/gforge"))
+	if (!is_dir("$fusionforge_etc_dir"))
 	{
-		echo "/etc/gforge didn't exist - error - make sure you've got permission";
+		echo "$fusionforge_etc_dir didn't exist - error - make sure you've got permission";
 		exit(2);
 	}
-	system("chown -R root:$args[3] /etc/gforge/");
-	system("chmod -R 644 /etc/gforge/");
-	system("cd /etc/gforge && find -type d | xargs chmod 755");
-	system("cd /etc/gforge && find -type f -exec perl -pi -e \"s/apacheuser/$args[2]/\" {} \;");
-	system("cd /etc/gforge && find -type f -exec perl -pi -e \"s/apachegroup/$args[3]/\" {} \;");
-	system("cd /etc/gforge && find -type f -exec perl -pi -e \"s/gforge\.company\.com/$args[1]/\" {} \;");
+	system("chown -R root:$args[3] $fusionforge_etc_dir/");
+	system("chmod -R 644 $fusionforge_etc_dir/");
+	system("cd $fusionforge_etc_dir && find . -type d | xargs chmod 755");
+	system("cd $fusionforge_etc_dir && find . -type f -exec perl -pi -e \"s/apacheuser/$args[2]/\" {} \;");
+	system("cd $fusionforge_etc_dir && find . -type f -exec perl -pi -e \"s/apachegroup/$args[3]/\" {} \;");
+	system("cd $fusionforge_etc_dir && find . -type f -exec perl -pi -e \"s/gforge\.company\.com/$args[1]/\" {} \;");
 	system("echo \"noreply:	/dev/null\" >> /etc/aliases");
 
-	# Generate a random hash for the session_key
+// Generate a random hash for the session_key
 	$hash = md5(microtime());
-	system("perl -spi -e \"s/sys_session_key = 'foobar'/sys_session_key = '$hash'/\" /etc/gforge/local.inc");
+	system("perl -spi -e \"s/sys_session_key = 'foobar'/sys_session_key = '$hash'/\" $fusionforge_etc_dir/local.inc");
 
-	# Use liberation fonts if jpgraph provided in the archive.
-	if (is_dir("/opt/gforge/jpgraph")) {
-		system("perl -spi -e \"s!//(.gantt_title_font_family)='FF_ARIAL';!\\$1='FF_LIBERATION_SANS';!\" /etc/gforge/local.inc");
-		system("perl -spi -e \"s!//(.gantt_title_font_style=.*)!\\$1!\" /etc/gforge/local.inc");
-		system("perl -spi -e \"s!//(.gantt_title_font_size=.*)!\\$1!\" /etc/gforge/local.inc");
-		system("perl -spi -e \"s!//(.gantt_task_font_family)='FF_ARIAL';!\\$1='FF_LIBERATION_SANS';!\" /etc/gforge/local.inc");
-		system("perl -spi -e \"s!//(.gantt_task_font_style=.*)!\\$1!\" /etc/gforge/local.inc");
-		system("perl -spi -e \"s!//(.gantt_task_font_size=.*)!\\$1!\" /etc/gforge/local.inc");
+// Use liberation fonts if jpgraph provided in the archive.
+	if (is_dir("$fusionforge_src_dir/jpgraph")) {
+		system("perl -spi -e \"s!//(.gantt_title_font_family)='FF_ARIAL';!\\$1='FF_LIBERATION_SANS';!\" $fusionforge_etc_dir/local.inc");
+		system("perl -spi -e \"s!//(.gantt_title_font_style=.*)!\\$1!\" $fusionforge_etc_dir/local.inc");
+		system("perl -spi -e \"s!//(.gantt_title_font_size=.*)!\\$1!\" $fusionforge_etc_dir/local.inc");
+		system("perl -spi -e \"s!//(.gantt_task_font_family)='FF_ARIAL';!\\$1='FF_LIBERATION_SANS';!\" $fusionforge_etc_dir/local.inc");
+		system("perl -spi -e \"s!//(.gantt_task_font_style=.*)!\\$1!\" $fusionforge_etc_dir/local.inc");
+		system("perl -spi -e \"s!//(.gantt_task_font_size=.*)!\\$1!\" $fusionforge_etc_dir/local.inc");
 	}
 	print "\n";
diff -Nru fusionforge-5.0.1+svn10155/fusionforge-install-3-db.php fusionforge-5.0.2/fusionforge-install-3-db.php
--- fusionforge-5.0.1+svn10155/fusionforge-install-3-db.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/fusionforge-install-3-db.php	2010-08-11 16:52:18.000000000 +0200
@@ -73,23 +73,13 @@
 // Might fail if it's already running, so we'll ingnore the result
 run("$pgservice start", true);
 
-// Where the PHP code will live
-//$gforge_lib_dir = '/opt/gforge5';   //CAMBIE ESTO
-$gforge_lib_dir = '/opt/gforge';
+require_once 'install-common.inc' ;
 
-if (!is_dir($gforge_lib_dir))
+if (!is_dir($fusionforge_src_dir))
 {
 	die("Error: GForge folder doesn't exist. Run fusionforge-install-2.php first.");
 }
 
-
-// Where the configuration files will live
-$gforge_etc_dir = getenv('GFORGE_ETC_DIR');
-if (empty($gforge_etc_dir))
-{
-	$gforge_etc_dir = '/etc/gforge';
-}
-
 // Where the PGHBA config file is
 if (is_file("/var/lib/pgsql/data/pg_hba.conf"))
 {
@@ -137,7 +127,7 @@
 
 function install()
 {
-	global $PGHBA, $gforge_lib_dir, $gforge_etc_dir, $tsearch2_sql, $pgservice, $STDIN, $STDOUT;
+	global $PGHBA, $fusionforge_src_dir, $fusionforge_etc_dir, $tsearch2_sql, $pgservice, $STDIN, $STDOUT;
 
 	show("\n * Enter the Database Name (gforge): ");
 
@@ -208,20 +198,20 @@
 		}
 //	} else {
 //		show(" * Creating FTS default configuation (Full Text Search)");
-//		run("su - postgres -c \"psql $gforge_db < $gforge_lib_dir/db/FTS-20081108.sql\" >> /tmp/gforge-import.log");
+//		run("su - postgres -c \"psql $gforge_db < $fusionforge_src_dir/db/FTS-20081108.sql\" >> /tmp/gforge-import.log");
 	}
 
 
 	show(' * Dumping FusionForge DB');
-	run("su $susufix $gforge_user -c \"psql $gforge_db < $gforge_lib_dir/db/gforge.sql\" >> /tmp/gforge-import.log");
+	run("su $susufix $gforge_user -c \"psql $gforge_db < $fusionforge_src_dir/db/gforge.sql\" >> /tmp/gforge-import.log");
 
 //	show(' * Dumping FusionForge FTI DB');
-//	run("su $susufix $gforge_user -c \"psql $gforge_db < $gforge_lib_dir/db/FTI.sql\" >> /tmp/gforge-import.log");
-//	run("su $susufix $gforge_user -c \"psql $gforge_db < $gforge_lib_dir/db/FTI-20050315.sql\" >> /tmp/gforge-import.log");
-//	run("su $susufix $gforge_user -c \"psql $gforge_db < $gforge_lib_dir/db/FTI-20050401.sql\" >> /tmp/gforge-import.log");
-//	run("su $susufix $gforge_user -c \"psql $gforge_db < $gforge_lib_dir/db/FTI-20050530.sql\" >> /tmp/gforge-import.log");
-//	run("su $susufix $gforge_user -c \"psql $gforge_db < $gforge_lib_dir/db/FTI-20060130.sql\" >> /tmp/gforge-import.log");
-//	run("su $susufix $gforge_user -c \"psql $gforge_db < $gforge_lib_dir/db/FTI-20061025.sql\" >> /tmp/gforge-import.log");
+//	run("su $susufix $gforge_user -c \"psql $gforge_db < $fusionforge_src_dir/db/FTI.sql\" >> /tmp/gforge-import.log");
+//	run("su $susufix $gforge_user -c \"psql $gforge_db < $fusionforge_src_dir/db/FTI-20050315.sql\" >> /tmp/gforge-import.log");
+//	run("su $susufix $gforge_user -c \"psql $gforge_db < $fusionforge_src_dir/db/FTI-20050401.sql\" >> /tmp/gforge-import.log");
+//	run("su $susufix $gforge_user -c \"psql $gforge_db < $fusionforge_src_dir/db/FTI-20050530.sql\" >> /tmp/gforge-import.log");
+//	run("su $susufix $gforge_user -c \"psql $gforge_db < $fusionforge_src_dir/db/FTI-20060130.sql\" >> /tmp/gforge-import.log");
+//	run("su $susufix $gforge_user -c \"psql $gforge_db < $fusionforge_src_dir/db/FTI-20061025.sql\" >> /tmp/gforge-import.log");
 
 	show(" * Enter the Admin Username (fforgeadmin): ");
 	if (getenv('FFORGE_ADMIN_USER')) {
@@ -299,13 +289,13 @@
 //$t = trim(fgets($STDIN));
 
 	}
-	if (!is_dir($gforge_etc_dir)) {
-		mkdir($gforge_etc_dir);
+	if (!is_dir($fusionforge_etc_dir)) {
+		mkdir($fusionforge_etc_dir);
 	}
 
 
 	show(' * Saving database configuration in FForge config file');
-	$data = file_get_contents("$gforge_etc_dir/local.inc");
+	$data = file_get_contents("$fusionforge_etc_dir/local.inc");
 	$lines = explode("\n",$data);
 	$config = '';
 	foreach ($lines as $l) {
@@ -314,7 +304,7 @@
 		$config .= $l."\n";
 	}
 
-	if ($fp = fopen("$gforge_etc_dir/local.inc", "w")) {
+	if ($fp = fopen("$fusionforge_etc_dir/local.inc", "w")) {
 		fwrite ($fp, $config);
 		fclose($fp);	
 	}
@@ -323,7 +313,7 @@
 }
 /*
 function uninstall() {
-	global $PGHBA, $gforge_lib_dir, $gforge_var_dir, $gforge_etc_dir, $gforge_db, $gforge_user, $tsearch2_sql;
+	global $PGHBA, $fusionforge_src_dir, $gforge_var_dir, $fusionforge_etc_dir, $gforge_db, $gforge_user, $tsearch2_sql;
 
 	show(" * Removing DATABASE \n";
 	system("su - $gforge_user -c \"dropdb $gforge_db\"", $ret );
diff -Nru fusionforge-5.0.1+svn10155/install-common.inc fusionforge-5.0.2/install-common.inc
--- fusionforge-5.0.1+svn10155/install-common.inc	1970-01-01 01:00:00.000000000 +0100
+++ fusionforge-5.0.2/install-common.inc	2010-08-11 16:53:11.000000000 +0200
@@ -0,0 +1,24 @@
+#!/usr/bin/php
+<?php
+/**
+ * FusionForge Installation
+ *
+ * Copyright 2010, Roland Mas
+ * http://fusionforge.org/
+ */
+
+$fusionforge_etc_dir = getenv('FUSIONFORGE_ETC_DIR');
+if (empty($fusionforge_etc_dir))
+{
+	$fusionforge_etc_dir = '/etc/gforge';
+}
+$fusionforge_src_dir = getenv('FUSIONFORGE_SRC_DIR');
+if (empty($fusionforge_src_dir))
+{
+	$fusionforge_src_dir = '/opt/gforge';
+}
+$fusionforge_data_dir = getenv('FUSIONFORGE_DATA_DIR');
+if (empty($fusionforge_data_dir))
+{
+	$fusionforge_data_dir = '/var/lib/gforge';
+}
diff -Nru fusionforge-5.0.1+svn10155/packaging/control/050db-postgresql fusionforge-5.0.2/packaging/control/050db-postgresql
--- fusionforge-5.0.1+svn10155/packaging/control/050db-postgresql	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/packaging/control/050db-postgresql	2010-08-19 16:46:45.000000000 +0200
@@ -1,6 +1,6 @@
 Package: @OLDPACKAGE@-db-postgresql
 Architecture: all
-Depends: @OLDPACKAGE@-common, postgresql-8.3 | postgresql-8.2 | postgresql-8.1 | postgresql (>= 8.1), perl, libdbi-perl, libdbd-pg-perl, libmime-base64-perl, libhtml-parser-perl, libtext-autoformat-perl, libmail-sendmail-perl, libsort-versions-perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, php5-cli, ${misc:Depends}
+Depends: @OLDPACKAGE@-common, postgresql (>= 8.1) | postgresql-8.4 | postgresql-8.3 | postgresql-8.2 | postgresql-8.1, perl, libdbi-perl, libdbd-pg-perl, libmime-base64-perl, libhtml-parser-perl, libtext-autoformat-perl, libmail-sendmail-perl, libsort-versions-perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, php5-cli, ${misc:Depends}
 Provides: @OLDPACKAGE@-db
 Conflicts: @OLDPACKAGE@-db
 Description: collaborative development tool - database (using PostgreSQL)
diff -Nru fusionforge-5.0.1+svn10155/plugins/mediawiki/cronjobs/create-wikis.sh fusionforge-5.0.2/plugins/mediawiki/cronjobs/create-wikis.sh
--- fusionforge-5.0.1+svn10155/plugins/mediawiki/cronjobs/create-wikis.sh	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/plugins/mediawiki/cronjobs/create-wikis.sh	2010-08-25 11:12:54.000000000 +0200
@@ -22,19 +22,19 @@
 // Don't forget to "chown www-data $wdprefix/$project/images"
 
 // Edit permissions for group members
-\$wgGroupPermissions['Members']['edit']          = true;
-\$wgGroupPermissions['Members']['createpage']    = true;
-\$wgGroupPermissions['Members']['createtalk']    = true;
+//\$wgGroupPermissions['Members']['edit']          = true;
+//\$wgGroupPermissions['Members']['createpage']    = true;
+//\$wgGroupPermissions['Members']['createtalk']    = true;
 
 // Edit permissions for non-members
-\$wgGroupPermissions['ForgeUsers']['edit']          = false;
-\$wgGroupPermissions['ForgeUsers']['createpage']    = false;
-\$wgGroupPermissions['ForgeUsers']['createtalk']    = false;
+//\$wgGroupPermissions['user']['edit']          = false;
+//\$wgGroupPermissions['user']['createpage']    = false;
+//\$wgGroupPermissions['user']['createtalk']    = false;
 
 // Edit permissions for anonymous users
-\$wgGroupPermissions['*']['edit']          = false;
-\$wgGroupPermissions['*']['createpage']    = false;
-\$wgGroupPermissions['*']['createtalk']    = false;
+//\$wgGroupPermissions['*']['edit']          = false;
+//\$wgGroupPermissions['*']['createpage']    = false;
+//\$wgGroupPermissions['*']['createtalk']    = false;
 
 // Override default wiki logo
 //\$wgLogo = "/themes/\$sys_theme/images/wgLogo.png";
@@ -107,14 +107,20 @@
 			| grep '^ ')
 
 	# Purge anonymous read
-	cat $wdprefix/$project/LocalSettings.php | grep -vi "\$wgGroupPermissions\['Members'\]\['read'\]" > $tmp4
+	cat $wdprefix/$project/LocalSettings.php | grep -vi "\$wgGroupPermissions\['user'\]\['read'\]" > $tmp4
 	cat $tmp4 > $wdprefix/$project/LocalSettings.php
 	cat $wdprefix/$project/LocalSettings.php | grep -vi "\$wgGroupPermissions\['\*'\]\['read'\]" > $tmp4
 	cat $tmp4 > $wdprefix/$project/LocalSettings.php
 
+
 	if [ $ispublic = '0' ] ; then
-		echo "\$wgGroupPermissions['Members']['read']    = true;" >> $wdprefix/$project/LocalSettings.php
+		# private
+		echo "\$wgGroupPermissions['user']['read']       = false;" >> $wdprefix/$project/LocalSettings.php
 		echo "\$wgGroupPermissions['*']['read']          = false;" >> $wdprefix/$project/LocalSettings.php
+	else
+		#public
+		echo "\$wgGroupPermissions['user']['read']       = true;" >> $wdprefix/$project/LocalSettings.php
+		echo "\$wgGroupPermissions['*']['read']          = true;" >> $wdprefix/$project/LocalSettings.php
 	fi
 
 done
diff -Nru fusionforge-5.0.1+svn10155/plugins/mediawiki/www/LocalSettings.php fusionforge-5.0.2/plugins/mediawiki/www/LocalSettings.php
--- fusionforge-5.0.1+svn10155/plugins/mediawiki/www/LocalSettings.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/plugins/mediawiki/www/LocalSettings.php	2010-09-03 13:39:22.000000000 +0200
@@ -125,8 +125,8 @@
                         if (!in_array ('Members', $current_groups)) {
                                 $user->addGroup ('Members') ;
                         }
-                        if (!in_array ('ForgeUsers', $current_groups)) {
-                                $user->addGroup ('ForgeUsers') ;
+                        if (!in_array ('user', $current_groups)) {
+                                $user->addGroup ('user') ;
                         }
                 } elseif ($perm && is_object($perm) && $perm->isMember()) {
                         if (in_array ('sysop', $current_groups)) {
@@ -135,8 +135,8 @@
                         if (!in_array ('Members', $current_groups)) {
                                 $user->addGroup ('Members') ;
                         }
-                        if (!in_array ('ForgeUsers', $current_groups)) {
-                                $user->addGroup ('ForgeUsers') ;
+                        if (!in_array ('user', $current_groups)) {
+                                $user->addGroup ('user') ;
                         }
                 } else {
                         if (in_array ('sysop', $current_groups)) {
@@ -145,8 +145,8 @@
                         if (in_array ('Members', $current_groups)) {
                                 $user->removeGroup ('Members') ;
                         }
-                        if (!in_array ('ForgeUsers', $current_groups)) {
-                                $user->addGroup ('ForgeUsers') ;
+                        if (!in_array ('user', $current_groups)) {
+                                $user->addGroup ('user') ;
                         }
                 }
 
@@ -177,23 +177,38 @@
 }
 $wgHooks['PersonalUrls'][]='NoLinkOnMainPage';
 
+function DisableLogInOut(&$mList) {
+  unset($mList['Userlogin']);
+  unset($mList['CreateAccount']);
+  unset($mList['Resetpass']);
+  unset($mList['Userlogout']);
+  return true;
+}
+//$GLOBALS['wgHooks']['SpecialPage_initList'][] = 'DisableLogInOut';
+
 $GLOBALS['wgHooks']['UserLoadFromSession'][]='FusionForgeMWAuth';
 
-$wgGroupPermissions['Members']['createaccount'] = true;
+// !! 'read' action is defined in the local project localSettings.php to allow swicth
+// for public or private project switching
+
+// No one can manage the accounts with Mediawiki interface
+$wgGroupPermissions['sysop']['createaccount'] = false;
+$wgGroupPermissions['sysop']['read'] 	      = true;
+
+// Members are user who belongs to the current project, they can create or edit pages
+$wgGroupPermissions['Members']['createaccount'] = false;
+$wgGroupPermissions['Members']['read'] 		= true;
 $wgGroupPermissions['Members']['edit']          = true;
 $wgGroupPermissions['Members']['createpage']    = true;
 $wgGroupPermissions['Members']['createtalk']    = true;
 
-$wgGroupPermissions['ForgeUsers']['createaccount'] = false;
-$wgGroupPermissions['ForgeUsers']['edit']          = false;
-$wgGroupPermissions['ForgeUsers']['createpage']    = false;
-$wgGroupPermissions['ForgeUsers']['createtalk']    = false;
-
+// logged users can only read all public projects - required because implicitly loaded
 $wgGroupPermissions['user']['createaccount'] = false;
 $wgGroupPermissions['user']['edit']          = false;
 $wgGroupPermissions['user']['createpage']    = false;
 $wgGroupPermissions['user']['createtalk']    = false;
 
+// Not logged users can only read all public projects - required because implicitly loaded
 $wgGroupPermissions['*']['createaccount'] = false;
 $wgGroupPermissions['*']['edit']          = false;
 $wgGroupPermissions['*']['createpage']    = false;
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmarch/common/ArchPlugin.class.php fusionforge-5.0.2/plugins/scmarch/common/ArchPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmarch/common/ArchPlugin.class.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/plugins/scmarch/common/ArchPlugin.class.php	2010-06-30 17:52:24.000000000 +0200
@@ -29,7 +29,7 @@
 		$this->text = 'Arch';
 		$this->hooks[] = 'scm_generate_snapshots' ;
 
-		require_once $gfconfig.'plugins/scmarch/config.php' ;
+		require $gfconfig.'plugins/scmarch/config.php' ;
 		
 		$this->default_arch_server = $default_arch_server ;
 		if (isset ($arch_root)) {
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmbzr/common/BzrPlugin.class.php fusionforge-5.0.2/plugins/scmbzr/common/BzrPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmbzr/common/BzrPlugin.class.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/plugins/scmbzr/common/BzrPlugin.class.php	2010-06-30 17:52:36.000000000 +0200
@@ -32,7 +32,7 @@
                 $this->hooks[] = 'scm_update_repolist' ;
                 $this->hooks[] = 'scm_gather_stats' ;
 
-		require_once $gfconfig.'plugins/scmbzr/config.php' ;
+		require $gfconfig.'plugins/scmbzr/config.php' ;
 		
 		$this->default_bzr_server = $default_bzr_server ;
 		if (isset ($bzr_root)) {
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmccase/common/CCasePlugin.class.php fusionforge-5.0.2/plugins/scmccase/common/CCasePlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmccase/common/CCasePlugin.class.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/plugins/scmccase/common/CCasePlugin.class.php	2010-06-30 17:52:48.000000000 +0200
@@ -35,7 +35,7 @@
 		$this->hooks[] = "scm_createrepo";
 		$this->hooks[] = "scm_plugin";
 
-		require_once $gfconfig.'plugins/scmccase/config.php' ;
+		require $gfconfig.'plugins/scmccase/config.php' ;
 		
 		$this->default_ccase_server = $default_ccase_server ;
 		$this->this_server = $this_server ;
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmcpold/common/CpoldPlugin.class.php fusionforge-5.0.2/plugins/scmcpold/common/CpoldPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmcpold/common/CpoldPlugin.class.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/plugins/scmcpold/common/CpoldPlugin.class.php	2010-06-30 17:53:02.000000000 +0200
@@ -30,7 +30,7 @@
 		$this->hooks[] = 'scm_generate_snapshots' ;
 		$this->hooks[] = 'scm_cpold_do_nothing' ;
 		
-		require_once $gfconfig.'plugins/scmcpold/config.php' ;
+		require $gfconfig.'plugins/scmcpold/config.php' ;
 		
 		$this->default_cpold_server = $default_cpold_server ;
 		if (isset ($cpold_root)) {
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmcvs/common/CVSPlugin.class.php fusionforge-5.0.2/plugins/scmcvs/common/CVSPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmcvs/common/CVSPlugin.class.php	2010-06-17 13:44:52.000000000 +0200
+++ fusionforge-5.0.2/plugins/scmcvs/common/CVSPlugin.class.php	2010-06-30 17:52:13.000000000 +0200
@@ -33,7 +33,7 @@
 		$this->hooks[] = 'scm_generate_snapshots' ;
 		$this->hooks[] = 'scm_gather_stats' ;
 
-		require_once $GLOBALS['gfconfig'].'plugins/scmcvs/config.php' ;
+		require $gfconfig.'plugins/scmcvs/config.php' ;
 
 		$this->default_cvs_server = $default_cvs_server ;
 		if ($cvs_root) {
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmdarcs/common/DarcsPlugin.class.php fusionforge-5.0.2/plugins/scmdarcs/common/DarcsPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmdarcs/common/DarcsPlugin.class.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/plugins/scmdarcs/common/DarcsPlugin.class.php	2010-06-30 17:53:15.000000000 +0200
@@ -32,7 +32,7 @@
 		$this->hooks[] = 'scm_browser_page' ;
 		$this->hooks[] = 'scm_gather_stats' ;
 		
-		require_once $gfconfig.'plugins/scmdarcs/config.php' ;
+		require $gfconfig.'plugins/scmdarcs/config.php' ;
 		
 		$this->default_darcs_server = $default_darcs_server ;
 		if (isset ($darcs_root)) {
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmgit/common/GitPlugin.class.php fusionforge-5.0.2/plugins/scmgit/common/GitPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmgit/common/GitPlugin.class.php	2010-06-24 13:54:34.000000000 +0200
+++ fusionforge-5.0.2/plugins/scmgit/common/GitPlugin.class.php	2010-06-30 17:53:24.000000000 +0200
@@ -33,7 +33,7 @@
 		$this->hooks[] = 'scm_gather_stats' ;
 		$this->hooks[] = 'scm_generate_snapshots' ;
 
-		require_once $gfconfig.'plugins/scmgit/config.php' ;
+		require $gfconfig.'plugins/scmgit/config.php' ;
 
 		$this->default_git_server = $default_git_server ;
 		if (isset ($git_root)) {
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmhg/common/HgPlugin.class.php fusionforge-5.0.2/plugins/scmhg/common/HgPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmhg/common/HgPlugin.class.php	2010-04-01 15:42:10.000000000 +0200
+++ fusionforge-5.0.2/plugins/scmhg/common/HgPlugin.class.php	2010-06-30 17:53:34.000000000 +0200
@@ -29,7 +29,7 @@
 		$this->text = 'Mercurial';
 		$this->hooks[] = 'scm_generate_snapshots' ;
 		
-		require_once $gfconfig.'plugins/scmhg/config.php' ;
+		require $gfconfig.'plugins/scmhg/config.php' ;
 		
 		$this->default_hg_server = $default_hg_server ;
 		if (isset ($hg_root)) {
diff -Nru fusionforge-5.0.1+svn10155/plugins/scmsvn/common/SVNPlugin.class.php fusionforge-5.0.2/plugins/scmsvn/common/SVNPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/scmsvn/common/SVNPlugin.class.php	2010-06-11 15:20:57.000000000 +0200
+++ fusionforge-5.0.2/plugins/scmsvn/common/SVNPlugin.class.php	2010-08-05 16:33:40.000000000 +0200
@@ -33,8 +33,8 @@
 		$this->hooks[] = 'scm_generate_snapshots' ;
 		$this->hooks[] = 'scm_gather_stats' ;
 
-		require_once $gfconfig.'plugins/scmsvn/config.php' ;
-		
+		require $gfconfig.'plugins/scmsvn/config.php' ;
+
 		$this->default_svn_server = $default_svn_server ;
 		$this->use_ssh = $use_ssh;
 		$this->use_dav = $use_dav;
@@ -200,15 +200,15 @@
 		}
 
 		$repo = $this->svn_root . '/' . $project->getUnixName() ;
-		$unix_group = 'scm_' . $project->getUnixName() ;
 
 		if (!is_dir ($repo) || !is_file ("$repo/format")) {
 			system ("svnadmin create $repo") ;
 			system ("svn mkdir -m'Init' file:///$repo/trunk file:///$repo/tags file:///$repo/branches") ;
-			system ("find $repo -type d | xargs chmod g+s") ;
 		}
 
 		if ($this->use_ssh) {
+			$unix_group = 'scm_' . $project->getUnixName() ;
+			system ("find $repo -type d | xargs chmod g+s") ;
 			system ("chgrp -R $unix_group $repo") ;
 			if ($project->enableAnonSCM()) {
 				system ("chmod -R g+wX,o+rX-w $repo") ;
@@ -217,12 +217,9 @@
 			}
 		} else {
 			$unix_user = $GLOBALS['sys_apache_user'];
+			$unix_group = $GLOBALS['sys_apache_group'];
 			system ("chown -R $unix_user:$unix_group $repo") ;
-			if ($project->enableAnonSCM()) {
-				system ("chmod -R g+wX,o+rX-w $repo") ;
-			} else {
-				system ("chmod -R g+wX,o-rwx $repo") ;
-			}
+			system ("chmod -R g-rwx,o-rwx $repo") ;
 		}
 	}
 
@@ -240,6 +237,9 @@
 
 		$svnusers = array () ;
 		foreach ($groups as $project) {
+			if ( !$project->isActive()) {
+				continue;
+			}
 			$users = $project->getMembers () ;
 			foreach ($users as $user) {
 				$perm = $project->getPermission ($user) ;
@@ -262,7 +262,7 @@
 		}
 
 		foreach ($svnusers as $user_id => $user) {
-			$password_data .= $user->getUnixName ().':'.$user->getMD5Passwd ()."\n" ;
+			$password_data .= $user->getUnixName().':'.$user->getUnixPasswd()."\n" ;
 		}
 		$password_data .= 'anonsvn:$apr1$Kfr69/..$J08mbyNpD81y42x7xlFDm.'."\n";
 
@@ -432,8 +432,12 @@
 		}
 
 		if (! $project->enableAnonSCM()) {
-			unlink ($snapshot) ;
-			unlink ($tarball) ;
+			if (is_file($snapshot)) {
+				unlink ($snapshot) ;
+			}
+			if (is_file($tarball)) {
+				unlink ($tarball) ;
+			}
 			return false;
 		}
 
@@ -441,8 +445,12 @@
 		$repo = $toprepo . '/' . $project->getUnixName() ;
 
 		if (!is_dir ($repo) || !is_file ("$repo/format")) {
-			unlink ($snapshot) ;
-			unlink ($tarball) ;
+			if (is_file($snapshot)) {
+				unlink ($snapshot) ;
+			}
+			if (is_file($tarball)) {
+				unlink ($tarball) ;
+			}
 			return false ;
 		}
 
@@ -454,7 +462,7 @@
 		$dir = $project->getUnixName ()."-$today" ;
 		system ("mkdir -p $tmp") ;
 		$code = 0 ;
-		system ("svn ls file://$repo/trunk", $code) ;
+		system ("svn ls file://$repo/trunk > /dev/null", $code) ;
 		if ($code == 0) {
 			system ("cd $tmp ; svn checkout file://$repo/trunk $dir > /dev/null 2>&1") ;
 			system ("tar czCf $tmp $tmp/snapshot.tar.gz $dir") ;
@@ -463,7 +471,9 @@
 			unlink ("$tmp/snapshot.tar.gz") ;
 			system ("rm -rf $tmp/$dir") ;
 		} else {
-			unlink ($snapshot) ;
+			if (is_file($snapshot)) {
+				unlink ($snapshot) ;
+			}
 		}
 
 		system ("tar czCf $toprepo $tmp/tarball.tar.gz " . $project->getUnixName()) ;
diff -Nru fusionforge-5.0.1+svn10155/plugins/wiki/common/WikiPlugin.class.php fusionforge-5.0.2/plugins/wiki/common/WikiPlugin.class.php
--- fusionforge-5.0.1+svn10155/plugins/wiki/common/WikiPlugin.class.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/plugins/wiki/common/WikiPlugin.class.php	2010-08-05 16:33:40.000000000 +0200
@@ -205,7 +205,7 @@
 						WHERE plugin_wiki_page.id=plugin_wiki_version.id
 							AND mtime BETWEEN $2 AND $3
 							AND minor_edit=0
-							AND substring(plugin_wiki_page.pagename from 0 for $1) = $4
+							AND substring(plugin_wiki_page.pagename from 0 for $1::int) = $4
 						ORDER BY mtime DESC',
 								 array ($len,
 									$params['begin'],
diff -Nru fusionforge-5.0.1+svn10155/setup fusionforge-5.0.2/setup
--- fusionforge-5.0.1+svn10155/setup	2010-04-22 20:52:26.000000000 +0200
+++ fusionforge-5.0.2/setup	2010-08-05 16:33:40.000000000 +0200
@@ -20,7 +20,7 @@
 	DEFAULTdb_port=5432
 	DEFAULTdb_name=gforge
 	DEFAULTdb_user=gforge
-	DEFAULTdb_password=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
+	DEFAULTdb_password=$(dd if=/dev/urandom count=1 bs=8 2> /dev/null | md5sum | cut -b1-8)
 	DEFAULTip_address=`hostname -i`
 	DEFAULTscm_host=scm.$DEFAULTdomain_name
 	DEFAULTshell_host=shell.$DEFAULTdomain_name
@@ -42,12 +42,12 @@
 	DEFAULTpeerrating_groupid=4
 	DEFAULTtemplate_project=5
 	DEFAULTadmin_login=admin
-	DEFAULTadmin_password=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
+	DEFAULTadmin_password=$(dd if=/dev/urandom count=1 bs=8 2> /dev/null | md5sum | cut -b1-8)
 	DEFAULTskill_list="Ada;C;C++;HTML;LISP;Perl;PHP;Python;SQL"
 	DEFAULTdefault_trove_cat=18
 	DEFAULTldap_host=localhost
 	DEFAULTldap_base_dn="dc=`echo $DEFAULTdomain_name | sed 's/\./,dc=/g'`"
-	DEFAULTldap_web_add_password=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
+	DEFAULTldap_web_add_password=$(dd if=/dev/urandom count=1 bs=8 2> /dev/null | md5sum | cut -b1-8)
 	DEFAULTsys_path_to_mailman=$(if test -d /usr/lib/mailman; then echo /usr/lib/mailman; else echo /var/mailman; fi)
 	DEFAULTcgidir=$CGIDIR
 	DEFAULTcronolog_path=$(findcronolog)
@@ -64,14 +64,14 @@
 	# The place where file uploaded with http are stored for download
 	DEFAULTuploaddir=$GFGDIR/var/lib/gforge/download/
 	DEFAULTsys_urlroot=$SHAREDIR/www/
-	DEFAULTsys_jabber_pass=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
+	DEFAULTsys_jabber_pass=$(dd if=/dev/urandom count=1 bs=8 2> /dev/null | md5sum | cut -b1-8)
 	DEFAULTusr_share_gforge=$SHAREDIR
 	DEFAULTusr_lib_gforge=$LIBDIR
 	DEFAULTvar_lib_gforge=$GFGDIR/var/lib/gforge
 	DEFAULTvar_log_gforge=$GFGDIR/var/log/gforge
 	DEFAULTsys_show_source=0
 	DEFAULTsys_force_login=0
-	DEFAULTsys_session_key=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-32)
+	DEFAULTsys_session_key=$(dd if=/dev/urandom count=1 bs=16 2> /dev/null | md5sum | cut -b1-32)
 	DEFAULTsys_session_expire='60 * 60 * 24 * 7'
 	DEFAULTsys_show_contact_info=1
 	DEFAULTsys_themeroot=$SHAREDIR/www/themes/
@@ -121,10 +121,11 @@
 	DEFAULTsys_require_accept_conditions=false
 	DEFAULTsys_require_unique_email=false
 	DEFAULTsys_localinc=$ETCDIR/local.inc
-	DEFAULTsys_jabber_pass=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
+	DEFAULTsys_jabber_pass=$(dd if=/dev/urandom count=1 bs=8 2> /dev/null | md5sum | cut -b1-8)
 	DEFAULTsys_plugins_path=$SHAREDIR/plugins/
 	DEFAULTsys_sslcrt=$(findcrt)
 	DEFAULTsys_sslkey=$(findkey)
+	DEFAULTsys_ssl_apache_extra_cmd=
 	DEFAULTnoreply_to_bitbucket=true
 	DEFAULTsys_simple_dns=true
 	DEFAULTsys_apache_user=$(findapacheowner)
diff -Nru fusionforge-5.0.1+svn10155/translations/de.po fusionforge-5.0.2/translations/de.po
--- fusionforge-5.0.1+svn10155/translations/de.po	2010-06-15 12:09:01.000000000 +0200
+++ fusionforge-5.0.2/translations/de.po	2010-08-05 16:33:40.000000000 +0200
@@ -4,7 +4,7 @@
 "Project-Id-Version: FusionForge 5.0 branch\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-06-04 16:50+0200\n"
-"PO-Revision-Date: 2010-06-15 12:03+0200\n"
+"PO-Revision-Date: 2010-07-16 10:07+0200\n"
 "Last-Translator: Thorsten Glaser <t.glaser@tarent.de>\n"
 "Language-Team: german\n"
 "MIME-Version: 1.0\n"
@@ -13896,7 +13896,7 @@
 
 #: www/tracker/include/ArtifactTypeHtml.class.php:50
 msgid "Download .csv"
-msgstr ".CVS herunterladen"
+msgstr ".csv herunterladen"
 
 #: www/tracker/include/ArtifactTypeHtml.class.php:53
 msgid "Submit New"
diff -Nru fusionforge-5.0.1+svn10155/www/account/lostlogin.php fusionforge-5.0.2/www/account/lostlogin.php
--- fusionforge-5.0.1+svn10155/www/account/lostlogin.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/www/account/lostlogin.php	2010-08-11 14:18:57.000000000 +0200
@@ -85,8 +85,8 @@
 		$u->setNewEmailAndHash('', 0);
 
 		$HTML->header(array('title'=>"Password changed"));
-		printf (_('<h2>Password changed</h2><p>Congratulations, you have re-set your account password. You may <a href="%1$s">login</a> to the site now.</p>',
-			  util_make_url ("/account/login.php")));
+		printf (_('<h2>Password changed</h2><p>Congratulations, you have re-set your account password. You may <a href="%1$s">login</a> to the site now.</p>'),
+			  util_make_url ("/account/login.php"));
 		$HTML->footer(array());
 		exit();
 	}
diff -Nru fusionforge-5.0.1+svn10155/www/docman/admin/index.php fusionforge-5.0.2/www/docman/admin/index.php
--- fusionforge-5.0.1+svn10155/www/docman/admin/index.php	2010-03-05 10:49:45.000000000 +0100
+++ fusionforge-5.0.2/www/docman/admin/index.php	2010-09-14 14:07:46.000000000 +0200
@@ -79,7 +79,7 @@
 		$filetype = getStringFromRequest('filetype');
 		$editor = getStringFromRequest('editor');
 
-		$d= new Document($g,$docid,false,$sys_engine_path);
+		$d= new Document($g,$docid,false,$gfcommon.'docman/engine');
 		if ($d->isError()) {
 			exit_error(_('Error'),$d->getErrorMessage());
 		}
diff -Nru fusionforge-5.0.1+svn10155/www/docman/new.php fusionforge-5.0.2/www/docman/new.php
--- fusionforge-5.0.1+svn10155/www/docman/new.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/www/docman/new.php	2010-09-14 14:07:46.000000000 +0200
@@ -59,7 +59,7 @@
 		exit_missing_param();
 	}
 
-	$d = new Document($g, false, false,$sys_engine_path);
+	$d = new Document($g, false, false,$gfcommon.'docman/engine');
 	if (!$d || !is_object($d)) {		
 		exit_error(_('Error'),_('Error getting blank document.'));
 	} elseif ($d->isError()) {	
diff -Nru fusionforge-5.0.1+svn10155/www/my/index.php fusionforge-5.0.2/www/my/index.php
--- fusionforge-5.0.1+svn10155/www/my/index.php	2010-03-01 21:15:27.000000000 +0100
+++ fusionforge-5.0.2/www/my/index.php	2010-08-05 16:33:40.000000000 +0200
@@ -259,7 +259,7 @@
 			}
 		}
 		if (!$at_found) {
-			echo '<tr><td colspan="2" bgcolor="#FFFFFF"><center><strong>'._('You are not monitoring any trackers.').'</strong></center></td></tr>';
+			echo '<tr><td colspan="2">'._('You are not monitoring any trackers.').'</td></tr>';
 		}
 		echo $HTML->listTableBottom();
 	}
@@ -275,7 +275,7 @@
 		$forumsForUser = new ForumsForUser(session_get_user());
 		$forums = $forumsForUser->getMonitoredForums();
 		if (count($forums) < 1) {
-			echo '<tr><td colspan="2"><strong>'._('You are not monitoring any forums.').'</strong></td></tr>';
+			echo '<tr><td colspan="2">'._('You are not monitoring any forums.').'</td></tr>';
 		} else {
 			echo '<tr><td colspan="2"><strong>'.util_make_link ('/forum/myforums.php',_('My Monitored Forums')).'</strong></td></tr>';
 			foreach ($forums as $f) {
@@ -314,7 +314,7 @@
 				user_getid()));
 		$rows=db_numrows($result);
 		if (!$result || $rows < 1) {
-			echo '<tr><td colspan="2"><strong>'._('You are not monitoring any files.').'</strong></td></tr>';
+			echo '<tr><td colspan="2">'._('You are not monitoring any files.').'</td></tr>';
 		} else {
 			for ($i=0; $i<$rows; $i++) {
 				if (db_result($result,$i,'group_id') != $last_group) {
@@ -340,16 +340,13 @@
 	/*
 		   Personal bookmarks
 	*/
-	echo $HTML->boxTop(_('My Bookmarks'), 'My_Bookmarks');
-
 	echo '<a href="'.util_make_url ('/my/bookmark_add.php').'">'._('Add bookmark').'</a><br/><br/>';
 	$result = db_query_params ('SELECT bookmark_url, bookmark_title, bookmark_id from user_bookmarks where 
 user_id=$1 ORDER BY bookmark_title',
 			array(user_getid() ));
 	$rows=db_numrows($result);
 	if (!$result || $rows < 1) {
-		echo '
-		<strong>'._('You currently do not have any bookmarks saved.').'</strong>';
+			echo '<tr><td colspan="2">'._('You currently do not have any bookmarks saved.').'</td></tr>';
 		echo db_error();
 	} else {
 		for ($i=0; $i<$rows; $i++) {
@@ -362,7 +359,6 @@
 			util_make_link ('/my/bookmark_edit.php?bookmark_id='. db_result($result,$i,'bookmark_id'),_('[Edit]'));
 		}
 	}
-	echo $HTML->boxBottom();
 ?>
 </div>
 <?php } ?>
@@ -391,7 +387,7 @@
 					  'A')) ;
 	$rows=db_numrows($result);
 	if (!$result || $rows < 1) {
-		echo '<tr><td colspan="3"><strong>'._('You\'re not a member of any active projects').'</strong></td></tr>';
+		echo '<tr><td colspan="3">'._('You\'re not a member of any active projects.').'</td></tr>';
 		echo db_error();
 	} else {
 		for ($i=0; $i<$rows; $i++) {
diff -Nru fusionforge-5.0.1+svn10155/www/news/admin/index.php fusionforge-5.0.2/www/news/admin/index.php
--- fusionforge-5.0.1+svn10155/www/news/admin/index.php	2010-03-22 22:15:13.000000000 +0100
+++ fusionforge-5.0.2/www/news/admin/index.php	2010-09-14 14:07:46.000000000 +0200
@@ -81,7 +81,7 @@
 			$sanitizer = new TextSanitizer();
 			$details = $sanitizer->SanitizeHtml($details);
 			$result = db_query_params("UPDATE news_bytes SET is_approved=$1, summary=$2, 
-details=$3 WHERE id=$4 AND group_id=$5", array($status, htmlspecialchars($summary), addslashes($details), $id, $group_id));
+details=$3 WHERE id=$4 AND group_id=$5", array($status, htmlspecialchars($summary), $details, $id, $group_id));
 
 			if (!$result || db_affected_rows($result) < 1) {
 				$feedback .= _('Error On Update:');
@@ -200,7 +200,7 @@
 				$sanitizer = new TextSanitizer();
 				$details = $sanitizer->SanitizeHtml($details);
 				$result=db_query_params("UPDATE news_bytes SET is_approved='1', post_date=$1, 
-summary=$2, details=$3 WHERE id=$4", array(time(), htmlspecialchars($summary), addslashes($details), $id));
+summary=$2, details=$3 WHERE id=$4", array(time(), htmlspecialchars($summary), $details, $id));
 				if (!$result || db_affected_rows($result) < 1) {
 					$feedback .= _('Error On Update:');
 				} else {

Reply to: