Salut,
Ça va être un peu coton à expliquer selon si tu as ou pas quelque base en matière de construction de paquet et de git...
Le principe est de se servir de git et de la recherche par dichotomie pour déterminer quelle modification du code a engendré la régression.
Et donc, ici, de construire et tester autant de fois que nécessaire cups.
(la doc est bien fichue, je t'encourage à la parcourir à côté de mes explications rapides
)
https://git-scm.com/book/fr/v1/Utilitai ... r-avec-Git
https://delicious-insights.com/fr/articles/git-bisect/
J'ai à peu près testé l'ensemble des commandes... en espérant pas en avoir oublié en recopiant (d'où une réponse un brin différée par rapport à ton post initial)...
Bref, c'est parti...
Tu auras besoin du PKGBUILD et autres fichiers annexes utilisés lors de la construction de cups.
A télécharger via
https://git.archlinux.org/svntogit/pack ... kages/cups
ou via un assistant AUR (
yaourt -G cups
,
yay -G cups,
etc.).
(installe également
base-devel et évidemment
git
(on pourrait aussi passer par cups-git sur aur, ça ne change pas grand-chose dans la mesure où on saute les sources par la suite)
Créer le répertoire source (au même niveau que là où se trouve le PKGBUILD), s'y positionner et récupérer les sources de cups:
Code : Tout sélectionner
mkdir -p src
cd src
git clone https://github.com/apple/cups.git
#renommage pour s'éviter des prises de tête lors de makepkg:
mv cups cups-2.2.11
#on copie également les fichiers externes au même niveau que le répertoire (.patch et autres accompagnant le PKGBUILD ; ici je ne fais pas le tri, on s'en fiche, le PKGBUILD reconnaîtra les siens):
cp ../* .
A partir de là, le fun commence...
Code : Tout sélectionner
cd cups-2.2.11
#Se positionner sur le commit qui plante :
git checkout v2.2.11
# Et débuter la procédure:
git bisect start
# le courant présente le problème:
git bisect bad
# tandis que la version v2.2.10 était ok:
git bisect good v2.2.10
# dans le pire des cas, il faudra 4 constructions pour déterminer où la régression est apparue:
Bissection : 16 révisions à tester après ceci (à peu près 4 étapes)
[019198b76b1164cfad27cd4543acb08e7db01f9e] Missing printer-uri when enabling printer (mirror fix from master).
De là il te suffit de te positionner sur le commit indiqué:
De construire, installer et tester la nouvelle version:
(on biaise en ne changeant pas la version et en indiquant à cups de ne pas télécharger le fichier source de cups -- option -e de makepkg-- mais de faire avec le contenu de src -- et donc la version git)
Une fois installé, tu testes.
Si la régression est présente, tu l'indiques à git (après t'être repositionné dans le répertoire cups-2.2.11) par
git bisect bad
; sinon
git bisect good
.
Il te répondra en te proposant une nouvelle révision à tester (et donc se positionner dessus via
git checkout <id>
dans le répertoire src/cups-2.2.11, relancer makepkg, etc.) ou en t'indiquant que tel commit est le fautif (du style
xxxxxxxxxxxxx is first bad commit
) que tu pourras remonter à qui de droit (bug de cups ou du pilote...).
P.S.
Par prudence, avant de débuter, ça peut valoir le coup de faire un paquet sur le tag v2.2.10 et le v2.2.11 pour s'assurer qu'il y a bien respectivement ok et ko.