[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compilation des paquets dans Debian (was: Re: [gulliver] gtk bloque une install)


From Frederic Lehobey <Frederic dot Lehobey at free dot fr>
Subject Re: Compilation des paquets dans Debian (was: Re: [gulliver] gtk bloque une install)
Date Tue, 13 Dec 2005 10:42:41 +0100

Salut,

On Tue, Dec 13, 2005 at 09:23:32AM +0100, David MENTRE wrote:
> Le 13/12/05, Thomas Petazzoni<thomas dot petazzoni at enix dot org> a écrit :
> > Non, les développeurs uploadent les sources, et elles sont recompilées
> > par des auto-builders sur toutes les architectures supportées par
> > Debian. (Sauf dans le cas des binNMU, binary Non Maintainer Upload, mais
> > je n'ai toujours pas compris le principe de ces trucs).
> 
> Ok, merci de la précision.

  En fait les responsables de paquets déposent un paquet source _et_
un paquet binaire (en général i386, mais c'est à leur choix).

> > Le problème, c'est qu'il faut uploader les sources d'OCaml, attendre
> > qu'elles soient compilées par l'autobuilder sur toutes les archis.
> > Ensuite, uploader les bibliothèques de niveau 1, attendre qu'elles
> > soient compilées par les autobuilders, uploader les bibliothèques de
> > niveau 2, 3, etc.

  Précisément, il n'est nécessaire d'attendre les compilations
automatiques _que_ sur les architectures pour lesquelles le
responsable n'a pas déposé de paquet binaire. Donc si une architecture
a été déposée en masse (typiquement i386) il n'y a rien à attendre
(pour sid). Pour la raison de l'attente voire plus bas.

  N'importe quel développeur Debian peut hâter l'intégration des ses
paquets en fournissant tous les binaires qu'il souhaite (il a accès à
des machines pour chaque architecture).

> Et le système d'autobuild ne gère pas les dépendances entre les
> sources ? Apparement non, mais ça me parait étonnant pour les rois de
> la dépendance comme Debian.

  Si !!! (Voir ci--dessous.)

> > À chaque fois, c'est une galère monstrueuse, sachant
> > que les paquets sont gérés par des gens différents, pas forcément
> > disponibles 24/24 pour uploader pile-poil au bon moment. Résultat, ce
> > genre d'upload généralisé prend souvent plusieurs semaines.
> 
> Il faut "juste" ;) un scheduler d'upload en amont de l'autobuilder.

  Ces ordonnanceurs sont évidemment présents. Leur mode de
fonctionnement est le suivant : les compilateurs automatiques essaient
de compiler les derniers paquets déposés (prioritaires) selon la
disponibilité des dependances. Une fois cela réussi, ils descendent
dans la queue (paquets plus anciens, donc). Le problème apparaît quand
une architecture a du mal à suivre (trop de paquets nouveaux et les
queues s'allongent au lieu de diminuer). Pour écluser des queues trop
pleines, les délais se comptent en *mois* (et en détail, il y a
toujours des paquets absents de l'une ou l'autre architecture, même
dans les versions stables, avec les conséquences sur les dépendances
quand il s'agit d'une bibliothèque). C'est à cela que sert le délai
évoqué par Thomas. Déposer un paquet source B peu après sa dépendance
A (si les compilateurs sont a la bourre sur telle ou telle
architecture) risque de n'avoir pour seul effet que de ralentir (sur
ces architectures) la compilation de A et de mettre donc B dans la
queue qui mettra elle-même du temps à être éclusée (sauf à déposer
ensuite -- après compilation réussie de A -- une nouvelle version B'
qui arrivera en tête de la queue).

  Tu imagines ce que ça donne avec des truc comme la libc, gnome ou
kde (voire ocaml qui a besoin d'une recompilation de tout à cause de
l'incompatibilité binaire)...

  (Et voilà pourquoi 4 architectures -- comme Ubunutu -- sont
*beaucoup* plus faciles à faire que 11 ou plus.)

  Maintenant, tu peux te faire ta propre infrastructure Debian chez
toi: à quand un atelier compilateur automatique et gestion de dépôt ?

Librement,
Frédéric

Attachment: signature.asc
Description: Digital signature