# RPM spec file for FusionForge
#
# Initial work for 4.8 by JL Bond Consulting
-# Reworked for 5.1 by Alain Peyrat <aljeux@free.fr>
+# Reworked for 5.x by Alain Peyrat <aljeux@free.fr>
#
-# Copyright (C) 2010 Alain Peyrat
+# Copyright (C) 2010-2012 Alain Peyrat
#
# Global Definitions
%define fforge_admin fforgeadmin
-%define FORGE_DIR %{_datadir}/gforge
+%define FORGE_DIR %{_datadir}/gforge/src
%define FORGE_CONF_DIR %{_sysconfdir}/gforge
%define FORGE_LANG_DIR %{_datadir}/locale
%define FORGE_VAR_LIB %{_var}/lib/gforge
%define reloadhttpd() /etc/init.d/httpd httpd reload >/dev/null 2>&1
+# Disable debug binary detection & generation to speed up process.
+%global debug_package %{nil}
+
# RPM spec preamble
Summary: FusionForge Collaborative Development Environment
Name: fusionforge
Version: @@VERSION@@
-Release: 2%{?dist}
+Release: 1%{?dist}
BuildArch: noarch
License: GPL
Group: Development/Tools
Source0: %{name}-%{version}.tar.bz2
-Source1: README.mediawiki.jlbond
-Source2: LocalSettings.php
-Patch1: fusionforge-4.8.3-mediawiki.patch
-Patch2: fusionforge-4.8.3-register_globals.patch
URL: http://www.fusionforge.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Packager: Alain Peyrat <aljeux@free.fr>
Requires: httpd, mod_dav_svn, mod_ssl, php, php-pgsql, php-gd, php-mbstring, mailman
-Requires: postgresql, postgresql-libs, postgresql-server, postgresql-contrib
+Requires: postgresql >= 8.3
+Requires: postgresql-server >= 8.3
Requires: postfix, openssh, inetd, which
Requires: /bin/sh, /bin/bash
# BuildRequires: sed, perl
+%define INSTALL_LOG %{_var}/log/gforge/install-%{version}.log
+%define UPGRADE_LOG %{_var}/log/gforge/upgrade-%{version}.log
+
Provides: gforge = %{version}
%description
%description plugin-authhttpd
External HTTPD authentication plugin for FusionForge.
-%package plugin-authopenid
-Summary: External OpenID authentication plugin for FusionForge.
+# %package plugin-authopenid
+# Summary: External OpenID authentication plugin for FusionForge.
+# Group: Development/Tools
+# Requires: %{name} >= %{version}, php, postgresql
+# %description plugin-authopenid
+# External OpenID authentication plugin for FusionForge.
+
+%package plugin-ckeditor
+Summary: CKEditor plugin for FusionForge
Group: Development/Tools
-Requires: %{name} >= %{version}, php, postgresql
-%description plugin-authopenid
-External OpenID authentication plugin for FusionForge.
+Requires: %{name} >= %{version}, php, ckeditor
+%description plugin-ckeditor
+CKEditor is a WYSIWYG text editor that displays within a web browser.
%package plugin-cvssyncmail
Summary: Provides email notifications of changes to CVS repositories
This plugin adds the capability to notify users of changes to CVS repositories
in FusionForge.
+%package plugin-compactpreview
+Summary: Provides a preview mecanism
+Group: Development/Tools
+Requires: %{name} >= %{version}, php
+%description plugin-compactpreview
+This plugin adds support for user and project compact-preview
+(popups) compatible with the OSLC specifications.
+
%package plugin-cvstracker
Summary: Links CVS log messages to trackers and tasks.
Group: Development/Tools
which have indexed it. You can define search engines you want to use in
the configuration file.
-%package plugin-forumml
-Summary: Mailman to forums plugin for FusionForge
+%package plugin-extsubproj
+Summary: external sub project plugin for FusionForge
Group: Development/Tools
Requires: %{name} >= %{version}, php
-%description plugin-forumml
-ForumML integes mailing lists as forums in FusionForge
+%description plugin-extsubproj
+Manages links to external subprojects on remote forges.
+
+# %package plugin-forumml
+# Summary: Mailman to forums plugin for FusionForge
+# Group: Development/Tools
+# Requires: %{name} >= %{version}, php
+# %description plugin-forumml
+# ForumML integes mailing lists as forums in FusionForge
%package plugin-fckeditor
Summary: FCKEditor plugin for FusionForge
%description plugin-fckeditor
FCKEditor is a WYSIWYG text editor that displays within a web browser.
+%package plugin-foafprofiles
+Summary: FOAF profile for forge users
+Group: Development/Tools
+Requires: %{name} >= %{version}, php
+%description plugin-foafprofiles
+The foafprofile plugin manages the generation of a FOAF profile for forge users.
+
%package plugin-gravatar
Summary: Gravatar plugin for FusionForge
Group: Development/Tools
%description plugin-gravatar
This plugin adds faces images to FusionForge users using the gravatar service.
+%package plugin-headermenu
+Summary: Headermenu plugin for FusionForge
+Group: Development/Tools
+Requires: %{name} >= %{version}, php
+%description plugin-headermenu
+This plugin adds capability to add links right to login/logout.
+
%package plugin-hudson
Summary: Hudson continous integration plugin for FusionForge
Group: Development/Tools
%description plugin-mediawiki
This is a plugin to integrate MediaWiki within FusionForge.
+%package plugin-moinmoin
+Summary: MoinMoinWiki plugin for FusionForge
+Group: Development/Tools
+Requires: %{name} >= %{version}, php, postgresql, moin
+%description plugin-moinmoin
+This is a plugin to integrate MoinMoin wiki within FusionForge.
+
%package plugin-message
Summary: Global Information Message plugin for FusionForge
Group: Development/Tools
Requires: %{name} >= %{version}, php
%description plugin-message
This is a plugin to add a global announce message for FusionForge.
-It can be use to warn users for planned or current outage.
+It can be used to warn users for planned or current outage.
%package plugin-online_help
Summary: online_help plugin for FusionForge
This plugin allows the import of a project data previously exported
with ForgePlucker, or a compatible tool.
-%package plugin-projects-hierarchy
-Summary: projects-hierarchy plugin for FusionForge
-Group: Development/Tools
-Requires: %{name} >= %{version}, php
-%description plugin-projects-hierarchy
-This is a projects-hierarchy plugin within FusionForge.
+# %package plugin-projects-hierarchy
+# Summary: projects-hierarchy plugin for FusionForge
+# Group: Development/Tools
+# Requires: %{name} >= %{version}, php
+# %description plugin-projects-hierarchy
+# This is a projects-hierarchy plugin within FusionForge.
%package plugin-quota_management
Summary: quota_management plugin for FusionForge
%package plugin-scmsvn
Summary: Subversion plugin for FusionForge
Group: Development/Tools
-Requires: %{name} >= %{version}, php, subversion
+Requires: %{name} >= %{version}, php, subversion, viewvc
%description plugin-scmsvn
This RPM installs SCM SVN plugin for FusionForge and provides svn support
to FusionForge.
%package plugin-wiki
Summary: Wiki plugin for FusionForge
Group: Development/Tools
-Requires: %{name} >= %{version}, php, postgresql
+Requires: %{name} >= %{version}, php, postgresql, units
%description plugin-wiki
Wiki plugin for FusionForge. Allows for one wiki per project, integrated search,
page edits displayed on activity tab, and multi-project wiki preferences.
%description plugin-globalsearch
globalsearch plugin for FusionForge.
-%package plugin-mailman
-Summary: Mailman plugin for FusionForge
-Group: Development/Tools
-Requires: %{name} >= %{version}, php
-%description plugin-mailman
-Mailman plugin for FusionForge.
-
-%package plugin-mantisbt
-Summary: mantisbt plugin for FusionForge
-Group: Development/Tools
-Requires: %{name} >= %{version}, php, postgresql
-%description plugin-mantisbt
-mantisbt plugin for FusionForge.
-
-%package plugin-oauthprovider
-Summary: oauthprovider plugin for FusionForge
+# %package plugin-mailman
+# Summary: Mailman plugin for FusionForge
+# Group: Development/Tools
+# Requires: %{name} >= %{version}, php
+# %description plugin-mailman
+# Mailman plugin for FusionForge.
+
+# %package plugin-mantisbt
+# Summary: mantisbt plugin for FusionForge
+# Group: Development/Tools
+# Requires: %{name} >= %{version}, php, postgresql
+# %description plugin-mantisbt
+# mantisbt plugin for FusionForge.
+
+# %package plugin-oauthprovider
+# Summary: oauthprovider plugin for FusionForge
+# Group: Development/Tools
+# Requires: %{name} >= %{version}, php, postgresql
+# %description plugin-oauthprovider
+# oauthprovider plugin for FusionForge.
+
+%package plugin-webanalytics
+Summary: webanalytics plugin for FusionForge
Group: Development/Tools
Requires: %{name} >= %{version}, php, postgresql
-%description plugin-oauthprovider
-oauthprovider plugin for FusionForge.
+%description plugin-webanalytics
+webanalytics plugin for FusionForge.
%prep
%setup -q
-#%patch1 -p1
-#%patch2 -p1
-#%patch3 -p1
%build
# empty build section
%{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/etc
%{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/chroot/scmrepos/svn
%{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/chroot/scmrepos/cvs
+%{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/plugins/mediawiki
%{__install} -m 755 -d $RPM_BUILD_ROOT/home/groups
-%{__install} -m 755 -d $RPM_BUILD_ROOT/var/log/gforge
+%{__install} -m 755 -d $RPM_BUILD_ROOT%{_var}/log/gforge
# mock mediawiki directory because we symlink GForge skin to Monobook
%{__install} -m 755 -d $RPM_BUILD_ROOT/usr/share/mediawiki/skins
# Apache configuration file
%{__cp} -a etc/httpd.conf.d-fhs/* $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.conf.d/
%{__cp} -a etc/config.ini.d/defaults.ini $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/
-%{__cp} -a etc/config.ini.d/debug.ini $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/
%{__cp} -a etc/config.ini-fhs $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini
-%{__cp} -a etc/httpd.conf-fhs $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/gforge.conf
-#%{__cp} -a etc/gforge-httpd.conf.example $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/gforge.conf
-#%{__sed} -i -e 's|.*php_value[[:space:]]*include_path.*$|\tphp_value\tinclude_path ".:/usr/share/gforge/www/include:/usr/share/gforge:/etc/gforge:/usr/share/gforge/common:/usr/share/gforge/www:/usr/share/gforge/plugins"|' $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/gforge.conf
+%{__cp} -a etc/httpd.conf-fhs $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/z-gforge.conf
+#%{__cp} -a etc/gforge-httpd.conf.example $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/z-gforge.conf
+#%{__sed} -i -e 's|.*php_value[[:space:]]*include_path.*$|\tphp_value\tinclude_path ".:/usr/share/gforge/www/include:/usr/share/gforge:/etc/gforge:/usr/share/gforge/common:/usr/share/gforge/www:/usr/share/gforge/plugins"|' $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/z-gforge.conf
+
+%{__sed} -i -e 's!www-data!apache!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!/usr/share/jpgraph!/var/www/jpgraph-1.19!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!lists.$core/web_host!$core/web_host!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!scm.$core/web_host!$core/web_host!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!users.$core/web_host!$core/web_host!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!use_webdav = no!use_webdav = yes!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!use_shell = yes!use_shell = no!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!use_ftp = yes!use_ftp = no!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!use_people = yes!use_people = no!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!use_project_vhost = yes!use_project_vhost = no!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+%{__sed} -i -e 's!use_snippet = yes!use_snippet = no!g' $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
+
# install fusionforge crontab
-%{__install} -m 644 packaging/cron.d/cron.fusionforge $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/%{name}
+%{__sed} -e 's/\$FFUSER/%{gfuser}/g' packaging/cron.d/cron.fusionforge > $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/%{name}
%{__install} -m 644 deb-specific/sqlhelper.pm $RPM_BUILD_ROOT%{FORGE_DIR}/lib/sqlhelper.pm
%{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/rpm-specific
%{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/plugins/*/packaging
%{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/plugins/*/*.spec
-%{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/plugins/foafprofiles
+
### Plugin setup ###
+for i in $(utils/list-enabled-plugins.sh --disabled) ; do
+ %{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/$i
+done
+
%{__cp} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/*.ini $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/
%{__cp} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/cron.d/* $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/
%{__cp} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/httpd.d/* $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.d/
+%{__cp} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/httpd.conf.d/* $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.conf.d/
%{__cp} -rp $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/plugins/* $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/plugins/
%{__rm} -f $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/README
%{__ln_s} ../../plugins/authhttpd/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/authhttpd
# plugin: authopenid
-%{__ln_s} ../../plugins/authopenid/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/authopenid
+# %{__ln_s} ../../plugins/authopenid/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/authopenid
+
+# plugin: compactpreview
+%{__ln_s} ../../plugins/compactpreview/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/compactpreview
# plugin: cvssyncmail
# plugin: externalsearch
+# plugin: extsubproj
+%{__ln_s} ../../plugins/extsubproj/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/extsubproj
+
# plugin: fckeditor
%{__ln_s} ../../plugins/fckeditor/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/fckeditor
# plugin: forumml
-%{__ln_s} ../../plugins/forumml/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/forumml
+# %{__ln_s} ../../plugins/forumml/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/forumml
+
+# plugin: headermenu
+%{__ln_s} ../../plugins/headermenu/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/headermenu
# plugin: hudson
%{__ln_s} ../../plugins/hudson/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/hudson
# plugin: mediawiki
%{__ln_s} ../../plugins/mediawiki/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/mediawiki
-# create symlink for apache configuration for mediawiki plugin
-## first, delete the php_admin_value include_path
-%{__sed} -i -e "/^.*php_admin_value[[:space:]]*include_path.*/d" $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki
-%{__ln_s} %{FORGE_DIR}/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.d/03mediawiki.conf
-# this is pre-activated, so create the config symlink
-#%{__ln_s} %{FORGE_DIR}/plugins/mediawiki/etc/plugins/mediawiki $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/plugins/mediawiki
-# create symlinks to use MonoBook as the GForge skin
-%{__ln_s} monobook $RPM_BUILD_ROOT/usr/share/mediawiki/skins/gforge
-%{__ln_s} MonoBook.deps.php $RPM_BUILD_ROOT/usr/share/mediawiki/skins/GForge.deps.php
-%{__ln_s} MonoBook.php $RPM_BUILD_ROOT/usr/share/mediawiki/skins/GForge.php
-# sort out the GForge skin files and remove obsolete code
-%{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/mediawiki-skin
-%{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/usr/share/gforge
-%{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/usr/share/mediawiki/skins
-# insert our own LocalSettings.php
-#%{__cp} -f %{SOURCE2} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/usr/share/mediawiki/LocalSettings.php
-# insert our own README file
-%{__cp} -f %{SOURCE1} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/README.jlbond
+%{__ln_s} /usr/share/mediawiki/api.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/extensions $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/img_auth.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/includes $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/index.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/languages $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/maintenance/ $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/opensearch_desc.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/profileinfo.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/redirect.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/StartProfiler.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/thumb.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/trackback.php $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki/skins $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/www/
+%{__ln_s} /usr/share/mediawiki $RPM_BUILD_ROOT/var/lib/gforge/plugins/mediawiki/master
+%{__ln_s} /usr/share/gforge/src/plugins/mediawiki/mediawiki-skin/FusionForge.php $RPM_BUILD_ROOT/usr/share/mediawiki/skins/
+%{__ln_s} /usr/share/gforge/src/plugins/mediawiki/mediawiki-skin/fusionforge $RPM_BUILD_ROOT/usr/share/mediawiki/skins/
+
+# plugin: moinmoin
+%{__ln_s} ../../plugins/moinmoin/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/moinmoin
# plugin: message
%{__ln_s} ../../plugins/message/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/message
%{__ln_s} ../../plugins/online_help/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/online_help
# plugin: projects-hierarchy
-%{__ln_s} ../../plugins/projects-hierarchy/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/projects-hierarchy
+# %{__ln_s} ../../plugins/projects-hierarchy/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/projects-hierarchy
# plugin: quota_management
%{__ln_s} ../../plugins/quota_management/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/quota_management
%{__ln_s} ../../plugins/globalsearch/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/globalsearch
# plugin: mailman
-%{__ln_s} ../../plugins/mailman/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/mailman
+# %{__ln_s} ../../plugins/mailman/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/mailman
# plugin: mantisbt
-%{__ln_s} ../../plugins/mantisbt/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/mantisbt
+# %{__ln_s} ../../plugins/mantisbt/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/mantisbt
# plugin: oauthprovider
#%{__ln_s} ../../plugins/oauthprovider/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/oauthprovider
-for i in utils/list-enabled-plugins.sh --disabled ; do
- %{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/$i
- %{__rm} -f $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/$i.ini
- %{__rm} -f $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.d/[0-9][0-9]$i
-done
+# plugin: webanalytics
+%{__ln_s} ../../plugins/webanalytics/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/webanalytics
### END OF PLUGIN SETUP ###
%pre
+[ -d %{_var}/log/gforge ] || mkdir -p %{_var}/log/gforge
+
+if [ ! -d "/var/lib/pgsql/data/base" ]; then
+ /sbin/service postgresql initdb >>%{INSTALL_LOG} 2>&1
+fi
+
# we will need postgresql to be running. we start it, even if it already is running
# this won't hurt anything, just ensure we have a running database
-/sbin/service postgresql start >>/var/log/%{name}-install.log 2>&1
+/sbin/service postgresql start >>%{INSTALL_LOG} 2>&1
if [ "$1" -eq "1" ]; then
# setup user/group for gforge
if [ `/usr/bin/getent passwd | /bin/cut -d: -f1 | /bin/grep -c %{gfuser}` -eq 0 ] ; then
- echo "Did not find existing fusionforge user. Adding fusionforge group and user..." >>/var/log/%{name}-install.log 2>&1
/usr/sbin/groupadd -r %{gfgroup}
/usr/sbin/useradd -r -g %{gfgroup} -d %{FORGE_DIR} -s /bin/bash -c "FusionForge User" %{gfuser}
fi
FFORGE_ADMIN_PASSWORD=$(/bin/dd if=/dev/urandom bs=32 count=1 2>/dev/null | /usr/bin/sha1sum | cut -c1-8)
fi
export FFORGE_DB FFORGE_USER FFORGE_ADMIN_USER FFORGE_ADMIN_PASSWORD
- /usr/bin/php %{FORGE_DIR}/fusionforge-install-3-db.php >>/var/log/%{name}-install.log 2>&1
+ %{FORGE_DIR}/install-ng --config --database >>%{INSTALL_LOG} 2>&1
else
- echo "Database %{dbname} already exists. Will not proceed with database setup." >>/var/log/%{name}-install.log 2>&1
- echo "Please see %{FORGE_DIR}/fusionforge-install-3-db.php and run it manually" >>/var/log/%{name}-install.log 2>&1
- echo "if deemed necessary." >>/var/log/%{name}-install.log 2>&1
+ echo "Database %{dbname} already exists. Will not proceed with database setup." >>%{INSTALL_LOG} 2>&1
+ echo "Please see %{FORGE_DIR}/install-ng --database and run it manually" >>%{INSTALL_LOG} 2>&1
+ echo "if deemed necessary." >>%{INSTALL_LOG} 2>&1
+ %{FORGE_DIR}/install-ng --config >>%{INSTALL_LOG} 2>&1
fi
- /usr/bin/php %{FORGE_DIR}/db/upgrade-db.php >>/var/log/%{name}-install.log 2>&1
- /usr/bin/php %{FORGE_DIR}/utils/normalize_roles.php >>/var/log/%{name}-install.log 2>&1
-
HOSTNAME=`hostname -f`
#%{__sed} -i -e "s!gforge.company.com!$HOSTNAME!g" %{FORGE_CONF_DIR}/local.inc
- #%{__sed} -i -e "s!gforge.company.com!$HOSTNAME!g" /etc/httpd/conf.d/gforge.conf
+ #%{__sed} -i -e "s!gforge.company.com!$HOSTNAME!g" /etc/httpd/conf.d/z-gforge.conf
[ -d %{FORGE_VAR_LIB}/etc ] || mkdir %{FORGE_VAR_LIB}/etc
touch %{FORGE_VAR_LIB}/etc/httpd.vhosts
- /usr/bin/php %{FORGE_DIR}/fusionforge-install-4-config.php >>/var/log/%{name}-install.log 2>&1
+ %{__sed} -i -e "s/^#ServerName (.*):80/ServerName $HOSTNAME:80/" /etc/httpd/conf/httpd.conf
+ %{__sed} -i -e "s/^Include/#Include/" %{FORGE_CONF_DIR}/httpd.conf.d/ssl-on.inc
+
+ %{__sed} -i -e "s/^#ServerName (.*):80/ServerName $HOSTNAME:80/" /etc/httpd/conf/httpd.conf
+ %{__sed} -i -e "s/^Include/#Include/" %{FORGE_CONF_DIR}/httpd.conf.d/ssl-on.inc
- /etc/init.d/httpd restart >/dev/null 2>&1
+ /etc/init.d/httpd restart >>%{INSTALL_LOG} 2>&1
- chkconfig postgresql on >/dev/null 2>&1
+ chkconfig postgresql on >>%{INSTALL_LOG} 2>&1
# generate random hash for session_key
HASH=$(/bin/dd if=/dev/urandom bs=32 count=1 2>/dev/null | /usr/bin/sha1sum | cut -c1-40)
#%{__sed} -i -e "s/sys_session_key = 'foobar'/sys_session_key = '$HASH'/g" %{FORGE_CONF_DIR}/local.inc
+ # Mailman initial setup
+ /usr/lib/mailman/bin/newlist -q mailman $FFORGE_ADMIN_USER@$HOSTNAME $FFORGE_ADMIN_PASSWORD >>%{INSTALL_LOG} 2>&1
+ chkconfig mailman on >>%{INSTALL_LOG} 2>&1
+ /etc/init.d/mailman start >>%{INSTALL_LOG} 2>&1
+
# add noreply mail alias
echo "noreply: /dev/null" >> /etc/aliases
- /usr/bin/newaliases >/dev/null 2>&1
+ /usr/bin/newaliases >>%{INSTALL_LOG} 2>&1
+
+ /usr/bin/php %{FORGE_DIR}/db/upgrade-db.php >>%{INSTALL_LOG} 2>&1
+ /usr/bin/php %{FORGE_DIR}/utils/normalize_roles.php >>%{INSTALL_LOG} 2>&1
if [ $ret -ne 0 ] ; then
# display message about default admin account
sleep 10
fi
else
- /usr/bin/php %{FORGE_DIR}/db/upgrade-db.php >>/var/log/%{name}-upgrade.log 2>&1
+ /usr/bin/php %{FORGE_DIR}/db/upgrade-db.php >>%{UPGRADE_LOG} 2>&1
+ /usr/bin/php %{FORGE_DIR}/utils/normalize_roles.php >>%{UPGRADE_LOG} 2>&1
fi
%preun
%doc AUTHORS* CHANGES COPYING INSTALL* NEWS README*
%doc docs/*
#%attr(0660, %{httpduser}, gforge) %config(noreplace) %{FORGE_CONF_DIR}/local.inc
-#%attr(0640, %{httpduser}, %{httpdgroup}) %config(noreplace) %{_sysconfdir}/httpd/conf.d/gforge.conf
+#%attr(0640, %{httpduser}, %{httpdgroup}) %config(noreplace) %{_sysconfdir}/httpd/conf.d/z-gforge.conf
%attr(0644, root, root) %{_sysconfdir}/cron.d/%{name}
%attr(0775, %{httpduser}, %{httpdgroup}) %dir %{FORGE_VAR_LIB}/upload
%attr(755, root, %{httpdgroup}) %dir %{FORGE_DIR}
%{FORGE_DIR}/CHANGES
%{FORGE_DIR}/COPYING
%{FORGE_DIR}/INSTALL*
+%{FORGE_DIR}/Makefile
%{FORGE_DIR}/NEWS
%{FORGE_DIR}/README*
%{FORGE_DIR}/fusionforge.spec
-%{FORGE_DIR}/fusionforge-install*
-%{FORGE_DIR}/gforge-restricted.sh
-%{FORGE_DIR}/install.sh
-%{FORGE_DIR}/install-common.inc
%{FORGE_DIR}/install-ng
# Directories under %{FORGE_DIR}
%{FORGE_DIR}/backend
%{FORGE_DIR}/www/softwaremap
%{FORGE_DIR}/www/squal
%{FORGE_DIR}/www/stats
+%{FORGE_DIR}/www/support
%{FORGE_DIR}/www/survey
%{FORGE_DIR}/www/tabber
%{FORGE_DIR}/www/themes
%dir %{FORGE_CONF_DIR}/httpd.d
%dir %{FORGE_CONF_DIR}/httpd.conf.d
%{FORGE_CONF_DIR}/httpd.conf.d/*
-%{_sysconfdir}/httpd/conf.d/gforge.conf
+%{_sysconfdir}/httpd/conf.d/z-gforge.conf
%{FORGE_CONF_DIR}/config.ini.d/defaults.ini
-%{FORGE_CONF_DIR}/config.ini.d/debug.ini
%{FORGE_CONF_DIR}/config.ini
%dir %attr(0775,root,%{httpdgroup}) %{FORGE_CONF_DIR}/plugins
%dir %{FORGE_VAR_LIB}/scmtarballs
%dir %{FORGE_VAR_LIB}/scmsnapshots
%dir %{FORGE_VAR_LIB}/dumps
%{FORGE_VAR_LIB}/homedirs
+%dir %{_var}/log/gforge
/home/groups
-/var/log/gforge
/bin/cvssh.pl
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/authbuiltin.ini
%{FORGE_DIR}/plugins/authbuiltin
-%{FORGE_DIR}/www/plugins/authbuiltin
%files plugin-aselectextauth
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/aselectextauth.ini
%{FORGE_DIR}/plugins/authhttpd
%{FORGE_DIR}/www/plugins/authhttpd
-%files plugin-authopenid
-%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/authopenid.ini
-%{FORGE_DIR}/plugins/authopenid
-%{FORGE_DIR}/www/plugins/authopenid
+# %files plugin-authopenid
+# %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/authopenid.ini
+# %{FORGE_DIR}/plugins/authopenid
+
+%files plugin-ckeditor
+%{FORGE_DIR}/plugins/ckeditor
%files plugin-cvssyncmail
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/cvssyncmail.ini
%{FORGE_DIR}/www/plugins/cvstracker
%attr(-,%{httpduser},%{httpdgroup}) %{FORGE_CONF_DIR}/plugins/cvstracker
+%files plugin-compactpreview
+%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/compactpreview.ini
+%{FORGE_DIR}/plugins/compactpreview
+
%files plugin-doaprdf
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/doaprdf.ini
%{FORGE_DIR}/plugins/doaprdf
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/externalsearch.ini
%{FORGE_DIR}/plugins/externalsearch
+%files plugin-extsubproj
+%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/extsubproj.ini
+%{FORGE_DIR}/plugins/extsubproj
+
%files plugin-fckeditor
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/fckeditor.ini
%{FORGE_DIR}/plugins/fckeditor
%{FORGE_DIR}/www/plugins/fckeditor
-%files plugin-forumml
-%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/forumml.ini
-%{FORGE_DIR}/plugins/forumml
-%{FORGE_DIR}/www/plugins/forumml
+%files plugin-foafprofiles
+%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/foafprofiles.ini
+%{FORGE_DIR}/plugins/foafprofiles
+
+# %files plugin-forumml
+# %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/forumml.ini
+# %{FORGE_DIR}/plugins/forumml
+# %{FORGE_DIR}/www/plugins/forumml
%files plugin-gravatar
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/gravatar.ini
%{FORGE_DIR}/plugins/gravatar
+%files plugin-headermenu
+%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/headermenu.ini
+%{FORGE_DIR}/plugins/headermenu
+%{FORGE_DIR}/www/plugins/headermenu
+
%files plugin-hudson
%config(noreplace) %{FORGE_CONF_DIR}/plugins/hudson/
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/hudson.ini
%files plugin-mediawiki
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mediawiki.ini
-%config(noreplace) %{FORGE_CONF_DIR}/httpd.d/03mediawiki.conf
+%{_sysconfdir}/cron.d/fusionforge-plugin-mediawiki
%{FORGE_CONF_DIR}/httpd.d/61plugin-mediawiki
%{FORGE_DIR}/plugins/mediawiki/
%{FORGE_DIR}/www/plugins/mediawiki
-/usr/share/mediawiki/skins/gforge
-/usr/share/mediawiki/skins/GForge.deps.php
-/usr/share/mediawiki/skins/GForge.php
+%{FORGE_VAR_LIB}/plugins/mediawiki
+/usr/share/mediawiki/skins/FusionForge.php
+/usr/share/mediawiki/skins/fusionforge
+
+%files plugin-moinmoin
+%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/moinmoin.ini
+%{FORGE_DIR}/plugins/moinmoin/
+%{FORGE_DIR}/www/plugins/moinmoin
%files plugin-message
%{FORGE_DIR}/plugins/message
%{FORGE_DIR}/plugins/projectimport
%{FORGE_DIR}/www/plugins/projectimport
-%files plugin-projects-hierarchy
-%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/projects-hierarchy.ini
-%{FORGE_DIR}/plugins/projects-hierarchy
-%{FORGE_DIR}/www/plugins/projects-hierarchy
+# %files plugin-projects-hierarchy
+# %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/projects-hierarchy.ini
+# %{FORGE_DIR}/plugins/projects-hierarchy
+# %{FORGE_DIR}/www/plugins/projects-hierarchy
%files plugin-quota_management
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/quota_management.ini
%files plugin-scmgit
%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmgit.ini
+%{FORGE_CONF_DIR}/httpd.conf.d/plugin-scmgit-dav.inc
%{FORGE_DIR}/plugins/scmgit
%{FORGE_DIR}/www/plugins/scmgit
%files plugin-wiki
%config(noreplace) %{FORGE_CONF_DIR}/plugins/wiki/
%{_sysconfdir}/cron.d/cron.wiki
-%{FORGE_CONF_DIR}/httpd.d/03wiki.conf
+%{FORGE_CONF_DIR}/httpd.conf.d/plugin-wiki.inc
%{FORGE_DIR}/plugins/wiki
%{FORGE_DIR}/www/wiki
%{FORGE_DIR}/plugins/globalsearch
%{FORGE_DIR}/www/plugins/globalsearch
-%files plugin-mailman
-%config(noreplace) %{FORGE_CONF_DIR}/plugins/mailman/
-%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mailman.ini
-%{FORGE_CONF_DIR}/httpd.d/plugin-oslc.inc
-%{FORGE_CONF_DIR}/httpd.d/62plugin-list-mailman
-%{FORGE_CONF_DIR}/httpd.d/200list.vhost
-%{FORGE_CONF_DIR}/httpd.d/20list
-%{FORGE_CONF_DIR}/httpd.d/20zlist.vhost
-%{FORGE_CONF_DIR}/httpd.d/21list.vhost.ssl
-%{FORGE_DIR}/plugins/mailman
-%{FORGE_DIR}/www/plugins/mailman
-
-%files plugin-mantisbt
-%config(noreplace) %{FORGE_CONF_DIR}/plugins/mantisbt/
-%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mantisbt.ini
-%{FORGE_DIR}/plugins/mantisbt
-%{FORGE_DIR}/www/plugins/mantisbt
-
-%files plugin-oauthprovider
-%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/oauthprovider.ini
-%config(noreplace) %{FORGE_CONF_DIR}/plugins/oauthprovider/
-%{FORGE_CONF_DIR}/httpd.d/62plugin-oauthprovider
-%{FORGE_DIR}/plugins/oauthprovider
+# %files plugin-mailman
+# %config(noreplace) %{FORGE_CONF_DIR}/plugins/mailman/
+# %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mailman.ini
+# %{FORGE_CONF_DIR}/httpd.d/plugin-oslc.inc
+# %{FORGE_CONF_DIR}/httpd.d/62plugin-list-mailman
+# %{FORGE_CONF_DIR}/httpd.d/200list.vhost
+# %{FORGE_CONF_DIR}/httpd.d/20list
+# %{FORGE_CONF_DIR}/httpd.d/20zlist.vhost
+# %{FORGE_CONF_DIR}/httpd.d/21list.vhost.ssl
+# %{FORGE_DIR}/plugins/mailman
+# %{FORGE_DIR}/www/plugins/mailman
+
+# %files plugin-mantisbt
+# %config(noreplace) %{FORGE_CONF_DIR}/plugins/mantisbt/
+# %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mantisbt.ini
+# %{FORGE_DIR}/plugins/mantisbt
+# %{FORGE_DIR}/www/plugins/mantisbt
+
+# %files plugin-oauthprovider
+# %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/oauthprovider.ini
+# %config(noreplace) %{FORGE_CONF_DIR}/plugins/oauthprovider/
+# %{FORGE_CONF_DIR}/httpd.d/62plugin-oauthprovider
+# %{FORGE_DIR}/plugins/oauthprovider
+
+%files plugin-webanalytics
+%config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/webanalytics.ini
+%{FORGE_DIR}/plugins/webanalytics
+%{FORGE_DIR}/www/plugins/webanalytics
%changelog
+* Thu Jun 07 2012 - Alain Peyrat <aljeux@free.fr> - 5.1.90-1
+- Adapted for 5.2 with new install scripts.
+
* Tue May 17 2011 - Thorsten Glaser <t.glaser@tarent.de> - 5.0.50-2
- Adapted for versioning of the forge via the packaging