Synopsis
grip-overridearch.pl -s|--suite CHAINE -b|--base-path CHEMIN [--grip-name CHAINE] grip-overridearch.pl -?|-h|--help|--version S<Commandes :> -s|--suite S<CHAINE :> nom de la distribution a remplacer S<(X override X)> [requis] -b|--base-path S<CHEMIN :> chemin vers le repertoire de plus haut niveau du depot [requis] S<-?|-h|--help|--version :> affiche le message d'aide et quitte S<Options :> --grip-name S<CHAINE :> autre nom pour le depot grip
Le script s'attend a trouver un fichier d'architecture-override correctement formate dans la configuration du depot :
$base_path/$grip_name/conf/override.architectures
Description
La liste des paquets et des architectures X cassees X doit etre identifiee de facon difficile jusqu'au moment ou une solution soit trouvee pour le probleme decrit sur debian-devel : http://lists.debian.org/debian-devel/2009/01/msg00289.html <http://lists.debian.org/debian-devel/2009/01/msg00289.html>Ce script va utiliser un fichier dans le repertoire conf/ du depot qui ressemble a un fichier de surcharge mais qui n'est pas pris en charge directement par reprepro. Citant dato : http://lists.debian.org/debian-devel/2009/01/msg00312.html <http://lists.debian.org/debian-devel/2009/01/msg00312.html>
X la seule utilisation de S<X Architecture:> all [i386 S<amd64] X> ou S<X Install-Architecture:> i368 S<amd64 X> serait un indice pour dak (et d'autres outils) signalant que le paquet est connu pour ne pas etre installable ailleurs, et par consequent ne devrait pas etre mis dans d'autres fichiers Packages.gz. C'est *tout* ce qui importe selon la facon dont je l'ai compris.
Jusqu'a ce que les outils puissent etre adaptes pour employer une telle syntaxe, ce script enleve les listes specifiees des fichiers Packages appropries en appelant l'option appropriee de suppression pour les outils, apres l'evenement.
Ainsi, si $package_name represente le nom du paquet binaire qui est X Architecture: all X mais qui depend d'un paquet qui existe seulement sur certaines architectures, le format pour le fichier de surcharge est :
Package: $package_name Architecture: all [i386 amd64]
par exemple
Package: debian-edu-profile-udeb Architecture: all [i386 amd64]
Cela se produit car debian-edu-profile-udeb depend de dmidecode-udeb http://packages.debian.org/sid/dmidecode-udeb <http://packages.debian.org/sid/dmidecode-udeb> qui a son tour n'est disponible que pour les architectures x86 :
$ reprepro -b /opt/reprepro/filter/ list unstable dmidecode-udeb u|sid|main|i386: dmidecode-udeb 2.9-1 u|sid|main|amd64: dmidecode-udeb 2.9-1
Quand edos-debcheck analyse le fichier Packages, il constate que reprepro et d'autres outils de depot enumerent debian-edu-profile-udeb dans les fichiers Packages pour toutes les architectures gerees (comme arm, armel, mips, etc.). Ainsi il essaye de satisfaire les dependances X et echoue parce que dmidecode n'est pas disponible. La solution est d'enlever le listing pour le paquet X Architecture: all X de tous les fichiers Packages qui ne contiennent pas les dependances necessaires X identifies en executant edos-debcheck sur les fichiers Packages et en ajoutant les paquets au fichier override.arch jusqu'a ce que edos-debcheck arrete de se plaindre.
Ce n'est pas particulier a ce paquet ou meme juste aux udebs, c'est egalement un probleme avec des paquets comme acpi-support-base.
Elimination de tous les binaires
Il est egalement possible d'enlever tous les binaires pour un paquet specifique (laissant seulement le source et autres binaires construits a partir ce paquet source) en specifiant une liste vide d'architectures permises :
Package: lsb Architectures: all [ ]
Notez que l'espace est facultatif. Ceci peut etre utile quand le paquet binaire ayant le meme nom que le paquet source a beaucoup de dependances non desirees ("lsb" est un parfait exemple de ce probleme).
Copyright et Licence
Copyright (C) 2007-2009 Neil Williams <[email protected]>
Ce logiciel est libre; vous pouvez le redistribuer et/ou le modifier selon les termes de la licence GNU General Public License tel que publiee par la Free Software Foundation; en prenant la version 3 de la licence ou (selon votre choix) n'importe quelle version subsequente.
Ce logiciel est distribue dans l'espoir qu'il soit utile, mais AUCUNE GARANTIE n'est donnee tant pour des raisons COMMERCIALES que pour REPONDRE A UN BESOIN PARTICULIER. Consulter la Licence Publique Generale GNU pour plus de details.
Vous devriez avoir recu une copie de la Licence Publique Generale de GNU avec ce programme. Sinon, voir <http://www.gnu.org/licenses/>.