Salut les Fédoriens,

Il y a un an ou deux (ptet même plus tiens) j'ai écrit un petit script pour vérifier qu'un rpm source (SRPM) respecte les règles édictées par Fedora pour les packages : http://fedoraproject.org/wiki/Packaging/Guidelines. Au début c'était juste pour me faciliter la tâche pour l'examen des packages soumis à Fedora Extras, mais finalement je l'ai proposé sur la liste fedora-extras et il y a d'autres gens qui aiment suffisemment pour s'en servir 🙂

Le principe est de lui fournir un SRPM, ou un numéro de bug dans le bugzilla de Fedora, et il vérifiera tous les points MUST de cette page http://fedoraproject.org/wiki/Packaging/ReviewGuidelines qui ne sont pas couverts par rpmlint.

Vous pourrez le trouver là : http://gauret.free.fr/fichiers/rpms/fedora/fedora-qa

Pour le faire marcher, il faut python, mock, rpmlint et yum-utils.

Par contre attention, il ne fonctionne pas comme rpmlint : il va poser des questions, demander des confirmations, etc...
Il ne faut pas non plus tout prendre pour argent comptant (il est pire que rpmlint de ce côté-là), l'idée c'est plutôt de vous montrer où creuser.

Pour l'utiliser :
- Créer une arborescence pour rpm, par exemple avec rpmdev-setuptree
- Aller dans un répertoire temporaire dans un terminal (exemple: ~/tmp)
- Lancer "fedora-qa <numero_de_bug>" ou "fedora-qa <srpm>"
- Répondre aux question, et un rapport sera affiché. Le rapport et les fichiers additionnels (comme les rpms binaires, le journal de compilation, etc...) se trouveront dans un répertoire "~/reports/<nom_du_rpm>" (le répertoire "~/reports" peut se configurer dans un fichier ~/.fedora-qa)

Voilà, ça peut aider, mais évidemment ça ne fait pas tout le boulot à votre place, hein 🙂

Dites-moi si vous avez des problèmes avec, et si vous avez des idées d'améliorations
L'idée m'interressait jusqu'au moment ou tu as parlé de mock, je pense que c'est encore délicat à utiliser sans avoir un proxy des rpms de la distribution... (pou un kmod cela devrait aller mais pour un rpm de plus haut niveau cela semble délicat - Mais peut être que je me trompe!...)

Au fait est ce toi qui a laissé un commentaire dans le bugzilla pour le kmod-rt2x00 ???
(work in progress..)
un an plus tard
Bump, la version de mock dans updates-testing de F8 (0.8.7) rend le script inutilisable :
--autocache n'existe plus
rebuild semble être obligatoire maintenant, ainsi que -r CHROOT
2 ans plus tard
Hello,

Histoire de refaire quelques paquets fedora pour le plaisir, j'ai décidé de revoir les différents tutoriels existants. En effet, j'ai (hum) tout oublié.
Du coup, je me la joue petit et j'ai suivi ce tuto: https://fedoraproject.org/wiki/A_Short_RPM_Tutorial
Pas de soucis de ce côté là.

Ayant appris l'existence de ton script, j'ai voulu le tester pour voir comment il fonctionnait et là, pas de chance pour moi:

[builder@homebox tmp]$ fedora-qa hello-2.5-1.fc12.src.rpm 
/home/builder/bin/fedora-qa:42: DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import md5
Checking for updated guidelines on the wiki...
Warning: I can't check if the wiki page Guidelines has changed
Warning: I can't check if the wiki page ReviewGuidelines has changed
Starting QA for local srpm hello-2.5-1.fc12.src.rpm
Checking hello, version 2.5, release 1.fc12...
Are the name, version and release correct according to Fedora's package naming guidelines (http://fedoraproject.org/wiki/Packaging/NamingGuidelines)
(looks good to my automatic check) ([y]/n)
y
Checking source 0
Traceback (most recent call last):
  File "/home/builder/bin/fedora-qa", line 1833, in <module>
    srpm.runChecks()
  File "/home/builder/bin/fedora-qa", line 352, in runChecks
    check_item.check()
  File "/home/builder/bin/fedora-qa", line 534, in check
    urlgrabber.urlgrab(sourceUrl, reget='check_timestamp', progress_obj=urlgrabber.progress.TextMeter(fo=sys.stdout))
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 618, in urlgrab
    return default_grabber.urlgrab(url, filename, **kwargs)
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 982, in urlgrab
    return self._retry(opts, retryfunc, url, filename)
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 886, in _retry
    r = apply(func, (opts,) + args, {})
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 968, in retryfunc
    fo = PyCurlFileObject(url, filename, opts)
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1051, in __init__
    raise NotImplementedError, "check_timestamp regets are not implemented in this ver of urlgrabber. Please report this."
NotImplementedError: check_timestamp regets are not implemented in this ver of urlgrabber. Please report this.
So what? 🙂
Houlà, je n'ai plus touché à ce script depuis plus de deux ans, je suppose qu'effectivement il n'est pas en pleine forme...

D'ici à ce que je me bouge pour le corriger et l'adapter, je te conseille de ne pas l'utiliser tout simplement...
@abompard tient ça faisait un petit bout de temps que l'on ne t'avais pas vu sur le forum. Welcome.
Ok, merci pour la réponse.
J'avais voulu le tester car ce fil de discussion était "Épinglé" et je pensais que c'était donc toujours d'actualité 😉
3 ans plus tard
Il y a maintenant un outil maintenu, fedora-review, du paquettage du même nom.
10 ans plus tard
15 jours plus tard
llaumgui a désépinglé la discussion le .