Source Mage GNU/Linux

Programmes Projet Speedtouch Projet Snoopy Projet eciadsl La recette du pain Source Mage BeOS Mon CV Mon blog Notes On nous prend pour des cons! Don
Programmes
Projet Speedtouch
Projet Snoopy
Projet eciadsl
La recette du pain
Source Mage
BeOS
Mon CV
Mon blog
Notes
On nous prend pour des cons!
Don
en fr

Revue de la fonctionnalité INSTALL_ROOT de sorcery

Benoît PAPILLAULT, 23/11/2004

Objectifs

Nous avons:
  • la documentation existante n'est pas clair (comment sont définis les variables? comment elle doivent être utilisées par les auteurs de spell? pourquoi install_root est utilisé dans la documentation et INSTALL_ROOT dans le code source de sorcery?)
  • l'implémentation existante ne fonctionne pas (le spell glibc ne peut pas être compilé pour un système chroot ou la cross compilation d'un système x86_64 ne fonctionne pas).
Nous voulons:
  • une documentation claire qui puisse servir de point de départ pour une implémentation claire.
  • gérer plusieurs configurations:
    • un système normal
    • un système chroot
    • la cross compilation d'un système
    • l'installation d'un spell en conflit dans un endroit différent

Définitions

Comme ce que nous allons définir va principalement être utilisé avec le système autoconf, il est mieux d'utiliser des noms de variables similaires. Nous choisissons des noms différents de ceux déjà utilisé pour éviter des confusions et pour vérifier rapidement si le code l'implémente proprement.

Avec le système autoconf, BUILD est utilisé pour désigner le système de compilation, ie la machine où le logiciel est compilé. HOST est utilisé pour désigner le système hôte, ie la machine où le logiciel sera exécuté.

  • BUILD_ROOT est le répertoire racine du système où les binaires sont installés. C'est un répertoire du système de compilation. Sa valeur par défaut est /
  • HOST_ROOT est le répertoire racine du systèmé où les binaires sont exécutés. C'est un répertoire du système hôte. Sa valeur par défaut est /
Ces deux variables sont définies par sorcery and doivent être correctement utilisés par les scripts des spells.

Utilisation de BUILD_ROOT et HOST_ROOT dans un spell

spell conforme à BUILD_API=1

Les spells conformes à BUILD_API=1 sont des vieux spells et devraient être converties vers des spells conformes à BUILD_API=2.
  • si aucun fichier BUILD n'existe, la fonction default_build() est utilisée à la place. Donc, les auteurs du fichier BUILD doivent l'utiliser comme modéle. Voici son code:
    ./configure --prefix="${HOST_ROOT}/usr" \
            --sysconfdir="${HOST_ROOT}/etc" \
         --localstatedir="${HOST_ROOT}/var" \
                --mandir="${HOST_ROOT}/usr/share/man" \
               --infodir="${HOST_ROOT}/usr/share/info" \
      $OPTS &&
    make &&
    prepare_install &&
    make install prefix="${BUILD_ROOT}/usr"
    

spell conforme à BUILD_API=2

  • si aucun fichier BUILD n'existe, la fonction default_build() est utilisée à la place. Donc, les auteurs du fichier BUILD doivent l'utiliser comme modéle. Voici son code:
    ./configure --prefix="${HOST_ROOT}/usr" \
            --sysconfdir="${HOST_ROOT}/etc" \
         --localstatedir="${HOST_ROOT}/var" \
                --mandir="${HOST_ROOT}/usr/share/man" \
               --infodir="${HOST_ROOT}/usr/share/info" \
      $OPTS &&
    make
    
  • si aucun fichier INSTALL n'existe, la fonction default_instal() est utilisée à la place. Donc, les auteurs du fichier INSTALL doivent l'utiliser comme modéle. Voici son code source:
    make install prefix="${BUILD_ROOT}/usr"
    

Différentes façcons d'utiliser la fonctionnalité BUILD_ROOT

Système normal

BUILD_ROOT=/
HOST_ROOT=/

Système chroot ou système cross compilé

Dans ce cas, le système doit fonctionner aprés avoir fait un chroot /mychroot (dans le cas du chroot) ou aprés avoir copié le répertoire /mychroot sur une autre machine and la lancer avec celui en répertoire racine.
BUILD_ROOT=/mychroot
HOST_ROOT=/

Système normal mais en installant dans /opt/mozilla-special

Ceci peut être utilisé pour installer des spells qui sont en conflits, comme vim et elvis.
BUILD_ROOT=/opt/mozilla-special
HOST_ROOT=/opt/mozilla-special

Système normal, installation dans un endroit sûr d'abord

BUILD_ROOT=/opt/safe
HOST_ROOT=/

Encore des améliorations

Comme suggéré dans la documentation existante, on pourrait avoir besoin de d'autres variables pour spécifier l'endroit où se trouve sorcery ou les grimoires.
  • SORCERY_ROOT: racine des fichiers d'état de sorcery ("${SORCERY_ROOT}/etc/sorcery", "${SORCERY_ROOT}/var/cache/sorcery", "${SORCERY_ROOT}/var/state/sorcery", "${SORCERY_ROOT}/var/log/sorcery", )

    Ceci peut être utilisé lorsque l'on construit un système chroot, pour conserver l'état et la configuration du système chroot soit dans le système chroot lui-même ou dans n'importe quel autre endroit, différent du système de compilation.

    Valeur par défaut: /

  • CODEX_ROOT: racine des grimoire. Par exemple, le grimoire stable sera présent dans le répertoire "${CODEX_ROOT}/stable".

    Valeur par défaut: /var/lib/sorcery/codex

Etat

Ce qui est décris ici n'est pas du tout implémenté.

Liens

Valid XHTML 1.0! CSS Valide !
Benoît Papillault