2 # RPM spec file for FusionForge
4 # Initial work for 4.8 by JL Bond Consulting
5 # Reworked for 5.1 by Alain Peyrat <aljeux@free.fr>
7 # Copyright (C) 2010 Alain Peyrat
15 %define gfgroup gforge
17 %define httpduser apache
18 %define httpdgroup apache
20 %define fforge_admin fforgeadmin
22 %define FORGE_DIR %{_datadir}/gforge
23 %define FORGE_CONF_DIR %{_sysconfdir}/gforge
24 %define FORGE_LANG_DIR %{_datadir}/locale
25 %define FORGE_VAR_LIB %{_var}/lib/gforge
27 %define reloadhttpd() /etc/init.d/httpd httpd reload >/dev/null 2>&1
30 Summary: FusionForge Collaborative Development Environment
36 Group: Development/Tools
37 Source0: %{name}-%{version}.tar.bz2
38 Source1: README.mediawiki.jlbond
39 Source2: LocalSettings.php
40 Patch1: fusionforge-4.8.3-mediawiki.patch
41 Patch2: fusionforge-4.8.3-register_globals.patch
42 URL: http://www.fusionforge.org/
43 BuildRoot: %{_tmppath}/%{name}-%{version}-root
44 Packager: Alain Peyrat <aljeux@free.fr>
46 Requires: httpd, mod_dav_svn, mod_ssl, php, php-pgsql, php-gd, php-mbstring, mailman
47 Requires: postgresql, postgresql-libs, postgresql-server, postgresql-contrib
48 Requires: postfix, openssh, inetd, which
50 Requires: /bin/sh, /bin/bash
51 Requires: perl, perl-DBI, perl-HTML-Parser, perl-Text-Autoformat, perl-Mail-Sendmail, perl-Sort-Versions
54 Requires: /var/www/jpgraph-1.19/jpgraph.php
55 #Requires: libnss-pgsql >= 1.4
57 Requires: php-htmlpurifier >= 4.0.0
60 Requires: /usr/bin/newaliases
61 Requires: php-pear-HTTP_WebDAV_Server
62 Requires: php-pecl-zip
64 # BuildRequires: sed, perl
66 Provides: gforge = %{version}
69 FusionForge provides many tools to aid collaboration in a
70 development project, such as bug-tracking, task management,
71 mailing-lists, SCM repository, forums, support request helper,
72 web/FTP hosting, release management, etc. All these services are
73 integrated into one web site and managed through a web interface.
75 %package plugin-aselectextauth
76 Summary: A-select external authentication for FusionForge
77 Group: Development/Tools
78 Requires: %{name} >= %{version}, php, postgresql
79 %description plugin-aselectextauth
80 A system plugin for authenticating users in fusionforge. A-Select is a framework
81 where users can be authenticated by several means with Authentication
84 %package plugin-cvssyncmail
85 Summary: Provides email notifications of changes to CVS repositories
86 Group: Development/Tools
87 Requires: %{name} >= %{version}, %{name}-scmcvs, python, php
88 %description plugin-cvssyncmail
89 This plugin adds the capability to notify users of changes to CVS repositories
92 %package plugin-cvstracker
93 Summary: Links CVS log messages to trackers and tasks.
94 Group: Development/Tools
95 Requires: %{name} >= %{version}, %{name}-scmcvs, php, postgresql
96 %description plugin-cvstracker
97 This is a fusionforge plugin that allows linking CVS log messages to
98 trackers and tasks. It will review all commits in a project and search for
99 specific string to know which task or tracker is related.
101 %package plugin-externalsearch
102 Summary: external search plugin for FusionForge
103 Group: Development/Tools
104 Requires: %{name} >= %{version}, php
105 %description plugin-externalsearch
106 This plugin adds a new search engine to your FusionForge site. It allows
107 your users to search your FusionForge site through external search engines
108 which have indexed it. You can define search engines you want to use in
109 the configuration file.
111 %package plugin-forumml
112 Summary: Mailman to forums plugin for FusionForge
113 Group: Development/Tools
114 Requires: %{name} >= %{version}, php
115 %description plugin-forumml
116 ForumML integes mailing lists as forums in FusionForge
118 %package plugin-fckeditor
119 Summary: FCKEditor plugin for FusionForge
120 Group: Development/Tools
121 Requires: %{name} >= %{version}, php
122 %description plugin-fckeditor
123 FCKEditor is a WYSIWYG text editor that displays within a web browser.
125 %package plugin-gravatar
126 Summary: Gravatar plugin for FusionForge
127 Group: Development/Tools
128 Requires: %{name} >= %{version}, php
129 %description plugin-gravatar
130 This plugin adds faces images to FusionForge users using the gravatar service.
132 %package plugin-hudson
133 Summary: Hudson continous integration plugin for FusionForge
134 Group: Development/Tools
135 Requires: %{name} >= %{version}, php
136 %description plugin-hudson
137 This plugin adds hudson integration to FusionForge.
139 %package plugin-ldapextauth
140 Summary: external LDAP authentication for FusionForge plugin
141 Group: Development/Tools
142 Requires: %{name} >= %{version}, php, php-ldap
143 %description plugin-ldapextauth
144 This plugin provides LDAP authentication capability for FusionForge.
146 %package plugin-mantis
147 Summary: MantisBT plugin for FusionForge
148 Group: Development/Tools
149 Requires: %{name} >= %{version}, php
150 %description plugin-mantis
151 A plugin to use the MantisBT web-based bug tracking system with FusionForge.
153 %package plugin-mediawiki
154 Summary: Mediawiki plugin for FusionForge
155 Group: Development/Tools
156 Requires: %{name} >= %{version}, php, mediawiki
157 %description plugin-mediawiki
158 This is a plugin to integrate MediaWiki within FusionForge.
160 %package plugin-online_help
161 Summary: online_help plugin for FusionForge
162 Group: Development/Tools
163 Requires: %{name} >= %{version}, php
164 %description plugin-online_help
165 This is a online_help plugin within FusionForge.
168 Summary: OSLC plugin for FusionForge
169 Group: Development/Tools
170 Requires: %{name} >= %{version}, php, php-ZendFramework > 1.10
171 %description plugin-oslc
172 OSLC-CM compatible plugin for FusionForge tracker system.
173 OSLC-CM is a standard specification for APIs in Change Management
174 applications. It is based on Web technologies such as REST, RDF, or AJAX.
175 This package provides an OSLC-CM V2 compatible plugin for FusionForge
178 %package plugin-projects_hierarchy
179 Summary: projects_hierarchy plugin for FusionForge
180 Group: Development/Tools
181 Requires: %{name} >= %{version}, php
182 %description plugin-projects_hierarchy
183 This is a projects_hierarchy plugin within FusionForge.
185 %package plugin-quota_management
186 Summary: quota_management plugin for FusionForge
187 Group: Development/Tools
188 Requires: %{name} >= %{version}, php
189 %description plugin-quota_management
190 This is a quota_management plugin within FusionForge.
192 %package plugin-scmarch
193 Summary: Arch version control plugin for FusionForge
194 Group: Development/Tools
195 Requires: %{name} >= %{version}, php, arch
196 %description plugin-scmarch
197 This is a plugin to integrate Arch version control system with FusionForge
199 %package plugin-scmbzr
200 Summary: Bazaar version control plugin for FusionForge
201 Group: Development/Tools
202 Requires: %{name} >= %{version}, php, bazaar
203 %description plugin-scmbzr
204 This is a plugin to integrate Bazaar version control system with FusionForge
206 %package plugin-scmdarcs
207 Summary: DARCS version control plugin for FusionForge
208 Group: Development/Tools
209 Requires: %{name} >= %{version}, php, darcs
210 %description plugin-scmdarcs
211 This is a plugin to integrate DARCS version control system with FusionForge
213 %package plugin-scmgit
214 Summary: Git version control plugin for FusionForge
215 Group: Development/Tools
216 Requires: %{name} >= %{version}, php, git, gitweb
217 %description plugin-scmgit
218 This is a plugin to integrate Git version control system with FusionForge
220 %package plugin-scmhg
221 Summary: Mercurial (hg) version control plugin for FusionForge
222 Group: Development/Tools
223 Requires: %{name} >= %{version}, php, hg
224 %description plugin-scmhg
225 This is a plugin to integrate Mercurial (hg) version control system with FusionForge
227 %package plugin-scmccase
228 Summary: Clear Case plugin for FusionForge
229 Group: Development/Tools
230 Requires: %{name} >= %{version}, php
231 %description plugin-scmccase
232 This is the Clear Case plugin for FusionForge. It creats Clear Case repositories
233 for projects within FusionForge.
235 %package plugin-scmcvs
236 Summary: CVS plugin for FusionForge
237 Group: Development/Tools
238 Requires: %{name} >= %{version}, php, cvs
239 %description plugin-scmcvs
240 FusionForge is a web-based Collaborative Development Environment offering
241 easy access to CVS, mailing lists, bug tracking, message
242 boards/forums, task management, permanent file archival, and total
243 web-based administration.
245 This RPM installs SCM CVS plugin for FusionForge and provides CVS support
248 It also provides a specific version of CVSWeb wrapped in FusionForge.
250 %package plugin-scmsvn
251 Summary: Subversion plugin for FusionForge
252 Group: Development/Tools
253 Requires: %{name} >= %{version}, php, subversion
254 %description plugin-scmsvn
255 This RPM installs SCM SVN plugin for FusionForge and provides svn support
258 %package plugin-svncommitemail
259 Summary: subversion commit email plugin for FusionForge
260 Group: Development/Tools
261 Requires: %{name} >= %{version}, php, subversion, perl, %{name}-scmsvn >= %{version}
262 %description plugin-svncommitemail
263 This RPM installs subversion commit email notification plugin for FusionForge.
265 %package plugin-svntracker
266 Summary: SVNTracker plugin for FusionForge
267 Group: Development/Tools
268 Requires: %{name} >= %{version}, php, subversion, perl, postgresql, %{name}-scmsvn >= %{version}
269 %description plugin-svntracker
270 SVNTracker plugin allows linking SVN log messages to Trackers and tasks.
271 It will review all commits in a project and search for a specific string
272 to know which task or tracker is related.
274 %package plugin-blocks
275 Summary: Blocks plugin for FusionForge
276 Group: Development/Tools
277 Requires: %{name} >= %{version}
278 %description plugin-blocks
279 HTML blocks plugin for FusionForge.
281 %package plugin-extratabs
282 Summary: extratabs plugin for FusionForge
283 Group: Development/Tools
284 Requires: %{name} >= %{version}
285 %description plugin-extratabs
286 HTML extratabs plugin for FusionForge.
289 Summary: Wiki plugin for FusionForge
290 Group: Development/Tools
291 Requires: %{name} >= %{version}, php, postgresql
292 %description plugin-wiki
293 Wiki plugin for FusionForge. Allows for one wiki per project, integrated search,
294 page edits displayed on activity tab, and multi-project wiki preferences.
296 %package plugin-projectlabels
297 Summary: Labels plugin for FusionForge
298 Group: Development/Tools
299 Requires: %{name} >= %{version}, php, postgresql
300 %description plugin-projectlabels
301 Project Labels plugin for FusionForge.
303 %package plugin-contribtracker
304 Summary: contribtracker plugin for FusionForge
305 Group: Development/Tools
306 Requires: %{name} >= %{version}, php, postgresql
307 %description plugin-contribtracker
308 contribtracker plugin for FusionForge.
310 %package plugin-globalsearch
311 Summary: globalsearch plugin for FusionForge
312 Group: Development/Tools
313 Requires: %{name} >= %{version}, php, postgresql
314 %description plugin-globalsearch
315 globalsearch plugin for FusionForge.
317 %package plugin-mailman
318 Summary: Mailman plugin for FusionForge
319 Group: Development/Tools
320 Requires: %{name} >= %{version}, php
321 %description plugin-mailman
322 Mailman plugin for FusionForge.
324 %package plugin-mantisbt
325 Summary: mantisbt plugin for FusionForge
326 Group: Development/Tools
327 Requires: %{name} >= %{version}, php, postgresql
328 %description plugin-mantisbt
329 mantisbt plugin for FusionForge.
338 # empty build section
341 %{__rm} -rf $RPM_BUILD_ROOT
343 # creating required directories
344 %{__install} -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d
345 %{__install} -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/cron.d
346 %{__install} -m 755 -d $RPM_BUILD_ROOT/bin
347 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_DIR}
348 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_DIR}/lib
349 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_CONF_DIR}
350 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.d
351 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.conf.d
352 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d
353 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/plugins
354 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_LANG_DIR}
355 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}
356 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/upload
357 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/scmtarballs
358 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/scmsnapshots
359 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/homedirs
360 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/dumps
361 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/etc
362 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/chroot/scmrepos/svn
363 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_VAR_LIB}/chroot/scmrepos/cvs
364 %{__install} -m 755 -d $RPM_BUILD_ROOT/home/groups
365 %{__install} -m 755 -d $RPM_BUILD_ROOT/var/log/gforge
366 # mock mediawiki directory because we symlink GForge skin to Monobook
367 %{__install} -m 755 -d $RPM_BUILD_ROOT/usr/share/mediawiki/skins
369 # we define a search and replace function, we'll be using this a lot
370 # to fix several parts of the installation
373 /usr/bin/find . -type f | xargs grep -l ${1} | xargs %{__sed} -i -e "s+${1}+${2}+g"
376 # we need to fix up the fusionforge-install-3-db.php script to ref %{FORGE_DIR}
377 search_and_replace "/opt/gforge" "%{FORGE_DIR}"
380 %{__cp} -a * $RPM_BUILD_ROOT/%{FORGE_DIR}/
382 # create project vhost space symlink
383 %{__ln_s} /home/groups $RPM_BUILD_ROOT/%{FORGE_VAR_LIB}/homedirs/groups
384 # install restricted shell for cvs accounts
385 %{__cp} -a plugins/scmcvs/bin/cvssh.pl $RPM_BUILD_ROOT/bin/
387 # Fix configuration files entries (various sys_* variables)
388 #%{__cp} -a etc/local.inc.example $RPM_BUILD_ROOT/%{FORGE_CONF_DIR}/local.inc
389 #%{__sed} -i -e "s!/path/to/gforge!%{FORGE_DIR}!g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
390 #%{__sed} -i -e "s!/path/to/jpgraph!/var/www/jpgraph-1.19!g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
391 #%{__sed} -i -e "s/\$sys_dbname=.*/\$sys_dbname='%{dbname}';/g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
392 #%{__sed} -i -e "s/\$sys_dbuser=.*/\$sys_dbuser='%{dbuser}';/g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
393 #%{__sed} -i -e "s/\$sys_apache_user=.*/\$sys_apache_user='%{httpduser}';/g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
394 #%{__sed} -i -e "s/\$sys_apache_group=.*/\$sys_apache_group='%{httpdgroup}';/g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
395 #%{__sed} -i -e "s|\$sys_plugins_path=.*|\$sys_plugins_path=\"%{FORGE_DIR}/plugins\";|g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
396 #%{__sed} -i -e "s|\$sys_upload_dir=.*|\$sys_upload_dir=\"\$sys_var_path/upload\";|g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
397 #%{__sed} -i -e "s|\$sys_urlroot=.*|\$sys_urlroot=\"%{FORGE_DIR}/www\";|g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/local.inc
399 # Replace sys_localinc, sys_gfdbname, sys_gfdbuser
400 #%{__cp} -a etc/httpd.secrets.example $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.secrets
401 #%{__sed} -i -e "s|sys_localinc.*$|sys_localinc %{FORGE_CONF_DIR}/local.inc|g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.secrets
402 #%{__sed} -i -e "s|sys_gfdbname.*$|sys_gfdbname %{dbname}|g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.secrets
403 #%{__sed} -i -e "s|sys_gfdbuser.*$|sys_gfdbname %{dbuser}|g" $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.secrets
405 # Apache configuration file
406 %{__cp} -a etc/httpd.conf.d-fhs/* $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.conf.d/
407 %{__cp} -a etc/config.ini.d-fhs/* $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/
408 %{__cp} -a etc/config.ini-fhs $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini
409 %{__cp} -a etc/httpd.conf-fhs $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/gforge.conf
410 #%{__cp} -a etc/gforge-httpd.conf.example $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/gforge.conf
411 #%{__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
412 # install fusionforge crontab
413 %{__install} -m 644 packaging/cron.d/cron.fusionforge $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/%{name}
415 %{__install} -m 644 deb-specific/sqlhelper.pm $RPM_BUILD_ROOT%{FORGE_DIR}/lib/sqlhelper.pm
417 # Install locale files in Redhat standard location
418 %{__cp} -a locales/* $RPM_BUILD_ROOT/%{FORGE_LANG_DIR}/
420 %{__rm} -f $RPM_BUILD_ROOT%{FORGE_DIR}/utils/fusionforge-shell-postgresql.spec
422 %{__rm} -f $RPM_BUILD_ROOT%{FORGE_DIR}/COPYING.php
423 %{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/packaging
424 %{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/deb-specific
425 %{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/rpm-specific
426 %{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/plugins/*/packaging
427 %{__rm} -fr $RPM_BUILD_ROOT/%{FORGE_DIR}/plugins/*/*.spec
430 %{__cp} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/*.ini $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/config.ini.d/
431 %{__cp} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/cron.d/* $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/
432 %{__cp} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/httpd.d/* $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.d/
433 %{__cp} -rp $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/*/etc/plugins/* $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/plugins/
434 %{__rm} -f $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/README
436 # plugin: aselectextauth
438 # plugin: cvssyncmail
441 # delete stuff that is clearly outdated/obsolete so we don't package this and confuse others
442 %{__rm} -f $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/cvstracker/httpd.conf
443 %{__rm} -f $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/cvstracker/Makefile
444 %{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/cvstracker/rpm-specific
446 # plugin: externalsearch
451 %{__ln_s} ../../plugins/forumml/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/forumml
454 %{__ln_s} ../../plugins/hudson/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/hudson
456 # plugin: ldapextauth
457 %{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/ldapextauth/rpm-specific
462 # create symlink for apache configuration for mediawiki plugin
463 ## first, delete the php_admin_value include_path
464 %{__sed} -i -e "/^.*php_admin_value[[:space:]]*include_path.*/d" $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki
465 %{__ln_s} %{FORGE_DIR}/plugins/mediawiki/etc/httpd.d/61plugin-mediawiki $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/httpd.d/03mediawiki.conf
466 # this is pre-activated, so create the config symlink
467 #%{__ln_s} %{FORGE_DIR}/plugins/mediawiki/etc/plugins/mediawiki $RPM_BUILD_ROOT%{FORGE_CONF_DIR}/plugins/mediawiki
468 # create symlinks to use MonoBook as the GForge skin
469 %{__ln_s} monobook $RPM_BUILD_ROOT/usr/share/mediawiki/skins/gforge
470 %{__ln_s} MonoBook.deps.php $RPM_BUILD_ROOT/usr/share/mediawiki/skins/GForge.deps.php
471 %{__ln_s} MonoBook.php $RPM_BUILD_ROOT/usr/share/mediawiki/skins/GForge.php
472 # sort out the GForge skin files and remove obsolete code
473 %{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/mediawiki-skin
474 %{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/usr/share/gforge
475 %{__rm} -rf $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/usr/share/mediawiki/skins
476 # insert our own LocalSettings.php
477 #%{__cp} -f %{SOURCE2} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/usr/share/mediawiki/LocalSettings.php
478 # insert our own README file
479 %{__cp} -f %{SOURCE1} $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/mediawiki/README.jlbond
481 # plugin: online_help
483 # plugin: projects_hierarchy
485 # plugin: quota_management
494 %{__ln_s} ../../plugins/scmcvs $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/scmcvs
495 %{__install} -m 644 plugins/scmcvs/cron.d/%{name}-plugin-scmcvs $RPM_BUILD_ROOT%{_sysconfdir}/cron.d
500 # this is pre-activated, so create the config symlink
501 %{__ln_s} ../../plugins/scmsvn/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/scmsvn
504 %{__ln_s} ../../plugins/scmgit/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/scmgit
505 %{__install} -m 755 -d $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/scmgit/www/cgi-bin
506 %{__ln_s} /usr/share/gitweb/gitweb.cgi $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/scmgit/www/cgi-bin/gitweb.cgi
507 %{__ln_s} /usr/share/gitweb/static/gitweb.css $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/scmgit/www/gitweb.css
508 %{__ln_s} /usr/share/gitweb/static/gitweb.js $RPM_BUILD_ROOT%{FORGE_DIR}/plugins/scmgit/www/gitweb.js
512 # plugin: svncommitemail
516 %{__install} -m 644 plugins/svntracker/rpm-specific/cron.d/gforge-plugin-svntracker $RPM_BUILD_ROOT%{_sysconfdir}/cron.d
519 %{__ln_s} ../../plugins/blocks/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/blocks
522 %{__ln_s} ../../plugins/extratabs/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/extratabs
525 %{__ln_s} ../plugins/wiki/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/wiki
528 %{__ln_s} ../../plugins/oslc/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/oslc
530 # plugin: projectlabels
531 %{__ln_s} ../../plugins/projectlabels/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/projectlabels
533 # plugin: contribtracker
534 %{__ln_s} ../../plugins/contribtracker/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/contribtracker
536 # plugin: globalsearch
537 %{__ln_s} ../../plugins/globalsearch/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/globalsearch
540 %{__ln_s} ../../plugins/mailman/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/mailman
543 %{__ln_s} ../../plugins/mantisbt/www $RPM_BUILD_ROOT%{FORGE_DIR}/www/plugins/mantisbt
545 ### END OF PLUGIN SETUP ###
548 # we will need postgresql to be running. we start it, even if it already is running
549 # this won't hurt anything, just ensure we have a running database
550 /sbin/service postgresql start >>/var/log/%{name}-install.log 2>&1
552 if [ "$1" -eq "1" ]; then
553 # setup user/group for gforge
554 if [ `/usr/bin/getent passwd | /bin/cut -d: -f1 | /bin/grep -c %{gfuser}` -eq 0 ] ; then
555 echo "Did not find existing fusionforge user. Adding fusionforge group and user..." >>/var/log/%{name}-install.log 2>&1
556 /usr/sbin/groupadd -r %{gfgroup}
557 /usr/sbin/useradd -r -g %{gfgroup} -d %{FORGE_DIR} -s /bin/bash -c "FusionForge User" %{gfuser}
562 if [ "$1" -eq "1" ]; then
563 # check to see if the database already exists. if not, we proceed to create it.
564 # if so, we print a warning message.
565 echo "\q" | su - postgres -c "/usr/bin/psql %{dbname}" 1>/dev/null 2>&1
567 if [ $ret -ne 0 ] ; then
569 FFORGE_USER=%{dbuser}
570 FFORGE_ADMIN_USER=%{fforge_admin}
571 FFORGE_ADMIN_PASSWORD=$(/bin/dd if=/dev/urandom bs=32 count=1 2>/dev/null | /usr/bin/sha1sum | cut -c1-8)
572 export FFORGE_DB FFORGE_USER FFORGE_ADMIN_USER FFORGE_ADMIN_PASSWORD
573 /usr/bin/php %{FORGE_DIR}/fusionforge-install-3-db.php >>/var/log/%{name}-install.log 2>&1
575 echo "Database %{dbname} already exists. Will not proceed with database setup." >>/var/log/%{name}-install.log 2>&1
576 echo "Please see %{FORGE_DIR}/fusionforge-install-3-db.php and run it manually" >>/var/log/%{name}-install.log 2>&1
577 echo "if deemed necessary." >>/var/log/%{name}-install.log 2>&1
580 /usr/bin/php %{FORGE_DIR}/db/upgrade-db.php >>/var/log/%{name}-install.log 2>&1
582 HOSTNAME=`hostname -f`
583 #%{__sed} -i -e "s!gforge.company.com!$HOSTNAME!g" %{FORGE_CONF_DIR}/local.inc
584 #%{__sed} -i -e "s!gforge.company.com!$HOSTNAME!g" /etc/httpd/conf.d/gforge.conf
585 [ -d %{FORGE_VAR_LIB}/etc ] || mkdir %{FORGE_VAR_LIB}/etc
586 touch %{FORGE_VAR_LIB}/etc/httpd.vhosts
588 # ====================
589 # Installation from scratch, let's generate initial config files
590 if [ ! -e %{FORGE_CONF_DIR}/config.ini.d ] ; then
591 mkdir -p %{FORGE_CONF_DIR}/config.ini.d
593 if [ ! -e %{FORGE_CONF_DIR}/config.ini.d/rpm-install.ini ] ; then
594 cat > %{FORGE_CONF_DIR}/config.ini.d/rpm-install.ini <<EOF
595 ; This file was generated by the RPM installation system.
596 ; You can edit the values here or move them to other files.
599 forge_name=FusionForge
603 if [ ! -e %{FORGE_CONF_DIR}/config.ini.d/rpm-install-secrets.ini ] ; then
604 t=$(mktemp %{FORGE_CONF_DIR}/config.ini.d/rpm-install-secrets.ini.XXXXXX)
605 if [ "$pw" = "" ] ; then
606 if [ -c /dev/urandom ]; then # ...using /dev/urandom when possible
607 pw=$(dd if=/dev/urandom count=1 bs=16 2> /dev/null | md5sum | cut -c-32)
608 else # ...or something else if need be.
609 pw=$(date +"%s:%N" | md5sum | cut -c-32)
614 ; This file was generated by the RPM installation system.
615 ; You can edit the values here or move them to other files.
616 ; These values should not go into world-readable files!
620 database_name=%{dbname}
621 database_user=%{dbuser}
623 #database_password=$pw
625 mv $t %{FORGE_CONF_DIR}/config.ini.d/rpm-install-secrets.ini
627 # ====================
629 /usr/bin/php %{FORGE_DIR}/fusionforge-install-4-config.php >>/var/log/%{name}-install.log 2>&1
631 /etc/init.d/httpd restart >/dev/null 2>&1
633 chkconfig postgresql on >/dev/null 2>&1
635 # generate random hash for session_key
636 HASH=$(/bin/dd if=/dev/urandom bs=32 count=1 2>/dev/null | /usr/bin/sha1sum | cut -c1-40)
637 #%{__sed} -i -e "s/sys_session_key = 'foobar'/sys_session_key = '$HASH'/g" %{FORGE_CONF_DIR}/local.inc
639 # add noreply mail alias
640 echo "noreply: /dev/null" >> /etc/aliases
641 /usr/bin/newaliases >/dev/null 2>&1
643 if [ $ret -ne 0 ] ; then
644 # display message about default admin account
646 echo "You can now connect to your FusionForge installation using:"
648 echo " http://$HOSTNAME/"
650 echo "The default fusionforge administrator account and password is:"
652 echo "Account Name = %{fforge_admin}"
653 echo "Password = $FFORGE_ADMIN_PASSWORD"
654 #echo "Please change it to something appropriate upon initial login."
655 # give user a few seconds to read the message
659 /usr/bin/php %{FORGE_DIR}/db/upgrade-db.php >>/var/log/%{name}-upgrade.log 2>&1
665 if [ "$1" -eq "0" ]; then
667 if [ `/usr/bin/getent passwd | /bin/cut -d: -f1 | /bin/grep -c %{gfuser}` -ne 0 ] ; then
668 echo "Removing fusionforge user..."
669 /usr/sbin/userdel %{gfuser}
672 if [ `/usr/bin/getent group | /bin/cut -d: -f1 | /bin/grep -c %{gfuser}` -ne 0 ] ; then
673 echo "Removing fusionforge group..."
674 /usr/sbin/groupdel %{gfgroup}
678 %post plugin-aselectextauth
679 /usr/bin/psql -U %{dbuser} %{dbname} -f %{FORGE_DIR}/plugins/aselectextauth/db/install_aselectextauth.psql
681 %preun plugin-aselectextauth
682 /usr/bin/psql -U %{dbuser} %{dbname} -f %{FORGE_DIR}/plugins/aselectextauth/db/uninstall_aselectextauth.psql
685 [ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
688 %defattr(-, root, root)
689 %doc AUTHORS* CHANGES COPYING INSTALL* NEWS README*
691 #%attr(0660, %{httpduser}, gforge) %config(noreplace) %{FORGE_CONF_DIR}/local.inc
692 #%attr(0640, %{httpduser}, %{httpdgroup}) %config(noreplace) %{_sysconfdir}/httpd/conf.d/gforge.conf
693 %attr(0644, root, root) %{_sysconfdir}/cron.d/%{name}
694 %attr(0775, %{httpduser}, %{httpdgroup}) %dir %{FORGE_VAR_LIB}/upload
695 %attr(755, root, %{httpdgroup}) %dir %{FORGE_DIR}
696 # Files under %{FORGE_DIR}
697 %{FORGE_DIR}/AUTHORS*
700 %{FORGE_DIR}/INSTALL*
703 %{FORGE_DIR}/fusionforge.spec
704 %{FORGE_DIR}/fusionforge-install*
705 %{FORGE_DIR}/gforge-restricted.sh
706 %{FORGE_DIR}/install.sh
707 %{FORGE_DIR}/install-common.inc
708 # Directories under %{FORGE_DIR}
711 #%{FORGE_DIR}/contrib
712 %{FORGE_DIR}/cronjobs
716 %{FORGE_DIR}/image-sources
720 %{FORGE_DIR}/translations
723 %dir %{FORGE_DIR}/www
724 # files under %{FORGE_DIR}/www
725 %{FORGE_DIR}/www/*.php
726 %{FORGE_DIR}/www/users
727 %{FORGE_DIR}/www/favicon.ico
728 %{FORGE_DIR}/www/projects
729 # directories under %{FORGE_DIR}/www
730 %{FORGE_DIR}/www/account
731 %{FORGE_DIR}/www/activity
732 %{FORGE_DIR}/www/admin
733 %{FORGE_DIR}/www/developer
734 %{FORGE_DIR}/www/docman
735 %{FORGE_DIR}/www/export
736 %{FORGE_DIR}/www/forum
738 %{FORGE_DIR}/www/images
739 %{FORGE_DIR}/www/include
740 %{FORGE_DIR}/www/jscook
742 %{FORGE_DIR}/www/mail
745 %{FORGE_DIR}/www/news
746 %{FORGE_DIR}/www/people
748 %{FORGE_DIR}/www/project
749 %{FORGE_DIR}/www/register
750 %{FORGE_DIR}/www/reporting
752 %{FORGE_DIR}/www/scripts
753 %{FORGE_DIR}/www/search
754 %{FORGE_DIR}/www/snippet
755 %{FORGE_DIR}/www/soap
756 %{FORGE_DIR}/www/softwaremap
757 %{FORGE_DIR}/www/squal
758 %{FORGE_DIR}/www/stats
759 %{FORGE_DIR}/www/survey
760 %{FORGE_DIR}/www/tabber
761 %{FORGE_DIR}/www/themes
763 %{FORGE_DIR}/www/tracker
764 %{FORGE_DIR}/www/trove
765 %{FORGE_DIR}/www/widgets
766 #%{FORGE_DIR}/www/plugins/online_help
767 #%{FORGE_DIR}/www/plugins/projects_hierarchy
768 #%{FORGE_DIR}/www/plugins/quota_management
769 %dir %{FORGE_DIR}/plugins
770 %{FORGE_DIR}/plugins/env.inc.php
771 #%{FORGE_DIR}/plugins/online_help
772 #%{FORGE_DIR}/plugins/projects_hierarchy
773 #%{FORGE_DIR}/plugins/quota_management
775 %dir %{FORGE_CONF_DIR}
776 #%config(noreplace) %{FORGE_CONF_DIR}/httpd.secrets
777 %dir %{FORGE_CONF_DIR}/httpd.d
778 %dir %{FORGE_CONF_DIR}/httpd.conf.d
779 %{FORGE_CONF_DIR}/httpd.conf.d/*
780 %{_sysconfdir}/httpd/conf.d/gforge.conf
781 %{FORGE_CONF_DIR}/config.ini.d/*
782 %{FORGE_CONF_DIR}/config.ini
783 %dir %attr(0775,root,%{httpdgroup}) %{FORGE_CONF_DIR}/plugins
784 %dir %{FORGE_VAR_LIB}/scmtarballs
785 %dir %{FORGE_VAR_LIB}/scmsnapshots
786 %dir %{FORGE_VAR_LIB}/dumps
787 %{FORGE_VAR_LIB}/homedirs
792 %files plugin-aselectextauth
793 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/aselectextauth.ini
794 %{FORGE_DIR}/plugins/aselectextauth
796 %files plugin-cvssyncmail
797 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/cvssyncmail.ini
798 %{FORGE_DIR}/plugins/cvssyncmail
800 %files plugin-cvstracker
801 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/cvstracker.ini
802 %{FORGE_DIR}/plugins/cvstracker
803 %{FORGE_DIR}/www/plugins/cvstracker
804 %attr(-,%{httpduser},%{httpdgroup}) %{FORGE_CONF_DIR}/plugins/cvstracker
806 %files plugin-externalsearch
807 %config(noreplace) %{FORGE_CONF_DIR}/plugins/externalsearch/
808 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/externalsearch.ini
809 %{FORGE_DIR}/plugins/externalsearch
811 %files plugin-fckeditor
812 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/fckeditor.ini
813 %{FORGE_DIR}/plugins/fckeditor
814 %{FORGE_DIR}/www/plugins/fckeditor
816 %files plugin-forumml
817 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/forumml.ini
818 %{FORGE_DIR}/plugins/forumml
819 %{FORGE_DIR}/www/plugins/forumml
821 %files plugin-gravatar
822 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/gravatar.ini
823 %{FORGE_DIR}/plugins/gravatar
826 %config(noreplace) %{FORGE_CONF_DIR}/plugins/hudson/
827 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/hudson.ini
828 %{FORGE_CONF_DIR}/httpd.d/62plugin-hudson
829 %{FORGE_DIR}/plugins/hudson
830 %{FORGE_DIR}/www/plugins/hudson
832 %files plugin-ldapextauth
833 %config(noreplace) %{FORGE_CONF_DIR}/plugins/ldapextauth/
834 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/ldapextauth.ini
835 %{FORGE_DIR}/plugins/ldapextauth
838 %config(noreplace) %{FORGE_CONF_DIR}/plugins/mantis/
839 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mantis.ini
840 %{FORGE_DIR}/plugins/mantis
841 %{FORGE_DIR}/www/plugins/mantis
843 %files plugin-mediawiki
844 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mediawiki.ini
845 %config(noreplace) %{FORGE_CONF_DIR}/httpd.d/03mediawiki.conf
846 %{FORGE_CONF_DIR}/httpd.d/61plugin-mediawiki
847 %{FORGE_DIR}/plugins/mediawiki/
848 %{FORGE_DIR}/www/plugins/mediawiki
849 /usr/share/mediawiki/skins/gforge
850 /usr/share/mediawiki/skins/GForge.deps.php
851 /usr/share/mediawiki/skins/GForge.php
853 %files plugin-online_help
854 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/online_help.ini
855 %{FORGE_DIR}/plugins/online_help
856 %{FORGE_DIR}/www/plugins/online_help
859 %config(noreplace) %{FORGE_CONF_DIR}/plugins/oslc/
860 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/oslc.ini
861 %{FORGE_CONF_DIR}/httpd.d/plugin-oslc.inc
862 %{FORGE_DIR}/plugins/oslc
863 %{FORGE_DIR}/www/plugins/oslc
865 %files plugin-projects_hierarchy
866 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/projects_hierarchy.ini
867 %{FORGE_DIR}/plugins/projects_hierarchy
868 %{FORGE_DIR}/www/plugins/projects_hierarchy
870 %files plugin-quota_management
871 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/quota_management.ini
872 %{FORGE_DIR}/plugins/quota_management
873 %{FORGE_DIR}/www/plugins/quota_management
875 %files plugin-scmarch
876 %config(noreplace) %{FORGE_CONF_DIR}/plugins/scmarch/
877 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmarch.ini
878 %{FORGE_DIR}/plugins/scmarch
881 %config(noreplace) %{FORGE_CONF_DIR}/plugins/scmbzr/
882 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmbzr.ini
883 %{FORGE_DIR}/plugins/scmbzr
885 %files plugin-scmdarcs
886 %config(noreplace) %{FORGE_CONF_DIR}/plugins/scmdarcs/
887 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmdarcs.ini
888 %{FORGE_DIR}/plugins/scmdarcs
891 %config(noreplace) %{FORGE_CONF_DIR}/plugins/scmgit/
892 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmgit.ini
893 %{FORGE_DIR}/plugins/scmgit
894 %{FORGE_DIR}/www/plugins/scmgit
897 %config(noreplace) %{FORGE_CONF_DIR}/plugins/scmhg/
898 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmhg.ini
899 %{FORGE_DIR}/plugins/scmhg
901 %files plugin-scmccase
902 %config(noreplace) %{FORGE_CONF_DIR}/plugins/scmccase/
903 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmccase.ini
904 %{FORGE_DIR}/plugins/scmccase
907 %config(noreplace) %{FORGE_CONF_DIR}/plugins/scmcvs/
908 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmcvs.ini
909 %{_sysconfdir}/cron.d/%{name}-plugin-scmcvs
910 %{FORGE_CONF_DIR}/httpd.d/30virtualcvs
911 %{FORGE_CONF_DIR}/httpd.d/31virtualcvs.ssl
912 %{FORGE_DIR}/plugins/scmcvs
913 %{FORGE_DIR}/www/plugins/scmcvs
914 %{FORGE_VAR_LIB}/chroot/scmrepos/cvs
917 %config(noreplace) %{FORGE_CONF_DIR}/plugins/scmsvn/
918 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/scmsvn.ini
919 %{FORGE_DIR}/plugins/scmsvn
920 %{FORGE_DIR}/www/plugins/scmsvn
921 %{FORGE_VAR_LIB}/chroot/scmrepos/svn
923 %files plugin-svncommitemail
924 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/svncommitemail.ini
925 %{FORGE_DIR}/plugins/svncommitemail
927 %files plugin-svntracker
928 %config(noreplace) %{FORGE_CONF_DIR}/plugins/svntracker/
929 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/svntracker.ini
930 %{_sysconfdir}/cron.d/gforge-plugin-svntracker
931 %{FORGE_DIR}/plugins/svntracker
932 %{FORGE_DIR}/www/plugins/svntracker
935 %config(noreplace) %{FORGE_CONF_DIR}/plugins/blocks/
936 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/blocks.ini
937 %{FORGE_DIR}/plugins/blocks
938 %{FORGE_DIR}/www/plugins/blocks
940 %files plugin-extratabs
941 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/extratabs.ini
942 %{FORGE_DIR}/plugins/extratabs
943 %{FORGE_DIR}/www/plugins/extratabs
946 %config(noreplace) %{FORGE_CONF_DIR}/plugins/wiki/
947 %{_sysconfdir}/cron.d/cron.wiki
948 %{FORGE_CONF_DIR}/httpd.d/03wiki.conf
949 %{FORGE_DIR}/plugins/wiki
950 %{FORGE_DIR}/www/wiki
952 %files plugin-projectlabels
953 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/projectlabels.ini
954 %{FORGE_DIR}/plugins/projectlabels
955 %{FORGE_DIR}/www/plugins/projectlabels
957 %files plugin-contribtracker
958 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/contribtracker.ini
959 %{FORGE_DIR}/plugins/contribtracker
960 %{FORGE_DIR}/www/plugins/contribtracker
962 %files plugin-globalsearch
963 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/globalsearch.ini
964 %{FORGE_DIR}/plugins/globalsearch
965 %{FORGE_DIR}/www/plugins/globalsearch
967 %files plugin-mailman
968 %config(noreplace) %{FORGE_CONF_DIR}/plugins/mailman/
969 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mailman.ini
970 %{FORGE_CONF_DIR}/httpd.d/plugin-oslc.inc
971 %{FORGE_CONF_DIR}/httpd.d/62plugin-list-mailman
972 %{FORGE_CONF_DIR}/httpd.d/200list.vhost
973 %{FORGE_CONF_DIR}/httpd.d/20list
974 %{FORGE_CONF_DIR}/httpd.d/20zlist.vhost
975 %{FORGE_CONF_DIR}/httpd.d/21list.vhost.ssl
976 %{FORGE_DIR}/plugins/mailman
977 %{FORGE_DIR}/www/plugins/mailman
979 %files plugin-mantisbt
980 %config(noreplace) %{FORGE_CONF_DIR}/plugins/mantisbt/
981 %config(noreplace) %{FORGE_CONF_DIR}/config.ini.d/mantisbt.ini
982 %{FORGE_DIR}/plugins/mantisbt
983 %{FORGE_DIR}/www/plugins/mantisbt
986 * Fri May 28 2010 - Alain Peyrat <aljeux@free.fr> - 5.0.50-1
987 - Ported to 5.1 tree.
988 - Reworked logic with rights on configuration files.
989 - Adapted to changes like scm refactoring.
990 - Adapted to changes to .ini configuration file.
991 - Lots of new plugins added.
993 * Tue May 13 2010 - Bond Masuda <bond.masuda@JLBond.com> - 4.8.3-2
994 - fixed plugin symlinks and plugin directory permissions
995 - patched mediawiki, webcalendar plugins
996 - patch to fix various references to global variables
997 - add symlinks to use mediawiki Monobook skin as GForge
998 - patch to replace ereg_replace() with preg_replace()
999 - added jpgraph symlink
1000 - setup httpd.secrets
1001 - delete obsolete mediawiki plugin code
1003 * Fri Apr 16 2010 - Bond Masuda <bond.masuda@JLBond.com> - 4.8.3-1
1004 - My first packaging of fusionforge 4.8.3-1 and plugins