Your message dated Wed, 22 Sep 2010 17:14:30 +0200 with message-id <20100922151430.GV2669@radis.liafa.jussieu.fr> and subject line Re: Bug#596869: Possible unblock for fusionforge/5.0.2-1 has caused the Debian Bug report #596869, regarding unblock: fusionforge/5.0.2-1 to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 596869: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=596869 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: Possible unblock for fusionforge/5.0.2-1
- From: Roland Mas <lolando@debian.org>
- Date: Tue, 14 Sep 2010 18:49:55 +0200
- Message-id: <[🔎] 87iq28e0cs.fsf@mirexpress.internal.placard.fr.eu.org>
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 {
--- End Message ---
--- Begin Message ---
- To: Roland Mas <lolando@debian.org>, 596869-done@bugs.debian.org
- Subject: Re: Bug#596869: Possible unblock for fusionforge/5.0.2-1
- From: Julien Cristau <jcristau@debian.org>
- Date: Wed, 22 Sep 2010 17:14:30 +0200
- Message-id: <20100922151430.GV2669@radis.liafa.jussieu.fr>
- In-reply-to: <[🔎] 87wrqm6qrq.fsf@mirexpress.internal.placard.fr.eu.org>
- References: <[🔎] 87iq28e0cs.fsf@mirexpress.internal.placard.fr.eu.org> <[🔎] 20100915214135.GN3984@radis.liafa.jussieu.fr> <[🔎] 87wrqm6qrq.fsf@mirexpress.internal.placard.fr.eu.org>
On Thu, Sep 16, 2010 at 10:23:21 +0200, Roland Mas wrote: > retitle 596869 unblock: fusionforge/5.0.2-1 Done. Cheers, JulienAttachment: signature.asc
Description: Digital signature
--- End Message ---