Bonsoir,

Voici un petit mail pour vous faire part de mes intérrogations vis à vis de la
gestion des dépendances dans Ncooker.

J'aimerais préciser, s'il en est besoin, que le but de ce mail n'est pas de
relancer une série de débats comme on en a connu par le passé. Il fait suite à
une discussion avec Julien au cours de laquelle notre point de vue a
_positivement_ divergé ce qui nous a poussés a souhaiter plus d'informations.


Ncooker scinde les dépendances en trois :

  builddeps
      Ces dépendances doivent être satisfaites pour qu'un programme puisse être
      compilé.

  basicdeps:
      Ces dépendances doivent être satisfaites pour qu'un programme puisse être
      éxécuté.

  fulldeps:
      Ces dépendances sont obtenues de manière automatique à partir des
      programmes/fichiers résultants de la phase `build'. Elles reflètent des
      dépendances à satisfaire pour que les éxcutables puissent-être ..
      éxécutés.

Comme je le souligne dans le rapport de bug #6967 [1], je pense que `bascideps'
ne devrait pas être analysé lors de la commande `build' [2].

Julien pense au contraire que les dépendances doivent être vérifiées lors de la
commande 'build', auquel cas la séparation des dépendances n'a plus de sens et
ajoute même une certaine compléxité tant pour les traitements que pour la
création (par les humains) des Nbuilds.

Il me semble donc évident qu'il faut soit modifier le comportement de Ncooker
de façon à ce qu'il n'évalue que `builddeps' lors de la commande `build' (ce
que je suis prêt à faire), soit simplifier la stratégie vis à vis des
dépendances.

Sur ce dernier point, on peut même envisager n'utiliser qu'un seul fichier.

Le fait est que nous ne sommes pas tombés d'accord sur ce point mais que nous
avons tous deux considéré l'avis de l'autre avec intérêt car ils ont tous deux
des avantages et des inconvénients.


Mon autre question concerne le contenu des fichiers de dépendances [3]. Il est
possible d'y spécifier, outre le nom d'un paquet, le nom d'un fichier tel que
`lib/foo' ou encore `bin/bar'.

Cela a probablement été discutté par le passé, mais je pense qu'il s'agit d'une
mauvaise idée.

En effet, si on dispose d'un paquet `foo' qui dépend du fichier `bin/baz',
Ncooker doit disposer de la liste _complète_ des fichiers fournis par _tous_
les paquets éxistants pour résoudre corrèctement les dépendances.

Cela soulève de nombreux problèmes:

  - Liste de fichiers lourde ;
  - Résolution des dépendances lourde ;
  - Compléxité induite pour créer un dépot [4].

Ce comportement est d'autant plus discuttable que la base de données de paquets
installés sur le système créant le paquet dispose de _tous_ les éléments
nécessaires pour résoudre 'nom de fichier' -> 'paquet'.

Au final, et selon moi, l'utilisateur ne devrait pas pouvoir spécifier de noms
de fichiers (ce n'est pas plus simple pour lui et n'apporte au final pas grand
chose). Ncooker devrait en revanche continuer à utiliser ses procédés
automatiques de génération des dépendances et résoudre la relation 'nom de
fichier' -> 'paquet' lorsque nécessaire.

Voilà pour mes remarques. Bisous et à un de ces jours.

[1] https://gna.org/bugs/?6967
[2] `fulldeps' n'est pas concerné car il n'existe pas encore.
[3] C'est cela dont j'ai oublié de te parler Julien.
[4] Le seul moyen d'obtenir la liste des fichiers fournis pas un paquet est de
    le construire (build).

-- 
Benoit Myard <[EMAIL PROTECTED]> [0x3EEC1AEC] :wq!

Attachment: pgpvyCCWTSD1B.pgp
Description: PGP signature

_______________________________________________
Nasgaia-dev mailing list
[email protected]
https://mail.gna.org/listinfo/nasgaia-dev

Répondre à