* text=auto !eol
/.bzrignore -text
+3rd-party/db2latex-xsl/db2latex-xsl_0.8pre1-6.1.diff.gz -text svneol=unset#unset
+3rd-party/db2latex-xsl/db2latex-xsl_0.8pre1-6.1.dsc -text
+3rd-party/db2latex-xsl/db2latex-xsl_0.8pre1-6.2.diff.gz -text svneol=unset#unset
+3rd-party/db2latex-xsl/db2latex-xsl_0.8pre1-6.2.dsc -text
+3rd-party/db2latex-xsl/db2latex-xsl_0.8pre1.orig.tar.gz -text svneol=unset#unset
+3rd-party/htmlpurifier/Makefile -text
+3rd-party/htmlpurifier/Makefile.debian -text
+3rd-party/htmlpurifier/htmlpurifier-4.0.0.tar.gz -text svneol=unset#unset
3rd-party/htmlpurifier/htmlpurifier.spec -text
+3rd-party/mailman/Makefile -text
+3rd-party/mailman/Makefile.debian -text
+3rd-party/mailman/mailman_2.1.13-2.diff.gz -text svneol=unset#unset
+3rd-party/mailman/mailman_2.1.13-2.dsc -text
+3rd-party/mailman/mailman_2.1.13-2coclico1.diff.gz -text svneol=unset#unset
+3rd-party/mailman/mailman_2.1.13-2coclico1.dsc -text
+3rd-party/mailman/mailman_2.1.13.orig.tar.gz -text svneol=unset#unset
+3rd-party/nusoap/Makefile -text
+3rd-party/nusoap/Makefile.debian -text
+3rd-party/php-jpgraph/jpgraph-1.5.2-php5_and_liberation_fonts.patch -text
+3rd-party/php-jpgraph/jpgraph-rhel-fonts.patch -text
+3rd-party/php-jpgraph/libphp-jpgraph_1.5.2-12.diff.gz -text svneol=unset#unset
+3rd-party/php-jpgraph/libphp-jpgraph_1.5.2.orig.tar.gz -text svneol=unset#unset
+3rd-party/php-jpgraph/php-jpgraph.spec -text
/README -text
delivery/fusionforge/package/config -text
delivery/gforge/package/config -text
delivery/novaforge/package/config -text
/fix_phpunit.xslt -text
+gforge/AUTHORS -text
gforge/CHANGES -text
gforge/INSTALL.restricted -text
gforge/NEWS -text
gforge/backend/shell/apache.sh svneol=native#unset
+gforge/common/dao/CodendiDataAccess.class.php -text
+gforge/common/dao/include/DataAccess.class.php -text
+gforge/common/dao/include/DataAccessException.class.php -text
+gforge/common/dao/include/DataAccessObject.class.php -text
+gforge/common/dao/include/DataAccessResult.class.php -text
gforge/common/docman/Parsedata.class.php -text
gforge/common/docman/engine/parser_doc.php -text
gforge/common/docman/engine/parser_html.php -text
gforge/common/docman/engine/parser_pdf.php -text
gforge/common/docman/engine/parser_text.inc.php -text
gforge/common/docman/engine/parser_text.php -text
+gforge/common/event/Event.class.php -text
+gforge/common/include/Codendi_Request.class.php -text
+gforge/common/include/HTTPRequest.class.php -text
+gforge/common/include/Navigation.class.php -text
+gforge/common/include/ProjectManager.class.php -text
gforge/common/include/TextSanitizer.class.php -text
+gforge/common/include/UserManager.class.php -text
+gforge/common/include/config.php -text
gforge/common/include/database-mysql.php -text
gforge/common/include/group_section_texts.php -text
gforge/common/include/rbac_texts.php -text
gforge/common/include/tag_cloud.php -text
gforge/common/include/utils_crossref.php -text
gforge/common/reporting/ReportDownloads.class.php -text
+gforge/common/system_event/SystemEvent.class.php -text
+gforge/common/system_event/SystemEventManager.class.php -text
gforge/common/tracker/ArtifactWorkflow.class.php -text
gforge/contrib/cmd-line-prototype.tar.gz -text
gforge/contrib/fusionforge.dia -text
gforge/db/20090507-add_project_query.sql -text
gforge/db/20090507-browse_list.sql -text
gforge/db/20090507-install_workflow.php -text
+gforge/db/20100308-drop-forum-attachment-type.sql -text
gforge/db/20100308-forum-attachment-types.sql -text
+gforge/db/20100330-add-system-event.sql -text
+gforge/db/20100331-alter-system-event.sql -text
+gforge/db/20100402_add_query_options.sql -text
gforge/db/FTI-20061025.sql -text
gforge/db/gforge-data-mysql.sql -text
gforge/db/gforge-struct-mysql.sql -text
gforge/debian/NEWS.Debian -text
gforge/debian/README.source -text
gforge/debian/compat -text
-gforge/debian/dsf-in/common.links -text
+gforge/debian/dsf-in/plugin-contribtracker.postinst -text
+gforge/debian/dsf-in/plugin-contribtracker.prerm -text
gforge/debian/dsf-in/plugin-extratabs.postinst -text
gforge/debian/dsf-in/plugin-extratabs.prerm -text
gforge/debian/dsf-in/plugin-globalsearch.postinst -text
gforge/debian/dsf-in/plugin-globalsearch.prerm -text
-gforge/debian/dsf-in/plugin-mediawiki.links -text
gforge/debian/dsf-in/plugin-mediawiki.postinst -text
gforge/debian/dsf-in/plugin-mediawiki.prerm -text
gforge/debian/dsf-in/plugin-projectlabels.postinst -text
gforge/debian/dsf-in/plugin-scmcpold.prerm -text
gforge/debian/dsf-in/plugin-scmcvs.postinst -text
gforge/debian/dsf-in/plugin-scmcvs.prerm -text
-gforge/debian/dsf-in/plugin-scmdarcs.links -text
gforge/debian/dsf-in/plugin-scmdarcs.postinst -text
gforge/debian/dsf-in/plugin-scmdarcs.prerm -text
-gforge/debian/dsf-in/plugin-scmgit.links -text
gforge/debian/dsf-in/plugin-scmgit.postinst -text
gforge/debian/dsf-in/plugin-scmgit.prerm -text
gforge/debian/dsf-in/plugin-scmhg.postinst -text
gforge/debian/dsf-po/gl.po -text
gforge/debian/dsf-po/pt.po -text
gforge/debian/dsf-po/ru.po -text
-gforge/debian/gforge-plugin-contribtracker.postinst -text
-gforge/debian/gforge-plugin-contribtracker.prerm -text
gforge/debian/patches/disable-dav.dpatch -text
gforge/debian/patches/use-nusoap-from-distro.dpatch -text
gforge/debian/patches/use-snoopy-from-distro.dpatch -text
gforge/docs/docbook/docbook/entities/authors/alain_peyrat.xml -text
gforge/docs/docbook/docbook/entities/xinclude.ent -text svneol=unset#application/octet-stream
gforge/docs/docbook/docbook/user_guide/project_functions/activity.xml -text
+gforge/docs/fusionforge.doxygen -text
gforge/docs/images/sflogo2-105a.png -text
+gforge/docs/phpdoc/phpDocumentor.ini.patch -text
+gforge/etc/config.ini -text
gforge/etc/httpd.d/01common.ssl -text
gforge/etc/httpd.d/060maindirhttp.vhost -text
gforge/etc/httpd.d/06zmaindirhttp.vhost -text
gforge/etc/httpd.d/61plugin-scmgit -text
gforge/etc/httpd.d/99maindirhttp -text
gforge/etc/local.d/60bbcode -text
+gforge/etc/templates/database.py -text
gforge/fusionforge-install-2.php -text
gforge/fusionforge-install-3-db.php -text
gforge/image-sources/README -text
gforge/packaging/control/135plugin-scmdarcs.shortdesc -text
gforge/packaging/control/136plugin-scmarch -text
gforge/packaging/control/136plugin-scmarch.shortdesc -text
-gforge/packaging/control/137plugin-scmcpold -text
-gforge/packaging/control/137plugin-scmcpold.shortdesc -text
gforge/packaging/control/160plugin-mediawiki -text
gforge/packaging/control/160plugin-mediawiki.shortdesc -text
gforge/packaging/control/170plugin-extratabs -text
gforge/packaging/dirs/plugin-projectlabels -text
gforge/packaging/dirs/plugin-scmarch -text
gforge/packaging/dirs/plugin-scmbzr -text
-gforge/packaging/dirs/plugin-scmcpold -text
gforge/packaging/dirs/plugin-scmcvs -text
gforge/packaging/dirs/plugin-scmdarcs -text
gforge/packaging/dirs/plugin-scmgit -text
gforge/packaging/install/plugin-projectlabels -text
gforge/packaging/install/plugin-scmarch -text
gforge/packaging/install/plugin-scmbzr -text
-gforge/packaging/install/plugin-scmcpold -text
gforge/packaging/install/plugin-scmcvs -text
gforge/packaging/install/plugin-scmdarcs -text
gforge/packaging/install/plugin-scmgit -text
gforge/packaging/install/shell-postgresql -text
gforge/packaging/install/web-apache2 -text
gforge/packaging/install/web-apache2-vhosts -text
+gforge/packaging/links/common -text
+gforge/packaging/links/plugin-scmdarcs -text
+gforge/packaging/links/plugin-scmgit -text
+gforge/packaging/links/web-apache2 -text
gforge/plugins/contribtracker/INSTALL -text
gforge/plugins/contribtracker/bin/db-delete.pl -text
gforge/plugins/contribtracker/bin/db-upgrade.pl -text
gforge/plugins/contribtracker/www/global_admin.php -text
gforge/plugins/contribtracker/www/index.php -text
gforge/plugins/contribtracker/www/project_admin.php -text
-gforge/plugins/createplugin.sh -text
gforge/plugins/cvstracker/db/cvstracker-init-mysql.sql -text
gforge/plugins/cvstracker/gforge-plugin-cvstracker.spec -text svneol=unset#application/octet-stream
gforge/plugins/cvstracker/rpm-specific/cron.d/gforge-plugin-cvstracker -text svneol=unset#application/octet-stream
gforge/plugins/globalsearch/www/index.php -text
gforge/plugins/ldapextauth/rpm-specific/.keepme -text svneol=unset#application/octet-stream
gforge/plugins/mediawiki/README -text
-gforge/plugins/mediawiki/bin/drop-wiki.sh -text
+gforge/plugins/mediawiki/bin/drop-wiki.php -text
+gforge/plugins/mediawiki/bin/mw-wrapper.php -text
gforge/plugins/mediawiki/common/MediaWikiPlugin.class.php -text
gforge/plugins/mediawiki/common/mediawiki-init.php -text
-gforge/plugins/mediawiki/cronjobs/create-wikis.sh -text
+gforge/plugins/mediawiki/cronjobs/create-wikis.php -text
+gforge/plugins/mediawiki/etc/cron.d/mediawiki -text
gforge/plugins/mediawiki/etc/httpd.d/03mediawiki -text
+gforge/plugins/mediawiki/etc/plugins/mediawiki/LocalSettings.php -text
+gforge/plugins/mediawiki/etc/plugins/mediawiki/ProjectSettings.template.php -text
+gforge/plugins/mediawiki/etc/plugins/mediawiki/config.php -text
gforge/plugins/mediawiki/mediawiki-skin/FusionForge.php -text
gforge/plugins/mediawiki/mediawiki-skin/FusionForge.php.patch -text
gforge/plugins/mediawiki/mediawiki-skin/FusionForge.php.reference -text
gforge/plugins/mediawiki/mediawiki-skin/fusionforge/main.css -text
gforge/plugins/mediawiki/mediawiki-skin/fusionforge/main.css.patch -text
gforge/plugins/mediawiki/mediawiki-skin/fusionforge/main.css.reference -text
-gforge/plugins/mediawiki/www/LocalSettings.php -text
+gforge/plugins/mediawiki/scripts/mediawiki-plugin-init.php -text
gforge/plugins/mediawiki/www/frame.php -text
gforge/plugins/online_help/common/online_help-init.php -text
gforge/plugins/online_help/common/online_helpPlugin.class.php -text
gforge/plugins/scmbzr/common/scmbzr-init.php -text
gforge/plugins/scmbzr/etc/plugins/scmbzr/config.php -text
gforge/plugins/scmbzr/etc/plugins/scmbzr/serve-branches.conf -text
-gforge/plugins/scmcpold/common/CpoldPlugin.class.php -text
-gforge/plugins/scmcpold/common/scmcpold-init.php -text
-gforge/plugins/scmcpold/etc/plugins/scmcpold/config.php -text
gforge/plugins/scmcvs/cron.d/fusionforge-plugin-scmcvs -text
gforge/plugins/scmcvs/fusionforge-plugin-scmcvs.spec -text
gforge/plugins/scmdarcs/common/DarcsPlugin.class.php -text
gforge/plugins/wiki/www/doc/README.phpwiki-cache -text
gforge/plugins/wiki/www/doc/README.security -text
gforge/plugins/wiki/www/doc/THEMES -text
+gforge/plugins/wiki/www/doc/phpwiki.doxygen -text
gforge/plugins/wiki/www/doc/phpwiki_architecture.png -text
gforge/plugins/wiki/www/favicon.ico -text
gforge/plugins/wiki/www/g -text
gforge/translations/th.po -text
gforge/translations/zh_CN.po -text
gforge/translations/zh_TW.po -text
+gforge/utils/fixscripts/normalize_roles.php -text
gforge/utils/fusionforge-shell-postgresql.spec -text
gforge/utils/inject-files.php -text
gforge/utils/inject-groups.php -text
gforge/www/images/smiles/icon_wink.gif -text
gforge/www/images/t.png -text
gforge/www/images/t2.png -text
+gforge/www/include/plugins_utils.php -text
gforge/www/include/unicode.php -text
gforge/www/js/common.js -text
gforge/www/js/sortable.js -text
gforge/www/plugins/helloworld -text
gforge/www/plugins/mailman -text
gforge/www/plugins/mantis -text
+gforge/www/plugins/mediawiki -text
gforge/www/plugins/online_help -text
gforge/www/plugins/projects_hierarchy -text
gforge/www/plugins/quota_management -text
gforge/www/themes/gforge/images/ic/wiki20g.png -text svneol=unset#unset
gforge/www/themes/gforge/images/ic/write16w.png -text
gforge/www/themes/gforge/images/ic/xmail16w.png -text
+gforge/www/themes/gforge/images/logo200x200.png -text
gforge/www/themes/gforge/images/notes.png -text svneol=unset#unset
gforge/www/themes/gforge/images/spacer.gif -text svneol=unset#unset
gforge/www/themes/gforge/images/t.png -text
packaging/tag_delivery_delete -text
packaging/tag_packaging_create -text
packaging/tag_packaging_delete -text
+plugins/coclico/Makefile -text
+plugins/coclico/Makefile.debian -text
+plugins/coclico/mailman/README.txt -text
+plugins/coclico/mailman/bin/db-delete.pl -text
+plugins/coclico/mailman/bin/db-upgrade.pl -text
+plugins/coclico/mailman/common/mailman-init.php -text
+plugins/coclico/mailman/cronjobs/manage_mailmanlists.php -text
+plugins/coclico/mailman/db/install.sql -text
+plugins/coclico/mailman/db/mailman-init.sql -text
+plugins/coclico/mailman/db/uninstall.sql -text
+plugins/coclico/mailman/debian/README.Debian -text
+plugins/coclico/mailman/debian/README.source -text
+plugins/coclico/mailman/debian/changelog -text
+plugins/coclico/mailman/debian/compat -text
+plugins/coclico/mailman/debian/control -text
+plugins/coclico/mailman/debian/copyright -text
+plugins/coclico/mailman/debian/docs -text
+plugins/coclico/mailman/debian/po/templates.pot -text
+plugins/coclico/mailman/debian/rules -text
+plugins/coclico/mailman/debian/source/format -text
+plugins/coclico/mailman/etc/httpd.d/200list.vhost -text
+plugins/coclico/mailman/etc/httpd.d/20list -text
+plugins/coclico/mailman/etc/httpd.d/20zlist.vhost -text
+plugins/coclico/mailman/etc/httpd.d/21list.vhost.ssl -text
+plugins/coclico/mailman/etc/httpd.d/62plugin-list-mailman -text
+plugins/coclico/mailman/etc/plugins/mailman/config.php -text
+plugins/coclico/mailman/include/BackendMailmanList.class.php -text
+plugins/coclico/mailman/include/MailmanList.class.php -text
+plugins/coclico/mailman/include/MailmanListDao.class.php -text
+plugins/coclico/mailman/include/MailmanListFactory.class.php -text
+plugins/coclico/mailman/include/MailmanPluginDescriptor.class.php -text
+plugins/coclico/mailman/include/MailmanPluginInfo.class.php -text
+plugins/coclico/mailman/include/MailsForUser.class.php -text
+plugins/coclico/mailman/include/events/SystemEvent_MAILMAN_LIST_CREATE.class.php -text
+plugins/coclico/mailman/include/events/SystemEvent_MAILMAN_LIST_DELETE.class.php -text
+plugins/coclico/mailman/include/mailman-init.php -text
+plugins/coclico/mailman/include/mailmanPlugin.class.php -text
+plugins/coclico/mailman/packaging/control/000source -text
+plugins/coclico/mailman/packaging/control/222plugin-mailman -text
+plugins/coclico/mailman/packaging/control/222plugin-mailman.shortdesc -text
+plugins/coclico/mailman/packaging/cron.d/plugin-mailman -text
+plugins/coclico/mailman/packaging/dirs/plugin-mailman -text
+plugins/coclico/mailman/packaging/docs/plugin-mailman -text
+plugins/coclico/mailman/packaging/install/plugin-mailman -text
+plugins/coclico/mailman/packaging/links/plugin-mailman -text
+plugins/coclico/mailman/translations/en.po -text
+plugins/coclico/mailman/translations/gforge.pot -text
+plugins/coclico/mailman/usr/lib/mailman/Mailman/ExternalConnector.py -text
+plugins/coclico/mailman/usr/lib/mailman/Mailman/ForgeSecurityManager.py -text
+plugins/coclico/mailman/usr/lib/mailman/Mailman/MySQLConnector.py -text
+plugins/coclico/mailman/usr/lib/mailman/Mailman/PsycopgConnector.py -text
+plugins/coclico/mailman/utils/manage-translations.sh -text
+plugins/coclico/mailman/var/lib/mailman/lists/extend.py -text
+plugins/coclico/mailman/www/admin/deletelist.php -text
+plugins/coclico/mailman/www/admin/index.php -text
+plugins/coclico/mailman/www/index.html -text
+plugins/coclico/mailman/www/index.php -text
+plugins/coclico/mailman/www/mailman_utils.php -text
+plugins/templates/createplugin.sh -text
+plugins/templates/helloworld/debian/README.Debian -text
+plugins/templates/helloworld/debian/README.source -text
+plugins/templates/helloworld/debian/changelog -text
+plugins/templates/helloworld/debian/compat -text
+plugins/templates/helloworld/debian/control -text
+plugins/templates/helloworld/debian/copyright -text
+plugins/templates/helloworld/debian/docs -text
+plugins/templates/helloworld/debian/po/templates.pot -text
+plugins/templates/helloworld/debian/rules -text
+plugins/templates/helloworld/debian/source/format -text
+plugins/templates/helloworld/packaging/control/000source -text
+plugins/templates/helloworld/packaging/control/222plugin-helloworld -text
+plugins/templates/helloworld/packaging/control/222plugin-helloworld.shortdesc -text
+plugins/templates/helloworld/packaging/dirs/plugin-helloworld -text
+plugins/templates/helloworld/packaging/docs/plugin-helloworld -text
+plugins/templates/helloworld/packaging/install/plugin-helloworld -text
+plugins/templates/helloworld/packaging/links/plugin-helloworld -text
+plugins/templates/helloworld/translations/en.po -text
+plugins/templates/helloworld/translations/gforge.pot -text
+plugins/templates/helloworld/utils/manage-translations.sh -text
+plugins/templates/scmcpold/common/CpoldPlugin.class.php -text
+plugins/templates/scmcpold/common/scmcpold-init.php -text
+plugins/templates/scmcpold/etc/plugins/scmcpold/config.php -text
+plugins/templates/scmcpold/packaging/control/137plugin-scmcpold -text
+plugins/templates/scmcpold/packaging/control/137plugin-scmcpold.shortdesc -text
+plugins/templates/scmcpold/packaging/dirs/plugin-scmcpold -text
+plugins/templates/scmcpold/packaging/install/plugin-scmcpold -text
tests/AllFullTests.php -text
tests/AllTests.php -text
tests/SeleniumTests.php -text
tests/TarCentos52Tests.php -text
-tests/build/documentation/AllTests.php -text
-tests/build/documentation/DocumentationTests.php -text
-tests/build/packages/AllTests.php -text
-tests/build/packages/BuildTests.php -text
-tests/code/deprecations/AllTests.php -text
-tests/code/deprecations/DeprecationsTests.php -text
-tests/code/syntax/AllTests.php -text
-tests/code/syntax/SyntaxTests.php -text
+tests/build/documentation/DocumentationTest.php -text
+tests/build/packages/BuildTest.php -text
+tests/code/deprecations/DeprecationsTest.php -text
+tests/code/syntax/SyntaxTest.php -text
tests/func/AllTests.php -text
-tests/func/Forums/AllTests.php -text
-tests/func/Forums/forums.php -text
-tests/func/News/AllTests.php -text
-tests/func/News/news.php -text
+tests/func/Forums/forumsTest.php -text
+tests/func/News/newsTest.php -text
tests/func/README.TXT -text
-tests/func/Site/AllTests.php -text
-tests/func/Site/login.php -text
-tests/func/Site/projects.php -text
+tests/func/Site/loginTest.php -text
+tests/func/Site/projectsTest.php -text
tests/func/Site/top.php -text
-tests/func/Site/trove.php -text
+tests/func/Site/troveTest.php -text
tests/func/Soap/AllTests.php -text
tests/func/Soap/checks.php -text
tests/func/Soap/login.php -text
tests/func/Soap/usergroup.php -text
-tests/func/Tasks/AllTests.php -text
-tests/func/Tasks/createTask.php -text
+tests/func/Tasks/createTaskTest.php -text
tests/func/Testing/SeleniumGforge.php -text
tests/func/Testing/SeleniumRemoteSuite.php -text
-tests/func/Trackers/AllTests.php -text
-tests/func/Trackers/relation.php -text
-tests/func/Trackers/trackers.php -text
-tests/func/Trackers/workflow.php -text
+tests/func/Trackers/relationTest.php -text
+tests/func/Trackers/trackersTest.php -text
+tests/func/Trackers/workflowTest.php -text
tests/func/config.php.sample -text
tests/func/config.php.tests -text
tests/func/db_reload.php -text
tests/scripts/start_vz.sh -text
tests/scripts/stop_vm.sh -text
tests/scripts/stop_vz.sh -text
-tests/unit/AllTests.php -text
-tests/unit/utils/AllTests.php -text
-tests/unit/utils/DbUtilsTests.php -text
-tests/unit/utils/TextSanitizerTests.php -text
-tests/unit/utils/UtilsTests.php -text
+tests/unit/config/ConfigTest.php -text
+tests/unit/utils/DbUtilsTest.php -text
+tests/unit/utils/HtmlPurifierTest.php -text
+tests/unit/utils/TextSanitizerTest.php -text
+tests/unit/utils/UtilsTest.php -text
tools/check_and_update_forum_role_settings.php -text
tools/export-tracker.tcl -text
tools/jpgraph_pietest.php -text
tools/tab2po/src/test/resources/translations/fr.po -text
tools/tab2po/src/test/resources/translations/fr.po.new -text
tools/tab2po/src/test/resources/translations/gforge.pot -text
+tools/unify_config.sh -text
tools/update-gettext-files.sh -text
--- /dev/null
+Format: 1.0
+Source: db2latex-xsl
+Binary: db2latex-xsl, db2latex-xsl-doc
+Architecture: all
+Version: 0.8pre1-6.1
+Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org>
+Uploaders: W. Borgert <debacle@debian.org>, Ardo van Rangelrooij <ardo@debian.org>
+Standards-Version: 3.6.1
+Build-Depends-Indep: debhelper (>= 4.2), docbook-xsl (>= 1.64.1.0), xml-core, xsltproc, cdbs (>= 0.4.8)
+Checksums-Sha1:
+ 9c4b367b21552b7205ec242c559dc96ccdae9ed8 3527840 db2latex-xsl_0.8pre1.orig.tar.gz
+ e59b1e861d39b5fbb9d65d6b3cf1428f1bace45a 7030 db2latex-xsl_0.8pre1-6.1.diff.gz
+Checksums-Sha256:
+ 57be6b32779c75274764faac95603d8042538ebf14f6ba69cb7bc8fe45bb5a82 3527840 db2latex-xsl_0.8pre1.orig.tar.gz
+ 86af5b8c402ec188efd067bc147cde902a461d3c02b63c347cdedaa6ca89ae7e 7030 db2latex-xsl_0.8pre1-6.1.diff.gz
+Files:
+ d59d135fb0a0042c5ee435296e0c29c0 3527840 db2latex-xsl_0.8pre1.orig.tar.gz
+ 08581cb81ffa865000bc855c314d3d9d 7030 db2latex-xsl_0.8pre1-6.1.diff.gz
--- /dev/null
+Format: 1.0
+Source: db2latex-xsl
+Binary: db2latex-xsl, db2latex-xsl-doc
+Architecture: all
+Version: 0.8pre1-6.2
+Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org>
+Uploaders: W. Borgert <debacle@debian.org>, Ardo van Rangelrooij <ardo@debian.org>
+Standards-Version: 3.6.1
+Build-Depends: debhelper (>= 4.2), docbook-xsl (>= 1.64.1.0), xml-core, xsltproc, cdbs (>= 0.4.8)
+Checksums-Sha1:
+ 9c4b367b21552b7205ec242c559dc96ccdae9ed8 3527840 db2latex-xsl_0.8pre1.orig.tar.gz
+ e65f281045cbc39ceb2f224d87766421018fbb99 7230 db2latex-xsl_0.8pre1-6.2.diff.gz
+Checksums-Sha256:
+ 57be6b32779c75274764faac95603d8042538ebf14f6ba69cb7bc8fe45bb5a82 3527840 db2latex-xsl_0.8pre1.orig.tar.gz
+ fcf9e1c4612e2a15cf9b34537ddf92b8c8eb1065082916d7f3e05dc8af79be93 7230 db2latex-xsl_0.8pre1-6.2.diff.gz
+Files:
+ d59d135fb0a0042c5ee435296e0c29c0 3527840 db2latex-xsl_0.8pre1.orig.tar.gz
+ f26a33a09b1ec6b3f3597edc3cb11e6b 7230 db2latex-xsl_0.8pre1-6.2.diff.gz
--- /dev/null
+DISTDEBIAN=$(shell [ -f /etc/debian_version ] && echo debian)
+DISTREDHAT=$(shell grep -qi 'Red Hat' /etc/issue && echo rh)
+DISTSUSE=$(shell grep -qi 'SuSE' /etc/issue && echo rh)
+DIST=$(DISTDEBIAN)$(DISTREDHAT)$(DISTSUSE)
+
+default:
+ @make -f Makefile.$(DIST) default
+
+%:
+ @make -f Makefile.$(DIST) $@
--- /dev/null
+#! /usr/bin/make -f
+
+PKGLONGNAME=LocalRepository
+
+PKGDIR=php-htmlpurifier-4.0.0+dfsg1
+#PKGDIR=$(shell dirname */debian)
+PKGNAME=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/\(.[^ ]*\) .*/\1/')
+BRANCH=$(shell [ "$(shell echo $(basename $(CURDIR)) | sed 's/.*runk.*/trunk/')" = "trunk" ] && echo svn || echo brc)
+
+PKGLETTER=$(shell echo $(PKGNAME) | cut -c1)
+ORIGIN=debian.bayle.eu
+COWPLACE=$(CURDIR)
+BUILDPLACE=$(COWPLACE)/builder/buildplace
+BUILDFILES=$(COWPLACE)/builder/buildfiles
+BUILDRESULT=$(COWPLACE)/result
+COWBUILDERBASE=$(COWPLACE)/builder/cow
+PBUILDERTGZ=$(COWPLACE)/builder/tgz
+TARBALLS=$(COWPLACE)/tarballs
+APTCACHE=$(COWPLACE)/builder/cache
+DISTRIB=$(shell echo $(XDISTRIB) | cut -c2-)
+LOCALREPODEB=/var/www/debian-fusionforge-$(BRANCH)
+LOCALREPOUBU=/var/www/ubuntu-fusionforge-$(BRANCH)
+DEBIANLIST=1lenny
+UBUNTULIST=1jaunty 1karmic 1lucid
+ASKPASS=--ask-passphrase
+#ASKPASS=
+
+# Try if a local mirror is available
+UBUNTUOP=$(shell wget -q -S http://localhost/ubuntu -O /dev/null && echo "--mirror http://localhost/ubuntu" || echo "--mirror http://archive.ubuntu.com/ubuntu") --debootstrap debootstrap
+DEBIANOP=$(shell wget -q -S http://localhost/debian -O /dev/null && echo "--mirror http://localhost/debian" || echo "--mirror http://ftp.fr.debian.org/debian") --debootstrapopts --include=apt
+
+MAJOR=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/.*(\(.[^-]*\).*).*/\1/')
+ORIGMINOR=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/.*(.[^-]*[-]\(.*\)).*/\1/')
+#svnrev=$(shell LANG=C svn info | grep Revision | cut -d: -f2| sed 's/ //g')
+
+MINOR=-1
+MINOR=-$(ORIGMINOR)+$(XDISTRIB)
+
+DEBUG=--debug
+DEBUG=
+DEBBUILDOPTS=--debbuildopts -sa
+ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+UBUHOOK="--hookdir $(CURDIR)/hook/ubuntu"
+# Some doc found there http://wiki.debian.org/cowbuilder
+# Hook are not anymore necessary, but I keep as an example
+UBUHOOK="--components 'main universe' --debootstrapopts --exclude=udev,pcmciautils,initramfs-tools"
+UBUHOOK=--components "main universe" --hookdir $(CURDIR)/hook/ubuntu
+
+ORIGFILE=$(PKGNAME)_$(MAJOR).orig.tar.gz
+
+DSCFILE=$(PKGNAME)_$(MAJOR)$(MINOR).dsc
+CHANGEFILE=$(PKGNAME)_$(MAJOR)$(MINOR)_$(ARCH).changes
+
+PDSCFILE=$(PKGNAME)_$(MAJOR)$(MINOR)+p.dsc
+PCHANGEFILE=$(PKGNAME)_$(MAJOR)$(MINOR)+p_$(ARCH).changes
+
+COWBUILDERCMD=sudo /usr/sbin/cowbuilder --build --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(BUILDFILES)/$(DSCFILE) $(DEBBUILDOPTS)
+
+PBUILDERCMD=cd $(BUILDFILES) && sudo /usr/sbin/pbuilder --build --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/config $(BUILDFILES)/$(PDSCFILE)
+
+default: list
+
+list:
+ @echo ======================================================================================
+ @echo '= Available target are listed below $(BRANCH) ='
+ @echo ======================================================================================
+ @cat Makefile.debian | grep '^.*:.*#$$' | sed 's/PKGLONGNAME/$(PKGLONGNAME)/' | sed 's/^\(.*:\).*#\(.*\)#$$/\1 \2/'
+ @echo ======================================================================================
+
+$(PKGDIR):
+ dget http://ftp.fr.debian.org/debian/pool/main/p/php-htmlpurifier/php-htmlpurifier_4.0.0+dfsg1-1.dsc
+ dpkg-source -x php-htmlpurifier_4.0.0+dfsg1-1.dsc
+#
+# Simple targets
+#
+#:======== Debian Builds ============#
+lenny: # Simply build lenny packages #
+ make cowbuilddeb DEBIANLIST=1lenny
+
+rlenny: # Make a lenny repository #
+ make repodeb DEBIANLIST=1lenny
+
+squeeze: # Simply build squeeze packages #
+ make cowbuilddeb DEBIANLIST=2squeeze
+
+rsqueeze: # Make a squeeze repository #
+ make repodeb DEBIANLIST=2squeeze
+
+sid: # Simply build sid packages #
+ make cowbuilddeb DEBIANLIST=3sid
+
+rsid: # Make a sid repository #
+ make repodeb DEBIANLIST=3sid
+
+#:======== Ubuntu Builds ============#
+intrepid: # Simply build intrepid packages #
+ make cowbuildubu UBUNTULIST=1intrepid
+
+rintrepid: # Make an intrepid repository #
+ make repoubu UBUNTULIST=1intrepid
+
+jaunty: # Simply build jaunty packages #
+ make cowbuildubu UBUNTULIST=1jaunty
+
+rjaunty: # Make a jaunty repository #
+ make repoubu UBUNTULIST=1jaunty
+
+karmic: # Simply build karmic packages #
+ make cowbuildubu UBUNTULIST=1karmic
+
+rkarmic: # Make a karmic repository #
+ make repoubu UBUNTULIST=1karmic
+
+#:======== Other Builds ============#
+#
+# PKGLONGNAME
+#
+orig: $(TARBALLS)/$(ORIGFILE) # Make PKGLONGNAME orig file #
+
+#
+# Build with cowbuilder or pbuilder
+#
+all: $(PKGDIR) cowbuilddeb cowbuildubu # ***** Build all package for debian and ubuntu ***** #
+
+deploy: repodeb repoubu # ***** Deploy packages in Debian and Ubuntu repositories ***** #
+
+repodeb: cowbuilddeb
+ @for dist in $(DEBIANLIST); do \
+ make localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPODEB) DISTRIBLIST="$(DEBIANLIST)" ; \
+ done
+
+repoubu: cowbuildubu
+ @for dist in $(UBUNTULIST); do \
+ make localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPOUBU) DISTRIBLIST="$(UBUNTULIST)" ; \
+ done
+
+cowbuildtest:
+ @echo "Will build $(PKGNAME)_$(MAJOR)$(MINOR)$(DISTRIB)"
+
+cowbuilddeb: $(PKGDIR) # ***** This is the one to cowbuild debian packages ***** #
+ @for dist in $(DEBIANLIST); do \
+ make cowbuilddist XDISTRIB=$$dist DISTROOP="$(DEBIANOP)" ; \
+ done
+
+cowbuildubu: $(PKGDIR) # ***** This is the one to cowbuild ubuntu packages ***** #
+ @for dist in $(UBUNTULIST); do \
+ make cowbuilddist XDISTRIB=$$dist DISTROOP="$(UBUNTUOP)" HOOK='$(UBUHOOK)' ; \
+ done
+
+cowbuilddist: cowbuilderenv $(BUILDFILES) $(BUILDRESULT)/$(CHANGEFILE)
+ @echo "Building $(BUILDRESULT)/$(CHANGEFILE)"
+
+pbuilddist: pbuilderenv $(BUILDFILES) $(BUILDRESULT)/$(PCHANGEFILE)
+ @echo "Building $(BUILDRESULT)/$(PCHANGEFILE)"
+
+$(BUILDRESULT)/$(CHANGEFILE): $(BUILDFILES)/$(DSCFILE)
+ $(COWBUILDERCMD)
+
+$(BUILDRESULT)/$(PCHANGEFILE): $(BUILDFILES)/$(PDSCFILE)
+ $(PBUILDERCMD)
+
+$(BUILDFILES)/$(DSCFILE): $(BUILDFILES)/$(ORIGFILE)
+ cd $(PKGDIR) ; debclean
+ find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -pdumB $(BUILDFILES)/
+ # Set version for given distrib
+ cd $(BUILDFILES)/$(PKGDIR); dch -b -v $(MAJOR)$(MINOR) -D UNRELEASED "This is $(DISTRIB) autobuild"
+ perl -pi -e "s/UNRELEASED/$(DISTRIB)/" $(BUILDFILES)/$(PKGDIR)/debian/changelog
+ cd $(BUILDFILES) ; dpkg-source -b $(PKGDIR)
+ rm -rf $(BUILDFILES)/$(PKGDIR)
+
+$(BUILDFILES)/$(PDSCFILE): $(BUILDFILES)/$(ORIGFILE)
+ cd $(PKGDIR) ; debclean
+ find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -pdumB $(BUILDFILES)/
+ # Set version for given distrib
+ cd $(BUILDFILES)/$(PKGDIR); dch -b -v $(MAJOR)$(MINOR)+p -D UNRELEASED "This is $(DISTRIB) autobuild"
+ perl -pi -e "s/UNRELEASED/$(DISTRIB)/" $(BUILDFILES)/$(PKGDIR)/debian/changelog
+ cd $(BUILDFILES) ; dpkg-source -b $(PKGDIR)
+ rm -rf $(BUILDFILES)/$(PKGDIR)
+
+$(BUILDFILES)/$(ORIGFILE): $(TARBALLS)/$(ORIGFILE)
+ cp $(TARBALLS)/$(ORIGFILE) $(BUILDFILES)
+
+$(TARBALLS)/$(ORIGFILE): $(TARBALLS) $(ORIGFILE)
+ cp $(ORIGFILE) $(TARBALLS)/$(ORIGFILE)
+ #ln -s ../$(ORIGFILE) $(TARBALLS)/$(ORIGFILE)
+
+#$(TARBALLS)/$(ORIGFILE): $(TARBALLS)
+# cd $(PKGDIR) ; debclean
+# find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -o -H ustar | gzip > $(TARBALLS)/$(ORIGFILE)
+
+pbuilderenv: $(PBUILDERTGZ) $(PBUILDERTGZ)/base-$(DISTRIB).tgz
+ @echo "Ready for $(DISTRIB)"
+
+cowbuilderenv: $(COWBUILDERBASE) $(COWBUILDERBASE)/base-$(DISTRIB).stamp
+ @echo "Ready for $(DISTRIB)"
+
+$(PBUILDERTGZ)/base-$(DISTRIB).tgz: $(PBUILDERTGZ)/config
+ sudo /usr/sbin/pbuilder --create --distribution $(DISTRIB) --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/config $(DISTROOP)
+
+$(COWBUILDERBASE)/base-$(DISTRIB).stamp: $(COWBUILDERBASE)/config
+ sudo /usr/sbin/cowbuilder --create $(HOOK) --distribution $(DISTRIB) --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(DISTROOP)
+ touch $(COWBUILDERBASE)/base-$(DISTRIB).stamp
+
+$(PBUILDERTGZ)/config: /usr/sbin/pbuilder
+ echo "APTCACHE=$(APTCACHE)" > $(PBUILDERTGZ)/config
+ echo "BUILDPLACE=$(BUILDPLACE)" >> $(PBUILDERTGZ)/config
+ echo "BUILDRESULT=$(BUILDRESULT)" >> $(PBUILDERTGZ)/config
+
+$(COWBUILDERBASE)/config: /usr/sbin/cowbuilder
+ echo "APTCACHE=$(APTCACHE)" > $(COWBUILDERBASE)/config
+ echo "BUILDPLACE=$(BUILDPLACE)" >> $(COWBUILDERBASE)/config
+ echo "BUILDRESULT=$(BUILDRESULT)" >> $(COWBUILDERBASE)/config
+
+/usr/sbin/pbuilder:
+ sudo apt-get install pbuilder
+
+ubukey:
+ gpg --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
+ gpg --export --armor 40976EAF437D05B5 | sudo apt-key add -
+
+/usr/sbin/cowbuilder:
+ sudo apt-get install cowdancer
+
+localrepo: $(LOCALREPO) $(LOCALREPO)/conf $(LOCALREPO)/conf/distributions
+
+reprepro: $(LOCALREPO)/pool/main/$(PKGLETTER)/$(PKGNAME)/$(DSCFILE) # Install in repository
+
+$(LOCALREPO)/pool/main/$(PKGLETTER)/$(PKGNAME)/$(DSCFILE): $(BUILDRESULT)/$(CHANGEFILE)
+ cd $(BUILDRESULT); reprepro $(ASKPASS) -Vb $(LOCALREPO) include $(DISTRIB) $(CHANGEFILE)
+
+$(LOCALREPO)/conf/distributions:
+ for xdist in $(DISTRIBLIST) ; do \
+ dist=`echo $$xdist | cut -c2-` ; \
+ echo "Codename: $$dist" ; \
+ echo "Suite: $$dist" ; \
+ echo "Components: main" ; \
+ echo "UDebComponents: main" ; \
+ echo "Architectures: amd64 i386 source" ; \
+ echo "Origin: $(ORIGIN)" ; \
+ echo "Version: 0.1" ; \
+ echo "Description: My $(PKGLONGNAME) $$dist repository" ; \
+ echo "SignWith: yes" ; \
+ echo "" ; done >> $(LOCALREPO)/conf/distributions
+
+$(LOCALREPO)/conf:
+ mkdir $(LOCALREPO)/conf
+
+$(TARBALLS):
+ mkdir -p $(TARBALLS)
+
+$(BUILDFILES):
+ mkdir -p $(BUILDFILES)
+
+$(COWBUILDERBASE):
+ mkdir -p $(COWBUILDERBASE)
+
+$(PBUILDERTGZ):
+ mkdir -p $(PBUILDERTGZ)
+
+$(LOCALREPO):
+ sudo mkdir $(LOCALREPO)
+ sudo chown `id -u`.`id -g` $(LOCALREPO)
Summary: HTML Purifier is a standards-compliant HTML filter library written in PHP.
Name: htmlpurifier
Version: 4.0.0
-Release: 0
+Release: 1
License: LGPL
Group: Development/Languages
URL: http://htmlpurifier.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: noarch
-Requires: webserver, php
+Requires: php >= 5.0.5
%description
HTML Purifier is a standards-compliant HTML filter library written in PHP. HTML
%doc art benchmarks configdoc CREDITS docs INSTALL INSTALL.fr.utf8 LICENSE NEWS README TODO VERSION WHATSNEW WYSIWYG
%changelog
-* Thu Sep 24 2009 Alain Peyrat <aljeux@free.fr> - 4.0.0
+* Sun Mar 28 2010 Alain Peyrat <aljeux@free.fr> - 4.0.0-1
+- Removed requirement to webserver, set php >= 5.0.5
+
+* Thu Sep 24 2009 Alain Peyrat <aljeux@free.fr> - 4.0.0-0
- Updated to v4.0.0
- Changed installation path to /usr/share/php to use the share path with debian.
--- /dev/null
+DISTDEBIAN=$(shell [ -f /etc/debian_version ] && echo debian)
+DISTREDHAT=$(shell grep -qi 'Red Hat' /etc/issue && echo rh)
+DISTSUSE=$(shell grep -qi 'SuSE' /etc/issue && echo rh)
+DIST=$(DISTDEBIAN)$(DISTREDHAT)$(DISTSUSE)
+
+default:
+ @make -f Makefile.$(DIST) default
+
+%:
+ @make -f Makefile.$(DIST) $@
--- /dev/null
+#! /usr/bin/make -f
+
+PKGLONGNAME=LocalRepository
+
+PKGDIR=mailman-2.1.13
+#PKGDIR=$(shell dirname */debian)
+PKGNAME=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/\(.[^ ]*\) .*/\1/')
+BRANCH=$(shell [ "$(shell echo $(basename $(CURDIR)) | sed 's/.*runk.*/trunk/')" = "trunk" ] && echo svn || echo brc)
+
+PKGLETTER=$(shell echo $(PKGNAME) | cut -c1)
+ORIGIN=debian.bayle.eu
+COWPLACE=$(CURDIR)
+BUILDPLACE=$(COWPLACE)/builder/buildplace
+BUILDFILES=$(COWPLACE)/builder/buildfiles
+BUILDRESULT=$(COWPLACE)/result
+COWBUILDERBASE=$(COWPLACE)/builder/cow
+PBUILDERTGZ=$(COWPLACE)/builder/tgz
+TARBALLS=$(COWPLACE)/tarballs
+APTCACHE=$(COWPLACE)/builder/cache
+DISTRIB=$(shell echo $(XDISTRIB) | cut -c2-)
+LOCALREPODEB=/var/www/debian-fusionforge-$(BRANCH)
+LOCALREPOUBU=/var/www/ubuntu-fusionforge-$(BRANCH)
+DEBIANLIST=1lenny 2squeeze 3sid
+UBUNTULIST=1jaunty 1karmic 1lucid
+ASKPASS=--ask-passphrase
+#ASKPASS=
+
+# Try if a local mirror is available
+UBUNTUOP=$(shell wget -q -S http://localhost/ubuntu -O /dev/null && echo "--mirror http://localhost/ubuntu" || echo "--mirror http://archive.ubuntu.com/ubuntu") --debootstrap debootstrap
+DEBIANOP=$(shell wget -q -S http://localhost/debian -O /dev/null && echo "--mirror http://localhost/debian" || echo "--mirror http://ftp.fr.debian.org/debian") --debootstrapopts --include=apt
+
+MAJOR=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/.*(.:\(.[^-]*\).*).*/\1/')
+EPOCH=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/.*(\(.\):.*).*/\1/')
+ORIGMINOR=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/.*(.[^-]*[-]\(.*\)).*/\1/')
+#svnrev=$(shell LANG=C svn info | grep Revision | cut -d: -f2| sed 's/ //g')
+
+MINOR=-1
+MINOR=-$(ORIGMINOR)+$(XDISTRIB)
+
+DEBUG=--debug
+DEBUG=
+DEBBUILDOPTS=--debbuildopts -sa
+ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+UBUHOOK="--hookdir $(CURDIR)/hook/ubuntu"
+# Some doc found there http://wiki.debian.org/cowbuilder
+# Hook are not anymore necessary, but I keep as an example
+UBUHOOK="--components 'main universe' --debootstrapopts --exclude=udev,pcmciautils,initramfs-tools"
+UBUHOOK=--components "main universe" --hookdir $(CURDIR)/hook/ubuntu
+
+ORIGFILE=$(PKGNAME)_$(MAJOR).orig.tar.gz
+
+DSCFILE=$(PKGNAME)_$(MAJOR)$(MINOR).dsc
+CHANGEFILE=$(PKGNAME)_$(MAJOR)$(MINOR)_$(ARCH).changes
+
+PDSCFILE=$(PKGNAME)_$(MAJOR)$(MINOR)+p.dsc
+PCHANGEFILE=$(PKGNAME)_$(MAJOR)$(MINOR)+p_$(ARCH).changes
+
+COWBUILDERCMD=sudo /usr/sbin/cowbuilder --build --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(BUILDFILES)/$(DSCFILE) $(DEBBUILDOPTS)
+
+PBUILDERCMD=cd $(BUILDFILES) && sudo /usr/sbin/pbuilder --build --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/config $(BUILDFILES)/$(PDSCFILE)
+
+default: list
+
+list:
+ @echo ======================================================================================
+ @echo '= Available target are listed below $(BRANCH) $(EPOCH) $(MAJOR) ='
+ @echo ======================================================================================
+ @cat Makefile.debian | grep '^.*:.*#$$' | sed 's/PKGLONGNAME/$(PKGLONGNAME)/' | sed 's/^\(.*:\).*#\(.*\)#$$/\1 \2/'
+ @echo ======================================================================================
+
+$(PKGDIR):
+ bzr export mailman-2.1.12 http://bazaar.launchpad.net/~melanie-lebail/mailman/coclico
+ # next will use this
+ #dget http://ftp.fr.debian.org/debian/pool/main/m/mailman/mailman_2.1.13-2.dsc
+#
+# Simple targets
+#
+#:======== Debian Builds ============#
+lenny: # Simply build lenny packages #
+ make cowbuilddeb DEBIANLIST=1lenny
+
+rlenny: # Make a lenny repository #
+ make repodeb DEBIANLIST=1lenny
+
+squeeze: # Simply build squeeze packages #
+ make cowbuilddeb DEBIANLIST=2squeeze
+
+rsqueeze: # Make a squeeze repository #
+ make repodeb DEBIANLIST=2squeeze
+
+sid: # Simply build sid packages #
+ make cowbuilddeb DEBIANLIST=3sid
+
+rsid: # Make a sid repository #
+ make repodeb DEBIANLIST=3sid
+
+#:======== Ubuntu Builds ============#
+intrepid: # Simply build intrepid packages #
+ make cowbuildubu UBUNTULIST=1intrepid
+
+rintrepid: # Make an intrepid repository #
+ make repoubu UBUNTULIST=1intrepid
+
+jaunty: # Simply build jaunty packages #
+ make cowbuildubu UBUNTULIST=1jaunty
+
+rjaunty: # Make a jaunty repository #
+ make repoubu UBUNTULIST=1jaunty
+
+karmic: # Simply build karmic packages #
+ make cowbuildubu UBUNTULIST=1karmic
+
+rkarmic: # Make a karmic repository #
+ make repoubu UBUNTULIST=1karmic
+
+#:======== Other Builds ============#
+#
+# PKGLONGNAME
+#
+orig: $(TARBALLS)/$(ORIGFILE) # Make PKGLONGNAME orig file #
+
+#
+# Build with cowbuilder or pbuilder
+#
+all: $(PKGDIR) cowbuilddeb cowbuildubu # ***** Build all package for debian and ubuntu ***** #
+
+deploy: repodeb repoubu # ***** Deploy packages in Debian and Ubuntu repositories ***** #
+
+repodeb: cowbuilddeb
+ @for dist in $(DEBIANLIST); do \
+ make localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPODEB) DISTRIBLIST="$(DEBIANLIST)" ; \
+ done
+
+repoubu: cowbuildubu
+ @for dist in $(UBUNTULIST); do \
+ make localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPOUBU) DISTRIBLIST="$(UBUNTULIST)" ; \
+ done
+
+cowbuildtest:
+ @echo "Will build $(PKGNAME)_$(MAJOR)$(MINOR)$(DISTRIB)"
+
+cowbuilddeb: $(PKGDIR) # ***** This is the one to cowbuild debian packages ***** #
+ @for dist in $(DEBIANLIST); do \
+ make cowbuilddist XDISTRIB=$$dist DISTROOP="$(DEBIANOP)" ; \
+ done
+
+cowbuildubu: $(PKGDIR) # ***** This is the one to cowbuild ubuntu packages ***** #
+ @for dist in $(UBUNTULIST); do \
+ make cowbuilddist XDISTRIB=$$dist DISTROOP="$(UBUNTUOP)" HOOK='$(UBUHOOK)' ; \
+ done
+
+cowbuilddist: cowbuilderenv $(BUILDFILES) $(BUILDRESULT)/$(CHANGEFILE)
+ @echo "Building $(BUILDRESULT)/$(CHANGEFILE)"
+
+pbuilddist: pbuilderenv $(BUILDFILES) $(BUILDRESULT)/$(PCHANGEFILE)
+ @echo "Building $(BUILDRESULT)/$(PCHANGEFILE)"
+
+$(BUILDRESULT)/$(CHANGEFILE): $(BUILDFILES)/$(DSCFILE)
+ $(COWBUILDERCMD)
+
+$(BUILDRESULT)/$(PCHANGEFILE): $(BUILDFILES)/$(PDSCFILE)
+ $(PBUILDERCMD)
+
+$(BUILDFILES)/$(DSCFILE): $(BUILDFILES)/$(ORIGFILE)
+ cd $(PKGDIR) ; debclean
+ find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -pdumB $(BUILDFILES)/
+ # Set version for given distrib
+ cd $(BUILDFILES)/$(PKGDIR); dch -b -v $(EPOCH):$(MAJOR)$(MINOR) -D UNRELEASED "This is $(DISTRIB) autobuild"
+ perl -pi -e "s/UNRELEASED/$(DISTRIB)/" $(BUILDFILES)/$(PKGDIR)/debian/changelog
+ cd $(BUILDFILES) ; dpkg-source -b $(PKGDIR)
+ rm -rf $(BUILDFILES)/$(PKGDIR)
+
+$(BUILDFILES)/$(PDSCFILE): $(BUILDFILES)/$(ORIGFILE)
+ cd $(PKGDIR) ; debclean
+ find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -pdumB $(BUILDFILES)/
+ # Set version for given distrib
+ cd $(BUILDFILES)/$(PKGDIR); dch -b -v $(EPOCH):$(MAJOR)$(MINOR)+p -D UNRELEASED "This is $(DISTRIB) autobuild"
+ perl -pi -e "s/UNRELEASED/$(DISTRIB)/" $(BUILDFILES)/$(PKGDIR)/debian/changelog
+ cd $(BUILDFILES) ; dpkg-source -b $(PKGDIR)
+ rm -rf $(BUILDFILES)/$(PKGDIR)
+
+$(BUILDFILES)/$(ORIGFILE): $(TARBALLS)/$(ORIGFILE)
+ cp $(TARBALLS)/$(ORIGFILE) $(BUILDFILES)
+
+#$(TARBALLS)/$(ORIGFILE): $(TARBALLS) $(ORIGFILE)
+# cp $(ORIGFILE) $(TARBALLS)/$(ORIGFILE)
+# #ln -s ../$(ORIGFILE) $(TARBALLS)/$(ORIGFILE)
+$(TARBALLS)/$(ORIGFILE): $(TARBALLS)
+ cd $(PKGDIR) ; debclean
+ find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | \
+ grep -v '/.svn/' | grep -v '/.testbox/' | \
+ grep -v rpm-specific | grep -v docs/phpdoc/docs | \
+ grep -v ^./debian/ | grep -v \\.jar$$ | \
+ grep -v plugins/fckeditor/www/_samples | \
+ grep -v plugins/wiki/www/lib/pear | \
+ cpio -o -H ustar | gzip > $(TARBALLS)/$(ORIGFILE)
+
+
+#$(TARBALLS)/$(ORIGFILE): $(TARBALLS)
+# cd $(PKGDIR) ; debclean
+# find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -o -H ustar | gzip > $(TARBALLS)/$(ORIGFILE)
+
+pbuilderenv: $(PBUILDERTGZ) $(PBUILDERTGZ)/base-$(DISTRIB).tgz
+ @echo "Ready for $(DISTRIB)"
+
+cowbuilderenv: $(COWBUILDERBASE) $(COWBUILDERBASE)/base-$(DISTRIB).stamp
+ @echo "Ready for $(DISTRIB)"
+
+$(PBUILDERTGZ)/base-$(DISTRIB).tgz: $(PBUILDERTGZ)/config
+ sudo /usr/sbin/pbuilder --create --distribution $(DISTRIB) --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/config $(DISTROOP)
+
+$(COWBUILDERBASE)/base-$(DISTRIB).stamp: $(COWBUILDERBASE)/config
+ sudo /usr/sbin/cowbuilder --create $(HOOK) --distribution $(DISTRIB) --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(DISTROOP)
+ touch $(COWBUILDERBASE)/base-$(DISTRIB).stamp
+
+$(PBUILDERTGZ)/config: /usr/sbin/pbuilder
+ echo "APTCACHE=$(APTCACHE)" > $(PBUILDERTGZ)/config
+ echo "BUILDPLACE=$(BUILDPLACE)" >> $(PBUILDERTGZ)/config
+ echo "BUILDRESULT=$(BUILDRESULT)" >> $(PBUILDERTGZ)/config
+
+$(COWBUILDERBASE)/config: /usr/sbin/cowbuilder
+ echo "APTCACHE=$(APTCACHE)" > $(COWBUILDERBASE)/config
+ echo "BUILDPLACE=$(BUILDPLACE)" >> $(COWBUILDERBASE)/config
+ echo "BUILDRESULT=$(BUILDRESULT)" >> $(COWBUILDERBASE)/config
+
+/usr/sbin/pbuilder:
+ sudo apt-get install pbuilder
+
+ubukey:
+ gpg --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
+ gpg --export --armor 40976EAF437D05B5 | sudo apt-key add -
+
+/usr/sbin/cowbuilder:
+ sudo apt-get install cowdancer
+
+localrepo: $(LOCALREPO) $(LOCALREPO)/conf $(LOCALREPO)/conf/distributions
+
+reprepro: $(LOCALREPO)/pool/main/$(PKGLETTER)/$(PKGNAME)/$(DSCFILE) # Install in repository
+
+$(LOCALREPO)/pool/main/$(PKGLETTER)/$(PKGNAME)/$(DSCFILE): $(BUILDRESULT)/$(CHANGEFILE)
+ cd $(BUILDRESULT); reprepro $(ASKPASS) -Vb $(LOCALREPO) include $(DISTRIB) $(CHANGEFILE)
+
+$(LOCALREPO)/conf/distributions:
+ for xdist in $(DISTRIBLIST) ; do \
+ dist=`echo $$xdist | cut -c2-` ; \
+ echo "Codename: $$dist" ; \
+ echo "Suite: $$dist" ; \
+ echo "Components: main" ; \
+ echo "UDebComponents: main" ; \
+ echo "Architectures: amd64 i386 source" ; \
+ echo "Origin: $(ORIGIN)" ; \
+ echo "Version: 0.1" ; \
+ echo "Description: My $(PKGLONGNAME) $$dist repository" ; \
+ echo "SignWith: yes" ; \
+ echo "" ; done >> $(LOCALREPO)/conf/distributions
+
+$(LOCALREPO)/conf:
+ mkdir $(LOCALREPO)/conf
+
+$(TARBALLS):
+ mkdir -p $(TARBALLS)
+
+$(BUILDFILES):
+ mkdir -p $(BUILDFILES)
+
+$(COWBUILDERBASE):
+ mkdir -p $(COWBUILDERBASE)
+
+$(PBUILDERTGZ):
+ mkdir -p $(PBUILDERTGZ)
+
+$(LOCALREPO):
+ sudo mkdir $(LOCALREPO)
+ sudo chown `id -u`.`id -g` $(LOCALREPO)
--- /dev/null
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+Format: 1.0
+Source: mailman
+Binary: mailman
+Architecture: any
+Version: 1:2.1.13-2
+Maintainer: Mailman for Debian <pkg-mailman-hackers@lists.alioth.debian.org>
+Uploaders: Lionel Elie Mamane <lmamane@debian.org>, Thijs Kinkhorst <thijs@debian.org>, Hector Garcia <hector@debian.org>
+Homepage: http://www.list.org/
+Standards-Version: 3.8.4
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-mailman/trunk
+Vcs-Svn: svn://svn.debian.org/svn/pkg-mailman/trunk
+Build-Depends: debhelper (>= 7), autoconf, python-dev, python-support, quilt
+Checksums-Sha1:
+ 923dd78a17cbab576354b53a80443fe05f134398 8166504 mailman_2.1.13.orig.tar.gz
+ 7397928c576d777bbb0e8d95d587536a0c1bef4e 131643 mailman_2.1.13-2.diff.gz
+Checksums-Sha256:
+ ddab5169c851e49134d8e58fd0d5fd3b920d8ddb5f52582c2ec95076c746a25e 8166504 mailman_2.1.13.orig.tar.gz
+ 59f24769e9c82e42c750bded9d2b552f1defe384432609cc95fcb0db0fea4a2c 131643 mailman_2.1.13-2.diff.gz
+Files:
+ 3235323ccb3e0135c10b7c66a440390b 8166504 mailman_2.1.13.orig.tar.gz
+ 56bf65220fc3946f37b258dcc4938692 131643 mailman_2.1.13-2.diff.gz
+Python-Version: current
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.10 (GNU/Linux)
+
+iQEcBAEBCAAGBQJLpTgbAAoJECIIoQCMVaAcduUH/07u08FZvhthHh/5ZVYhnDlR
+oWpOIvxpF6mWQdBuPAXcVpyLbyE970M5pmRaKdeq/sRAvWZSRPn2U+1vvxcVvSGq
+tVHONts1hGcZPoBe4fE4jS19WIaCPEFEcs872FGo2eO6l6EjJYCmCCzwvGFkVjeE
+hPv1egCFdDvYwUApJPBzn5qo9U9Ec2aDjXJiT6rpKQaZ1tzxVUyJwIvn7Pywo8OV
+BXt+4fRwTBXdPLANqAFU0M1EZ4JK6hAHYss0tIANwq9Ryc7eMdMi77hidBjHqCXA
+R2kLNSGY4lRcajde9uto4d5bWuiwxoBGKG+1iOC/bVr51NBitHJvDCY07WYc5Vc=
+=QO5q
+-----END PGP SIGNATURE-----
--- /dev/null
+Format: 1.0
+Source: mailman
+Binary: mailman
+Architecture: any
+Version: 1:2.1.13-2coclico1
+Maintainer: Mailman for Debian <pkg-mailman-hackers@lists.alioth.debian.org>
+Uploaders: Lionel Elie Mamane <lmamane@debian.org>, Thijs Kinkhorst <thijs@debian.org>, Hector Garcia <hector@debian.org>
+Homepage: http://www.list.org/
+Standards-Version: 3.8.4
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-mailman/trunk
+Vcs-Svn: svn://svn.debian.org/svn/pkg-mailman/trunk
+Build-Depends: debhelper (>= 7), autoconf, python-dev, python-support, quilt
+Checksums-Sha1:
+ 923dd78a17cbab576354b53a80443fe05f134398 8166504 mailman_2.1.13.orig.tar.gz
+ 97781d4dc6a36dce57b71b44d9bdfc384f1a9da9 139836 mailman_2.1.13-2coclico1.diff.gz
+Checksums-Sha256:
+ ddab5169c851e49134d8e58fd0d5fd3b920d8ddb5f52582c2ec95076c746a25e 8166504 mailman_2.1.13.orig.tar.gz
+ 1ba62fd446610823c45e28ddbb6326f4024767894900d73b47cf4a78767d928c 139836 mailman_2.1.13-2coclico1.diff.gz
+Files:
+ 3235323ccb3e0135c10b7c66a440390b 8166504 mailman_2.1.13.orig.tar.gz
+ 7ec79a1898d811e3f86dbaff0373d4c7 139836 mailman_2.1.13-2coclico1.diff.gz
+Python-Version: current
--- /dev/null
+DISTDEBIAN=$(shell [ -f /etc/debian_version ] && echo debian)
+DISTREDHAT=$(shell grep -qi 'Red Hat' /etc/issue && echo rh)
+DISTSUSE=$(shell grep -qi 'SuSE' /etc/issue && echo rh)
+DIST=$(DISTDEBIAN)$(DISTREDHAT)$(DISTSUSE)
+
+default:
+ @make -f Makefile.$(DIST) default
+
+%:
+ @make -f Makefile.$(DIST) $@
--- /dev/null
+#! /usr/bin/make -f
+
+PKGLONGNAME=LocalRepository
+
+PKGDIR=nusoap-0.7.3
+#PKGDIR=$(shell dirname */debian)
+PKGNAME=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/\(.[^ ]*\) .*/\1/')
+BRANCH=$(shell [ "$(shell echo $(basename $(CURDIR)) | sed 's/.*runk.*/trunk/')" = "trunk" ] && echo svn || echo brc)
+
+PKGLETTER=$(shell echo $(PKGNAME) | cut -c1)
+ORIGIN=debian.bayle.eu
+COWPLACE=$(CURDIR)
+BUILDPLACE=$(COWPLACE)/builder/buildplace
+BUILDFILES=$(COWPLACE)/builder/buildfiles
+BUILDRESULT=$(COWPLACE)/result
+COWBUILDERBASE=$(COWPLACE)/builder/cow
+PBUILDERTGZ=$(COWPLACE)/builder/tgz
+TARBALLS=$(COWPLACE)/tarballs
+APTCACHE=$(COWPLACE)/builder/cache
+DISTRIB=$(shell echo $(XDISTRIB) | cut -c2-)
+LOCALREPODEB=/var/www/debian-fusionforge-$(BRANCH)
+LOCALREPOUBU=/var/www/ubuntu-fusionforge-$(BRANCH)
+DEBIANLIST=1lenny
+UBUNTULIST=1jaunty 1karmic
+ASKPASS=--ask-passphrase
+ASKPASS=
+
+# Try if a local mirror is available
+UBUNTUOP=$(shell wget -q -S http://localhost/ubuntu -O /dev/null && echo "--mirror http://localhost/ubuntu" || echo "--mirror http://archive.ubuntu.com/ubuntu") --debootstrap debootstrap
+DEBIANOP=$(shell wget -q -S http://localhost/debian -O /dev/null && echo "--mirror http://localhost/debian" || echo "--mirror http://ftp.fr.debian.org/debian") --debootstrapopts --include=apt
+
+MAJOR=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/.*(\(.[^-]*\).*).*/\1/')
+ORIGMINOR=$(shell head -1 $(PKGDIR)/debian/changelog 2>/dev/null| sed 's/.*(.[^-]*[-]\(.*\)).*/\1/')
+#svnrev=$(shell LANG=C svn info | grep Revision | cut -d: -f2| sed 's/ //g')
+
+MINOR=-1
+MINOR=-$(ORIGMINOR)+$(XDISTRIB)
+
+DEBUG=--debug
+DEBUG=
+DEBBUILDOPTS=--debbuildopts -sa
+ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+UBUHOOK="--hookdir $(CURDIR)/hook/ubuntu"
+# Some doc found there http://wiki.debian.org/cowbuilder
+# Hook are not anymore necessary, but I keep as an example
+UBUHOOK="--components 'main universe' --debootstrapopts --exclude=udev,pcmciautils,initramfs-tools"
+UBUHOOK=--components "main universe" --hookdir $(CURDIR)/hook/ubuntu
+
+ORIGFILE=$(PKGNAME)_$(MAJOR).orig.tar.gz
+
+DSCFILE=$(PKGNAME)_$(MAJOR)$(MINOR).dsc
+CHANGEFILE=$(PKGNAME)_$(MAJOR)$(MINOR)_$(ARCH).changes
+
+PDSCFILE=$(PKGNAME)_$(MAJOR)$(MINOR)+p.dsc
+PCHANGEFILE=$(PKGNAME)_$(MAJOR)$(MINOR)+p_$(ARCH).changes
+
+COWBUILDERCMD=sudo /usr/sbin/cowbuilder --build --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(BUILDFILES)/$(DSCFILE) $(DEBBUILDOPTS)
+
+PBUILDERCMD=cd $(BUILDFILES) && sudo /usr/sbin/pbuilder --build --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/config $(BUILDFILES)/$(PDSCFILE)
+
+default: list
+
+list:
+ @echo ======================================================================================
+ @echo '= Available target are listed below $(BRANCH) ='
+ @echo ======================================================================================
+ @cat Makefile.debian | grep '^.*:.*#$$' | sed 's/PKGLONGNAME/$(PKGLONGNAME)/' | sed 's/^\(.*:\).*#\(.*\)#$$/\1 \2/'
+ @echo ======================================================================================
+
+$(PKGDIR):
+ apt-get source nusoap
+#
+# Simple targets
+#
+#:======== Debian Builds ============#
+lenny: # Simply build lenny packages #
+ make cowbuilddeb DEBIANLIST=1lenny
+
+rlenny: # Make a lenny repository #
+ make repodeb DEBIANLIST=1lenny
+
+squeeze: # Simply build squeeze packages #
+ make cowbuilddeb DEBIANLIST=2squeeze
+
+rsqueeze: # Make a squeeze repository #
+ make repodeb DEBIANLIST=2squeeze
+
+sid: # Simply build sid packages #
+ make cowbuilddeb DEBIANLIST=3sid
+
+rsid: # Make a sid repository #
+ make repodeb DEBIANLIST=3sid
+
+#:======== Ubuntu Builds ============#
+intrepid: # Simply build intrepid packages #
+ make cowbuildubu UBUNTULIST=1intrepid
+
+rintrepid: # Make an intrepid repository #
+ make repoubu UBUNTULIST=1intrepid
+
+jaunty: # Simply build jaunty packages #
+ make cowbuildubu UBUNTULIST=1jaunty
+
+rjaunty: # Make a jaunty repository #
+ make repoubu UBUNTULIST=1jaunty
+
+karmic: # Simply build karmic packages #
+ make cowbuildubu UBUNTULIST=1karmic
+
+rkarmic: # Make a karmic repository #
+ make repoubu UBUNTULIST=1karmic
+
+#:======== Other Builds ============#
+#
+# PKGLONGNAME
+#
+orig: $(TARBALLS)/$(ORIGFILE) # Make PKGLONGNAME orig file #
+
+#
+# Build with cowbuilder or pbuilder
+#
+all: $(PKGDIR) cowbuilddeb cowbuildubu # ***** Build all package for debian and ubuntu ***** #
+
+deploy: repodeb repoubu # ***** Deploy packages in Debian and Ubuntu repositories ***** #
+
+repodeb: cowbuilddeb
+ @for dist in $(DEBIANLIST); do \
+ make localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPODEB) DISTRIBLIST="$(DEBIANLIST)" ; \
+ done
+
+repoubu: cowbuildubu
+ @for dist in $(UBUNTULIST); do \
+ make localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPOUBU) DISTRIBLIST="$(UBUNTULIST)" ; \
+ done
+
+cowbuildtest:
+ @echo "Will build $(PKGNAME)_$(MAJOR)$(MINOR)$(DISTRIB)"
+
+cowbuilddeb: $(PKGDIR) # ***** This is the one to cowbuild debian packages ***** #
+ @for dist in $(DEBIANLIST); do \
+ make cowbuilddist XDISTRIB=$$dist DISTROOP="$(DEBIANOP)" ; \
+ done
+
+cowbuildubu: $(PKGDIR) # ***** This is the one to cowbuild ubuntu packages ***** #
+ @for dist in $(UBUNTULIST); do \
+ make cowbuilddist XDISTRIB=$$dist DISTROOP="$(UBUNTUOP)" HOOK='$(UBUHOOK)' ; \
+ done
+
+cowbuilddist: cowbuilderenv $(BUILDFILES) $(BUILDRESULT)/$(CHANGEFILE)
+ @echo "Building $(BUILDRESULT)/$(CHANGEFILE)"
+
+pbuilddist: pbuilderenv $(BUILDFILES) $(BUILDRESULT)/$(PCHANGEFILE)
+ @echo "Building $(BUILDRESULT)/$(PCHANGEFILE)"
+
+$(BUILDRESULT)/$(CHANGEFILE): $(BUILDFILES)/$(DSCFILE)
+ $(COWBUILDERCMD)
+
+$(BUILDRESULT)/$(PCHANGEFILE): $(BUILDFILES)/$(PDSCFILE)
+ $(PBUILDERCMD)
+
+$(BUILDFILES)/$(DSCFILE): $(BUILDFILES)/$(ORIGFILE)
+ cd $(PKGDIR) ; debclean
+ find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -pdumB $(BUILDFILES)/
+ # Set version for given distrib
+ cd $(BUILDFILES)/$(PKGDIR); dch -b -v $(MAJOR)$(MINOR) -D UNRELEASED "This is $(DISTRIB) autobuild"
+ perl -pi -e "s/UNRELEASED/$(DISTRIB)/" $(BUILDFILES)/$(PKGDIR)/debian/changelog
+ cd $(BUILDFILES) ; dpkg-source -b $(PKGDIR)
+ rm -rf $(BUILDFILES)/$(PKGDIR)
+
+$(BUILDFILES)/$(PDSCFILE): $(BUILDFILES)/$(ORIGFILE)
+ cd $(PKGDIR) ; debclean
+ find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -pdumB $(BUILDFILES)/
+ # Set version for given distrib
+ cd $(BUILDFILES)/$(PKGDIR); dch -b -v $(MAJOR)$(MINOR)+p -D UNRELEASED "This is $(DISTRIB) autobuild"
+ perl -pi -e "s/UNRELEASED/$(DISTRIB)/" $(BUILDFILES)/$(PKGDIR)/debian/changelog
+ cd $(BUILDFILES) ; dpkg-source -b $(PKGDIR)
+ rm -rf $(BUILDFILES)/$(PKGDIR)
+
+$(BUILDFILES)/$(ORIGFILE): $(TARBALLS)/$(ORIGFILE)
+ cp $(TARBALLS)/$(ORIGFILE) $(BUILDFILES)
+
+$(TARBALLS)/$(ORIGFILE): $(TARBALLS) $(ORIGFILE)
+ cp $(ORIGFILE) $(TARBALLS)/$(ORIGFILE)
+ #ln -s ../$(ORIGFILE) $(TARBALLS)/$(ORIGFILE)
+
+#$(TARBALLS)/$(ORIGFILE): $(TARBALLS)
+# cd $(PKGDIR) ; debclean
+# find $(PKGDIR) -type f -or -type l | grep -v '/CVS/' | grep -v '/.svn/' | grep -v rpm-specific | grep -v docs/phpdoc/docs | grep -v ^./debian/ | cpio -o -H ustar | gzip > $(TARBALLS)/$(ORIGFILE)
+
+pbuilderenv: $(PBUILDERTGZ) $(PBUILDERTGZ)/base-$(DISTRIB).tgz
+ @echo "Ready for $(DISTRIB)"
+
+cowbuilderenv: $(COWBUILDERBASE) $(COWBUILDERBASE)/base-$(DISTRIB).stamp
+ @echo "Ready for $(DISTRIB)"
+
+$(PBUILDERTGZ)/base-$(DISTRIB).tgz: $(PBUILDERTGZ)/config
+ sudo /usr/sbin/pbuilder --create --distribution $(DISTRIB) --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/config $(DISTROOP)
+
+$(COWBUILDERBASE)/base-$(DISTRIB).stamp: $(COWBUILDERBASE)/config
+ sudo /usr/sbin/cowbuilder --create $(HOOK) --distribution $(DISTRIB) --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(DISTROOP)
+ touch $(COWBUILDERBASE)/base-$(DISTRIB).stamp
+
+$(PBUILDERTGZ)/config: /usr/sbin/pbuilder
+ echo "APTCACHE=$(APTCACHE)" > $(PBUILDERTGZ)/config
+ echo "BUILDPLACE=$(BUILDPLACE)" >> $(PBUILDERTGZ)/config
+ echo "BUILDRESULT=$(BUILDRESULT)" >> $(PBUILDERTGZ)/config
+
+$(COWBUILDERBASE)/config: /usr/sbin/cowbuilder
+ echo "APTCACHE=$(APTCACHE)" > $(COWBUILDERBASE)/config
+ echo "BUILDPLACE=$(BUILDPLACE)" >> $(COWBUILDERBASE)/config
+ echo "BUILDRESULT=$(BUILDRESULT)" >> $(COWBUILDERBASE)/config
+
+/usr/sbin/pbuilder:
+ sudo apt-get install pbuilder
+
+ubukey:
+ gpg --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
+ gpg --export --armor 40976EAF437D05B5 | sudo apt-key add -
+
+/usr/sbin/cowbuilder:
+ sudo apt-get install cowdancer
+
+localrepo: $(LOCALREPO) $(LOCALREPO)/conf $(LOCALREPO)/conf/distributions
+
+reprepro: $(LOCALREPO)/pool/main/$(PKGLETTER)/$(PKGNAME)/$(DSCFILE) # Install in repository
+
+$(LOCALREPO)/pool/main/$(PKGLETTER)/$(PKGNAME)/$(DSCFILE): $(BUILDRESULT)/$(CHANGEFILE)
+ cd $(BUILDRESULT); reprepro $(ASKPASS) -Vb $(LOCALREPO) include $(DISTRIB) $(CHANGEFILE)
+
+$(LOCALREPO)/conf/distributions:
+ for xdist in $(DISTRIBLIST) ; do \
+ dist=`echo $$xdist | cut -c2-` ; \
+ echo "Codename: $$dist" ; \
+ echo "Suite: $$dist" ; \
+ echo "Components: main" ; \
+ echo "UDebComponents: main" ; \
+ echo "Architectures: amd64 i386 source" ; \
+ echo "Origin: $(ORIGIN)" ; \
+ echo "Version: 0.1" ; \
+ echo "Description: My $(PKGLONGNAME) $$dist repository" ; \
+ echo "SignWith: yes" ; \
+ echo "" ; done >> $(LOCALREPO)/conf/distributions
+
+$(LOCALREPO)/conf:
+ mkdir $(LOCALREPO)/conf
+
+$(TARBALLS):
+ mkdir -p $(TARBALLS)
+
+$(BUILDFILES):
+ mkdir -p $(BUILDFILES)
+
+$(COWBUILDERBASE):
+ mkdir -p $(COWBUILDERBASE)
+
+$(PBUILDERTGZ):
+ mkdir -p $(PBUILDERTGZ)
+
+$(LOCALREPO):
+ sudo mkdir $(LOCALREPO)
+ sudo chown `id -u`.`id -g` $(LOCALREPO)
--- /dev/null
+diff -Naur jpgraph-1.5.2.org/src/jpgraph_dir.php jpgraph-1.5.2/src/jpgraph_dir.php
+--- jpgraph-1.5.2.org/src/jpgraph_dir.php 2002-03-01 01:46:17.000000000 +0100
++++ jpgraph-1.5.2/src/jpgraph_dir.php 2008-12-09 21:55:28.000000000 +0100
+@@ -26,5 +26,6 @@
+
+ // Directory for TTF fonts. Must end with '/'
+ DEFINE("TTF_DIR","/usr/local/fonts/ttf/");
++DEFINE("LIBERATION_DIR","/usr/share/fonts/liberation/");
+
+ ?>
+diff -Naur jpgraph-1.5.2.org/src/jpgraph_gantt.php jpgraph-1.5.2/src/jpgraph_gantt.php
+--- jpgraph-1.5.2.org/src/jpgraph_gantt.php 2002-03-01 01:46:17.000000000 +0100
++++ jpgraph-1.5.2/src/jpgraph_gantt.php 2008-12-09 21:55:28.000000000 +0100
+@@ -1157,10 +1157,6 @@
+ $this->iCaptionMargin=$aMarg;
+ }
+
+- function GetLineNbr() {
+- return 0;
+- }
+-
+ function GetAbsHeight($aImg) {
+ return 0;
+ }
+@@ -1189,7 +1185,7 @@
+ $this->iProgress = $aProg;
+ }
+
+- function SetPattern($aPattern,$aColor="blue",$aDensity=98) {
++ function SetPattern($aPattern,$aColor="blue",$aDensity=100) {
+ $this->iPattern = $aPattern;
+ $this->iColor = $aColor;
+ $this->iDensity = $aDensity;
+diff -Naur jpgraph-1.5.2.org/src/jpgraph.php jpgraph-1.5.2/src/jpgraph.php
+--- jpgraph-1.5.2.org/src/jpgraph.php 2002-03-01 01:46:17.000000000 +0100
++++ jpgraph-1.5.2/src/jpgraph.php 2008-12-09 21:55:28.000000000 +0100
+@@ -30,7 +30,8 @@
+ // regenerate the image. Note that even if reading the cache is
+ // disabled the cached will still be updated with the newly generated
+ // image. Set also "USE_CACHE" below.
+-DEFINE("READ_CACHE",true);
++//DEFINE("READ_CACHE",true);
++DEFINE("READ_CACHE",false);
+
+ // Should the cache be used at all? By setting this to false no
+ // files will be generated in the cache directory.
+@@ -38,7 +39,8 @@
+ // false will still create the image in the cache directory
+ // just not use it. By setting USE_CACHE=false no files will even
+ // be generated in the cache directory.
+-DEFINE("USE_CACHE",true);
++//DEFINE("USE_CACHE",true);
++DEFINE("USE_CACHE",false);
+
+ // If the color palette is full should JpGraph try to allocate
+ // the closest match? If you plan on using background image or
+@@ -104,6 +106,7 @@
+ DEFINE("FF_COMIC",14);
+ DEFINE("FF_ARIAL",15);
+ DEFINE("FF_BOOK",16);
++DEFINE("FF_LIBERATION_SANS",17);
+
+ // TTF Font styles
+ DEFINE("FS_NORMAL",1);
+@@ -251,11 +254,11 @@
+ // Check what version of the GD library is being used
+ //
+ if(function_exists('imagecopyresampled') ) {
+- $gd2 = true;
++ $GLOBALS['gd2'] = true;
+ $copyfunc = "imagecopyresampled";
+ } elseif(function_exists('imagecopyresized')) {
+ $copyfunc = "imagecopyresized";
+- $gd2 = false;
++ $GLOBALS['gd2'] = false;
+ }
+ else {
+ JpGraphError::Raise("<b>JpGraph Error:</b> Your PHP installation does not
+@@ -272,7 +275,6 @@
+ // (top level), i.e it is safe to call this function
+ // from a script that uses JpGraph
+ function GenImgName() {
+- global $HTTP_SERVER_VARS;
+ $supported = imagetypes();
+ if( $supported & IMG_PNG )
+ $img_format="png";
+@@ -280,10 +282,10 @@
+ $img_format="gif";
+ elseif( $supported & IMG_JPG )
+ $img_format="jpeg";
+- if( !isset($HTTP_SERVER_VARS['PHP_SELF']) )
++ if( !isset($_SERVER['PHP_SELF']) )
+ JpGraphError::Raise("<b>JpGraph Error:</b> Can't access PHP_SELF, PHP global variable. You can't run PHP from command line
+ if you want to use the 'auto' naming of cache or image files.");
+- $fname=basename($HTTP_SERVER_VARS['PHP_SELF']);
++ $fname=basename($_SERVER['PHP_SELF']);
+ // Replace the ".php" extension with the image format extension
+ return substr($fname,0,strlen($fname)-4).".".$img_format;
+ }
+@@ -489,6 +491,7 @@
+
+ // Specify a background image
+ function SetBackgroundImage($aFileName,$aBgType=BKIMG_FILLPLOT,$aImgFormat="png") {
++/* CB Not any more bugging
+
+ if( $GLOBALS["gd2"] && !USE_TRUECOLOR ) {
+ JpGraphError::Raise("<b>JpGraph Error:</b>You are using GD 2.x and are
+@@ -500,6 +503,7 @@
+ using any truetype fonts with truecolor images will result in very
+ poor quality fonts.");
+ }
++*/
+
+ $this->background_image = $aFileName;
+ $this->background_image_type=$aBgType;
+@@ -1064,6 +1068,10 @@
+ $this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1);
+ }
+ }
++ // Set Margin by Christian Bayle
++ function SetMargin($lm,$rm,$tm,$bm) {
++ $this->img->SetMargin($lm,$rm,$tm,$bm);
++ }
+ } // Class
+
+
+@@ -1084,7 +1092,8 @@
+ FF_HANDWRT => TTF_DIR."handwriting",
+ FF_COMIC => TTF_DIR."comic",
+ FF_ARIAL => TTF_DIR."arial",
+- FF_BOOK => TTF_DIR."bookant");
++ FF_BOOK => TTF_DIR."bookant",
++ FF_LIBERATION_SANS => LIBERATION_DIR."LiberationSans-Regular");
+ }
+
+ //---------------
+@@ -3183,7 +3192,7 @@
+ }
+ }
+ }
+- elseif($this->font_family >= FF_COURIER && $this->font_family <= FF_BOOK) { // TTF font
++ elseif($this->font_family >= FF_COURIER && $this->font_family <= FF_LIBERATION_SANS) { // TTF font
+ $file = $this->ttf->File($this->font_family,$this->font_style);
+ $angle=$dir;
+ $bbox=ImageTTFBBox($this->font_size,$angle,$file,$txt);
+@@ -3208,7 +3217,7 @@
+ }
+ }
+ else
+- JpGraphError::Raise("<b>JpGraph Error:</b> Unknown font font family specification. ");
++ JpGraphError::Raise("<b>JpGraph Error:</b> Unknown font family specification: ". $this->font_family);
+ }
+
+ function SetMargin($lm,$rm,$tm,$bm) {
+@@ -3490,7 +3499,16 @@
+ }
+
+ function FilledCircle($xc,$yc,$r) {
+- imagefilledellipse($this->img,$xc,$yc,2*$r,2*$r,$this->current_color);
++ if( $GLOBALS['gd2'] ) {
++ imagefilledellipse($this->img,$xc,$yc,2*$r,2*$r,$this->current_color);
++ }
++ else {
++ for( $i=1; $i < 2*$r; $i += 2 ) {
++ $this->Arc($xc,$yc,$i,$i,0,360);
++ $this->Arc($xc,$yc,$i+1,$i,0,360);
++ $this->Arc($xc,$yc,$i+1,$i+1,0,360);
++ }
++ }
+ }
+
+ // Linear Color InterPolation
--- /dev/null
+diff -Naur jpgraph-1.5.2.org/src/jpgraph_dir.php jpgraph-1.5.2/src/jpgraph_dir.php
+--- jpgraph-1.5.2.org/src/jpgraph_dir.php 2010-03-30 23:47:09.000000000 +0200
++++ jpgraph-1.5.2/src/jpgraph_dir.php 2010-03-30 23:51:52.000000000 +0200
+@@ -25,9 +25,9 @@
+ DEFINE("APACHE_CACHE_DIR","/jpgraph_cache/");
+
+ // Directory for TTF fonts. Must end with '/'
+-DEFINE("TTF_DIR","/usr/share/fonts/truetype/msttcorefonts/");
++DEFINE("TTF_DIR","/usr/local/fonts/ttf/");
+
+-// Add Free liberation font as suggested by Alain Peyrat
+-DEFINE("LIBERATION_DIR","/usr/share/fonts/truetype/ttf-liberation/");
++// Add Free liberation font
++DEFINE("LIBERATION_DIR","/usr/share/fonts/liberation/");
+
+ ?>
+diff -Naur jpgraph-1.5.2.org/src/jpgraph.php jpgraph-1.5.2/src/jpgraph.php
+--- jpgraph-1.5.2.org/src/jpgraph.php 2010-03-30 23:47:09.000000000 +0200
++++ jpgraph-1.5.2/src/jpgraph.php 2010-03-30 23:55:57.000000000 +0200
+@@ -1095,13 +1095,13 @@
+ function TTF() {
+ // Base file names for available fonts
+ $this->font_fam=array(
+- FF_COURIER => TTF_DIR."Courier_New",
+- FF_VERDANA => TTF_DIR."Verdana",
+- FF_TIMES => TTF_DIR."Times",
+- FF_HANDWRT => TTF_DIR."Handwriting",
+- FF_COMIC => TTF_DIR."Comic",
+- FF_ARIAL => TTF_DIR."Arial",
+- FF_BOOK => TTF_DIR."Bookant",
++ FF_COURIER => TTF_DIR."courier",
++ FF_VERDANA => TTF_DIR."verdana",
++ FF_TIMES => TTF_DIR."times",
++ FF_HANDWRT => TTF_DIR."handwriting",
++ FF_COMIC => TTF_DIR."comic",
++ FF_ARIAL => TTF_DIR."arial",
++ FF_BOOK => TTF_DIR."bookant",
+ FF_LIBERATION_SANS => LIBERATION_DIR."LiberationSans-Regular");
+ }
+
+@@ -1114,11 +1114,11 @@
+ switch( $style ) {
+ case FS_NORMAL:
+ break;
+- case FS_BOLD: $f .= "_Bold";
++ case FS_BOLD: $f .= "bd";
+ break;
+- case FS_ITALIC: $f .= "_Italic";
++ case FS_ITALIC: $f .= "i";
+ break;
+- case FS_BOLDIT: $f .= "_Bold_Italic";
++ case FS_BOLDIT: $f .= "bi";
+ break;
+ default:
+ JpGraphError::Raise("<b>JpGraph Error:</b> Unknown TTF Style.");
--- /dev/null
+# $Id: php-jpgraph.spec 4308 2006-04-21 22:20:20Z dries $
+# Authority: dag
+
+%define real_name jpgraph
+
+Summary: OO Graph Library for PHP
+Name: php-jpgraph
+Version: 1.5.2
+Release: 1
+License: GPL
+Group: Development/Languages
+URL: http://www.aditus.nu/jpgraph/
+
+Source: http://members.chello.se/jpgraph/jpgdownloads/jpgraph-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+BuildArch: noarch
+Requires: php
+Obsoletes: jpgraph
+Provides: jpgraph
+
+Patch0: libphp-jpgraph_1.5.2-12.diff
+Patch1: jpgraph-rhel-fonts.patch
+
+
+%description
+JpGraph is an OO class library for PHP 4.1 (or higher). JpGraph makes it
+easy to draw both "quick and dirty" graphs with a minimum of code and
+complex professional graphs which requires a very fine grain control.
+
+JpGraph is equally well suited for both scientific and business type of graphs.
+
+An important feature of the library is that it assigns context sensitive
+default values for most of the parameters which radically minimizes the
+learning curve. The features are there when you need it - they don't get
+in your way when you don't need them!
+
+%package docs
+Summary: Documentation for package %{name}
+Group: Documentation
+
+%description docs
+JpGraph is an OO class library for PHP 4.1 (or higher). JpGraph makes it
+easy to draw both "quick and dirty" graphs with a minimum of code and
+complex professional graphs which requires a very fine grain control.
+
+This package includes the documentation for %{name}.
+
+%prep
+%setup -n %{real_name}-%{version}
+%patch0 -p1
+%patch1 -p1
+
+### Change the default TTF_DIR to Red Hat's TTF_DIR.
+%{__perl} -pi.orig -e 's|/usr/X11R6/lib/X11/fonts/truetype/|/usr/X11R6/lib/X11/fonts/TTF/|' src/jpgraph.php
+
+%build
+
+%install
+%{__rm} -rf %{buildroot}
+%{__install} -d -m0755 %{buildroot}%{_datadir}/%{real_name}
+%{__install} -p -m0644 src/jpgraph*.php %{buildroot}%{_datadir}/%{real_name}/
+
+%clean
+%{__rm} -rf %{buildroot}
+
+%files
+%defattr(-, root, root, 0755)
+%doc README
+%{_datadir}/%{real_name}/
+
+%files docs
+%defattr(-, root, root, 0755)
+%doc src/Examples/
+
+%changelog
+* Mon Mar 29 2010 Alain Peyrat <aljeux@free.fr> - 1.5.2-1
+- Initial package, spec taken from DAG.
+#
+# This Makefile may be used to create packages for distributions
+#
+
DISTDEBIAN=$(shell [ -f /etc/debian_version ] && echo debian)
DISTREDHAT=$(shell grep -qi 'Red Hat' /etc/issue && echo rh)
DISTSUSE=$(shell grep -qi 'SuSE' /etc/issue && echo rh)
DIST=$(DISTDEBIAN)$(DISTREDHAT)$(DISTSUSE)
ARCHIVE=$(CURDIR)/depot
+#ifeq ($(BUILDDIR),)
+# BUILDDIR=builddir
+#endif
BUILDRESULT=$(CURDIR)/result
+DOXYGEN=doxygen
+
VER=$(shell LANG=C grep '>software_version' gforge/common/include/FusionForge.class.php | cut -d\' -f2)
in_svn_repo:= $(wildcard .svn/)
ifeq ($(strip $(in_svn_repo)),)
switch:
@echo "=========================================================================="
- @echo "Use one of the following target with "
- @echo "make -f Makefile.$(DIST) <target>"
+ @echo "We have detected that your are running a '$(DIST)' distribution."
+ @echo "Use one of the following targets with "
+ @echo "$$ make -f Makefile.$(DIST) <target>"
@echo "=========================================================================="
- @make -f Makefile.$(DIST)
+ @$(MAKE) -f Makefile.$(DIST)
check:
+ ## To run test in verbose mode :
+ #cd tests ; phpunit --verbose unit; phpunit --verbose code;
cd tests ; php AllTests.php
buildtar:
cd gforge; find . -type f -or -type l | grep -v '/.svn/' | grep -v '^./debian' | grep -v '^./deb-specific' | grep -v '^./rpm-specific' | grep -v '^./contrib' | grep -v '^./gforge.spec' | grep -v '^./README.setup' | grep -v '^./setup' | cpio -pdumB --quiet /tmp/$(VERSION)
cd /tmp/$(VERSION); utils/manage-translations.sh build
cd /tmp/; tar jcf $(BUILDRESULT)/$(VERSION).tar.bz2 $(VERSION)
- cd /tmp/$(VERSION); tar zxf $(ARCHIVE)/libphp-jpgraph_1.5.2.orig.tar.gz
- cd /tmp/$(VERSION); patch -p0 < $(ARCHIVE)/jpgraph-1.5.2-php5_and_liberation_fonts.patch
- cd /tmp/$(VERSION); mkdir jpgraph; mv jpgraph-1.5.2/src/* jpgraph; rm -fr jpgraph-1.5.2
- cd /tmp; tar jcf $(BUILDRESULT)/$(VERSION)-allinone.tar.bz2 $(VERSION)
rm -fr /tmp/$(VERSION)
build-unit-tests:
cd tests; phpunit --log-xml $(BUILDDIR)/reports/phpunit.xml --log-pmd $(BUILDDIR)/reports/phpunit.pmd.xml --coverage-clover $(BUILDDIR)/reports/coverage/clover.xml --coverage-html $(BUILDDIR)/reports/coverage/ AllTests.php
cp $(BUILDDIR)/reports/phpunit.xml $(BUILDDIR)/reports/phpunit.xml.org; xalan -in $(BUILDDIR)/reports/phpunit.xml.org -xsl fix_phpunit.xslt -out $(BUILDDIR)/reports/phpunit.xml
+build-doc:
+ $(DOXYGEN) gforge/docs/fusionforge.doxygen
+ $(DOXYGEN) gforge/plugins/wiki/www/doc/phpwiki.doxygen
+
build-full-tests:
+ mkdir -p $(BUILDDIR)/build/packages $(BUILDDIR)/reports/coverage
find $(BUILDDIR)/build/packages -type f -exec rm -f {} \;
- mkdir -p $(BUILDDIR)/reports/coverage
- phpdoc --title 'API Documentation' -ue on -t $(BUILDDIR)/apidocs -d gforge/common -tb '/usr/share/php/data/phpUnderControl/data/phpdoc' -o HTML:Phpuc:phpuc
-phpcs --tab-width=4 --standard=PEAR --report=checkstyle gforge/common > $(BUILDDIR)/reports/checkstyle.xml
cd tests; phpunit --log-xml $(BUILDDIR)/reports/phpunit.xml --log-pmd $(BUILDDIR)/reports/phpunit.pmd.xml --coverage-clover $(BUILDDIR)/reports/coverage/clover.xml --coverage-html $(BUILDDIR)/reports/coverage/ AllFullTests.php
cp $(BUILDDIR)/reports/phpunit.xml $(BUILDDIR)/reports/phpunit.xml.org; xalan -in $(BUILDDIR)/reports/phpunit.xml.org -xsl fix_phpunit.xslt -out $(BUILDDIR)/reports/phpunit.xml
gforge/plugins/mediawiki/mediawiki-skin/FusionForge.php:
- cd gforge/plugins/mediawiki/mediawiki-skin ; make
+ $(MAKE) -C gforge/plugins/mediawiki/mediawiki-skin
%: gforge/plugins/mediawiki/mediawiki-skin/FusionForge.php
- @make -f Makefile.$(DIST) $@
+ $(MAKE) -f Makefile.$(DIST) $@
#! /usr/bin/make -f
+#
+# TODO : document the role of this Makefile
+
+# Uses cowbuilder to build packages inside ./builder/, for different
+# distributions
+# Packages are versioned ...
+
+# Built packages will be put into ./result/
+#
+# ATTENTION : it requires you to run cowbuilder with sudo
+#
+
FUSIONFORGE=FusionForge
PKGDIR=gforge
PKGNAME=$(shell head -1 $(PKGDIR)/debian/changelog | sed 's/ .*//')
PKGLETTER=$(shell echo $(PKGNAME) | cut -c1)
ORIGIN=debian.fusionforge.org
+# BRANCH set to 'svn' if checkout from trunk or 'brc' otherwise
BRANCH=$(shell [ "$(shell echo $(basename $(CURDIR)) | sed 's/.*runk.*/trunk/')" = "trunk" ] && echo svn || echo brc)
-BUILDPLACE=$(CURDIR)/builder/buildplace
-BUILDFILES=$(CURDIR)/builder/buildfiles
+#
+ifeq (,$(shell echo "$$BUILDERDIR"))
+BUILDERDIR=$(CURDIR)/builder
+else
+BUILDERDIR=$(shell echo $$BUILDERDIR)
+endif
BUILDRESULT=$(CURDIR)/result
-COWBUILDERBASE=$(CURDIR)/builder/cow
-PBUILDERTGZ=$(CURDIR)/builder/tgz
TARBALLS=$(CURDIR)/tarballs
-APTCACHE=$(CURDIR)/builder/cache
-DISTRIB=$(shell echo $(XDISTRIB) | cut -c2-)
+#
+BUILDPLACE=$(BUILDERDIR)/buildplace
+BUILDFILES=$(BUILDERDIR)/buildfiles
+COWBUILDERBASE=$(BUILDERDIR)/cow
+PBUILDERTGZ=$(BUILDERDIR)/tgz
+APTCACHE=$(BUILDERDIR)/cache
+#
LOCALREPODEB=/var/www/debian-fusionforge-$(BRANCH)
LOCALREPOUBU=/var/www/ubuntu-fusionforge-$(BRANCH)
+#
+DISTRIB=$(shell echo $(XDISTRIB) | cut -c2-)
SIGNKEY=yes
DEBIANLIST=1lenny 2squeeze 3sid
DEBIANLISTP=1etch
# Quite heavy version, but still requires to be root
COWBUILDERCMD=cd $(BUILDPLACE) && dpkg-source -x $(BUILDFILES)/$(DSCFILE) ; cd $(BUILDPLACE)/$(PKGNAME)-$(MAJOR) && pdebuild --pbuilder cowbuilder --buildresult $(BUILDRESULT) -- --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --buildplace $(BUILDPLACE) --aptcache $(APTCACHE) ; rm -rf $(BUILDPLACE)/$(PKGNAME)-$(MAJOR)
# This one is with sudo and probably faster
-COWBUILDERCMD=sudo /usr/sbin/cowbuilder --build --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(BUILDFILES)/$(DSCFILE) $(DEBBUILDOPTS)
+COWBUILDERCMD=sudo /usr/sbin/cowbuilder --build --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/configfile $(BUILDFILES)/$(DSCFILE) $(DEBBUILDOPTS)
# This one is with pbuilder
-PBUILDERCMD=cd $(BUILDFILES) && sudo /usr/sbin/pbuilder --build --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/config $(BUILDFILES)/$(PDSCFILE)
+PBUILDERCMD=cd $(BUILDFILES) && sudo /usr/sbin/pbuilder --build --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/configfile $(BUILDFILES)/$(PDSCFILE)
default: list
list:
@echo ======================================================================================
- @echo '= Available targets are listed below ($(BRANCH))($(ARCH)) ='
+ @echo '= Available targets are listed below ='
+ @echo '= Your current environment : ='
+ @echo '= * checkout from : $(BRANCH) ='
+ @echo '= * architecture : $(ARCH) ='
+ @echo '= * BUILDERDIR = $(BUILDERDIR) ='
+ @echo "= (above 'checkout' meaning : ="
+ @echo "= 'svn' for trunk ="
+ @echo "= 'brc' for branches) ="
@echo ======================================================================================
@cat Makefile.debian | grep '^.*:.*#$$' | sed 's/FUSIONFORGE/$(FUSIONFORGE)/' | sed 's/^\(.*:\).*#\(.*\)#$$/\1 \2/'
@echo ======================================================================================
# FUSIONFORGE
#
-orig: $(TARBALLS)/$(ORIGFILE) # Make FUSIONFORGE orig file
+orig: # Make Debian package .orig tarball #
+ $(MAKE) $(TARBALLS)/$(ORIGFILE)
#
# PHPDOCUMENTOR
# Get phpdocumentor, install phpdocumentor, build $(PKGNAME) phpdoc
phpdoc: $(PKGDIR)/docs/phpdoc/docs
+doc:
+ (cd gforge/docs/docbook ; make debian)
+
+cleandoc:
+ (cd gforge/docs/docbook ; make clean)
+
phpdocumentor_get:
[ ! -f $(documentor_path)/$(documentor_file) ] && \
cd $(documentor_path) && \
repodeb: cowbuilddeb
@for dist in $(DEBIANLIST); do \
+ echo "$(MAKE) -f Makefile.debian localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPODEB) DISTRIBLIST='$(DEBLIST)'" ; \
$(MAKE) -f Makefile.debian localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPODEB) DISTRIBLIST="$(DEBLIST)" ; \
done
repoubu: cowbuildubu
@for dist in $(UBUNTULIST); do \
+ echo "$(MAKE) -f Makefile.debian localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPOUBU) DISTRIBLIST='$(UBULIST)'" ; \
$(MAKE) -f Makefile.debian localrepo reprepro XDISTRIB=$$dist LOCALREPO=$(LOCALREPOUBU) DISTRIBLIST="$(UBULIST)" ; \
done
cowbuilddeb: # ***** This is the one to cowbuild debian packages ***** #
@for dist in $(DEBIANLIST); do \
+ echo "$(MAKE) -f Makefile.debian cowbuilddist XDISTRIB=$$dist DISTROOP='$(DEBIANOP)'" ; \
$(MAKE) -f Makefile.debian cowbuilddist XDISTRIB=$$dist DISTROOP="$(DEBIANOP)" ; \
done
cowbuildubu: # ***** This is the one to cowbuild ubuntu packages ***** #
@for dist in $(UBUNTULIST); do \
+ echo "$(MAKE) -f Makefile.debian cowbuilddist XDISTRIB=$$dist DISTROOP='$(UBUNTUOP)' HOOK='$(UBUHOOK)'" ; \
$(MAKE) -f Makefile.debian cowbuilddist XDISTRIB=$$dist DISTROOP="$(UBUNTUOP)" HOOK='$(UBUHOOK)' ; \
done
pbuilddeb: # pbuild debian packages (less recommended) #
@for dist in $(DEBIANLISTP); do \
+ echo "$(MAKE) -f Makefile.debian pbuilddist XDISTRIB=$$dist DISTROOP='$(DEBIANOP)' LOCALREPO=$(LOCALREPODEB)" ; \
$(MAKE) -f Makefile.debian pbuilddist XDISTRIB=$$dist DISTROOP="$(DEBIANOP)" LOCALREPO=$(LOCALREPODEB) ; \
done
pbuildubu: # pbuild ubuntu packages (less recommended) #
@for dist in $(UBUNTULISTP); do \
+ echo "$(MAKE) -f Makefile.debian pbuilddist XDISTRIB=$$dist DISTROOP='$(UBUNTUOP)' LOCALREPO=$(LOCALREPOUBU)" ; \
$(MAKE) -f Makefile.debian pbuilddist XDISTRIB=$$dist DISTROOP="$(UBUNTUOP)" LOCALREPO=$(LOCALREPOUBU) ; \
done
pbuilderenv: $(PBUILDERTGZ) $(PBUILDERTGZ)/base-$(DISTRIB).tgz
@echo "=========> Ready for $(DISTRIB)"
-cowbuilderenv: $(COWBUILDERBASE) $(COWBUILDERBASE)/base-$(DISTRIB).stamp.update
+cowbuilderenv: $(COWBUILDERBASE)/doconfig $(COWBUILDERBASE)/base-$(DISTRIB).stamp.update
@echo "=========> Ready for $(DISTRIB)"
forceupdatecow: # Force update of cowbuilder env #
rm -f $(COWBUILDERBASE)/base-*.stamp.update
$(COWBUILDERBASE)/base-$(DISTRIB).stamp.update: $(COWBUILDERBASE)/base-$(DISTRIB).stamp
- sudo /usr/sbin/cowbuilder --update $(HOOK) --distribution $(DISTRIB) --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(DISTROOP)
+ sudo /usr/sbin/cowbuilder --update $(HOOK) --distribution $(DISTRIB) --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/configfile $(DISTROOP)
touch $@
-$(PBUILDERTGZ)/base-$(DISTRIB).tgz: $(PBUILDERTGZ)/config
- sudo /usr/sbin/pbuilder --create --distribution $(DISTRIB) --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/config $(DISTROOP)
+$(PBUILDERTGZ)/base-$(DISTRIB).tgz: $(PBUILDERTGZ)/doconfig
+ [ -f $@ ] || sudo /usr/sbin/pbuilder --create --distribution $(DISTRIB) --basetgz $(PBUILDERTGZ)/base-$(DISTRIB).tgz --configfile $(PBUILDERTGZ)/configfile $(DISTROOP)
-$(COWBUILDERBASE)/base-$(DISTRIB).stamp: $(COWBUILDERBASE)/config
- sudo /usr/sbin/cowbuilder --create $(HOOK) --distribution $(DISTRIB) --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/config $(DISTROOP)
+$(COWBUILDERBASE)/base-$(DISTRIB).stamp:
+ [ -d $(COWBUILDERBASE)/base-$(DISTRIB).cow ] || sudo /usr/sbin/cowbuilder --create $(HOOK) --distribution $(DISTRIB) --basepath $(COWBUILDERBASE)/base-$(DISTRIB).cow --configfile $(COWBUILDERBASE)/configfile $(DISTROOP)
touch $@.update
touch $@
-$(PBUILDERTGZ)/config: /usr/sbin/pbuilder
- echo "APTCACHE=$(APTCACHE)" > $(PBUILDERTGZ)/config
- echo "BUILDPLACE=$(BUILDPLACE)" >> $(PBUILDERTGZ)/config
- echo "BUILDRESULT=$(BUILDRESULT)" >> $(PBUILDERTGZ)/config
+$(PBUILDERTGZ)/doconfig: /usr/sbin/pbuilder
+ @mkdir -p $(PBUILDERTGZ)
+ @echo "APTCACHE=$(APTCACHE)" > $(PBUILDERTGZ)/configfile
+ @echo "BUILDPLACE=$(BUILDPLACE)" >> $(PBUILDERTGZ)/configfile
+ @echo "BUILDRESULT=$(BUILDRESULT)" >> $(PBUILDERTGZ)/configfile
-$(COWBUILDERBASE)/config: /usr/sbin/cowbuilder
- echo "APTCACHE=$(APTCACHE)" > $(COWBUILDERBASE)/config
- echo "BUILDPLACE=$(BUILDPLACE)" >> $(COWBUILDERBASE)/config
- echo "BUILDRESULT=$(BUILDRESULT)" >> $(COWBUILDERBASE)/config
+$(COWBUILDERBASE)/doconfig: /usr/sbin/cowbuilder
+ @mkdir -p $(COWBUILDERBASE)
+ @echo "APTCACHE=$(APTCACHE)" > $(COWBUILDERBASE)/configfile
+ @echo "BUILDPLACE=$(BUILDPLACE)" >> $(COWBUILDERBASE)/configfile
+ @echo "BUILDRESULT=$(BUILDRESULT)" >> $(COWBUILDERBASE)/configfile
/usr/sbin/pbuilder:
- sudo apt-get install pbuilder
+ @echo "Error: you need to install package 'pbuilder', for instance with 'sudo apt-get install pbuilder'." ; /bin/false
ubukey:
gpg --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
gpg --export --armor 40976EAF437D05B5 | sudo apt-key add -
/usr/sbin/cowbuilder:
- sudo apt-get install cowdancer
+ @echo "Error: you need to install package 'cowdancer', for instance with 'sudo apt-get install cowdancer'." ; /bin/false
localrepo: $(LOCALREPO) $(LOCALREPO)/conf $(LOCALREPO)/conf/distributions
rm -rf $(BUILDPLACE) $(BUILDFILES) $(TARBALLS)
cleanenv: # Clean $(COWBUILDERBASE) $(PBUILDERTGZ) (chroots)#
- rm -rf $(COWBUILDERBASE) $(PBUILDERTGZ)
+ sudo rm -rf $(COWBUILDERBASE) $(PBUILDERTGZ)
cleancache: # Clean $(APTCACHE) (apt cache) #
- rm -rf $(APTCACHE)
+ sudo rm -rf $(APTCACHE)
cleanorig: # Clean $(TARBALLS)/$(ORIGFILE) #
rm -f $(TARBALLS)/$(ORIGFILE)
#! /usr/bin/make -f
+#
+# TODO : document the role of this Makefile
+#
+
list:
@echo ======================================================================================
@echo '= Available target are listed below ='
allmodules : libnsspgsql
#Exterals
-allexternals : htmlpurifier
+allexternals : htmlpurifier php-jpgraph
libnsspgsql : buildlibnsspgsql
cleansvn: # Clean files of gforge-plugin-scmcvs build #
@cd $(RPM_TMP)/SOURCES/; rm -rf fusionforge-plugin-scmsvn-$(version).tar.bz2 fusionforge-plugin-scmsvn-$(version)
@echo cleansvn Done
-
+
buildsvn: # Build rpm gforge-plugin-scmsvn package #
cd gforge/plugins/scmsvn; find . -type f | grep -v '/CVS/' | grep -v '/.svn/' | grep -v contrib | grep -v '/debian/' | cpio -pdumvB --quiet $(RPM_TMP)/SOURCES/fusionforge-plugin-scmsvn-$(version)
mkdir -p $(RPM_TMP)/SOURCES/fusionforge-plugin-scmsvn-$(version)/bin
cd $(RPM_TMP)/SOURCES/; rpmbuild -ts --nodeps fusionforge-shell-postgresql-$(version).tar.bz2
#
-# HTMLPURIFIER (third party plugin)
+# Building RPM for third party plugins
#
-htmlpurifier: rpmprep depot/htmlpurifier-4.0.0.tar.gz
- cp depot/htmlpurifier-4.0.0.tar.gz $(RPM_TMP)/SOURCES/
+htmlpurifier: rpmprep
+ cp 3rd-party/htmlpurifier/htmlpurifier-4.0.0.tar.gz $(RPM_TMP)/SOURCES/
rpmbuild --quiet --clean -ba 3rd-party/htmlpurifier/htmlpurifier.spec
-depot/htmlpurifier-4.0.0.tar.gz: rpmprep
- mkdir -p depot
- cd depot; wget -q -N http://htmlpurifier.org/releases/htmlpurifier-4.0.0.tar.gz
+php-jpgraph: rpmprep
+ cp 3rd-party/php-jpgraph/libphp-jpgraph_1.5.2.orig.tar.gz $(RPM_TMP)/SOURCES/jpgraph-1.5.2.tar.gz
+ zcat 3rd-party/php-jpgraph/libphp-jpgraph_1.5.2-12.diff.gz > $(RPM_TMP)/SOURCES/libphp-jpgraph_1.5.2-12.diff
+ cp 3rd-party/php-jpgraph/*.patch $(RPM_TMP)/SOURCES/
+ rpmbuild --quiet --clean -ba 3rd-party/php-jpgraph/php-jpgraph.spec
-What is Makefile.debian ?
+The code of FusionForge can be found in the gforge/ subdir.
-Process to recompile the official Debian packages from bzr ?
+TODO: What is the role of all the Makefiles?
--- Olivier Berger
\ No newline at end of file
+-- Olivier Berger
#
# FusionForge
-# Copyright 2008-2009 (c) FusionForge
-# Copyright 2002-2008 (c) GForge
# http://fusionforge.org
#
+#
-----------------------------------------------------------------------------
-The FusionForge Team
-----------------------------------------------------------------------------
-
-Tim Perdue <tim@gforge.org>
-Roland Mas <99.roland.mas@aist.enst.fr>
-Christian Bayle <gforge@free.fr>
-Tom Copeland <tom@infoether.com>
-Guillaume Smet <guillaume-gforge@smet.org>
-Francisco Gimeno <kikov@kikov.org>
-Sung Kim <hunkims@gmail.com>
+The FusionForge codebase was developed for many years in the frame of
+the GForge project (until 2009), then in the FusionForge project since
+2009.
-Past Members:
-Reinhard Spisser
-Ryan T. Sammartino
-Edward Ritter
-Michael Jennings
+It is copyrighted by individual authors mentioned in copyright notices
+of each files.
----------------------------------------------------------------------------
-We'd like to thank the following volunteers for their contributions
-of code, documentation, ideas, and time:
+The new FusionForge Team
----------------------------------------------------------------------------
-Darrell Brogdon
-John Maguire
-Trix Farrar
-Philippe Kiener
-Robert J. Sanford, Jr.
-François Elie
-Richard Offer
-Julien Goodwin
-Bob Lamoureux
-Olafur Osvaldsson
-Jim Nutt
-Scott Armstrong
-Eric Kerin
-Graham Batty
-Robert B. Hawkins
-Ronald Petty
-Simon Lei
-Paul Kneeland
-Patrick McFarland
-Jeff Fynboh
-Vicente J. Ruiz Jurado
-Dragos Moinescu
-Alwyn Schoeman
-Tony Guntharp
-Hidenari Miwa
-David McNicol
-Ed Hill
-Paul Gibbbs
-James Michael DuPont
-Patrick Lemmens
-Christophe Colombier
-Auke Jilderda
-Rene Klootwijk
-Antoine Nivard
-Joo-won Jung
-Justin Richer
-Franco Catrin L.
-Mathieu Peltier
-Bo Jangborg
-Ramon van Alteren
-Mitch Murphy
-Brett N DiFrischia
-Andreas Schrattenecker
-Eric Evans
-Shawn Soon-Son Kwon
-Frank Gevaerts
-Lars Ehrhardt
-Joseph Bironas
-Marco Schmidt
-Chris Ward
-Marc Kalberer
-Kenneth C. Cone, Sr.
-Hunte Swee
-David Hirst
-FabrÃcio Vertamatti
-Benoît Sibaud
-Lele Gaifax
-Mike Heath
-Jason Chen
-Tomas Pospisek
-Jáder Marasca
-Oliver Blume
-Vidyut Luther
-Eric Robert
-Chris Watts
-Dominik Haas
-Diggy Bell
-Jaime Diaz
-Paul Santa Maria
-Josiah Olivieri
-Andre Costa
-Konrad Wulf
-Igor Blanco
-Florent Guilleux
-Pedro Paixao
-Matt Hope
-Rob Lanphier
-Finjon Kiang
-Andrey Molchanov
-Ognyan Kulev
-J Aaron Farr
-Tony Pugliese
-Hal Deadman
-Tobias Rötschke
-Greg Hudson
-Jens Jorgensen
-Ramon van Alteren
-Florent Guilleux
-Jimou Lee
+TODO : name all contributors to FusionForge. The list below was
+extracted from the SVN stats.
+
+Roland Mas
+Grégory Cuellar
+Christian Bayle
Alain Peyrat
+Guillaume Smet
+Julien Heyman
+Ognyan Kulev
+Alexandre Neymann
+Reinhard Spisser
+Francisco Gimeno
+Mathieu Peltier
+Olivier Meunier
Olaf Lenz
+Franck Villaume
+Pierre Lacoste
+Thorsten Glaser
+Gonéri Le Bouder
+Mélanie Le Bail
+Olivier Berger
+Philip Schwartz
+
+
+See also AUTHORS.gforge and AUTHORS.sourceforge for prior contributors.
+
+# Local Variables:
+# coding: utf-8
+# End:
+
--- /dev/null
+#
+# GForge
+# Copyright 2002-2005 (c) GForge
+# http://gforge.org
+#
+# $Id$
+#
+
+----------------------------------------------------------------------------
+The GForge Team
+----------------------------------------------------------------------------
+
+Tim Perdue <tim@gforge.org>
+Roland Mas <99.roland.mas@aist.enst.fr>
+Christian Bayle <gforge@free.fr>
+Tom Copeland <tom@infoether.com>
+Guillaume Smet <guillaume-gforge@smet.org>
+Francisco Gimeno <kikov@kikov.org>
+Sung Kim <hunkims@gmail.com>
+
+Past Members:
+Reinhard Spisser
+Ryan T. Sammartino
+Edward Ritter
+Michael Jennings
+
+----------------------------------------------------------------------------
+We'd like to thank the following volunteers for their contributions
+of code, documentation, ideas, and time:
+----------------------------------------------------------------------------
+
+Darrell Brogdon
+John Maguire
+Trix Farrar
+Philippe Kiener
+Robert J. Sanford, Jr.
+François Elie
+Richard Offer
+Julien Goodwin
+Bob Lamoureux
+Olafur Osvaldsson
+Jim Nutt
+Scott Armstrong
+Eric Kerin
+Graham Batty
+Robert B. Hawkins
+Ronald Petty
+Simon Lei
+Paul Kneeland
+Patrick McFarland
+Jeff Fynboh
+Vicente J. Ruiz Jurado
+Dragos Moinescu
+Alwyn Schoeman
+Tony Guntharp
+Hidenari Miwa
+David McNicol
+Ed Hill
+Paul Gibbbs
+James Michael DuPont
+Patrick Lemmens
+Christophe Colombier
+Auke Jilderda
+Rene Klootwijk
+Antoine Nivard
+Joo-won Jung
+Justin Richer
+Franco Catrin L.
+Mathieu Peltier
+Bo Jangborg
+Ramon van Alteren
+Mitch Murphy
+Brett N DiFrischia
+Andreas Schrattenecker
+Eric Evans
+Shawn Soon-Son Kwon
+Frank Gevaerts
+Lars Ehrhardt
+Joseph Bironas
+Marco Schmidt
+Chris Ward
+Marc Kalberer
+Kenneth C. Cone, Sr.
+Hunte Swee
+David Hirst
+FabrÃcio Vertamatti
+Benoît Sibaud
+Lele Gaifax
+Mike Heath
+Jason Chen
+Tomas Pospisek
+Jáder Marasca
+Oliver Blume
+Vidyut Luther
+Eric Robert
+Chris Watts
+Dominik Haas
+Diggy Bell
+Jaime Diaz
+Paul Santa Maria
+Josiah Olivieri
+Andre Costa
+Konrad Wulf
+Igor Blanco
+Florent Guilleux
+Pedro Paixao
+Matt Hope
+Rob Lanphier
+Finjon Kiang
+Andrey Molchanov
+Ognyan Kulev
+J Aaron Farr
+Tony Pugliese
+Hal Deadman
+Tobias Rötschke
+Greg Hudson
+Jens Jorgensen
+Ramon van Alteren
+Florent Guilleux
+Jimou Lee
+Alain Peyrat
+
+# Local Variables:
+# coding: utf-8
+# End:
UNRELEASED:
+FusionForge-5.1:
+* Trackers: New progressbar to view completion state (when custom status field is used) (Alain Peyrat)
+* Trackers: Sorting improved to allow text & select fields (Alcatel-Lucent)
+* [#127] Patch to auto approve projects.
+
FusionForge-5.0:
* New projectlabels plugin, to tag projects with snippets of
user-defined HTML (developed for/sponsored by Adullact)
--- /dev/null
+<?php
+/*
+ * Copyright (c) Xerox, 2009. All Rights Reserved.
+ *
+ * Originally written by Nicolas Terray, 2005. Xerox Codendi Team.
+ *
+ * This file is a part of Codendi.
+ *
+ * Codendi is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Codendi is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+require_once('include/DataAccess.class.php');
+
+class CodendiDataAccess extends DataAccess {
+
+ protected function __construct() {
+
+ $this->DataAccess();
+ }
+
+ protected static $_instance;
+ public static function instance() {
+ if (!isset(self::$_instance)) {
+ $c = __CLASS__;
+ self::$_instance = new $c;
+ }
+ return self::$_instance;
+ }
+
+
+}
+
+
+?>
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
+ *
+ * This file is a part of Codendi.
+ *
+ * Codendi is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Codendi is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+require_once('DataAccessResult.class.php');
+require_once('DataAccessException.class.php');
+
+
+class DataAccess {
+
+ /**
+ * Constucts a new DataAccess object
+ */
+ function DataAccess() {
+
+ }
+ function quoteSmart($value, $params = array()) {
+
+ return $value;
+ }
+
+
+}
+?>
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
+ *
+ * This file is a part of Codendi.
+ *
+ * Codendi is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Codendi is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
+ */
+class DataAccessException extends Exception {
+}
+?>
--- /dev/null
+<?php
+/**
+ * Base class for data access objects
+ */
+class DataAccessObject {
+ var $da;
+
+ //! A constructor
+ /**
+ * Constructs the Dao
+ * @param $da instance of the DataAccess class
+ */
+ function DataAccessObject( & $da ) {
+ $this->table_name = 'CLASSNAME_MUST_BE_DEFINE_FOR_EACH_CLASS';
+
+ $this->da=$da;
+ }
+
+
+ //! An accessor
+ /**
+ * For SELECT queries
+ * @param $sql the query string
+ * @return mixed either false if error or object DataAccessResult
+ */
+ function &retrieve($sql,$params) {
+ $result =& new DataAccessResult(db_query_params($sql,$params));
+
+ return $result;
+ }
+
+ //! An accessor
+ /**
+ * For INSERT, UPDATE and DELETE queries
+ * @param $sql the query string
+ * @return boolean true if success
+ */
+ function update($sql,$params) {
+ $result = db_query_params($sql,$params);
+ return $result;
+ }
+
+
+
+}
+?>
--- /dev/null
+<?php
+/**
+ * Fetches MySQL database rows as objects
+ */
+class DataAccessResult implements Iterator {
+ /**
+ * @access protected
+ * $da stores data access object
+ */
+ var $da;
+ /**
+ * @access protected
+ * $query stores a query resource
+ */
+ var $query;
+
+ var $_current;
+ var $_row;
+
+ function DataAccessResult($result) {
+ $this->result = $result;
+
+ $this->_current = -1;
+ $this->_row = false;
+ $this->rewind();
+
+ }
+
+ /**
+ * Returns an array from query row or false if no more rows
+ * @return mixed
+ */
+ function &getRow() {
+ $row = $this->current();
+ $this->next();
+ return $row;
+ }
+
+ /**
+ * Returns the number of rows affected
+ * @return int
+ */
+ function rowCount() {
+ return db_numrows($this->result);
+ }
+
+ /**
+ * Returns false if no errors or returns a MySQL error message
+ * @return mixed
+ */
+ function isError() {
+ $error=db_error();
+ if (!empty($error))
+ return $error;
+ else
+ return false;
+ }
+
+
+ // {{{ Iterator
+ function ¤t() {
+ return $this->_row;
+ }
+
+ function next() {
+ $this->_current++;
+ $this->_row = db_fetch_array($this->result);
+ }
+
+ function valid() {
+ return $this->_row !== false;
+ }
+
+ function rewind() {
+ if ($this->rowCount() > 0) {
+ db_reset_result($this->result, 0);
+ $this->next();
+ $this->_current = 0;
+ }
+ }
+
+ function key() {
+ return $this->_current;
+ }
+ // }}}
+}
+?>
*
* @param string The filename of this document. Can be a URL.
* @param string The filetype of this document. If filename is URL, this should be 'URL';
- * @param string The contents of this document (should be addslashes()'d before entry).
+ * @param string The contents of this document.
* @param int The doc_group id of the doc_groups table.
* @param string The title of this document.
* @param int The language id of the supported_languages table.
// key words for in-document search
$kw = new Parsedata ($this->engine_path);
- $kwords = $kw->get_parse_data (stripslashes($data1), htmlspecialchars($title), htmlspecialchars($description), $filetype);
+ $kwords = $kw->get_parse_data ($data1, htmlspecialchars($title), htmlspecialchars($description), $filetype);
$filesize = strlen($data);
$filename,
$filetype,
$filesize,
- base64_encode(stripslashes($data)),
+ base64_encode($data),
$kwords,
$user_id));
if (!$result) {
*
* @param string The filename of this document. Can be a URL.
* @param string The filetype of this document. If filename is URL, this should be 'URL';
- * @param string The contents of this document (should be addslashes()'d before entry).
+ * @param string The contents of this document.
* @param int The doc_group id of the doc_groups table.
* @param string The title of this document.
* @param int The language id of the supported_languages table.
// key words for in-document search
$kw = new Parsedata ($this->engine_path);
- $kwords = $kw->get_parse_data (stripslashes($data1), htmlspecialchars($title), htmlspecialchars($description), $filetype);
+ $kwords = $kw->get_parse_data ($data1, htmlspecialchars($title), htmlspecialchars($description), $filetype);
$res = db_query_params ('UPDATE doc_data SET data=$1, filesize=$2, data_words=$3 WHERE group_id=$4 AND docid=$5',
- array (base64_encode(stripslashes($data)),
+ array (base64_encode($data),
strlen($data),
$kwords,
$this->Group->getID(),
--- /dev/null
+<?php
+/**
+ * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
+ *
+ * This file is a part of Codendi.
+ *
+ * Codendi is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Codendi is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
+ */
+class Event {
+
+ /**
+ * Use this event to get the class name of an external event type (plugins)
+ * see git plugin for implementation example
+ */
+ const GET_SYSTEM_EVENT_CLASS = 'get_system_event_class';
+
+
+}
+?>
return false;
}
if ($send_all_posts_to) {
+ $send_all_posts_to = str_replace(';', ',', $send_all_posts_to);
$invalid_mails = validate_emails($send_all_posts_to);
if (count($invalid_mails) > 0) {
$this->setInvalidEmailError();
$this->group_forum_id=db_insertid($result,'forum_group_list','group_forum_id');
$this->fetchData($this->group_forum_id);
- // set the permission for the role's group
- $roles_group = $this->Group->getRolesId();
- for ($i=0; $i<sizeof($roles_group); $i++) {
- $role_setting_res = db_query_params ('INSERT INTO role_setting (role_id,section_name,ref_id,value) VALUES ($1,$2,$3,$4)',
- array ($roles_group[$i],
- 'forum',
- $this->group_forum_id,
- 1)) ;
- if (!$role_setting_res) {
- db_rollback();
- $this->setError('Error: Role setting for forum id ' . $this->group_forum_id . ' for groud id ' . $this->Group->getID() . ' ' .db_error());
- return false;
- }
- }
-
if ($create_default_message) {
$fm=new ForumMessage($this);
// Use the system side default language
}
}
db_commit();
+
+ $this->Group->normalizeAllRoles () ;
+
return true;
}
* @return int The next thread_id #.
*/
function getNextThreadID() {
- global $sys_database_type;
-
- if ($sys_database_type == "mysql") {
- $sql="call newval('forum_thread_seq', @res)";
- $result=db_mquery($sql);
- if (!$result) {
- echo db_error();
- return false;
- }
- $sql="select @res";
- $result = db_query_mysql ($sql);
- } else {
- $result = db_query_params ('SELECT nextval($1)',
- array ('forum_thread_seq')) ;
- }
+ $result = db_query_params ('SELECT nextval($1)',
+ array ('forum_thread_seq')) ;
if (!$result || db_numrows($result) < 1) {
echo db_error();
return false;
* @return string return email address
*/
function getReturnEmailAddress() {
- global $sys_default_domain, $sys_use_gateways;
+ global $sys_use_gateways;
$address = '';
if($sys_use_gateways) {
$address .= $this->getUnixName();
if($sys_use_gateways && isset($GLOBALS['sys_forum_return_domain'])) {
$address .= $GLOBALS['sys_forum_return_domain'];
} else {
- $address .= $sys_default_domain;
+ $address .= forge_get_config('web_host');
}
return $address;
}
db_query_params ('DELETE FROM role_setting WHERE section_name=$1 AND ref_id=$2',
array ('forum',
$this->getID())) ;
+
db_commit();
+
+ $this->Group->normalizeAllRoles () ;
+
return true;
}
_("You are receiving this email because you elected to monitor this forum.".
"\nTo stop monitoring this forum, login to %s and visit: \n%s\n"),
$text,
- $GLOBALS['sys_name'],
+ forge_get_config ('forge_name'),
util_make_url('/forum/monitor.php?forum_id='.$this->Forum->getID().
'&group_id='.$this->Forum->Group->getID().'&stop=1')
);
- $extra_headers = "Return-Path: <noreply@".$GLOBALS['sys_default_domain'].">\n";
- $extra_headers .= "Errors-To: <noreply@".$GLOBALS['sys_default_domain'].">\n";
- $extra_headers .= "Sender: <noreply@".$GLOBALS['sys_default_domain'].">\n";
+ $extra_headers = "Return-Path: <noreply@".forge_get_config('web_host').">\n";
+ $extra_headers .= "Errors-To: <noreply@".forge_get_config('web_host').">\n";
+ $extra_headers .= "Sender: <noreply@".forge_get_config('web_host').">\n";
$extra_headers .= "Reply-To: ".$this->Forum->getReturnEmailAddress()."\n";
$extra_headers .= "Precedence: Bulk\n"
- ."List-Id: ".$this->Forum->getName()." <forum".$this->Forum->getId()."@".$GLOBALS['sys_default_domain'].">\n"
+ ."List-Id: ".$this->Forum->getName()." <forum".$this->Forum->getId()."@".forge_get_config('web_host').">\n"
."List-Help: ".util_make_url ('/forum/forum.php?id='.$this->Forum->getId())."\n"
- ."Message-Id: <forumpost".$this->getId()."@".$GLOBALS['sys_default_domain'].">";
+ ."Message-Id: <forumpost".$this->getId()."@".forge_get_config('web_host').">";
$parentid = $this->getParentId();
if (!empty($parentid)) {
$extra_headers .= "\nIn-Reply-To: ".$this->Forum->getReturnEmailAddress()."\n"
- ."References: <forumpost".$this->getParentId()."@".$GLOBALS['sys_default_domain'].">";
+ ."References: <forumpost".$this->getParentId()."@".forge_get_config('web_host').">";
}
$subject="[" . $this->Forum->getUnixName() ."][".$this->getID()."] ".util_unconvert_htmlspecialchars($this->getSubject());
- util_send_message($dest_email,$subject,$body,"noreply@".$GLOBALS['sys_default_domain'],'','Forum',$extra_headers);
+ util_send_message($dest_email,$subject,$body,"noreply@".forge_get_config('web_host'),'','Forum',$extra_headers);
}
// Switch back to the user language settings
"\n\n______________________________________________________________________".
"\nYou are receiving this email because the forum you administrate has a new moderated message awaiting your approval.";
- //$extra_headers = 'Reply-to: '.$this->Forum->getUnixName().'@'.$GLOBALS['sys_default_domain'];
- $extra_headers = "Return-Path: <noreply@".$GLOBALS['sys_default_domain'].">\n";
- $extra_headers .= "Errors-To: <noreply@".$GLOBALS['sys_default_domain'].">\n";
- $extra_headers .= "Sender: <noreply@".$GLOBALS['sys_default_domain'].">\n";
+ //$extra_headers = 'Reply-to: '.$this->Forum->getUnixName().'@'.forge_get_config('web_host');
+ $extra_headers = "Return-Path: <noreply@".forge_get_config('web_host').">\n";
+ $extra_headers .= "Errors-To: <noreply@".forge_get_config('web_host').">\n";
+ $extra_headers .= "Sender: <noreply@".forge_get_config('web_host').">\n";
$extra_headers .= "Reply-To: ".$this->Forum->getReturnEmailAddress()."\n";
$extra_headers .= "Precedence: Bulk\n"
- ."List-Id: ".$this->Forum->getName()." <forum".$this->Forum->getId()."@".$GLOBALS['sys_default_domain'].">\n"
+ ."List-Id: ".$this->Forum->getName()." <forum".$this->Forum->getId()."@".forge_get_config('web_host').">\n"
."List-Help: ".util_make_url('/forum/forum.php?id='.$this->Forum->getId())."\n"
- ."Message-Id: <forumpost".$this->getId()."@".$GLOBALS['sys_default_domain'].">";
+ ."Message-Id: <forumpost".$this->getId()."@".forge_get_config('web_host').">";
$parentid = $this->getParentId();
if (!empty($parentid)) {
$extra_headers .= "\nIn-Reply-To: ".$this->Forum->getReturnEmailAddress()."\n"
- ."References: <forumpost".$this->getParentId()."@".$GLOBALS['sys_default_domain'].">";
+ ."References: <forumpost".$this->getParentId()."@".forge_get_config('web_host').">";
}
$subject="[" . $this->Forum->getUnixName() ."][".$this->getID()."] ".util_unconvert_htmlspecialchars($this->getSubject());
$BCC =& implode(util_result_column_to_array($bccres),',').','.$this->Forum->getSendAllPostsTo();
$User = user_get_object($this->getPosterID());
//util_send_message('',$subject,$body,$User->getEmail(),$BCC,$this->getPosterRealName(),$extra_headers);
- util_send_message('',$subject,$body,"noreply@".$GLOBALS['sys_default_domain'],$BCC,'Forum',$extra_headers);
-// util_handle_message(array_unique($ids),$subject,$body,$this->Forum->getSendAllPostsTo(),'','forumgateway@'.$GLOBALS[sys_default_domain]);
+ util_send_message('',$subject,$body,"noreply@".forge_get_config('web_host'),$BCC,'Forum',$extra_headers);
+// util_handle_message(array_unique($ids),$subject,$body,$this->Forum->getSendAllPostsTo(),'','forumgateway@'.forge_get_config('web_host'));
return true;
}
$body .=
"\n\n______________________________________________________________________".
"\nYou are receiving this email because you elected to monitor this forum.".
- "\nTo stop monitoring this forum, login to ".$GLOBALS['sys_name']." and visit: ".
+ "\nTo stop monitoring this forum, login to ".forge_get_config ('forge_name')." and visit: ".
"\n".util_make_url ('/forum/monitor.php?forum_id='.$this->Forum->getID() .'&group_id='.$this->Forum->Group->getID().'&stop=1');
- $extra_headers = "Return-Path: <noreply@".$GLOBALS['sys_default_domain'].">\n";
- $extra_headers .= "Errors-To: <noreply@".$GLOBALS['sys_default_domain'].">\n";
- $extra_headers .= "Sender: <noreply@".$GLOBALS['sys_default_domain'].">\n";
+ $extra_headers = "Return-Path: <noreply@".forge_get_config('web_host').">\n";
+ $extra_headers .= "Errors-To: <noreply@".forge_get_config('web_host').">\n";
+ $extra_headers .= "Sender: <noreply@".forge_get_config('web_host').">\n";
$extra_headers .= "Reply-To: ".$this->Forum->getReturnEmailAddress()."\n";
$extra_headers .= "Precedence: Bulk\n"
- ."List-Id: ".$this->Forum->getName()." <forum".$this->Forum->getId()."@".$GLOBALS['sys_default_domain'].">\n"
+ ."List-Id: ".$this->Forum->getName()." <forum".$this->Forum->getId()."@".forge_get_config('web_host').">\n"
."List-Help: ".util_make_url('/forum/forum.php?id='.$this->Forum->getId())."\n"
- ."Message-Id: <forumpost".$this->getId()."@".$GLOBALS['sys_default_domain'].">";
+ ."Message-Id: <forumpost".$this->getId()."@".forge_get_config('web_host').">";
$parentid = $this->getParentId();
if (!empty($parentid)) {
$extra_headers .= "\nIn-Reply-To: ".$this->Forum->getReturnEmailAddress()."\n"
- ."References: <forumpost".$this->getParentId()."@".$GLOBALS['sys_default_domain'].">";
+ ."References: <forumpost".$this->getParentId()."@".forge_get_config('web_host').">";
}
$subject="[" . $this->Forum->getUnixName() ."][".$this->getID()."] ".util_unconvert_htmlspecialchars($this->getSubject());
}
$BCC =& implode(util_result_column_to_array($bccres),',').','.$this->Forum->getSendAllPostsTo();
$User = user_get_object($this->getPosterID());
- util_send_message('',$subject,$body,"noreply@".$GLOBALS['sys_default_domain'],$BCC,'Forum',$extra_headers);
+ util_send_message('',$subject,$body,"noreply@".forge_get_config('web_host'),$BCC,'Forum',$extra_headers);
return true;
}
$this->FRSPackage->Group->getUnixName(),
$this->FRSPackage->getName(),
util_make_url ("/frs/?group_id=". $this->FRSPackage->Group->getID() ."&release_id=". $this->getID()),
- $GLOBALS['sys_name'],
+ forge_get_config ('forge_name'),
util_make_url ("/frs/monitor.php?filemodule_id=".$this->FRSPackage->getID()."&group_id=".$this->FRSPackage->Group->getID()."&stop=1")));
// $text = util_line_wrap($text);
if (count($arr)) {
--- /dev/null
+<?php
+/**
+ * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
+ *
+ * This file is a part of Codendi.
+ *
+ * Codendi is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Codendi is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* abstract */ class Codendi_Request {
+ /**
+ * @var array
+ * @access private
+ */
+ var $_validated_input;
+
+ /**
+ * @var array
+ * @access private
+ */
+ var $_last_access_to_input;
+
+ /**
+ * @var array
+ */
+ var $params;
+
+ /**
+ * Constructor
+ */
+ function Codendi_Request($params) {
+ $this->params = $params;
+ $this->_validated_input = array();
+ $this->_last_access_to_input = array();
+ }
+
+
+ /**
+ * Get the value of $variable in $this->params (user submitted values).
+ *
+ * @param string $variable Name of the parameter to get.
+ * @return mixed If the variable exist, the value is returned (string)
+ * otherwise return false;
+ */
+ function get($variable) {
+
+ return $this->_get($variable, $this->params);
+ }
+
+ /**
+ * Add a param and/or set its value
+ *
+ */
+ function set($name, $value) {
+ $this->params[$name] = $value;
+ }
+
+
+ /**
+ * Get the value of $variable in $array.
+ *
+ * @access private
+ * @param string $variable Name of the parameter to get.
+ * @param array $array Name of the parameter to get.
+ */
+ function _get($variable, $array) {
+ if ($this->_exist($variable, $array)) {
+ return $array[$variable];
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Check if $variable exists in user submitted parameters.
+ *
+ * @param string $variable Name of the parameter.
+ * @return boolean
+ */
+ function exist($variable) {
+ return $this->_exist($variable, $this->params);
+ }
+
+ /**
+ * Check if $variable exists in $array.
+ *
+ * @access private
+ * @param string $variable Name of the parameter.
+ * @return boolean
+ */
+ function _exist($variable, $array) {
+ return isset($array[$variable]);
+ }
+
+
+}
+?>
$this->Error();
$this->software_name = 'FusionForge' ;
- $this->software_version = '5.0' ;
+ $this->software_version = '5.0.50' ;
return true;
}
$is_public,
$unix_name,
htmlspecialchars($description),
- $unix_name.".".$GLOBALS['sys_default_domain'],
- $unix_name.".".$GLOBALS['sys_default_domain'],
+ $unix_name.".".forge_get_config('web_host'),
+ $unix_name.".".forge_get_config('web_host'),
'P',
$unix_box,
$scm_box,
$homepage = ltrim($homepage);
if (!$homepage) {
- $homepage=$GLOBALS['sys_default_domain'].'/projects/'.$this->getUnixName().'/';
+ $homepage=forge_get_config('web_host').'/projects/'.$this->getUnixName().'/';
}
if (strlen(htmlspecialchars($short_description))>255) {
* @param string The name of the new SCM_BOX
*/
function setSCMBox($scm_box) {
+
+ if ($scm_box == $this->data_array['scm_box']) {
+ return true;
+ }
if ($scm_box) {
db_begin();
$res = db_query_params ('UPDATE groups SET scm_box=$1 WHERE group_id=$2', array ($scm_box, $this->getID ()));
* @return boolean success.
*/
function removeUser($user_id) {
- global $SYS,$sys_database_type;
+ global $SYS;
if ($user_id==user_getid()) {
//users can remove themselves
// first have to purge any assignments that would cause
// conflict with existing assignment to 100
//
- if ($sys_database_type == 'mysql') {
- $res=db_mquery("
- SELECT pt.project_task_id
- FROM project_task pt, project_group_list pgl, project_assigned_to pat
- WHERE pt.group_project_id = pgl.group_project_id
- AND pat.project_task_id=pt.project_task_id
- AND pt.status_id='1' AND pgl.group_id='".$this->getID()."'
- AND pat.assigned_to_id='$user_id' INTO @task_list;
- DELETE FROM project_assigned_to WHERE project_task_id IN ( @task_list ) AND assigned_to_id='100'");
- if ($res) {
- $res = db_next_result();
- }
- } else {
- $res = db_query_params ('DELETE FROM project_assigned_to
+ $res = db_query_params ('DELETE FROM project_assigned_to
WHERE project_task_id IN (SELECT pt.project_task_id
FROM project_task pt, project_group_list pgl, project_assigned_to pat
WHERE pt.group_project_id = pgl.group_project_id
AND pt.status_id=1 AND pgl.group_id=$1
AND pat.assigned_to_id=$2)
AND assigned_to_id=100',
- array ($this->getID(),
- $user_id)) ;
- }
+ array ($this->getID(),
+ $user_id)) ;
if (!$res) {
$this->setError(sprintf(_('ERROR: DB: project_assigned_to %d: %s'),1,db_error()));
db_rollback();
if there is anything we can do to help you.
-- the %4$s crew'),
- $this->getPublicName(),
+ htmlspecialchars_decode($this->getPublicName()),
$this->getUnixName(),
util_make_url ('/project/admin/?group_id='.$this->getID()),
- $GLOBALS['sys_name']);
+ forge_get_config ('forge_name'));
- util_send_message($row_admins['email'], sprintf(_('%1$s Project Approved'), $GLOBALS['sys_name']), $message);
+ util_send_message($row_admins['email'], sprintf(_('%1$s Project Approved'), forge_get_config ('forge_name')), $message);
setup_gettext_from_context();
}
Reasons for negative decision:
-'), $this->getPublicName(), $this->getUnixName(), $GLOBALS['sys_name']);
+'), $this->getPublicName(), $this->getUnixName(), forge_get_config ('forge_name'));
// Check to see if they want to send a custom rejection response
if ($response_id == 0) {
"response_text");
}
- util_send_message($row_admins['email'], sprintf(_('%1$s Project Denied'), $GLOBALS['sys_name']), $response);
+ util_send_message($row_admins['email'], sprintf(_('%1$s Project Denied'), forge_get_config ('forge_name')), $response);
setup_gettext_from_context();
}
array ('A'));
if (db_numrows($res) < 1) {
- $this->setError(_("There is no administrator to send the mail."));
+ $this->setError(_("There is no administrator to send the mail to."));
return false;
}
Please visit the following URL to approve or reject this project:
%4$s'),
- $GLOBALS['sys_name'],
- $this->getPublicName(),
- util_unconvert_htmlspecialchars($this->getRegistrationPurpose()),
+ forge_get_config ('forge_name'),
+ htmlspecialchars_decode($this->getPublicName()),
+ htmlspecialchars_decode($this->getRegistrationPurpose()),
util_make_url ('/admin/approve-pending.php'),
$submitter->getRealName(),
$submitter->getUnixName());
- util_send_message($admin_email, sprintf(_('New %1$s Project Submitted'), $GLOBALS['sys_name']), $message);
+ util_send_message($admin_email, sprintf(_('New %1$s Project Submitted'), forge_get_config ('forge_name')), $message);
setup_gettext_from_context();
}
Project Full Name: %2$s
Submitted Description: %3$s
-The %1$s admin team will now examine your project submission. You will be notified of their decision.'), $GLOBALS['sys_name'], $this->getPublicName(), util_unconvert_htmlspecialchars($this->getRegistrationPurpose()), $GLOBALS['sys_default_domain']);
+The %1$s admin team will now examine your project submission. You will be notified of their decision.'), forge_get_config ('forge_name'), $this->getPublicName(), util_unconvert_htmlspecialchars($this->getRegistrationPurpose()), forge_get_config('web_host'));
- util_send_message($email, sprintf(_('New %1$s Project Submitted'), $GLOBALS['sys_name']), $message);
+ util_send_message($email, sprintf(_('New %1$s Project Submitted'), forge_get_config ('forge_name')), $message);
setup_gettext_from_context();
return true;
return $rolesId;
}
+ function normalizeAllRoles () {
+ $roles = $this->getRolesId () ;
+
+ foreach ($roles as $role_id) {
+ $r = new Role ($this, $role_id) ;
+ $r->normalizeData () ;
+ }
+ }
+
/**
* getUnixStatus - Status of activation of unix account.
*
return $users;
}
-
- /**
- * getMenu - get an array that contains data for the group menu
- *
- * @param string contains the name of the selected menu item
- * @return array array containing:
- * 'titles': array that stores the titles of the menu entries
- * 'dirs': array that stores the URLs of the menu entries
- * 'start': URL of the starting page of the project
- * 'admindirs': array that stores the URLs of the admin pages
- * for the menu entries, if accessible, false otherwise
- * 'selected': number of the menu entry selected by $toptab
- * 'last_toptab': required internally: stores the
- * value of $toptab for the last call to getMenu()
- */
- function &getMenu($toptab = "") {
- // rebuild menu if it has never been built before, or
- // if the toptab was set differently
- if (!isset($this->menu_data)
- || ($toptab != "")
- || ($toptab != $this->menu_data['last_toptab']))
- {
- $selected = 0;
- $group = $this->getId();
-
- $this->menu_data = array () ;
- $this->menu_data['titles'] = array();
- $this->menu_data['dirs'] = array();
- $this->menu_data['admindirs'] = array();
-
- // Summary
- $this->menu_data['titles'][] = _('Summary');
- if (isset ($GLOBALS['sys_noforcetype']) && $GLOBALS['sys_noforcetype']) {
- $dir = util_make_url ('/project/?group_id=' . $group);
- } else {
- $dir = util_make_url ('/projects/' . $this->getUnixName() .'/');
- }
- $this->menu_data['dirs'][] = $dir;
- $this->menu_data['admindirs'][] = false;
- if ($toptab == "home") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
- // setting 'start' allows to change the
- // projects start page
- $this->menu_data['start'] = $dir;
-
- // Project Admin
- $perm =& $this->getPermission( session_get_user() );
- if ($perm->isAdmin()) {
- $this->menu_data['titles'][] = _('Admin');
- $this->menu_data['dirs'][] = util_make_url ('/project/admin/?group_id=' . $group);
- $this->menu_data['admindirs'][] = false;
- if ($toptab == "admin") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
- }
-
- /* Homepage
- // check for use_home_tab?
- $TABS_DIRS[]='http://'. $this->getHomePage();
- $TABS_TITLES[]=_('Home Page');
- */
-
- // Project Activity tab
- $this->menu_data['titles'][] = _('Activity');
- $this->menu_data['dirs'][] = util_make_url ('/activity/?group_id=' . $group);
- $this->menu_data['admindirs'][] = false;
- if ($toptab == "activity") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
-
- // Forums
- if ($this->usesForum()) {
- $this->menu_data['titles'][] = _('Forums');
- $this->menu_data['dirs'][] = util_make_url ('/forum/?group_id=' . $group);
- if ($perm->isAdmin() || $perm->isForumAdmin()) {
- $this->menu_data['admindirs'][] = util_make_url('/forum/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "forums") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
- }
-
- // Artifact Tracking
- if ($this->usesTracker()) {
- $this->menu_data['titles'][] = _('Tracker');
- $this->menu_data['dirs'][] = util_make_url ('/tracker/?group_id=' . $group);
- if ($perm->isAdmin() || $perm->isArtifactAdmin()) {
- $this->menu_data['admindirs'][] = util_make_url('/tracker/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "tracker" ||
- $toptab == "bugs" ||
- $toptab == "support" ||
- $toptab == "patch") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
- }
-
-
- // Mailing Lists
- if ($this->usesMail()) {
- $this->menu_data['titles'][] = _('Lists');
- $this->menu_data['dirs'][] = util_make_url ('/mail/?group_id=' . $group);
- if ($perm->isAdmin()) {
- $this->menu_data['admindirs'][] = util_make_url('/mail/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "mail") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
-
- }
-
- // Project/Task Manager
- if ($this->usesPm()) {
- $this->menu_data['titles'][] = _('Tasks');
- $this->menu_data['dirs'][] = util_make_url ('/pm/?group_id=' . $group);
- if ($perm->isAdmin() || $perm->isPMAdmin()) {
- $this->menu_data['admindirs'][] = util_make_url ('/pm/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "pm") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
-
- }
-
- // Doc Manager
- if ($this->usesDocman()) {
- $this->menu_data['titles'][] = _('Docs');
- $this->menu_data['dirs'][] = util_make_url ('/docman/?group_id=' . $group);
- if ($perm->isAdmin() || $perm->isDocEditor()) {
- $this->menu_data['admindirs'][] = util_make_url ('/docman/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "docman") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
-
- }
-
- // Surveys
- if ($this->usesSurvey()) {
- $this->menu_data['titles'][] = _('Surveys');
- $this->menu_data['dirs'][] = util_make_url ('/survey/?group_id=' . $group);
- if ($perm->isAdmin()) {
- $this->menu_data['admindirs'][] = util_make_url ('/survey/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "surveys") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
- }
-
- // News
- if ($this->usesNews()) {
- $this->menu_data['titles'][] = _('News');
- $this->menu_data['dirs'][] = util_make_url ('/news/?group_id=' . $group);
- if ($perm->isAdmin()) {
- $this->menu_data['admindirs'][] = util_make_url ('/news/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "news") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
- }
-
- // SCM systems
- if ($this->usesSCM()) {
- $this->menu_data['titles'][] = _('SCM');
- $this->menu_data['dirs'][] = util_make_url ('/scm/?group_id=' . $group);
- // eval cvs_flags?
- if ($perm->isAdmin()) {
- $this->menu_data['admindirs'][] = util_make_url ('/scm/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "scm") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
- }
-
- // groupmenu_after_scm hook
- $hookParams = array();
- $hookParams['group_id'] = $group ;
- $hookParams['DIRS'] =& $this->menu_data['dirs'];
- $hookParams['TITLES'] =& $this->menu_data['titles'];
- $hookParams['toptab'] =& $toptab;
- $hookParams['selected'] =& $selected;
-
- plugin_hook ("groupmenu_scm", $hookParams) ;
-
- // fill up admindirs
- for ($i = 0;
- $i < count($this->menu_data['dirs']) - count($this->menu_data['admindirs']);
- $i++) {
- $this->menu_data['admindirs'][] = false;
- }
-
- // Downloads
- if ($this->usesFRS()) {
- $this->menu_data['titles'][] = _('Files');
- $this->menu_data['dirs'][] = util_make_url ('/frs/?group_id=' . $group);
- if ($perm->isAdmin() || $perm->isReleaseTechnician()) {
- $this->menu_data['admindirs'][] = util_make_url ('/frs/admin/?group_id='.$group);
- } else {
- $this->menu_data['admindirs'][] = false;
- }
- if ($toptab == "frs") {
- $selected = (count($this->menu_data['dirs'])-1);
- }
- }
-
- // groupmenu hook
- $hookParams = array();
- $hookParams['group'] = $group ;
- $hookParams['DIRS'] =& $this->menu_data['dirs'];
- $hookParams['TITLES'] =& $this->menu_data['titles'];
- $hookParams['toptab'] =& $toptab;
- $hookParams['selected'] =& $selected;
-
- plugin_hook ("groupmenu", $hookParams) ;
-
- // fill up admindirs
- for ($i = 0;
- $i < count($this->menu_data['dirs']) - count($this->menu_data['admindirs']);
- $i++) {
- $this->menu_data['admindirs'][] = false;
- }
-
- // store selected menu item (if any)
- $this->menu_data['selected'] = $selected;
- if ($toptab != "") {
- $this->menu_data['last_toptab'] = $toptab;
- }
- }
- return $this->menu_data ;
- }
}
/**
--- /dev/null
+<?php
+/**
+ * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
+ *
+ * This file is a part of Codendi.
+ *
+ * Codendi is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Codendi is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+require_once('common/include/Codendi_Request.class.php');
+
+
+/**
+ * @package Codendi
+ */
+class HTTPRequest extends Codendi_Request {
+
+ /**
+ * Constructor
+ */
+ function HTTPRequest() {
+ parent::Codendi_Request($_REQUEST);
+ }
+
+
+ /**
+ * Get the value of $variable in $this->params (server side values).
+ *
+ * @param string $variable Name of the parameter to get.
+ * @return mixed If the variable exist, the value is returned (string)
+ * otherwise return false;
+ */
+ function getFromServer($variable) {
+ return $this->_get($variable, $_SERVER);
+ }
+
+ /**
+ * Check if current request is send via 'post' method.
+ *
+ * This method is useful to test if the current request comes from a form.
+ *
+ * @return boolean
+ */
+ function isPost() {
+ if($_SERVER['REQUEST_METHOD'] == 'POST') {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Return true if browser used to submit the request is netscape 4.
+ *
+ * @return boolean
+ */
+ function browserIsNetscape4() {
+ return browser_is_netscape4();
+ }
+
+ /**
+ * Singleton method for the class.
+ *
+ * @return mixed HTTPRequest Object.
+ */
+ function &instance() {
+ static $_httprequest_instance;
+ if (!$_httprequest_instance) {
+ $_httprequest_instance = new HTTPRequest();
+ }
+ return $_httprequest_instance;
+ }
+
+ /**
+ * Validate file upload.
+ *
+ * @param Valid_File Validator for files.
+ * @return Boolean
+ */
+ function validFile(&$validator) {
+ if(is_a($validator, 'Valid_File')) {
+ $this->_validated_input[$validator->getKey()] = true;
+ return $validator->validate($_FILES, $validator->getKey());
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Remove slashes in $value. If $value is an array, remove slashes for each
+ * element.
+ *
+ * @access private
+ * @param mixed $value
+ * @return mixed
+ */
+ function _stripslashes($value) {
+ if (is_string($value)) {
+ $value = stripslashes($value);
+ } else if (is_array($value)) {
+ foreach($value as $key => $val) {
+ $value[$key] = $this->_stripslashes($val);
+ }
+ }
+ return $value;
+ }
+
+ /**
+ * Get the value of $variable in $array. If magic_quotes are enabled, the
+ * value is escaped.
+ *
+ * @access private
+ * @param string $variable Name of the parameter to get.
+ * @param array $array Name of the parameter to get.
+ */
+ function _get($variable, $array) {
+ if ($this->_exist($variable, $array)) {
+ return (get_magic_quotes_gpc()?$this->_stripslashes($array[$variable]):$array[$variable]);
+ } else {
+ return false;
+ }
+ }
+
+}
+
+?>
--- /dev/null
+<?php
+ /**
+ * FusionForge navigation
+ *
+ * Copyright 2009 - 2010, Olaf Lenz
+ *
+ * This file is part of FusionForge.
+ *
+ * FusionForge is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License,
+ * or (at your option) any later version.
+ *
+ * FusionForge is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with FusionForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+require_once $gfwww.'search/include/SearchManager.class.php';
+
+/**
+ * This class provides all the navigational elements to be used by the themes,
+ * like the site menu, the project menus, and the user links.
+ * Some of the methods return HTML code, some return abstract data
+ * structures, and some methods give you the choice. The HTML code
+ * always tries to be as generic as possible so that it can easily be
+ * styled via CSS.
+ */
+class Navigation extends Error {
+ /**
+ * Associative array of data for the project menus.
+ *
+ * @var array $project_menu_data.
+ */
+ var $project_menu_data;
+
+ /** Constructor */
+ function Navigation() {
+ $this->Error();
+ return true;
+ }
+
+ /** Get the HTML code of the title of the page. If the array
+ * $params contains a value for the key 'title', this title
+ * is appended to the title generated here. If $asHTML is
+ * set to false, it will return only the title in plain
+ * text. */
+ function getTitle($params, $asHTML=true) {
+ if (!$asHTML) {
+ // get the title
+ if (!$params['title']) {
+ return forge_get_config ('forge_name') ;
+ } else {
+ return forge_get_config ('forge_name') . ': ' . $params['title'];
+ }
+ } else {
+ // return HTML code otherwise
+ return '<title>' . $this->getTitle($params, false) . '</title>';
+ }
+ }
+
+ /** Get the HTML code for the favicon links of the site (to be
+ * put into the <head>. If $asHTML is false, it will return
+ * the URL of the favicon.
+ *
+ * @todo: Make favicon configurable
+ */
+ function getFavIcon($asHTML=true) {
+ if (!$asHTML) {
+ return util_make_url('/images/icon.png');
+ } else {
+ return '<link rel="icon" type="image/png" href="'
+ . $this->getFavIcon(false) .'" />'
+ . '<link rel="shortcut icon" type="image/png" href="'
+ . $this->getFavIcon(false) .'" />';
+ }
+ }
+
+ /** Get the HTML code for the RSS feeds of the site (to be put
+ * into the <head>. If $asHTML is false, it will return an
+ * array with the following structure: $result['titles']:
+ * list of titles of the feeds; $result['urls'] list of urls
+ * of the feeds. */
+ function getRSS($asHTML=true) {
+ if (!$asHTML) {
+ $res = array() ;
+ $res['titles'] = array();
+ $res['urls'] = array();
+
+ $res['titles'][] = forge_get_config ('forge_name').' - Project News Highlights RSS';
+ $res['urls'][] = util_make_url('/export/rss_sfnews.php');
+
+ $res['titles'][] = forge_get_config ('forge_name').' - Project News Highlights RSS 2.0';
+ $res['urls'][] = util_make_url('/export/rss20_news.php');
+
+ $res['titles'][] = forge_get_config ('forge_name').' - New Projects RSS';
+ $res['urls'][] = util_make_url('/export/rss_sfprojects.php');
+
+ if (isset($GLOBALS['group_id'])) {
+ $res['titles'][] = forge_get_config ('forge_name') . ' - New Activity RSS';
+ $res['urls'][] = util_make_url('/export/rss20_activity.php?group_id='.$GLOBALS['group_id']);
+ }
+ return $res;
+ } else {
+ $feeds = $this->getRSS(false);
+ for ($j = 0; $j < count($feeds['urls']); $j++) {
+ echo '
+ <link rel="alternate" title="' . $feeds['titles'][$j]
+ . '" href="' . $feeds['urls'][$j]
+ . '" type="application/rss+xml"/>';
+ }
+ }
+ }
+
+ /** Get the searchBox HTML code. */
+ function getSearchBox() {
+ global $words,$forum_id,$group_id,$group_project_id,$atid,$exact,$type_of_search;
+
+ $res = "";
+ if (get_magic_quotes_gpc()) {
+ $defaultWords = stripslashes($words);
+ } else {
+ $defaultWords = $words;
+ }
+
+ $defaultWords = htmlspecialchars($defaultWords);
+
+ // if there is no search currently, set the default
+ if (!isset($type_of_search) ) {
+ $exact = 1;
+ }
+
+ $res .= '<form id="searchBox" action="'.util_make_url ('/search/').'" method="get">
+ <div>';
+ $parameters = array(
+ SEARCH__PARAMETER_GROUP_ID => $group_id,
+ SEARCH__PARAMETER_ARTIFACT_ID => $atid,
+ SEARCH__PARAMETER_FORUM_ID => $forum_id,
+ SEARCH__PARAMETER_GROUP_PROJECT_ID => $group_project_id
+ );
+
+ $searchManager =& getSearchManager();
+ $searchManager->setParametersValues($parameters);
+ $searchEngines =& $searchManager->getAvailableSearchEngines();
+
+ $res .= '<label for="searchBox-words">
+ <select name="type_of_search">';
+ for($i = 0, $max = count($searchEngines); $i < $max; $i++) {
+ $searchEngine =& $searchEngines[$i];
+ $res .= '<option value="' . $searchEngine->getType() . '"'
+ . ( $type_of_search == $searchEngine->getType() ? ' selected="selected"' : '' )
+ . '>' . $searchEngine->getLabel($parameters) . '</option>' . "\n";
+ }
+ $res .= '</select></label>';
+
+ $parameters = $searchManager->getParameters();
+ foreach($parameters AS $name => $value) {
+ $res .= '<input type="hidden" value="'.$value.'" name="'.$name.'" />' . "\n";
+ }
+ $res .= '<input type="text" size="12" id="searchBox-words" name="words" value="'
+ . $defaultWords . '" />' . "\n";
+ $res .= '<input type="submit" name="Search" value="'._('Search').'" />' . "\n";
+
+ if (isset($group_id) && $group_id) {
+ $res .= util_make_link('/search/advanced_search.php?group_id=' .
+ $group_id, _('Advanced search'));
+ }
+ $res .= '</div>';
+ $res .= '</form>';
+
+ return $res;
+ }
+
+
+ /** Get an array of the user links (Login/Logout/My
+ Account/Register) with the following structure:
+ $result['titles']: list of the titles. $result['urls']: list
+ of the urls.
+ */
+ function getUserLinks() {
+ $res = array();
+ if (session_loggedin()) {
+ $u =& user_get_object(user_getid());
+ $res['titles'][] = sprintf("%s (%s)", _('Log Out'), $u->getRealName());
+ $res['urls'][] = util_make_url ('/account/logout.php');
+
+ $res['titles'][] = _('My Account');
+ $res['urls'][] = util_make_url ('/account/');
+ } else {
+ $url = '/account/login.php';
+ if(getStringFromServer('REQUEST_METHOD') != 'POST') {
+ $url .= '?return_to=';
+ $url .= urlencode(getStringFromServer('REQUEST_URI'));
+ }
+ $res['titles'][] = _('Log In');
+ $res['urls'][] = util_make_url($url);
+
+ if (!forge_get_config ('user_registration_restricted')) {
+ $res['titles'][] = _('New Account');
+ $res['urls'][] = util_make_url('/account/register.php');
+ }
+ }
+ return $res;
+ }
+
+ /** Get an array of the menu of the site with the following
+ * structure: $result['titles']: list of titles of the
+ * links. $result['urls']: list of urls. $result['selected']:
+ * number of the selected menu entry.
+ */
+ function getSiteMenu() {
+ global $sys_use_trove,$sys_use_snippet,$sys_use_people,$sys_use_project_tags, $sys_use_project_full_list;
+
+ $request_uri = getStringFromServer('REQUEST_URI');
+
+ $menu = array();
+ $menu['titles'] = array();
+ $menu['urls'] = array();
+ $selected = 0;
+
+ // Home
+ $menu['titles'][] = _('Home');
+ $menu['urls'][] = util_make_url ('/');
+
+ // My Page
+ $menu['titles'][] = _('My Page');
+ $menu['urls'][] = util_make_url ('/my/');
+ if (strstr($request_uri, util_make_uri('/my/'))
+ || strstr($request_uri, util_make_uri('/account/'))
+ || strstr($request_uri, util_make_uri('/register/'))
+ || strstr($request_uri, util_make_uri('/themes/'))
+ )
+ {
+ $selected=count($menu['urls'])-1;
+ }
+
+ if ($sys_use_trove || $sys_use_project_tags || $sys_use_project_full_list) {
+ $menu['titles'][] = _('Projects');
+ $menu['urls'][] = util_make_url ('/softwaremap/') ;
+ if (strstr($request_uri, util_make_uri('/softwaremap/'))) {
+ $selected=count($menu['urls'])-1;
+ }
+ }
+
+ if ($sys_use_snippet) {
+ $menu['titles'][] = _('Code Snippets');
+ $menu['urls'][] = util_make_url ('/snippet/') ;
+ if (strstr($request_uri, util_make_uri('/snippet/'))) {
+ $selected=count($menu['urls'])-1;
+ }
+ }
+
+ if ($sys_use_people) {
+ $menu['titles'][] = _('Project Openings');
+ $menu['urls'][] = util_make_url ('/people/') ;
+ if (strstr($request_uri, util_make_uri('/people/'))) {
+ $selected=count($menu['urls'])-1;
+ }
+ }
+
+ // Outermenu hook
+ $before = count($menu['urls']);
+ $plugin_urls = array();
+ $hookParams['DIRS'] = &$menu['urls'];
+ $hookParams['TITLES'] = &$menu['titles'];
+ plugin_hook ("outermenu", $hookParams) ;
+
+ // try to find selected entry
+ for ($j = $before; $j < count($plugin_urls); $j++) {
+ $url = $menu['urls'][$j];
+ if (strstr($request_uri, parse_url ($url, PHP_URL_PATH))) {
+ $selected = $j;
+ break;
+ }
+ }
+
+ // Admin and Reporting
+ $user_is_super=false;
+ if (session_loggedin()) {
+ $projectmaster =& group_get_object(GROUP_IS_MASTER);
+ $projectstats =& group_get_object(GROUP_IS_STATS);
+ $permmaster =& $projectmaster->getPermission( session_get_user() );
+ $permstats =& $projectstats->getPermission( session_get_user() );
+
+ if ($permmaster->isAdmin()) {
+ $user_is_super = true;
+ $menu['titles'][] = _('Admin');
+ $menu['urls'][] = util_make_url('/admin/') ;
+ if (strstr($request_uri, util_make_uri('/admin/'))) {
+ $selected=count($menu['urls'])-1;
+ }
+ }
+ if ($permstats->isMember()) {
+ $menu['titles'][] = _('Reporting');
+ $menu['urls'][] = util_make_url ('/reporting/') ;
+ if (strstr($request_uri, util_make_uri('/reporting/'))) {
+ $selected=count($menu['urls'])-1;
+ }
+ }
+ }
+
+ // Project
+ if (isset($GLOBALS['group_id'])) {
+ // get group info using the common result set
+ $project =& group_get_object($GLOBALS['group_id']);
+ if ($project && is_object($project)) {
+ if ($project->isError()) {
+ } elseif (!$project->isProject()) {
+ } else {
+ $menu['titles'][] = $project->getPublicName();
+ if (isset ($GLOBALS['sys_noforcetype']) && $GLOBALS['sys_noforcetype']) {
+ $menu['urls'][]=util_make_url ('/project/?group_id') .$project->getId();
+ } else {
+ $menu['urls'][]=util_make_url ('/projects/') .$project->getUnixName().'/';
+ }
+ $selected=count($menu['urls'])-1;
+ }
+ }
+ }
+
+
+ $menu['selected'] = $selected;
+
+ return $menu;
+ }
+
+
+ /** Get a reference to an array of the projects menu for the
+ * project with the id $group_id with the following
+ * structure: $result['starturl']: URL of the
+ * projects starting page; $result['name']: public name of
+ * the project; $result['titles']: list of titles of the menu
+ * entries; $result['urls']: list of urls of the menu
+ * entries; $result['adminurls']: list of urls to the admin
+ * pages of the menu entries. If the user has no admin
+ * permissions, the correpsonding adminurl is
+ * false. $result['selected']: number of the menu entry that
+ * is currently selected.
+ */
+ function &getProjectMenu ($group_id, $toptab="") {
+ // rebuild menu if it has never been built before, or
+ // if the toptab was set differently
+ if (!isset($this->project_menu_data[$group_id])
+ || ($toptab != "")
+ || ($toptab != $this->project_menu_data[$group_id]['last_toptab']))
+ {
+ // get the group and permission objects
+ $group =& group_get_object($group_id);
+ if (!$group || !is_object($group)) {
+ return;
+ }
+ if ($group->isError()) {
+ //wasn't found or some other problem
+ return;
+ }
+ if (!$group->isProject()) {
+ return;
+ }
+
+ $perm =& $group->getPermission( session_get_user() );
+
+ $selected = 0;
+
+ $menu =& $this->project_menu_data[$group_id];
+ $menu['titles'] = array();
+ $menu['urls'] = array();
+ $menu['adminurls'] = array();
+
+ $menu['name'] = $group->getPublicName();
+
+ // Summary
+ $menu['titles'][] = _('Summary');
+ if (isset ($GLOBALS['sys_noforcetype']) && $GLOBALS['sys_noforcetype']) {
+ $url = util_make_url ('/project/?group_id=' . $group_id);
+ } else {
+ $url = util_make_url ('/projects/' . $group->getUnixName() .'/');
+ }
+ $menu['urls'][] = $url;
+ $menu['adminurls'][] = false;
+ if ($toptab == "home") {
+ $selected = (count($menu['urls'])-1);
+ }
+
+ // setting these allows to change the initial project page
+ $menu['starturl'] = $url;
+
+ // Project Admin
+ if ($perm->isAdmin()) {
+ $menu['titles'][] = _('Admin');
+ $menu['urls'][] = util_make_url ('/project/admin/?group_id=' . $group_id);
+ $menu['adminurls'][] = false;
+ if ($toptab == "admin") {
+ $selected = (count($menu['urls'])-1);
+ }
+ }
+
+ /* Homepage
+ // check for use_home_tab?
+ $TABS_DIRS[]='http://'. $this->getHomePage();
+ $TABS_TITLES[]=_('Home Page');
+ */
+
+ // Project Activity tab
+ $menu['titles'][] = _('Activity');
+ $menu['urls'][] = util_make_url ('/activity/?group_id=' . $group_id);
+ $menu['adminurls'][] = false;
+ if ($toptab == "activity") {
+ $selected = (count($menu['urls'])-1);
+ }
+
+ // Forums
+ if ($group->usesForum()) {
+ $menu['titles'][] = _('Forums');
+ $menu['urls'][] = util_make_url ('/forum/?group_id=' . $group_id);
+ if ($perm->isAdmin() || $perm->isForumAdmin()) {
+ $menu['adminurls'][] = util_make_url('/forum/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "forums") {
+ $selected = (count($menu['urls'])-1);
+ }
+ }
+
+ // Artifact Tracking
+ if ($group->usesTracker()) {
+ $menu['titles'][] = _('Tracker');
+ $menu['urls'][] = util_make_url ('/tracker/?group_id=' . $group_id);
+ if ($perm->isAdmin() || $perm->isArtifactAdmin()) {
+ $menu['adminurls'][] = util_make_url('/tracker/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "tracker" ||
+ $toptab == "bugs" ||
+ $toptab == "support" ||
+ $toptab == "patch") {
+ $selected = (count($menu['urls'])-1);
+ }
+ }
+
+
+ // Mailing Lists
+ if ($group->usesMail()) {
+ $menu['titles'][] = _('Lists');
+ $menu['urls'][] = util_make_url ('/mail/?group_id=' . $group_id);
+ if ($perm->isAdmin()) {
+ $menu['adminurls'][] = util_make_url('/mail/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "mail") {
+ $selected = (count($menu['urls'])-1);
+ }
+
+ }
+
+ // Project/Task Manager
+ if ($group->usesPm()) {
+ $menu['titles'][] = _('Tasks');
+ $menu['urls'][] = util_make_url ('/pm/?group_id=' . $group_id);
+ if ($perm->isAdmin() || $perm->isPMAdmin()) {
+ $menu['adminurls'][] = util_make_url ('/pm/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "pm") {
+ $selected = (count($menu['urls'])-1);
+ }
+
+ }
+
+ // Doc Manager
+ if ($group->usesDocman()) {
+ $menu['titles'][] = _('Docs');
+ $menu['urls'][] = util_make_url ('/docman/?group_id=' . $group_id);
+ if ($perm->isAdmin() || $perm->isDocEditor()) {
+ $menu['adminurls'][] = util_make_url ('/docman/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "docman") {
+ $selected = (count($menu['urls'])-1);
+ }
+
+ }
+
+ // Surveys
+ if ($group->usesSurvey()) {
+ $menu['titles'][] = _('Surveys');
+ $menu['urls'][] = util_make_url ('/survey/?group_id=' . $group_id);
+ if ($perm->isAdmin()) {
+ $menu['adminurls'][] = util_make_url ('/survey/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "surveys") {
+ $selected = (count($menu['urls'])-1);
+ }
+ }
+
+ // News
+ if ($group->usesNews()) {
+ $menu['titles'][] = _('News');
+ $menu['urls'][] = util_make_url ('/news/?group_id=' . $group_id);
+ if ($perm->isAdmin()) {
+ $menu['adminurls'][] = util_make_url ('/news/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "news") {
+ $selected = (count($menu['urls'])-1);
+ }
+ }
+
+ // SCM systems
+ if ($group->usesSCM()) {
+ $menu['titles'][] = _('SCM');
+ $menu['urls'][] = util_make_url ('/scm/?group_id=' . $group_id);
+ // eval cvs_flags?
+ if ($perm->isAdmin()) {
+ $menu['adminurls'][] = util_make_url ('/scm/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "scm") {
+ $selected = (count($menu['urls'])-1);
+ }
+ }
+
+ // groupmenu_after_scm hook
+ $hookParams = array();
+ $hookParams['group_id'] = $group_id ;
+ $hookParams['DIRS'] =& $menu['urls'];
+ $hookParams['TITLES'] =& $menu['titles'];
+ $hookParams['toptab'] =& $toptab;
+ $hookParams['selected'] =& $selected;
+
+ plugin_hook ("groupmenu_scm", $hookParams) ;
+
+ // fill up adminurls
+ for ($i = 0; $i < count($menu['urls']) - count($menu['adminurls']); $i++) {
+ $menu['adminurls'][] = false;
+ }
+
+ // Downloads
+ if ($group->usesFRS()) {
+ $menu['titles'][] = _('Files');
+ $menu['urls'][] = util_make_url ('/frs/?group_id=' . $group_id);
+ if ($perm->isAdmin() || $perm->isReleaseTechnician()) {
+ $menu['adminurls'][] = util_make_url ('/frs/admin/?group_id='.$group_id);
+ } else {
+ $menu['adminurls'][] = false;
+ }
+ if ($toptab == "frs") {
+ $selected = (count($menu['urls'])-1);
+ }
+ }
+
+ // groupmenu hook
+ $hookParams = array();
+ $hookParams['group'] = $group_id ;
+ $hookParams['DIRS'] =& $menu['urls'];
+ $hookParams['TITLES'] =& $menu['titles'];
+ $hookParams['toptab'] =& $toptab;
+ $hookParams['selected'] =& $selected;
+
+ plugin_hook ("groupmenu", $hookParams) ;
+
+ // fill up adminurls
+ for ($i = 0;
+ $i < count($menu['urls']) - count($menu['adminurls']);
+ $i++)
+ {
+ $menu['adminurls'][] = false;
+ }
+
+ // store selected menu item (if any)
+ $menu['selected'] = $selected;
+ if ($toptab != "") {
+ $menu['last_toptab'] = $toptab;
+ }
+ }
+ return $this->project_menu_data[$group_id] ;
+ }
+
+ /**
+ * Create the HTML code for the banner "Powered By
+ * FusionForge". If $asHTML is set to false, it will return an
+ * array with the following structure: $result['url']: URL for
+ * the link on the banner; $result['image']: URL of the banner
+ * image; $result['title']: HTML code that outputs the banner;
+ * $result['html']: HTML code that creates the banner and the link.
+ */
+ function getPoweredBy($asHTML=true) {
+ $res['url'] = 'http://fusionforge.org/';
+ $res['image'] = util_make_url ('/images/pow-fusionforge.png');
+ $res['title'] = '<img src="'
+ . $res['image']
+ . '" alt="Powered By FusionForge" border="0" />';
+ $res['html'] = util_make_link($res['url'], $res['title'], array(), true);
+ if ($asHTML) {
+ return $res['html'];
+ } else {
+ return $res;
+ }
+ }
+
+ /** Create the HTML code for the "Show Source" link if
+ * $sys_show_source is set, otherwise "". If $asHTML is set
+ * to false, it returns NULL when $sys_show_source is not
+ * set, otherwise an array with the following structure:
+ * $result['url']: URL of the link to the source code viewer;
+ * $result['title']: Title of the link.
+ */
+ function getShowSource($asHTML=true) {
+ global $sys_show_source;
+ if ($sys_show_source) {
+ $res['url'] = util_make_url('/source.php?file='.getStringFromServer('SCRIPT_NAME'));
+ $res['title'] = _('Show source');
+ } else {
+ return ($asHTML ? "" : NULL);
+ }
+ if (!$asHTML) {
+ return $res;
+ } else {
+ return util_make_link($res['url'], $res['title'],
+ array('class' => 'showsource'),
+ true);
+ }
+ }
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>
\ No newline at end of file
}
/**
- * isPMAdmin - whether the current user has Task Manager admin perms.
+ * isPMAdmin - whether the current user has Tasks admin perms.
*
* @return boolean is_projman_admin.
*/
* along with FusionForge; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
+ *
+ * Portions Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
+ * Portions Copyright 2010 (c) Mélanie Le Bail
*/
class Plugin extends Error {
* Plugin() - constructor
*
*/
- function Plugin () {
+ function Plugin ($id=0) {
$this->Error() ;
$this->name = false ;
$this->hooks = array () ;
function GetHooks () {
return $this->hooks ;
}
+ /**
+ * _addHooks() - add a hook to the list of hooks
+ */
+ function _addHook ($name) {
+ return $this->hooks[]=$name ;
+ }
/**
* GetName() - get plugin name
return $res;
}
- function desactivate($pluginname) {
+ function deactivate($pluginname) {
$res = db_query_params('DELETE FROM plugins WHERE plugin_name = $1', array($pluginname));
foreach ($this->plugins_data as $i => $n) {
--- /dev/null
+<?php
+/**
+ * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved
+ *
+ * This file is a part of Codendi.
+ *
+ * Codendi is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Codendi is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Codendi. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+/**
+ * Provide access to projects
+ */
+class ProjectManager {
+
+ /**
+
+
+ /**
+ * Hold an instance of the class
+ */
+ private static $_instance;
+
+ /**
+ * A private constructor; prevents direct creation of object
+ &nb