ForgePackaging
From FusionForge Wiki
Contents |
Forge packaging
FHS
Binary files
- /bin
Configuration files
- /etc/<forgename>
- /etc/<forgename>/custom
- /etc/<forgename>/httpd.d
- /etc/<forgename>/languages-local
- /etc/<forgename>/local.d
- /etc/<forgename>/plugins/mediawiki
- /etc/<forgename>/plugins/scmbzr
- /etc/<forgename>/plugins/scmcvs
- /etc/<forgename>/plugins/scmsvn
- /etc/<forgename>/templates
- /etc/mediawiki-extensions/extensions-available
System binary
- /usr/sbin
Shared static file OS indep
- /usr/share/<forgename>
- /usr/share/<forgename>/common
- /usr/share/<forgename>/cronjobs
- /usr/share/<forgename>/etc/httpd.d
- /usr/share/<forgename>/etc/local.d
- /usr/share/<forgename>/etc/templates
- /usr/share/<forgename>/plugins/mediawiki/common
- /usr/share/<forgename>/plugins/scmbzr/common
- /usr/share/<forgename>/plugins/scmbzr/cronjobs
- /usr/share/<forgename>/plugins/scmcvs/common
- /usr/share/<forgename>/plugins/scmcvs/cronjobs
- /usr/share/<forgename>/plugins/scmcvs/sbin
- /usr/share/<forgename>/plugins/scmsvn/common
- /usr/share/<forgename>/plugins/scmsvn/cronjobs
- /usr/share/<forgename>/scm
- /usr/share/<forgename>/www
- /usr/share/<forgename>/www/include
- /usr/share/<forgename>/www/plugins/mediawiki
- /usr/share/<forgename>/bin
- /usr/share/<forgename>/db
- /usr/share/<forgename>/lib
- /usr/share/<forgename>/plugins/scmbzr/bin
- /usr/share/<forgename>/plugins/scmcvs/bin
- /usr/share/<forgename>/plugins/scmsvn/bin
- /usr/share/locale
- /usr/share/mediawiki/skins
Data files
- /var
- /var/cache/<forgename>
- /var/lib
- /var/lib/<forgename>
- /var/lib/<forgename>/bind
- /var/lib/<forgename>/chroot
- /var/lib/<forgename>/chroot/bzrroot
- /var/lib/<forgename>/chroot/cvsroot
- /var/lib/<forgename>/chroot/svnroot
- /var/lib/<forgename>/chroot/var
- /var/lib/<forgename>/chroot/var/lib
- /var/lib/<forgename>/chroot/var/lib/gforge
- /var/lib/<forgename>/db
- /var/lib/<forgename>/download
- /var/lib/<forgename>/dumps
- /var/lib/<forgename>/etc
- /var/lib/<forgename>/etc/templates
- /var/lib/<forgename>/ftp/incoming
- /var/lib/<forgename>/scmsnapshots
- /var/lib/<forgename>/scmtarballs
- /var/lib/<forgename>/tmp
- /var/lib/<forgename>/www/plugins
- /var/log/<forgename>/cvs
- /var/log/<forgename>/svn
deb
Package organisation
Une grosse carte des dépendances entre paquets
- <forgename>
- <forgename>-common (=${source:Version})
- <forgename>-web (meta)
- <forgename>-web-apache
- <forgename>-web-apache2
- <forgename>-web-apache2-remote
- <forgename>-db (meta)
- <forgename>-db-postgresql
- <forgename>-db-mysql
- <forgename>-mta (meta)
- <forgename>-mta-exim4
- <forgename>-mta-postfix
- <forgename>-mta-courier
- <forgename>-shell (meta)
- <forgename>-shell-postgresql
- <forgename>-shell-ldap
- <forgename>-shell-db
- <forgename>-shell-nis
- <forgename>-ftp (meta)
- <forgename>-ftp-proftpd
- <forgename>-lists (meta)
- <forgename>-lists-mailman
- <forgename>-list-sympa
- <forgename>-plugin-mediawiki
- <forgename>-plugin-scmcvs
- <forgename>-plugin-scmsvn
- <forgename>-theme-starterpack
Tools
- dsf-helper
- gencontrol
- setup/gforge-config
- ucf
Todo
- Make the package name independant
- Think about a forge without system users/group
- Better chroot support
- Add https/dav support to svn
- Extra packages ?
- <forgename>/homedir
- <forgename>/projectdir
- Use a kind of gencontrol
rpm
Packages organisation
- fusionforge-4.7-1.noarch.rpm
- Installation du code source fusionforge
- Installation de gforge/cron.d/fusionforge dans /etc/cron.d/
- Création de la base de données postgresql et des users gforge, gforge_mta et gforge_nss (nécessaire pour db_update.pl)
- Configuration des connexions à postgresql dans pg_hba.conf
- Mise à jour des variables de connexion à la base de données dans /etc/gforge/gforge.conf
- Configuration de Gforge via gforge-config
- Création des .mo pour les traductions
- lien de /usr/lib/gforge/plugins/env.inc.php vers /usr/share/gforge/www/env.inc.php
- lien de /usr/share/gforge/plugins vers /usr/lib/gforge/plugins
- fusionforge-plugin-scmcvs-4.7-1.noarch.rpm
- Installation du code source du plugin
- Installation de gforge/plugins/scmcvs/cron.d/fusionforge-plugin-scmcvs dans /etc/cron.d/
- lien de /usr/share/gforge/www/plugins/scmcvs vers /usr/lib/gforge/plugins/scmcvs/www
- lien de /bin/cvssh vers /usr/lib/gforge/plugins/scmcvs/bin/cvssh.pl
- register-plugin scmcvs CVS
- sys_use_scm=true dans /etc/gforge/gforge.conf
- configuration de gforge avec gforge-config
- lien de /cvsroot vers /var/lib/gforge/chroot/cvsroot
- fusionforge-shell-postgresql-4.7-1.noarch.rpm
- configuration de gforge avec sys_account_manager_type=pgsql dans /etc/gforge/gforge.conf
- configuration de libnss avec gforge/utils/install-nsspgsql.sh
- si le plugin scmcvs est installé commente le cron usergroup.php
- TODO : il faudrait que le user gforge_nss soit créé par ce package et donc que la partie de la base de données relative à nss soit aussi créée par ce package.
Tools
- gforge-config
tgz
Dificulties
- Packaging des bouts d'adhérence au système Unix sous-jacent (genre des comptes, des users, des chroots, etc.)


