SCM

!! title not set !!

ForgePackaging

From FusionForge Wiki

Jump to: navigation, search

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.)
Powered By FusionForge