# debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess (sample file)
# Copyright 2000 to 2002 by Roland Mas and Christian Bayle for the Sourceforge package
-# Copyright 2002 to 2003 by Roland Mas and Christian Bayle for the Gforge package
+# Copyright 2002 to 2008 by Roland Mas and Christian Bayle for the Gforge package
+# Copyright 2008 to 2009 by Roland Mas and Christian Bayle for the FusionForge package
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
-# This is the debhelper compatability version to use.
-export DH_COMPAT=4
+PACKAGE=gforge
+include /usr/share/dpatch/dpatch.make
+
+CRONFILESLIST=$(patsubst packaging/cron.d/%,debian/$(PACKAGE)-%.cron.d,$(wildcard packaging/cron.d/[a-z]*))
+DIRSFILESLIST=$(patsubst packaging/dirs/%,debian/$(PACKAGE)-%.dirs,$(wildcard packaging/dirs/[a-z]*))
+INSTALLFILESLIST=$(patsubst packaging/install/%,debian/$(PACKAGE)-%.install,$(wildcard packaging/install/[a-z]*))
+DOCSFILESLIST=$(patsubst packaging/docs/pkgname%,debian/$(PACKAGE)%.docs,$(wildcard packaging/docs/pkgname*))
+
+listecho:
+ @echo $(CRONFILESLIST)
+ @echo $(DIRSFILESLIST)
+ @echo $(INSTALLFILESLIST)
+listechod:
+ @echo $(DOCSFILESLIST)
remove-binary-files:
- # Remove files in contrib, especially binaries that break dpkg-source
-# find contrib/ -name CVS -prune -not -name CVS -or -type f | xargs rm -f
- # Also a few images
-# rm -f www/themes/gforge/images/es_*
+ sh $(CURDIR)/deb-specific/manage-uufiles.sh clean
+
+cronfiles: $(CRONFILESLIST)
+
+dirsfiles: $(DIRSFILESLIST)
+
+installfiles: $(INSTALLFILESLIST)
+
+docsfiles: $(DOCSFILESLIST)
+
+conffiles: cronfiles dirsfiles installfiles gencontrol docsfiles
+
+debian/$(PACKAGE)-%.cron.d:
+ @echo "Creating $@"
+ (cat $(CURDIR)/packaging/cron.d/00phpcron ; sed -e 's/\$$FFUSER/$(PACKAGE)/g' $(CURDIR)/packaging/cron.d/$*) > $@
+
+debian/$(PACKAGE)-%.dirs:
+ @echo "Creating $@"
+ cp $(CURDIR)/packaging/dirs/$* $@
+
+debian/$(PACKAGE)-%.install:
+ @echo "Creating $@"
+ cp $(CURDIR)/packaging/install/$* $@
+
+debian/%.docs:
+ @echo "Creating $@"
+ cp $(CURDIR)/packaging/docs/$(patsubst $(PACKAGE)%,pkgname%,$*) $@
+
+gencontrol:
+ ls $(CURDIR)/packaging/control/[0-9][0-9][0-9]* | grep -v shortdesc | while read file ; do cat $${file}; if [ -f $${file}.shortdesc ] ; then cat $(CURDIR)/packaging/control/AAAdesc; echo ' .'; cat $${file}.shortdesc; fi; echo ''; done | sed 's/@PACKAGE@/$(PACKAGE)/g' > $(CURDIR)/debian/control
configure: configure-stamp debian/po/templates.pot
configure-stamp: remove-binary-files
@debconf-updatepo
build: configure-stamp build-stamp
-build-stamp:
+build-stamp: patch
dh_testdir
# Build man pages from Docbook sources
+ cat debian/dsf-in/config.sgml | sed 's/pkgname/$(PACKAGE)/g' > debian/$(PACKAGE)-config.sgml
+ cat debian/dsf-in/common.manpages | sed 's/pkgname/$(PACKAGE)/g' > $(PACKAGE)-common.manpages
/usr/bin/docbook-to-man debian/cvssh.sgml > cvssh.1
- /usr/bin/docbook-to-man debian/gforge-config.sgml > gforge-config.1
+ /usr/bin/docbook-to-man debian/$(PACKAGE)-config.sgml > $(PACKAGE)-config.1
# Uudecode binary files
sh $(CURDIR)/deb-specific/manage-uufiles.sh decode
+ # Build gettext *.mo files
+ utils/manage-translations.sh build
+
touch build-stamp
-clean: remove-binary-files
+clean: remove-binary-files unpatch
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
- rm -f cvssh.1 gforge-config.1
+ rm -f $(CURDIR)/debian/*.cron.d
+ rm -f $(CURDIR)/debian/*.dirs
+ rm -f $(CURDIR)/debian/*.install
+ rm -f $(CURDIR)/debian/*.docs
+ rm -f $(CURDIR)/debian/$(PACKAGE)-config.sgml
+ rm -f $(CURDIR)/debian/$(PACKAGE)-common.manpages
+ rm -f cvssh.1 $(PACKAGE)-config.1
+
+ rm -rf locales/*
perl $(CURDIR)/deb-specific/dsf-helper.pl --clean
- sh $(CURDIR)/deb-specific/manage-uufiles.sh clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
+
+ # Generate conffiles *.cron.d *.dirs *.install control
+ $(CURDIR)/debian/rules conffiles
+
dh_installdirs
# Preprocess files with DSF-Helper
perl $(CURDIR)/deb-specific/dsf-helper.pl
- # gforge
- # (gforge is a meta-package and needs no files)
-
- # gforge-common
-# install -m 644 deb-specific/local.inc.template $(CURDIR)/debian/gforge-common/etc/gforge/templates/
-# install -m 644 deb-specific/local.pl.template $(CURDIR)/debian/gforge-common/etc/gforge/templates/
-# install -m 644 deb-specific/database.inc.template $(CURDIR)/debian/gforge-common/etc/gforge/templates/
-# install -m 644 deb-specific/httpd.conf.template $(CURDIR)/debian/gforge-common/etc/gforge/templates/
-# install -m 644 deb-specific/httpd.common.template $(CURDIR)/debian/gforge-common/etc/gforge/templates/
-# install -m 644 deb-specific/httpd.vhosts.template $(CURDIR)/debian/gforge-common/etc/gforge/templates/
-# install -m 644 deb-specific/httpd.secrets.template $(CURDIR)/debian/gforge-common/etc/gforge/templates/
- install -m 644 etc/httpd.d/[0-9][0-9]* $(CURDIR)/debian/gforge-common/etc/gforge/httpd.d/
- install -m 644 etc/httpd.d/httpd* $(CURDIR)/debian/gforge-common/etc/gforge/httpd.d/
- install -m 644 etc/local.d/[0-9][0-9]* $(CURDIR)/debian/gforge-common/etc/gforge/local.d/
- install -m 644 etc/templates/*\.* $(CURDIR)/debian/gforge-common/etc/gforge/templates/
- install -m 755 setup $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
+ # Install files
+ #dh_install --fail-missing -X.svn -X.arch-ids -X.bzr -X.cvsignore --sourcedir=$(CURDIR)
+ dh_install -X.svn -X.arch-ids -X.bzr -X.cvsignore --sourcedir=$(CURDIR)
+
+ # Install few links
+ ln -s database-pgsql.php $(CURDIR)/debian/$(PACKAGE)-common/usr/share/$(PACKAGE)/common/include/database.php
+ ln -s /usr/share/mediawiki/skins/$(PACKAGE)/loader.php $(CURDIR)/debian/$(PACKAGE)-plugin-mediawiki/etc/mediawiki-extensions/extensions-available/GforgeAuth.php
+
+ # Fix permissions
+ for i in $(addprefix $(CURDIR)/debian/,$(shell dh_listpackages)) ; do find $$i -type f -exec chmod 644 {} \; ; done
+ -chmod 755 $(CURDIR)/debian/*/*/*/*/bin/* $(CURDIR)/debian/*/*/*/*/cronjobs/* \
+ $(CURDIR)/debian/*/bin/* $(CURDIR)/debian/*/usr/share/*/plugins/*/bin/* \
+ $(CURDIR)/debian/*/usr/share/*/plugins/*/cronjobs/*
#
- install -m 755 deb-specific/install-chroot.sh $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
- install -m 755 deb-specific/install-ssh.sh $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
- install -m 755 utils/fill-in-the-blanks.pl $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
- install -m 755 deb-specific/gforge-config $(CURDIR)/debian/gforge-common/usr/sbin/
- install -m 644 utils/include.pl $(CURDIR)/debian/gforge-common/usr/lib/gforge/lib/
-
- install -m 755 deb-specific/user_dump_update.pl $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
- install -m 755 deb-specific/group_dump_update.pl $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
- install -m 755 deb-specific/ssh_dump_update.pl $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
-
- install -m 4755 deb-specific/fileforge.pl $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
- ln -sf fileforge.pl $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/tmpfilemove.pl
-
- install -m 755 deb-specific/update-user-group-cvs.sh $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
-
- # gforge-web-apache
- cp -r www $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/
- install -m 644 deb-specific/index_std.php $(CURDIR)/debian/gforge-web-apache/etc/gforge/custom/
- rm $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www/index_std.php
- #cp $(CURDIR)/www/project/admin/qrs.php.debian $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www/project/admin/qrs.php
- cp -r common $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/
- find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/ -name CVS -type d | xargs rm -rf
- find $(CURDIR)/debian/gforge-web-apache -name \*.uu -type f | xargs rm -f
- find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www -type d -exec chmod 0755 {} \;
- find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www -type f -exec chmod 0644 {} \;
- find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/common -type d -exec chmod 0755 {} \;
- find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/common -type f -exec chmod 0644 {} \;
- # Remove empty theme directories
- for i in $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www/themes/* ; do [ -d $$i ] && [ $$(find $$i -type f | wc -l) = 0 ] && rm -rf $$i || true ; done
-
- install -o www-data -m 755 -d $(CURDIR)/debian/gforge-web-apache/var/cache/gforge
- install -m 755 utils/install-apache.sh $(CURDIR)/debian/gforge-web-apache/usr/lib/gforge/bin/
- install -m 755 deb-specific/create-vhosts.sh $(CURDIR)/debian/gforge-web-apache/usr/lib/gforge/bin/
- install -m 755 deb-specific/prepare-vhosts-file.pl $(CURDIR)/debian/gforge-web-apache/usr/lib/gforge/bin/
-
- # gforge-db-postgresql
- #NOT USED#install -m 644 db/SourceForge.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
- #install -m 644 db/trove_defaults.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
- #NOT USED#install -m 644 db/user_rating.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
- install -m 644 deb-specific/sf-2.6-complete.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
- install -m 644 deb-specific/sf2.5-to-sf2.6.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
-
- install -m 755 cronjobs/db_trove_maint.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/project_cleanup.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- #install -m 755 cronjobs/project_metric.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/project_weekly_metric.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/rating_stats.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/site_stats.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/db_stats_agg.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/calculate_user_metric.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 deb-specific/stats_projects_logparse.pl $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/vacuum.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/rotate_activity.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/db_project_sums.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/check_stale_tracker_items.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 cronjobs/massmail.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
-#GF install -m 755 cronjobs/stats/include/stats_site.inc $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/lib/
-#GF install -m 755 cronjobs/stats/include/stats_projects.inc $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/lib/
-
-#GF install utils/underworld-root/db_top_groups_calc.pl $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/db_top_groups_calc.pl
- #install utils/underworld-root/stats_nightly.sh $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/stats_nightly.sh
- #install utils/underworld-root/db_stats_prepare.pl $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/db_stats_prepare.pl
- #install utils/underworld-root/db_stats_projects_nightly.pl $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/db_stats_projects_nightly.pl
- #install utils/underworld-root/db_stats_site_nightly.pl $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/db_stats_site_nightly.pl
- install -m 755 deb-specific/install-db.sh $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 deb-specific/db-upgrade.pl $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 644 deb-specific/sqlparser.pm $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/lib/
- install -m 755 deb-specific/sf-add-skill $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 deb-specific/register-theme $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
- install -m 755 deb-specific/unregister-theme $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
-
- install -m 755 deb-specific/register-plugin $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
- install -m 755 deb-specific/unregister-plugin $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
-
- install -m 644 deb-specific/view_bug.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
- install -m 644 deb-specific/view_patch.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
-
- install -m 644 db/20021125.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
- install -m 644 db/200212*.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
- install -m 644 db/2003*.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
- install -m 644 db/2004*.sql $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/db/
-
- # gforge-mta-exim
- install -m 755 deb-specific/install-exim.sh $(CURDIR)/debian/gforge-mta-exim/usr/lib/gforge/bin/
-
- # gforge-mta-exim4
- install -m 755 deb-specific/install-exim4.sh $(CURDIR)/debian/gforge-mta-exim4/usr/lib/gforge/bin/
-
- # gforge-mta-postfix
- install -m 755 deb-specific/install-postfix.sh $(CURDIR)/debian/gforge-mta-postfix/usr/lib/gforge/bin/
-
- # gforge-shell-ldap
- cd $(CURDIR)/debian/gforge-shell-ldap/var/lib/gforge/chroot/var/lib/gforge/chroot && ln -s ../../../../home .
-
- # gforge-cvs
- install -m 755 deb-specific/stats_cvs.pl $(CURDIR)/debian/gforge-cvs/usr/lib/gforge/bin/
- install -m 755 deb-specific/install-cvs.sh $(CURDIR)/debian/gforge-cvs/usr/lib/gforge/bin/
- install -m 755 deb-specific/cvs-pserver $(CURDIR)/debian/gforge-cvs/usr/lib/gforge/bin/
- install -m 755 deb-specific/cvssh.pl $(CURDIR)/debian/gforge-cvs/bin/cvssh
- install -m 755 cgi-bin/cvsweb.cgi $(CURDIR)/debian/gforge-cvs/usr/lib/gforge/cgi-bin/cvsweb.cgi
- install -m 755 cgi-bin/cvsweb.cgi $(CURDIR)/debian/gforge-cvs/usr/lib/gforge/bin/cvsweb
- install -m 644 etc/cvsweb.conf $(CURDIR)/debian/gforge-cvs/etc/gforge/
- install -m 755 deb-specific/tarballs.sh $(CURDIR)/debian/gforge-cvs/usr/lib/gforge/bin/
- install -m 755 deb-specific/cvs_dump_update.pl $(CURDIR)/debian/gforge-common/usr/lib/gforge/bin/
- install -m 755 www/tarballs.php $(CURDIR)/debian/gforge-cvs/usr/share/gforge/cvs
-
- # gforge-ftp-proftpd
- install -m 755 deb-specific/install-ftp.sh $(CURDIR)/debian/gforge-ftp-proftpd/usr/lib/gforge/bin/
- install -m 644 deb-specific/sf-proftpd.conf $(CURDIR)/debian/gforge-ftp-proftpd/etc/gforge/
-
- # gforge-ldap-openldap
- install -m 755 utils/ldap/sql2ldif.pl $(CURDIR)/debian/gforge-ldap-openldap/usr/lib/gforge/bin/
- install -m 755 deb-specific/install-ldap.sh $(CURDIR)/debian/gforge-ldap-openldap/usr/lib/gforge/bin/
- install -m 644 deb-specific/gforge.schema $(CURDIR)/debian/gforge-ldap-openldap/etc/gforge/
-
- # gforge-dns-bind9
- install -m 755 deb-specific/install-dns.sh $(CURDIR)/debian/gforge-dns-bind9/usr/lib/gforge/bin/
- install -m 644 deb-specific/dns.head.template $(CURDIR)/debian/gforge-dns-bind9/var/lib/gforge/bind/
- install -m 644 deb-specific/dns.simple.template $(CURDIR)/debian/gforge-dns-bind9/var/lib/gforge/bind/
- install -m 755 deb-specific/dns_conf.pl $(CURDIR)/debian/gforge-dns-bind9/usr/lib/gforge/bin/
-
- # gforge-lists-mailman
- install -m 755 deb-specific/create-mailing-lists.pl $(CURDIR)/debian/gforge-lists-mailman/usr/lib/gforge/bin/
- install -m 755 deb-specific/fix-mailing-lists.pl $(CURDIR)/debian/gforge-lists-mailman/usr/lib/gforge/bin/
-
- # gforge-sourceforge-transition
- install -m 755 deb-specific/install-db.sh $(CURDIR)/debian/gforge-sourceforge-transition/usr/lib/gforge-sourceforge-transition/bin/
+ chmod 755 $(CURDIR)/debian/$(PACKAGE)-db-postgresql/usr/share/*/db/*.php
+ chmod 644 $(CURDIR)/debian/$(PACKAGE)-db-postgresql/usr/share/$(PACKAGE)/cronjobs/*.inc
+
+ # viewvc rights
+ find $(CURDIR)/debian/$(PACKAGE)-web-apache2/usr/share/*/www/scm/viewvc -type f -exec chmod 0644 {} \;
+ grep -ril '^#!' $(CURDIR)/debian/$(PACKAGE)-web-apache2/usr/share/*/www/scm/viewvc | xargs chmod 0755
+ #
+ find $(CURDIR)/debian/$(PACKAGE)-common/usr/share/*/common/docman/engine/ -type f -name \*.php -not -name \*.inc.php -exec chmod 0755 {} \;
+ find $(CURDIR)/debian/$(PACKAGE)-common/usr/share/*/common/docman/engine/ -type f -name \*.sh -exec chmod 0755 {} \;
+ #
+ rm -f $(CURDIR)/debian/$(PACKAGE)-plugin-scm*/usr/share/*/plugins/scm*/*/README
+ chmod 755 $(CURDIR)/debian/$(PACKAGE)-plugin-scmcvs/usr/share/*/plugins/scmcvs/sbin/*
+ # remove windows files
+ rm -rf $(CURDIR)/debian/$(PACKAGE)-web-apache2/usr/share/*/www/scm/viewvc/windows
+ #
+ rm -f $(CURDIR)/debian/$(PACKAGE)-web-apache2/usr/share/*/www/themes/$(PACKAGE)/COPYING
+
+ # Remove Snoopy class from binary packages (provided by libphp-snoopy)
+ for i in $(addprefix $(CURDIR)/debian/,$(shell dh_listpackages)) ; do find $$i -name Snoopy.class.php | xargs rm -rf ; done
+
+ # Remove potential SCM artefacts from binary packages
+ for i in $(addprefix $(CURDIR)/debian/,$(shell dh_listpackages)) ; do find $$i -name .svn -or -name {arch} -or -name .arch-ids -or -name .bzr -or -name .cvsignore | xargs rm -rf ; done
+ # Also remove uuencoded files
+ for i in $(addprefix $(CURDIR)/debian/,$(shell dh_listpackages)) ; do find $$i -name \*.uu | xargs echo rm ; done
+
binary-indep: build install
dh_testdir
#dh_link
dh_strip
dh_compress
- #dh_fixperms
+ dh_fixperms
#dh_makeshlibs
dh_installdeb
#dh_perl
# (No architecture-dependent files for Gforge, doing nothing here)
binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure remove-binary-files
+.PHONY: build clean binary-indep binary-arch binary install configure remove-binary-files patch unpatch