From: lo-lan-do <>
Date: Wed, 14 Jan 2009 22:16:59 +0000 (+0000)
Subject: Finished merging the Branch_4_7_rpm branch
X-Git-Tag: v4_7_rc3~31
X-Git-Url: https://scm.fusionforge.org/anonscm/gitweb?p=fusionforge%2Ffusionforge.git;a=commitdiff_plain;h=2ee92fe42bdb31f64c0002565a000ba767ae1889
Finished merging the Branch_4_7_rpm branch
---
diff --git a/.gitattributes b/.gitattributes
index 8be5acb225..70a2f15276 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -17,6 +17,7 @@ gforge/common/include/rbac_texts.php -text
gforge/contrib/cmd-line-prototype.tar.gz -text
gforge/cronjobs/ftp_create_group_access.php -text
gforge/cronjobs/gforge-db-backup.sh -text
+gforge/cronjobs/homedirs.php -text
gforge/cronjobs/mail/publicize_list.py -text
gforge/db/20030701-gforge-3.0 -text svneol=unset#application/octet-stream
gforge/db/20031026-gforge-3.1 -text svneol=unset#application/octet-stream
@@ -780,6 +781,7 @@ gforge/plugins/quota_management/www/index.php -text
gforge/plugins/quota_management/www/quota.php -text
gforge/plugins/quota_management/www/quota_admin.php -text
gforge/plugins/quota_management/www/quota_project.php -text
+gforge/plugins/scmcvs/gforge-plugin-scmcvs.spec -text
gforge/plugins/scmsvn/cronjobs/update_users.php -text
gforge/plugins/scmsvn/db/scmsvn-init-mysql.sql -text
gforge/plugins/svntracker/AUTHORS -text
@@ -2963,6 +2965,7 @@ gforge/translations/sv.po -text
gforge/translations/th.po -text
gforge/translations/zh_CN.po -text
gforge/translations/zh_TW.po -text
+gforge/utils/install-nsspgsql.sh -text
gforge/www/docman/include/vtemplate.class.php -text
gforge/www/docman/search.php -text
gforge/www/docman/search.tpl.html -text
diff --git a/Makefile.rh b/Makefile.rh
index 9a97c2d7a2..9aeab75f62 100644
--- a/Makefile.rh
+++ b/Makefile.rh
@@ -15,14 +15,16 @@ clean: cleangf cleanplugins # Clean gforge and plugins #
gforge: cleangf build # Build gforge #
#Plugins
-allplugins: cvsplugin cvstrackerplugin ldapextauthplugin
-cleanplugins: cleancvs cleansvn cleancvstracker cleanldapextauth cleanexternalsearch
+#allplugins: cvsplugin cvstrackerplugin ldapextauthplugin
+allplugins: cvsplugin
+#cleanplugins: cleancvs cleansvn cleancvstracker cleanldapextauth cleanexternalsearch
+cleanplugins: cleancvs
cvsplugin: cleancvs buildcvs # package cvs plugin #
-svnplugin: cleansvn buildsvn # package svn plugin #
-cvstrackerplugin: cleancvstracker buildcvstracker # package cvstracker plugin #
-ldapextauthplugin: cleanldapextauth buildldapextauth # package ldapextauth plugin #
-externalsearchplugin: cleanexternalsearch buildexternalsearch # package externalsearch plugin #
+#svnplugin: cleansvn buildsvn # package svn plugin #
+#cvstrackerplugin: cleancvstracker buildcvstracker # package cvstracker plugin #
+#ldapextauthplugin: cleanldapextauth buildldapextauth # package ldapextauth plugin #
+#externalsearchplugin: cleanexternalsearch buildexternalsearch # package externalsearch plugin #
RPM_TMP=/tmp/gforge-build
@@ -32,7 +34,7 @@ rpmrc:
rpmmacro:
echo '$(shell rpmbuild --showrc | grep '^macrofiles'):./rpmmacros' >> ./rpmrc
- echo '%_topdir $(RPM_TMP)' >> ./rpmmacros
+ echo '%_topdir $(RPM_TMP)' > ./rpmmacros
echo '%_rpmtopdir %{_topdir}' >> ./rpmmacros
echo '%_builddir %{_rpmtopdir}/BUILD' >> ./rpmmacros
echo '%_rpmdir %{_rpmtopdir}/RPMS' >> ./rpmmacros
@@ -51,14 +53,13 @@ dist: rpmprep
#
# GFORGE
#
-versiongf:
-override version=$(shell grep '^Version:' gforge/gforge.spec | sed 's/.*:\s*\(.*\)/\1/')
+target cleangf build : override version=$(shell grep '^Version:' gforge/gforge.spec | sed 's/.*:\s*\(.*\)/\1/')
-cleangf: versiongf # Clean files of gforge build #
+cleangf: # Clean files of gforge build #
@rm -rf gforge-$(version).tar.bz2 gforge-$(version)
@echo cleangf Done
-build: rpmprep versiongf # Build rpm gforge packages #
- cd gforge ;find . -type f | grep -v '/CVS/' | grep -v contrib | grep -v debian | grep -v docs/phpdoc/docs | cpio -pdumvB ../gforge-$(version)
+build: rpmprep # Build rpm gforge packages #
+ cd gforge ;mv plugins ../;find . -type f | grep -v '/CVS/' | grep -v '/.svn/' | grep -v contrib | grep -v debian | grep -v docs/phpdoc/docs | cpio -pdumvB ../gforge-$(version)
cp gforge/rpm-specific/patches/gforge-4.0-deb_rpm.patch .
tar cvjf gforge-$(version).tar.bz2 gforge-$(version)
rpmbuild -ta --rcfile rpmrc gforge-$(version).tar.bz2
@@ -66,70 +67,69 @@ build: rpmprep versiongf # Build rpm gforge packages
#
# CVS PLUGIN
#
-versioncvs:
-override version=$(shell grep '^Version:' gforge-plugin-scmcvs/gforge-plugin-scmcvs.spec | sed 's/.*:\s*\(.*\)/\1/')
+target cleancvs buildcvs : override version=$(shell grep '^Version:' plugins/scmcvs/gforge-plugin-scmcvs.spec | sed 's/.*:\s*\(.*\)/\1/')
-cleancvs: versioncvs # Clean files of gforge-plugin-scmcvs build #
+cleancvs: # Clean files of gforge-plugin-scmcvs build #
@rm -rf gforge-plugin-scmcvs-$(version).tar.bz2 gforge-plugin-scmcvs-$(version)
@echo cleancvs Done
-buildcvs: rpmprep versioncvs # Build rpm gforge-plugin-scmcvs package #
- cd gforge-plugin-scmcvs ; find . -type f | grep -v '/CVS/' | grep -v contrib | grep -v debian | cpio -pdumvB ../gforge-plugin-scmcvs-$(version)
+buildcvs: rpmprep # Build rpm gforge-plugin-scmcvs package #
+ cd plugins/scmcvs ; find . -type f | grep -v '/CVS/' | grep -v '/.svn/' | grep -v contrib | grep -v debian | cpio -pdumvB ../../gforge-plugin-scmcvs-$(version)
tar cvjf gforge-plugin-scmcvs-$(version).tar.bz2 gforge-plugin-scmcvs-$(version)
rpmbuild -ta --rcfile rpmrc gforge-plugin-scmcvs-$(version).tar.bz2
#
# SVN PLUGIN
#
-versionsvn:
-override version=$(shell grep '^Version:' gforge-plugin-scmsvn/gforge-plugin-scmsvn.spec | sed 's/.*:\s*\(.*\)/\1/')
+#versionsvn:
+#override version=$(shell grep '^Version:' gforge-plugin-scmsvn/gforge-plugin-scmsvn.spec | sed 's/.*:\s*\(.*\)/\1/')
-cleansvn: versionsvn # Clean files of gforge-plugin-scmcvs build #
- @rm -rf gforge-plugin-scmsvn-$(version).tar.bz2 gforge-plugin-scmsvn-$(version)
- @echo cleansvn Done
-buildsvn: rpmprep versionsvn # Build rpm gforge-plugin-scmsvn package #
- cd gforge-plugin-scmsvn ; find . -type f | grep -v '/CVS/' | grep -v contrib | cpio -pdumvB ../gforge-plugin-scmsvn-$(version)
- tar cvzf gforge-plugin-scmsvn-$(version).tar.bz2 gforge-plugin-scmsvn-$(version)
- rpmbuild -ta --rcfile rpmrc gforge-plugin-scmsvn-$(version).tar.bz2
+#cleansvn: versionsvn # Clean files of gforge-plugin-scmcvs build #
+# @rm -rf gforge-plugin-scmsvn-$(version).tar.bz2 gforge-plugin-scmsvn-$(version)
+# @echo cleansvn Done
+#buildsvn: rpmprep versionsvn # Build rpm gforge-plugin-scmsvn package #
+# cd gforge-plugin-scmsvn ; find . -type f | grep -v '/CVS/' | grep -v contrib | cpio -pdumvB ../gforge-plugin-scmsvn-$(version)
+# tar cvzf gforge-plugin-scmsvn-$(version).tar.bz2 gforge-plugin-scmsvn-$(version)
+# rpmbuild -ta --rcfile rpmrc gforge-plugin-scmsvn-$(version).tar.bz2
#
# CVSTRACKER PLUGIN
#
-versioncvstracker:
-override version=$(shell grep '^Version:' gforge-plugin-cvstracker/gforge-plugin-cvstracker.spec | sed 's/.*:\s*\(.*\)/\1/')
+#versioncvstracker:
+#override version=$(shell grep '^Version:' gforge-plugin-cvstracker/gforge-plugin-cvstracker.spec | sed 's/.*:\s*\(.*\)/\1/')
-cleancvstracker: versioncvstracker # Clean files of gforge-plugin-cvstracker build #
- @rm -rf gforge-plugin-cvstracker-$(version).tar.bz2 gforge-plugin-cvstracker-$(version)
- @echo cleantracker Done
-buildcvstracker: rpmprep versioncvstracker # Build rpm gforge-plugin-cvstracker package #
- cd gforge-plugin-cvstracker ; find . -type f | grep -v '/CVS/' | grep -v contrib | grep -v debian | cpio -pdumvB ../gforge-plugin-cvstracker-$(version)
- tar cvzf gforge-plugin-cvstracker-$(version).tar.bz2 gforge-plugin-cvstracker-$(version)
- rpmbuild -ta --rcfile rpmrc gforge-plugin-cvstracker-$(version).tar.bz2
+#cleancvstracker: versioncvstracker # Clean files of gforge-plugin-cvstracker build #
+# @rm -rf gforge-plugin-cvstracker-$(version).tar.bz2 gforge-plugin-cvstracker-$(version)
+# @echo cleantracker Done
+#buildcvstracker: rpmprep versioncvstracker # Build rpm gforge-plugin-cvstracker package #
+# cd gforge-plugin-cvstracker ; find . -type f | grep -v '/CVS/' | grep -v contrib | grep -v debian | cpio -pdumvB ../gforge-plugin-cvstracker-$(version)
+# tar cvzf gforge-plugin-cvstracker-$(version).tar.bz2 gforge-plugin-cvstracker-$(version)
+# rpmbuild -ta --rcfile rpmrc gforge-plugin-cvstracker-$(version).tar.bz2
#
# LDAPAUTH PLUGIN
#
-versionldapextauth:
-override version=$(shell grep '^Version:' gforge-plugin-ldapextauth/gforge-plugin-ldapextauth.spec | sed 's/.*:\s*\(.*\)/\1/')
+#versionldapextauth:
+#override version=$(shell grep '^Version:' gforge-plugin-ldapextauth/gforge-plugin-ldapextauth.spec | sed 's/.*:\s*\(.*\)/\1/')
-cleanldapextauth: versionldapextauth # Clean files of gforge-plugin-ldapextauth build #
- @rm -rf gforge-plugin-ldapextauth-$(version).tar.bz2 gforge-plugin-ldapextauth-$(version)
- @echo cleanldapextauth Done
-buildldapextauth: rpmprep versionldapextauth # Build rpm gforge-plugin-ldapextauth package #
- cd gforge-plugin-ldapextauth ; find . -type f | grep -v '/CVS/' | grep -v contrib | grep -v debian | cpio -pdumvB ../gforge-plugin-ldapextauth-$(version)
- tar cvzf gforge-plugin-ldapextauth-$(version).tar.bz2 gforge-plugin-ldapextauth-$(version)
- rpmbuild -ta --rcfile rpmrc gforge-plugin-ldapextauth-$(version).tar.bz2
+#cleanldapextauth: versionldapextauth # Clean files of gforge-plugin-ldapextauth build #
+# @rm -rf gforge-plugin-ldapextauth-$(version).tar.bz2 gforge-plugin-ldapextauth-$(version)
+# @echo cleanldapextauth Done
+#buildldapextauth: rpmprep versionldapextauth # Build rpm gforge-plugin-ldapextauth package #
+# cd gforge-plugin-ldapextauth ; find . -type f | grep -v '/CVS/' | grep -v contrib | grep -v debian | cpio -pdumvB ../gforge-plugin-ldapextauth-$(version)
+# tar cvzf gforge-plugin-ldapextauth-$(version).tar.bz2 gforge-plugin-ldapextauth-$(version)
+# rpmbuild -ta --rcfile rpmrc gforge-plugin-ldapextauth-$(version).tar.bz2
#
# EXTERNALSEARCH PLUGIN
#
-versionexternalsearch:
-override version=$(shell grep '^Version:' gforge-plugin-externalsearch/gforge-plugin-externalsearch.spec | sed 's/.*:\s*\(.*\)/\1/')
-
-cleanexternalsearch: versionexternalsearch # Clean files of gforge-plugin-externalsearch build #
- @rm -rf gforge-plugin-externalsearch-$(version).tar.bz2 gforge-plugin-externalsearch-$(version)
- @echo cleanexternalsearch Done
-buildexternalsearch: rpmprep versionexternalsearch # Build rpm gforge-plugin-externalsearch package #
- cd gforge-plugin-externalsearch ; find . -type f | grep -v '/CVS/' | grep -v contrib | grep -v debian | cpio -pdumvB ../gforge-plugin-externalsearch-$(version)
- tar cvzf gforge-plugin-externalsearch-$(version).tar.bz2 gforge-plugin-externalsearch-$(version)
- rpmbuild -ta --rcfile rpmrc gforge-plugin-externalsearch-$(version).tar.bz2
+#versionexternalsearch:
+#override version=$(shell grep '^Version:' gforge-plugin-externalsearch/gforge-plugin-externalsearch.spec | sed 's/.*:\s*\(.*\)/\1/')
+
+#cleanexternalsearch: versionexternalsearch # Clean files of gforge-plugin-externalsearch build #
+# @rm -rf gforge-plugin-externalsearch-$(version).tar.bz2 gforge-plugin-externalsearch-$(version)
+# @echo cleanexternalsearch Done
+#buildexternalsearch: rpmprep versionexternalsearch # Build rpm gforge-plugin-externalsearch package #
+# cd gforge-plugin-externalsearch ; find . -type f | grep -v '/CVS/' | grep -v contrib | grep -v debian | cpio -pdumvB ../gforge-plugin-externalsearch-$(version)
+# tar cvzf gforge-plugin-externalsearch-$(version).tar.bz2 gforge-plugin-externalsearch-$(version)
+# rpmbuild -ta --rcfile rpmrc gforge-plugin-externalsearch-$(version).tar.bz2
diff --git a/gforge/plugins/scmcvs/cronjobs/homedirs.php b/gforge/cronjobs/homedirs.php
old mode 100755
new mode 100644
similarity index 83%
rename from gforge/plugins/scmcvs/cronjobs/homedirs.php
rename to gforge/cronjobs/homedirs.php
index b4d8bf9f4a..7bbe878ca4
--- a/gforge/plugins/scmcvs/cronjobs/homedirs.php
+++ b/gforge/cronjobs/homedirs.php
@@ -1,191 +1,183 @@
-#! /usr/bin/php5 -f
-
- ServerName gforge.company.com
- ServerAlias *.gforge.company.com
- VirtualDocumentRoot /home/groups/%1/htdocs
- VirtualScriptAlias /home/groups/%1/cgi-bin
-
-
- Options Indexes FollowSymlinks
- AllowOverride All
- order allow,deny
- allow from all
-
-
- LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" gforge
- CustomLog "|/usr/local/sbin/cronolog /home/groups/%1/logs/%Y/%m/%d/gforge.log" gforge
- # Ensure that we don't try to use SSL on SSL Servers
-
- SSLDisable
-
-
-*/
-require_once dirname(__FILE__).'/../../env.inc.php';
-require_once $gfwww.'include/squal_pre.php';
-require $gfcommon.'include/cron_utils.php';
-
-define('USER_DEFAULT_GROUP','users');
-//error variable
-$err = '';
-
-if (!isset($groupdir_prefix)) { // this should be set in local.inc
- $groupdir_prefix = '/home/groups';
+#! /usr/bin/php5 -f
+
+ ServerName gforge.company.com
+ ServerAlias *.gforge.company.com
+ VirtualDocumentRoot /home/groups/%1/htdocs
+ VirtualScriptAlias /home/groups/%1/cgi-bin
+
+
+ Options Indexes FollowSymlinks
+ AllowOverride All
+ order allow,deny
+ allow from all
+
+
+ LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" gforge
+ CustomLog "|/usr/local/sbin/cronolog /home/groups/%1/logs/%Y/%m/%d/gforge.log" gforge
+ # Ensure that we don't try to use SSL on SSL Servers
+
+ SSLDisable
+
+
+*/
+require_once dirname(__FILE__).'/../www/env.inc.php';
+require_once $gfwww.'include/squal_pre.php';
+require $gfcommon.'include/cron_utils.php';
+
+define('USER_DEFAULT_GROUP','users');
+//error variable
+$err = '';
+
+if (!isset($groupdir_prefix)) { // this should be set in local.inc
+ $groupdir_prefix = '/home/groups';
+}
+
+if (!is_dir($groupdir_prefix)) {
+ @mkdir($groupdir_prefix,0755,true);
}
-if (!is_dir($groupdir_prefix)) {
- @mkdir($groupdir_prefix);
+if (!isset($homedir_prefix)) { // this should be set in local.inc
+ $$homedir_prefix = '/home';
}
-$res = db_query("SELECT distinct users.user_name,users.unix_pw,users.user_id
- FROM users,user_group,groups
- WHERE users.user_id=user_group.user_id
- AND user_group.group_id=groups.group_id
- AND groups.status='A'
- AND user_group.cvs_flags IN ('0','1')
- AND users.status='A'
- ORDER BY user_id ASC");
-$err .= db_error();
-$users =& util_result_column_to_array($res,'user_name');
-
-$group_res = db_query("SELECT unix_group_name, (is_public=1 AND enable_anonscm=1 AND type_id=1) AS enable_pserver FROM groups WHERE status='A' AND type_id='1'");
-$err .= db_error();
-$groups = util_result_column_to_array($group_res,'unix_group_name');
-
-
-//
-// this is where we give a user a home
-//
-foreach($users as $user) {
- if (is_dir($homedir_prefix."/".$user)) {
-
- } else {
- @mkdir($homedir_prefix."/".$user);
- }
- system("chown $user:".USER_DEFAULT_GROUP." ".$homedir_prefix."/".$user);
-}
-
-
-//
-// Create home dir for groups
-//
-foreach($groups as $group) {
-
- //create an FTP upload dir for this project
- if ($sys_use_ftpuploads) {
- if (!is_dir($sys_ftp_upload_dir.'/'.$group)) {
- @mkdir($sys_ftp_upload_dir.'/'.$group);
- }
+if (!is_dir($homedir_prefix)) {
+ @mkdir($homedir_prefix,0755,true);
+}
+
+$res = db_query("SELECT distinct users.user_name,users.unix_pw,users.user_id
+ FROM users,user_group,groups
+ WHERE users.user_id=user_group.user_id
+ AND user_group.group_id=groups.group_id
+ AND groups.status='A'
+ AND user_group.cvs_flags IN ('0','1')
+ AND users.status='A'
+ ORDER BY user_id ASC");
+$err .= db_error();
+$users =& util_result_column_to_array($res,'user_name');
+
+$group_res = db_query("SELECT unix_group_name, (is_public=1 AND enable_anonscm=1 AND type_id=1) AS enable_pserver FROM groups WHERE status='A' AND type_id='1'");
+$err .= db_error();
+$groups = util_result_column_to_array($group_res,'unix_group_name');
+
+
+//
+// this is where we give a user a home
+//
+foreach($users as $user) {
+ if (is_dir($homedir_prefix."/".$user)) {
+
+ } else {
+ @mkdir($homedir_prefix."/".$user);
+ }
+ system("chown $user:".USER_DEFAULT_GROUP." ".$homedir_prefix."/".$user);
+}
+
+
+//
+// Create home dir for groups
+//
+foreach($groups as $group) {
+
+ //test if the FTP upload dir exists and create it if not
+ if (!is_dir($sys_ftp_upload_dir)) {
+ @mkdir($sys_ftp_upload_dir,0755,true);
}
-
- if (is_dir($groupdir_prefix."/".$group)) {
-
- } else {
- @mkdir($groupdir_prefix."/".$group);
- @mkdir($groupdir_prefix."/".$group."/htdocs");
- @mkdir($groupdir_prefix."/".$group."/cgi-bin");
- $g =& group_get_object_by_name($group);
-
-
- //
- // Read in the template file
- //
- $fo=fopen(dirname(__FILE__).'../../utils/default_page.php','r');
- $contents = '';
- if (!$fo) {
- $err .= 'Default Page Not Found';
- } else {
- while (!feof($fo)) {
- $contents .= fread($fo, 8192);
- }
- fclose($fo);
- }
- //
- // Change some defaults in the template file
- //
- //$contents=str_replace('',$sys_default_domain,$contents);
- //$contents=str_replace('',$g->getDescription(),$contents);
- //$contents=str_replace('',$g->getPublicName(),$contents);
- //$contents=str_replace('',$g->getID(),$contents);
- //$contents=str_replace('',$g->getUnixName(),$contents);
-
- //
- // Write the file back out to the project home dir
- //
- $fw=fopen($groupdir_prefix."/".$group."/htdocs/index.php",'w');
- fwrite($fw,$contents);
- fclose($fw);
-
- }
- /*$resgroupadmin=db_query("SELECT u.user_name FROM users u,user_group ug,groups g
- WHERE u.user_id=ug.user_id
- AND ug.group_id=g.group_id
- AND g.unix_group_name='$group'
- AND ug.admin_flags='A'
- AND u.status='A'");
- if (!$resgroupadmin || db_numrows($resgroupadmin) < 1) {
- //group has no members, so cannot create dir
- } else {
- $user=db_result($resgroupadmin,0,'user_name');
- system("chown -R $user:$group $groupdir_prefix/$group");
- }*/
- system("chown -R $sys_apache_user:$sys_apache_group $groupdir_prefix/$group");
-}
-
-//
-// Move CVS trees for deleted groups
-//
-$res8 = db_query("SELECT unix_group_name FROM deleted_groups WHERE isdeleted = 0;");
-$err .= db_error();
-$rows = db_numrows($res8);
-for($k = 0; $k < $rows; $k++) {
- $deleted_group_name = db_result($res8,$k,'unix_group_name');
-
- if(!is_dir($cvsdir_prefix."/.deleted"))
- system("mkdir ".$cvsdir_prefix."/.deleted");
-
- system("mv -f $cvsdir_prefix/$deleted_group_name/ $cvsdir_prefix/.deleted/");
- system("chown -R root:root $cvsdir_prefix/.deleted/$deleted_group_name");
- system("chmod -R o-rwx $cvsdir_prefix/.deleted/$deleted_group_name");
-
-
- $res9 = db_query("UPDATE deleted_groups set isdeleted = 1 WHERE unix_group_name = '$deleted_group_name';" );
- $err .= db_error();
-}
-
-
-cron_entry(25,$err);
-
-?>
+
+ //create an FTP upload dir for this project
+ if ($sys_use_ftpuploads) {
+ if (!is_dir($sys_ftp_upload_dir.'/'.$group)) {
+ @mkdir($sys_ftp_upload_dir.'/'.$group);
+ }
+ }
+
+ if (is_dir($groupdir_prefix."/".$group)) {
+
+ } else {
+ @mkdir($groupdir_prefix."/".$group);
+ @mkdir($groupdir_prefix."/".$group."/htdocs");
+ @mkdir($groupdir_prefix."/".$group."/cgi-bin");
+ $g =& group_get_object_by_name($group);
+
+
+ //
+ // Read in the template file
+ //
+ $fo=fopen(dirname(__FILE__).'/../utils/default_page.php','r');
+ $contents = '';
+ if (!$fo) {
+ $err .= 'Default Page Not Found';
+ } else {
+ while (!feof($fo)) {
+ $contents .= fread($fo, 8192);
+ }
+ fclose($fo);
+ }
+ //
+ // Change some defaults in the template file
+ //
+ //$contents=str_replace('',$sys_default_domain,$contents);
+ //$contents=str_replace('',$g->getDescription(),$contents);
+ //$contents=str_replace('',$g->getPublicName(),$contents);
+ //$contents=str_replace('',$g->getID(),$contents);
+ //$contents=str_replace('',$g->getUnixName(),$contents);
+
+ //
+ // Write the file back out to the project home dir
+ //
+ $fw=fopen($groupdir_prefix."/".$group."/htdocs/index.php",'w');
+ fwrite($fw,$contents);
+ fclose($fw);
+
+ }
+ /*$resgroupadmin=db_query("SELECT u.user_name FROM users u,user_group ug,groups g
+ WHERE u.user_id=ug.user_id
+ AND ug.group_id=g.group_id
+ AND g.unix_group_name='$group'
+ AND ug.admin_flags='A'
+ AND u.status='A'");
+ if (!$resgroupadmin || db_numrows($resgroupadmin) < 1) {
+ //group has no members, so cannot create dir
+ } else {
+ $user=db_result($resgroupadmin,0,'user_name');
+ system("chown -R $user:$group $groupdir_prefix/$group");
+ }*/
+ system("chown -R $sys_apache_user:$sys_apache_group $groupdir_prefix/$group");
+}
+
+
+cron_entry(25,$err);
+
+?>
diff --git a/gforge/etc/local.d/30homegroupother b/gforge/etc/local.d/30homegroupother
index 5becf62b1f..a474098f5b 100644
--- a/gforge/etc/local.d/30homegroupother
+++ b/gforge/etc/local.d/30homegroupother
@@ -1,8 +1,8 @@
//
// Groups and Homes dir prefix
//
-$homedir_prefix='{homedir}';
-$groupdir_prefix='{groupdir}';
+$homedir_prefix='{gforge_chroot}{homedir}';
+$groupdir_prefix='{gforge_chroot}{groupdir}';
$cvsdir_prefix='{cvsdir}';
$svndir_prefix='{svndir}';
$sys_chroot='{gforge_chroot}';
diff --git a/gforge/gforge.spec b/gforge/gforge.spec
index a670c68f5a..e6e4fd998b 100644
--- a/gforge/gforge.spec
+++ b/gforge/gforge.spec
@@ -3,7 +3,7 @@
%define dbuser gforge
%if %{?hostname:0}%{!?hostname:1}
- %define hostname localhost
+ %define hostname `hostname`
%endif
%if %{?sitename:0}%{!?sitename:1}
%define sitename MyForge
@@ -22,7 +22,7 @@
Summary: GForge Collaborative Development Environment
Name: gforge
-Version: 4.1
+Version: 4.7
Release: %{release}
BuildArch: noarch
License: GPL
@@ -36,7 +36,15 @@ Patch1000: gforge-4.0-deb_rpm.patch
AutoReqProv: off
Requires: /bin/sh, /bin/bash
Requires: perl, perl-DBI, perl-HTML-Parser
-Requires: gforge-lib-jpgraph
+Requires: cronolog
+Requires: php-jpgraph php-gd
+#update sys_path_to_jpgraph in gforge.conf if you remove this line
+Requires: /var/www/jpgraph/jpgraph.php
+Requires: libnss-pgsql >= 1.4
+Requires: mailman
+Requires: nscd
+
+BuildRequires: perl
# RedHat specific - distribution specific (fc = Fedora Core (or RHEL4 and Centos 4) - rh9 = RHL 9 - el3 = RHEL 3 or CentOS 3)
%if "%{_vendor}" == "redhat"
@@ -114,7 +122,7 @@ web-based administration.
%define GFORGE_DIR %{_datadir}/gforge
%define GFORGE_CONF_DIR %{_sysconfdir}/gforge
-%define GFORGE_LANG_DIR %{GFORGE_CONF_DIR}/languages-local
+%define GFORGE_LANG_DIR %{_libdir}/gforge/translations
%define GFORGE_LIB_DIR %{_libdir}/gforge/lib
%define GFORGE_DB_DIR %{_libdir}/gforge/db
%define GFORGE_BIN_DIR %{_libdir}/gforge/bin
@@ -148,7 +156,6 @@ install -m 755 -d $RPM_BUILD_ROOT/%{UPLOAD_DIR}
install -m 755 -d $RPM_BUILD_ROOT/%{CACHE_DIR}
install -m 755 -d $RPM_BUILD_ROOT/%{SCM_TARBALLS_DIR}
install -m 755 -d $RPM_BUILD_ROOT/%{PLUGINS_LIB_DIR}
-
install -m 755 -d $RPM_BUILD_ROOT/%{SBIN_DIR}
install -m 755 -d $RPM_BUILD_ROOT/%{HTTPD_CONF_DIR}/conf.d
install -m 755 -d $RPM_BUILD_ROOT/%{CROND_DIR}
@@ -159,6 +166,8 @@ for i in common cronjobs etc rpm-specific utils www ; do
done
install -m 750 setup $RPM_BUILD_ROOT/%{GFORGE_DIR}/
chmod 755 $RPM_BUILD_ROOT/%{GFORGE_DIR}/utils/fill-in-the-blanks.pl
+chmod 755 $RPM_BUILD_ROOT/%{GFORGE_DIR}/utils/install-nsspgsql.sh
+chmod 755 $RPM_BUILD_ROOT/%{GFORGE_DIR}/www/scm/viewvc/bin/cgi/viewvc.cgi
cp -rp db/. $RPM_BUILD_ROOT/%{GFORGE_DB_DIR}/
cp -p deb-specific/sf-2.6-complete.sql $RPM_BUILD_ROOT/%{GFORGE_DB_DIR}/
@@ -171,13 +180,14 @@ for i in db-upgrade.pl register-plugin unregister-plugin register-theme unregist
done
# configuring apache
-install -m 644 rpm-specific/conf/vhost.conf $RPM_BUILD_ROOT/%{HTTPD_CONF_DIR}/conf.d/gforge.conf
+## use post install setup script instead
+install -m 644 rpm-specific/httpd.d/gforge.conf $RPM_BUILD_ROOT/%{HTTPD_CONF_DIR}/conf.d/gforge.conf
# configuring GForge
install -m 600 rpm-specific/conf/gforge.conf $RPM_BUILD_ROOT/%{GFORGE_CONF_DIR}/
install -m 750 rpm-specific/scripts/gforge-config $RPM_BUILD_ROOT/%{SBIN_DIR}/
-if ls rpm-specific/languages/*.tab &> /dev/null; then
- cp rpm-specific/languages/*.tab $RPM_BUILD_ROOT/%{GFORGE_LANG_DIR}/
+if ls translations/*.po &> /dev/null; then
+ cp translations/*.po $RPM_BUILD_ROOT/%{GFORGE_LANG_DIR}/
fi
cp -rp rpm-specific/custom $RPM_BUILD_ROOT/%{GFORGE_CONF_DIR}
@@ -186,14 +196,15 @@ install -m 664 rpm-specific/cron.d/gforge $RPM_BUILD_ROOT/%{CROND_DIR}/
%pre
%startpostgresql
-if su -l postgres -s /bin/sh -c 'psql template1 -c "SHOW tcpip_socket;"' | grep " off" &> /dev/null; then
- echo "###"
- echo "# You should set tcpip_socket = true in your /var/lib/pgsql/data/postgresql.conf"
- echo "# before installing GForge and restart PostgreSQL."
- echo "# Then you should be able to install GForge RPM."
- echo "###"
- exit 1
-fi
+#tcpip_socket is no more use with postgres 8.x
+#if su -l postgres -s /bin/sh -c 'psql template1 -c "SHOW tcpip_socket;"' | grep " off" &> /dev/null; then
+# echo "###"
+# echo "# You should set tcpip_socket = true in your /var/lib/pgsql/data/postgresql.conf"
+# echo "# before installing GForge and restart PostgreSQL."
+# echo "# Then you should be able to install GForge RPM."
+# echo "###"
+# exit 1
+#fi
if ! id -u %gfuser >/dev/null 2>&1; then
groupadd -r %{gfgroup}
useradd -r -g %{gfgroup} -d %{GFORGE_DIR} -s /bin/bash -c "GForge User" %{gfuser}
@@ -223,8 +234,8 @@ if [ "$1" -eq "1" ]; then
# updating PostgreSQL configuration
if ! grep -i '^ *host.*%{dbname}.*' /var/lib/pgsql/data/pg_hba.conf >/dev/null 2>&1; then
echo 'host %{dbname} %{dbuser} 127.0.0.1 255.255.255.255 md5' >> /var/lib/pgsql/data/pg_hba.conf
- echo 'local %{dbname} gforge_nss md5' >> /var/lib/pgsql/data/pg_hba.conf
- echo 'local %{dbname} gforge_mta md5' >> /var/lib/pgsql/data/pg_hba.conf
+ echo 'host %{dbname} gforge_nss 127.0.0.1 255.255.255.255 trust' >> /var/lib/pgsql/data/pg_hba.conf
+ echo 'host %{dbname} gforge_mta 127.0.0.1 255.255.255.255 trust' >> /var/lib/pgsql/data/pg_hba.conf
%reloadpostgresql
fi
@@ -251,7 +262,20 @@ if [ "$1" -eq "1" ]; then
s/SYSTEM_NAME/"%{sitename}"/g;
s/RANDOM_ID/"$SESSID"/g;
s/HOST_NAME/"%{hostname}"/g" %{GFORGE_CONF_DIR}/gforge.conf
- perl -pi -e "s/HOST_NAME/%{hostname}/g" %{HTTPD_CONF_DIR}/conf.d/gforge.conf
+
+ #admin email
+ adminemail=$(echo "%{adminemail}"| sed 's|@|\\\@|g')
+ perl -pi -e "
+ s/SERVER_ADMIN/"$adminemail"/g" %{GFORGE_CONF_DIR}/gforge.conf
+
+ #wrong 20list http template for mailman on rpm
+ rm -f %{GFORGE_CONF_DIR}/httpd.d/20list
+
+ perl -pi -e "
+ s#^GFORGE_CONF_DIR=.*#GFORGE_CONF_DIR="%{GFORGE_CONF_DIR}"#g" %{SBIN_DIR}/gforge-config
+
+ ## plugins installs apache templates in GFORGE_CONF_DIR
+ ln -s %{GFORGE_DIR}/etc/httpd.d %{GFORGE_CONF_DIR}/httpd.d
# initializing configuration
%{SBIN_DIR}/gforge-config
@@ -260,16 +284,42 @@ if [ "$1" -eq "1" ]; then
su -l %{gfuser} -c "%{GFORGE_BIN_DIR}/db-upgrade.pl 2>&1" | grep -v ^NOTICE
su -l postgres -c "psql -c 'UPDATE groups SET register_time=EXTRACT(EPOCH FROM NOW());' %{dbname} >/dev/null 2>&1"
%changepassword $SITEADMIN_PASSWORD
+
+ # creation *.mo files for gettext
+ for l in eu bg ca zh_TW nl en eo fr de el he id it ja ko la nb pl pt_BR pt ru zh_CN es sv th ; do mkdir -p /usr/share/locale/$l/LC_MESSAGES && msgfmt -o /usr/share/locale/$l/LC_MESSAGES/gforge.mo %{GFORGE_LANG_DIR}/$l.po ; done
%gracefulhttpd
+
+ if ! id -u anonymous >/dev/null 2>&1; then
+ useradd -m -s /bin/false anonymous
+ fi
+
+ [ ! -f /usr/bin/php4 ] && ln -s /usr/bin/php /usr/bin/php4
+
+ chroot=`grep '^gforge_chroot:' /etc/gforge/gforge.conf | sed 's/.*:\s*\(.*\)/\1/'`
+ if [ ! -d /var/lib/gforge/chroot/ ] ; then
+ mkdir -p /var/lib/gforge/chroot/
+ fi
+
+ ln -s %{GFORGE_DIR}/www/env.inc.php %{PLUGINS_LIB_DIR}
+
+ #Configuration de libnss-pgsql
+ ln -s %{GFORGE_DIR}/utils/install-nsspgsql.sh /usr/sbin
+ install-nsspgsql.sh setup
+
else
# upgrading database
su -l %{gfuser} -c "%{GFORGE_BIN_DIR}/db-upgrade.pl 2>&1" | grep -v ^NOTICE
# updating configuration
%{SBIN_DIR}/gforge-config || :
+
+ # creation *.mo files for gettext
+ for l in eu bg ca zh_TW nl en eo fr de el he id it ja ko la nb pl pt_BR pt ru zh_CN es sv th ; do mkdir -p /usr/share/locale/$l/LC_MESSAGES && msgfmt -o /usr/share/locale/$l/LC_MESSAGES/gforge.mo %{GFORGE_LANG_DIR}/$l.po ; done
fi
+%preun
+
%postun
if [ "$1" -eq "0" ]; then
# dropping gforge users
@@ -286,8 +336,15 @@ if [ "$1" -eq "0" ]; then
# Remove user/group
if id -u %{gfuser} >/dev/null 2>&1; then
userdel %{gfuser} >/dev/null 2>&1
- groupdel %{gfgroup} 2>/dev/null || :
+ groupdel %{gfgroup} >/dev/null 2>&1
fi
+
+ if ! id -u anonymous >/dev/null 2>&1; then
+ userdel anonymous 2>/dev/null || :
+ fi
+
+ [ -L /usr/bin/php4 ] && rm -f /usr/bin/php4
+
fi
%clean
@@ -300,7 +357,7 @@ fi
%attr(0660, %{httpduser}, gforge) %config(noreplace) %{GFORGE_CONF_DIR}/gforge.conf
%attr(0750, root, root) %{SBIN_DIR}/gforge-config
%attr(0640, %{httpduser}, %{httpdgroup}) %config(noreplace) %{HTTPD_CONF_DIR}/conf.d/gforge.conf
-%attr(0664, root, root) %config(noreplace) %{CROND_DIR}/gforge
+%attr(0644, root, root) %{CROND_DIR}/gforge
%attr(0775, %{httpduser}, %{httpdgroup}) %dir %{UPLOAD_DIR}
%attr(0775, %{httpduser}, %{httpdgroup}) %dir %{CACHE_DIR}
%{GFORGE_DIR}
@@ -308,7 +365,7 @@ fi
%{GFORGE_LIB_DIR}
%{GFORGE_DB_DIR}
%{GFORGE_LANG_DIR}
-%{GFORGE_CONF_DIR}/custom
+%{GFORGE_CONF_DIR}
%{SCM_TARBALLS_DIR}
%changelog
diff --git a/gforge/plugins/scmcvs/cronjobs/cvs.php b/gforge/plugins/scmcvs/cronjobs/cvs.php
index c361371c0b..e6d68592c1 100755
--- a/gforge/plugins/scmcvs/cronjobs/cvs.php
+++ b/gforge/plugins/scmcvs/cronjobs/cvs.php
@@ -281,6 +281,7 @@ function add_acl_check($unix_group_name) {
function update_cvs_repositories() {
global $cvsdir_prefix;
+ global $err;
$res = db_query("select groups.group_id,groups.unix_group_name,groups.enable_anonscm,groups.enable_pserver".
" FROM groups, plugins, group_plugin".
@@ -355,6 +356,28 @@ function update_cvs_repositories() {
add_acl_check($project->getUnixName());
}
}
+
+ //
+ // Move CVS trees for deleted groups
+ //
+ $res8 = db_query("SELECT unix_group_name FROM deleted_groups WHERE isdeleted = 0;");
+ $err .= db_error();
+ $rows = db_numrows($res8);
+ for($k = 0; $k < $rows; $k++) {
+ $deleted_group_name = db_result($res8,$k,'unix_group_name');
+
+ if(!is_dir($cvsdir_prefix."/.deleted"))
+ system("mkdir ".$cvsdir_prefix."/.deleted");
+
+ system("mv -f $cvsdir_prefix/$deleted_group_name/ $cvsdir_prefix/.deleted/");
+ system("chown -R root:root $cvsdir_prefix/.deleted/$deleted_group_name");
+ system("chmod -R o-rwx $cvsdir_prefix/.deleted/$deleted_group_name");
+
+
+ $res9 = db_query("UPDATE deleted_groups set isdeleted = 1 WHERE unix_group_name = '$deleted_group_name';" );
+ $err .= db_error();
+ }
+
}
@@ -367,6 +390,8 @@ function update_cvs_repositories() {
*/
+$err = "";
+
if(is_dir($cvsdir_prefix)) {
update_cvs_repositories();
} else {
diff --git a/gforge/plugins/scmcvs/gforge-plugin-scmcvs.spec b/gforge/plugins/scmcvs/gforge-plugin-scmcvs.spec
new file mode 100644
index 0000000000..11afc4a096
--- /dev/null
+++ b/gforge/plugins/scmcvs/gforge-plugin-scmcvs.spec
@@ -0,0 +1,184 @@
+%define plugin scmcvs
+%{!?release:%define release 1}
+
+Summary: CVS Plugin for GForge CDE
+Name: gforge-plugin-%{plugin}
+Version: 4.7
+Release: %{release}
+BuildArch: noarch
+License: GPL
+Group: Development/Tools
+Source: %{name}-%{version}.tar.bz2
+AutoReqProv: off
+Requires: gforge >= 4.7
+Requires: perl perl-URI
+Requires: cvs >= 1.11
+#update etc/plugins/scmcvs/config.php $cvs_binary_version before updating cvs to 1.12
+Requires: cvs < 1.12
+Requires: rcs
+URL: http://www.gforge.org/
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+
+%define gfuser gforge
+%define gfgroup gforge
+
+%if "%{_vendor}" == "suse"
+ %define httpduser wwwrun
+ %define httpdgroup www
+#Requires: perl-IPC-Run
+%else
+ %define httpduser apache
+ %define httpdgroup apache
+Requires: perl-IPC-Run
+%endif
+
+#Globals defines for gforge
+%define GFORGE_DIR %{_datadir}/gforge
+%define GFORGE_CONF_DIR %{_sysconfdir}/gforge
+%define GFORGE_SBIN_DIR %{_sbindir}
+#%define GFORGE_LIB_DIR %{_libdir}/gforge/lib
+#%define GFORGE_DB_DIR %{_libdir}/gforge/db
+%define GFORGE_BIN_DIR %{_libdir}/gforge/bin
+%define PLUGINS_LIB_DIR %{_libdir}/gforge/plugins
+%define PLUGINS_CONF_DIR %{GFORGE_CONF_DIR}/plugins
+%define CROND_DIR %{_sysconfdir}/cron.d
+%define SBIN_DIR %{_sbindir}
+
+#specific define for plugins
+%define PLUGIN_LIB %{PLUGINS_LIB_DIR}/%{plugin}
+%define PLUGIN_CONF %{PLUGINS_CONF_DIR}/%{plugin}
+
+
+%description
+GForge CDE is a web-based Collaborative Development Environment offering
+easy access to CVS, mailing lists, bug tracking, message
+boards/forums, task management, permanent file archival, and total
+web-based administration.
+
+This RPM installs SCM CVS plugin for GForge CDE which was previously bundled
+with GForge CDE and provides CVS support to GForge CDE.
+
+It also provides a specific version of CVSWeb wrapped in GForge CDE.
+
+%prep
+%setup
+
+%build
+
+%install
+# cleaning build environment
+[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+# installing crontab
+install -m 755 -d $RPM_BUILD_ROOT/%{CROND_DIR}/
+#install -m 644 rpm-specific/cron.d/%{name} $RPM_BUILD_ROOT/%{CROND_DIR}/
+
+# copying all needed stuff to %{PLUGIN_LIB}
+install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_LIB}
+for dir in bin common sbin www cronjobs; do
+ cp -rp $dir $RPM_BUILD_ROOT/%{PLUGIN_LIB}/
+done;
+chmod 755 $RPM_BUILD_ROOT/%{PLUGIN_LIB}/bin/*
+chmod 755 $RPM_BUILD_ROOT/%{PLUGIN_LIB}/sbin/*
+chmod 755 $RPM_BUILD_ROOT/%{PLUGIN_LIB}/cronjobs/cvscreate.sh
+
+# installing CVSWeb cgi
+#install -m 755 -d $RPM_BUILD_ROOT/%{GFORGE_BIN_DIR}/
+#install -m 755 cgi-bin/cvsweb $RPM_BUILD_ROOT/%{GFORGE_BIN_DIR}/
+#install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_LIB}/cgi-bin/
+#install -m 755 cgi-bin/cvsweb $RPM_BUILD_ROOT/%{PLUGIN_LIB}/cgi-bin/
+
+# installing configuration file
+install -m 755 -d $RPM_BUILD_ROOT/%{GFORGE_CONF_DIR}/
+cp -rp etc/* $RPM_BUILD_ROOT/%{GFORGE_CONF_DIR}/
+install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_CONF}
+install -m 664 etc/plugins/%{plugin}/config.php $RPM_BUILD_ROOT/%{PLUGIN_CONF}/
+install -m 664 etc/plugins/%{plugin}/cvsweb.conf $RPM_BUILD_ROOT/%{PLUGIN_CONF}/
+
+# installing installation specific language files
+#install -m 755 -d $RPM_BUILD_ROOT/%{PLUGIN_CONF}/languages
+#if ls rpm-specific/languages/*.tab &> /dev/null; then
+# cp rpm-specific/languages/*.tab $RPM_BUILD_ROOT/%{PLUGIN_CONF}/languages/
+#fi
+
+
+%pre
+
+%post
+if [ "$1" = "1" ] ; then
+ #if not the env.inc.php include-path isn't correct
+ ln -s /usr/lib/gforge/plugins/ /usr/share/gforge/plugins
+
+ [ ! -f /bin/cvssh ] && ln -s %{PLUGIN_LIB}/bin/cvssh.pl /bin/cvssh
+
+ #GF_DOMAIN=$(grep ^domain_name= %{GFORGE_CONF_DIR}/gforge.conf | cut -d= -f2-)
+ #perl -pi -e "
+ # s#^\\\$sys_plugins_path=.*#\\\$sys_plugins_path='"%{PLUGINS_LIB_DIR}"';#;
+ # s#^\\\$sys_default_domain=.*#\\\$sys_default_domain='$GF_DOMAIN';#" %{PLUGIN_CONF}/config.php
+
+ # register plugin in database
+ %{GFORGE_BIN_DIR}/register-plugin %{plugin} CVS &> /dev/null
+
+ perl -pi -e "
+ s/sys_use_scm=false/sys_use_scm=true/g" %{GFORGE_CONF_DIR}/gforge.conf
+
+ # initializing configuration
+ %{SBIN_DIR}/gforge-config
+
+ chroot=`grep '^gforge_chroot:' /etc/gforge/gforge.conf | sed 's/.*:\s*\(.*\)/\1/'`
+ if [ ! -d /var/lib/gforge/chroot/cvsroot/ ] ; then
+ mkdir -p /var/lib/gforge/chroot/cvsroot/
+ fi
+ ln -s /var/lib/gforge/chroot/cvsroot /cvsroot
+else
+ # upgrade
+ :
+fi
+
+%postun
+if [ "$1" = "0" ] ; then
+ # unregister plugin in database
+ %{GFORGE_BIN_DIR}/unregister-plugin %{plugin}
+
+ [ -L /bin/cvssh ] && rm -f /bin/cvssh
+else
+ # upgrade
+ :
+fi
+
+%clean
+[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-, root, root)
+%doc AUTHORS COPYING README
+%attr(0664, %{httpduser}, %{gfgroup}) %config(noreplace) %{PLUGIN_CONF}/config.php
+%attr(0660, %{httpduser}, %{gfgroup}) %config(noreplace) %{PLUGIN_CONF}/cvsweb.conf
+#%attr(0755,root,root) %{GFORGE_BIN_DIR}/cvsweb
+%{GFORGE_CONF_DIR}/httpd.d
+#%{PLUGIN_CONF}/languages
+%{PLUGIN_CONF}/config.pl
+%{PLUGIN_LIB}/bin
+%{PLUGIN_LIB}/common
+%{PLUGIN_LIB}/sbin
+#%{PLUGIN_LIB}/cgi-bin
+#%{PLUGIN_LIB}/include
+#%{PLUGIN_LIB}/lib
+#%{PLUGIN_LIB}/rpm-specific
+%{PLUGIN_LIB}/www
+%{PLUGIN_LIB}/cronjobs
+#%{CROND_DIR}/%{name}
+
+%changelog
+* Mon Jan 09 2006 Nicolas Quienot
+- 4.5.6
+* Fri Apr 29 2005 Xavier Rameau
+- Added support for SuSE
+* Sat Feb 19 2005 Guillaume Smet
+- 4.1
+- replaced -f test with ls
+- redirects register-plugin output to /dev/null
+* Mon Jan 03 2005 Guillaume Smet
+- it's now possible to add specific language files in the RPM
+* Sun Sep 26 2004 Guillaume Smet
+Initial RPM packaging
\ No newline at end of file
diff --git a/gforge/rpm-specific/conf/gforge.conf b/gforge/rpm-specific/conf/gforge.conf
index fb012378df..73956264c0 100644
--- a/gforge/rpm-specific/conf/gforge.conf
+++ b/gforge/rpm-specific/conf/gforge.conf
@@ -1,5 +1,6 @@
system_name=SYSTEM_NAME
domain_name=HOST_NAME
+server_admin=SERVER_ADMIN
db_host=DB_HOST
db_name=DB_NAME
db_user=DB_USER
@@ -10,25 +11,30 @@ users_host=users.HOST_NAME
lists_host=lists.HOST_NAME
docs_host=docs.HOST_NAME
jabber_host=jabber.HOST_NAME
-download_host=HOST_NAME
-upload_host=HOST_NAME
+download_host=download.HOST_NAME
+upload_host=upload.HOST_NAME
default_trove_cat=18
statsadmin_groupid=3
newsadmin_groupid=2
+peerrating_groupid=4
+template_project=5
ldap_host=localhost
ldap_base_dn=
-ldap_web_add_password=
+ldap_web_add_password=LDAP_PASSWD
sys_path_to_mailman=/usr/lib/mailman
cgidir=/usr/local/gforge/cgi-bin
cronolog_path=/usr/sbin/cronolog
-sys_path_to_jpgraph=/usr/lib/gforge/jpgraph/
+sys_path_to_jpgraph=/var/www/jpgraph/
sys_path_to_scmweb=/usr/lib/gforge/plugins/scmcvs/cgi-bin
+gforge_chroot=/var/lib/gforge/chroot
gforge_etc=/etc/gforge
sys_custom_path=/etc/gforge/custom
groupdir=/home/groups
-homedir=/home
+homedir=/home/users
+cvsdir=/cvsroot
uploaddir=/var/lib/gforge/upload/
-sys_jabber_pass=
+ftpuploaddir=/var/lib/gforge/chroot/ftproot/pub
+sys_jabber_pass=JABBER_PASSWD
usr_share_gforge=/usr/share/gforge
usr_lib_gforge=/usr/share/gforge
var_lib_gforge=/var/lib/gforge
@@ -42,7 +48,7 @@ sys_theme=gforge
sys_lang=English
sys_default_timezone=GMT
sys_default_country_code=US
-sys_account_manager_type=UNIX
+sys_account_manager_type=pgsql
sys_use_jabber=0
sys_use_auth_ldap=0
sys_ldap_auth_host=localhost
@@ -51,7 +57,7 @@ sys_ldap_auth_version=3
sys_ldap_auth_dn=dc=arcadie
sys_scm_tarballs_path=/var/lib/gforge/scmtarballs
sys_scm_snapshots_path=/var/lib/gforge/scmsnapshots
-sys_use_scm=true
+sys_use_scm=false
sys_use_tracker=true
sys_use_forum=true
sys_use_pm=true
@@ -60,18 +66,18 @@ sys_use_news=true
sys_use_mail=true
sys_use_survey=true
sys_use_frs=true
-sys_use_ftp=false
+sys_use_ftp=true
sys_use_trove=true
sys_use_snippet=true
sys_use_ssl=false
sys_use_people=true
+sys_use_ftpuploads=true
sys_use_project_vhost=false
sys_use_project_database=false
sys_use_project_multimedia=false
sys_project_reg_restricted=true
sys_user_reg_restricted=false
sys_localinc=/etc/gforge/local.inc
-sys_jabber_pass=
sys_plugins_path=/usr/lib/gforge/plugins/
sys_sslcrt=
sys_sslkey=
diff --git a/gforge/rpm-specific/conf/vhost.conf b/gforge/rpm-specific/conf/vhost.conf
deleted file mode 100644
index caea7f5989..0000000000
--- a/gforge/rpm-specific/conf/vhost.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-
- DocumentRoot /usr/share/gforge/www
- ServerName HOST_NAME
- ErrorDocument 404 /404.php
- php_value include_path ".:/etc/gforge:/usr/share/gforge:/usr/share/gforge/www/include"
- php_value register_globals 1
- php_value magic_quotes_gpc 1
- php_value error_reporting 2039
- AddDefaultCharset UTF-8
- AcceptPathInfo On
-
- Include /etc/gforge/httpd.secrets
- Order allow,deny
- Allow from all
-
-
- Include /etc/gforge/httpd.secrets
- Order allow,deny
- Allow from all
-
-
- ForceType application/x-httpd-php
-
-
- ForceType application/x-httpd-php
-
- RewriteEngine On
- RewriteRule ^/plugins/([^/]*)/(.*) /usr/lib/gforge/plugins/$1/www/$2 [L]
-
diff --git a/gforge/rpm-specific/cron.d/gforge b/gforge/rpm-specific/cron.d/gforge
index 22e88c2fcf..c63a794084 100644
--- a/gforge/rpm-specific/cron.d/gforge
+++ b/gforge/rpm-specific/cron.d/gforge
@@ -9,6 +9,7 @@
# Change path to the GForge directory.
GFORGE="/usr/share/gforge"
+GFORGE_PLUGINS="/usr/lib/gforge/plugins"
# Change paths to the GForge directory.
# Don't reference $GFORGE because this won't work!
@@ -89,32 +90,37 @@ MAILTO=""
#
#
#
-# Create the /etc/* files
+# Create the /etc/* files : only usefull if the sys_account_manager_type=UNIX
#
-#10 * * * * root $PHP $GFORGE/cronjobs/cvs-cron/usergroup.php
+#10 * * * * root $PHP $GFORGE_PLUGINS/scmcvs/cronjobs/usergroup.php
+
+#
+# Create the shell users accounts and groups home directories
+#
+15 * * * * root $PHP $GFORGE/cronjobs/homedirs.php
#
# Upload the SSH key files
#
-#15 * * * * root $PHP $GFORGE/cronjobs/cvs-cron/ssh_create.php
+15 * * * * root $PHP $GFORGE_PLUGINS/scmcvs/cronjobs/ssh_create.php
#
# Create the blank cvs trees
#
-#20 * * * * root $PHP $GFORGE/cronjobs/cvs-cron/cvs.php
+20 * * * * root $PHP $GFORGE_PLUGINS/scmcvs/cronjobs/cvs.php
#
# Daily stats collection
#
-###incomplete 20 1 * * * root $PHP $GFORGE/cronjobs/cvs-cron/history_parse.php
+20 1 * * * root $PHP $GFORGE_PLUGINS/scmcvs/cronjobs/history_parse.php
#
# Create the new mailing lists
#
-#06 * * * * root $PHP $GFORGE/cronjobs/mail/mailing_lists_create.php
+06 * * * * root $PHP $GFORGE/cronjobs/mail/mailing_lists_create.php
#
# Create the /etc/aliases file
#
-#08 * * * * root $PHP $GFORGE/cronjobs/mail/mailaliases.php
+08 * * * * root $PHP $GFORGE/cronjobs/mail/mailaliases.php
diff --git a/gforge/rpm-specific/patches/gforge-4.0-deb_rpm.patch b/gforge/rpm-specific/patches/gforge-4.0-deb_rpm.patch
index 55f3267ff8..da73f49044 100644
--- a/gforge/rpm-specific/patches/gforge-4.0-deb_rpm.patch
+++ b/gforge/rpm-specific/patches/gforge-4.0-deb_rpm.patch
@@ -1,19 +1,19 @@
-diff -u gforge/deb-specific/db-upgrade.pl gforge-rpm/deb-specific/db-upgrade.pl
---- gforge/deb-specific/db-upgrade.pl 2005-02-13 03:45:59.000000000 +0100
-+++ gforge-rpm/deb-specific/db-upgrade.pl 2005-02-20 16:34:35.001940285 +0100
-@@ -1991,7 +1991,7 @@
- $dbh->disconnect ;
-
- sub get_pg_version () {
-- my $command = q(dpkg -s postgresql | awk '/^Version: / { print $2 }') ;
-+ my $command = q(rpm -q --qf %{VERSION} postgresql) ;
+diff -ru gforge/deb-specific/db-upgrade.pl gforge-rpm/deb-specific/db-upgrade.pl
+--- gforge/deb-specific/db-upgrade.pl 2008-11-05 18:01:46.000000000 +0100
++++ gforge-rpm/deb-specific/db-upgrade.pl 2008-11-05 18:04:13.000000000 +0100
+@@ -2836,7 +2836,7 @@
+ if (-x '/usr/bin/pg_lsclusters' ) {
+ $command = q(/usr/bin/pg_lsclusters | grep 5432 | grep online | cut -d' ' -f1) ;
+ } else {
+- $command = q(dpkg -s postgresql | awk '/^Version: / { print $2 }') ;
++ my $command = q(rpm -q --qf %{VERSION} postgresql) ;
+ }
my $version = qx($command) ;
chomp $version ;
- return $version ;
-diff -u gforge/deb-specific/sqlhelper.pm gforge-rpm/deb-specific/sqlhelper.pm
---- gforge/deb-specific/sqlhelper.pm 2004-05-16 18:54:58.000000000 +0200
-+++ gforge-rpm/deb-specific/sqlhelper.pm 2005-02-20 16:32:36.217311080 +0100
-@@ -264,18 +264,98 @@
+diff -ru gforge/deb-specific/sqlhelper.pm gforge-rpm/deb-specific/sqlhelper.pm
+--- gforge/deb-specific/sqlhelper.pm 2008-11-05 18:01:46.000000000 +0100
++++ gforge-rpm/deb-specific/sqlhelper.pm 2008-11-05 18:08:12.000000000 +0100
+@@ -289,18 +289,98 @@
my $v1 = shift || 0 ;
my $v2 = shift || 0 ;
diff --git a/gforge/utils/install-nsspgsql.sh b/gforge/utils/install-nsspgsql.sh
index 9c2735e0d4..6b09532f81 100644
--- a/gforge/utils/install-nsspgsql.sh
+++ b/gforge/utils/install-nsspgsql.sh
@@ -1,153 +1,161 @@
-#! /bin/bash
-#
-# $Id$
-#
-# Configure LDAP for GForge
-# Christian Bayle, Roland Mas
-# Initially written for debian-sf (Sourceforge for Debian)
-# Adapted as time went by for Gforge
-
-set -e
-
-if [ "$GFORGEDEBUG" != 1 ] ; then
- DEVNULL12="> /dev/null 2>&1"
- DEVNULL2="2> /dev/null"
-else
- set -x
-fi
-
-if [ $(id -u) != 0 -a "x$1" != "xlist" ] ; then
- echo "You must be root to run this, please enter passwd"
- exec su -c "$0 $1"
-fi
-
-PATH=$PATH:/usr/sbin
-
-setup_vars() {
- db_host=$(grep ^db_host= /etc/gforge/gforge.conf | cut -d= -f2-)
- db_name=$(grep ^db_name= /etc/gforge/gforge.conf | cut -d= -f2-)
- db_user=$(grep ^db_user= /etc/gforge/gforge.conf | cut -d= -f2-)
- db_password=$(grep ^db_password= /etc/gforge/gforge.conf | cut -d= -f2-)
-
- tmpfile_pattern=/tmp/$(basename $0).XXXXXX
-}
-
-# Should I do something for /etc/pam_pgsql.conf ?
-modify_pam_pgsql(){
- echo -n
- # echo "Nothing to do"
-}
-
-# Check/Modify /etc/libnss-ldap.conf
-configure_libnss_pgsql(){
- cat > /etc/nss-pgsql.conf.gforge-new < \$2
-EOF
- cat > /etc/nss-pgsql-root.conf.gforge-new < /etc/nss-pgsql.conf.gforge-new
- echo -n > /etc/nss-pgsql-root.conf.gforge-new
-}
-
-# Modify /etc/nsswitch.conf
-configure_nsswitch()
-{
- cp -a /etc/nsswitch.conf /etc/nsswitch.conf.gforge-new
- # This is sensitive file
- # By security i let priority to files
- # Should maybe enhance this to take in account nis
- # Maybe ask the order db/files/nis/pgsql
- if ! grep -q '^passwd:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
- perl -pi -e "s/^(passwd:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
- fi
- if ! grep -q '^group:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
- perl -pi -e "s/^(group:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
- fi
- if ! grep -q '^shadow:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
- perl -pi -e "s/^(shadow:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
- fi
-}
-
-# Purge /etc/nsswitch.conf
-purge_nsswitch()
-{
- cp -a /etc/nsswitch.conf /etc/nsswitch.conf.gforge-new
- perl -pi -e "s/^[^\n]*#Added by GForge install\n//" /etc/nsswitch.conf.gforge-new
- perl -pi -e "s/#Comment by GForge install#//" /etc/nsswitch.conf.gforge-new
-}
-
-# Main
-case "$1" in
- configure-files)
- setup_vars
- # echo "Modifying /etc/nss-pgsql.conf and /etc/nss-pgsql-root.conf"
- configure_libnss_pgsql
- # echo "Modifying /etc/nsswitch.conf"
- configure_nsswitch
- ;;
- configure)
- ;;
- purge-files)
- setup_vars
- # echo "Purging /etc/nsswitch.conf"
- purge_nsswitch
- # echo "Purging /etc/nss-pgsql.conf and /etc/nss-pgsql-root.conf"
- purge_libnss_pgsql
- ;;
- test|check)
- setup_vars
- check_server
- ;;
- setup)
- $0 configure-files
- $0 configure
- cp /etc/nss-pgsql.conf /etc/nss-pgsql.conf.gforge-old
- cp /etc/nss-pgsql-root.conf /etc/nss-pgsql-root.conf.gforge-old
- cp /etc/nsswitch.conf.gforge /etc/nsswitch.conf.gforge-old
- mv /etc/nss-pgsql.conf.gforge-new /etc/nss-pgsql.conf
- mv /etc/nss-pgsql-root.conf.gforge-new /etc/nss-pgsql-root.conf
- mv /etc/nsswitch.conf.gforge-new /etc/nsswitch.conf
- ;;
- cleanup)
- $0 purge-files
- cp /etc/nss-pgsql.conf /etc/nss-pgsql.conf.gforge-old
- cp /etc/nss-pgsql-root.conf /etc/nss-pgsql-root.conf.gforge-old
- cp /etc/nsswitch.conf.gforge /etc/nsswitch.conf.gforge-old
- mv /etc/nss-pgsql.conf.gforge-new /etc/nss-pgsql.conf
- mv /etc/nss-pgsql-root.conf.gforge-new /etc/nss-pgsql-root.conf
- mv /etc/nsswitch.conf.gforge-new /etc/nsswitch.conf
- ;;
- *)
- echo "Usage: $0 {configure|configure-files|purge-files|test|setup|cleanup}"
- exit 1
- ;;
-esac
+#! /bin/bash
+#
+# $Id: install-nsspgsql.sh 6586 2008-08-15 21:28:43Z cbayle $
+#
+# Configure LDAP for GForge
+# Christian Bayle, Roland Mas
+# Initially written for debian-sf (Sourceforge for Debian)
+# Adapted as time went by for Gforge
+
+set -e
+
+if [ "$GFORGEDEBUG" != 1 ] ; then
+ DEVNULL12="> /dev/null 2>&1"
+ DEVNULL2="2> /dev/null"
+else
+ set -x
+fi
+
+if [ $(id -u) != 0 -a "x$1" != "xlist" ] ; then
+ echo "You must be root to run this, please enter passwd"
+ exec su -c "$0 $1"
+fi
+
+PATH=$PATH:/usr/sbin
+
+setup_vars() {
+ db_host=$(grep ^db_host= /etc/gforge/gforge.conf | cut -d= -f2-)
+ db_name=$(grep ^db_name= /etc/gforge/gforge.conf | cut -d= -f2-)
+ db_user=$(grep ^db_user= /etc/gforge/gforge.conf | cut -d= -f2-)
+ db_password=$(grep ^db_password= /etc/gforge/gforge.conf | cut -d= -f2-)
+
+ db_user_nss=$db_user"_nss"
+
+ tmpfile_pattern=/tmp/$(basename $0).XXXXXX
+}
+
+# Should I do something for /etc/pam_pgsql.conf ?
+modify_pam_pgsql(){
+ echo -n
+ # echo "Nothing to do"
+}
+
+# Check/Modify /etc/libnss-ldap.conf
+configure_libnss_pgsql(){
+ cat > /etc/nss-pgsql.conf.gforge-new < \$2
+EOF
+ cat > /etc/nss-pgsql-root.conf.gforge-new < /etc/nss-pgsql.conf.gforge-new
+ echo -n > /etc/nss-pgsql-root.conf.gforge-new
+}
+
+# Modify /etc/nsswitch.conf
+configure_nsswitch()
+{
+ cp -a /etc/nsswitch.conf /etc/nsswitch.conf.gforge-new
+ # This is sensitive file
+ # By security i let priority to files
+ # Should maybe enhance this to take in account nis
+ # Maybe ask the order db/files/nis/pgsql
+ if ! grep -q '^passwd:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
+ perl -pi -e "s/^(passwd:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
+ fi
+ if ! grep -q '^group:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
+ perl -pi -e "s/^(group:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
+ fi
+ if ! grep -q '^shadow:.*pgsql' /etc/nsswitch.conf.gforge-new ; then
+ perl -pi -e "s/^(shadow:[^#\n]*)([^\n]*)/\1 pgsql \2#Added by GForge install\n#Comment by GForge install#\1\2/gs" /etc/nsswitch.conf.gforge-new
+ fi
+}
+
+# Purge /etc/nsswitch.conf
+purge_nsswitch()
+{
+ cp -a /etc/nsswitch.conf /etc/nsswitch.conf.gforge-new
+ perl -pi -e "s/^[^\n]*#Added by GForge install\n//" /etc/nsswitch.conf.gforge-new
+ perl -pi -e "s/#Comment by GForge install#//" /etc/nsswitch.conf.gforge-new
+}
+
+# Main
+case "$1" in
+ configure-files)
+ setup_vars
+ # echo "Modifying /etc/nss-pgsql.conf and /etc/nss-pgsql-root.conf"
+ configure_libnss_pgsql
+ # echo "Modifying /etc/nsswitch.conf"
+ configure_nsswitch
+ ;;
+ configure)
+ ;;
+ purge-files)
+ setup_vars
+ # echo "Purging /etc/nsswitch.conf"
+ purge_nsswitch
+ # echo "Purging /etc/nss-pgsql.conf and /etc/nss-pgsql-root.conf"
+ purge_libnss_pgsql
+ ;;
+ test|check)
+ setup_vars
+ check_server
+ ;;
+ setup)
+ $0 configure-files
+ $0 configure
+ if [ -f /etc/nss-pgsql.conf ] ; then
+ cp /etc/nss-pgsql.conf /etc/nss-pgsql.conf.gforge-old
+ fi
+ if [ -f /etc/nss-pgsql-root.conf ] ; then
+ cp /etc/nss-pgsql-root.conf /etc/nss-pgsql-root.conf.gforge-old
+ fi
+ if [ -f /etc/nsswitch.conf ] ; then
+ cp /etc/nsswitch.conf /etc/nsswitch.conf.gforge-old
+ fi
+ mv /etc/nss-pgsql.conf.gforge-new /etc/nss-pgsql.conf
+ mv /etc/nss-pgsql-root.conf.gforge-new /etc/nss-pgsql-root.conf
+ mv /etc/nsswitch.conf.gforge-new /etc/nsswitch.conf
+ ;;
+ cleanup)
+ $0 purge-files
+ cp /etc/nss-pgsql.conf /etc/nss-pgsql.conf.gforge-old
+ cp /etc/nss-pgsql-root.conf /etc/nss-pgsql-root.conf.gforge-old
+ cp /etc/nsswitch.conf.gforge /etc/nsswitch.conf.gforge-old
+ mv /etc/nss-pgsql.conf.gforge-new /etc/nss-pgsql.conf
+ mv /etc/nss-pgsql-root.conf.gforge-new /etc/nss-pgsql-root.conf
+ mv /etc/nsswitch.conf.gforge-new /etc/nsswitch.conf
+ ;;
+ *)
+ echo "Usage: $0 {configure|configure-files|purge-files|test|setup|cleanup}"
+ exit 1
+ ;;
+esac