Bonjour à tous,

Allez je me remets à l'assaut des spec et des rpms... J'ai pris beaucoup d'expérience depuis j'espère y arriver ce coup-ci ! J'ai 4 paquets en vue dont un qui est bloqué et celui-ci que j'ai fait aujourd'hui.

Nom : ergo
Utilité : calcul de chimie quantique

C'est un logiciel en ligne de commande seulement !

Le spec : ergo.spec
Le src.rpm : ergo-3.1-1.fc16.src.rpm
La version i686 (faite avec mock) : ergo-3.1-1.fc16.i686.rpm
La version x86_64 : ergo-3.1-1.fc16.x86_64.rpm
$ rpmlint ergo-3.1-1.fc16.x86_64.rpm
ergo.x86_64: W: spelling-error %description -l en_US functionals -> functional, functional s, functionary
ergo.x86_64: W: spelling-error %description -l en_US multipole -> multiple
ergo.x86_64: W: spelling-error %description -l en_US parallelized -> paralleled, palatalized, pluralized
ergo.x86_64: W: no-manual-page-for-binary bin2m
ergo.x86_64: W: no-manual-page-for-binary ergo
1 packages and 0 specfiles checked; 0 errors, 5 warnings.
Pour les fautes d'anglais c'est normal il connait pas les mots... Pour le manuel qui manque il y a la documentation en html qui est très complète.
$ rpmlint ergo-debuginfo-3.1-1.fc16.x86_64.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
Ça c'est cool !
$ rpmlint ergo-3.1-1.fc16.src.rpm 
ergo.src: W: spelling-error %description -l en_US functionals -> functional, functional s, functionary
ergo.src: W: spelling-error %description -l en_US multipole -> multiple
ergo.src: W: spelling-error %description -l en_US parallelized -> paralleled, palatalized, pluralized
1 packages and 0 specfiles checked; 0 errors, 3 warnings.
Idem qu'avant donc c'est bon.

J'ai vérifié chaque point de : http://fedoraproject.org/wiki/Packaging/ReviewGuidelines et je pense que je suis bon.

Merci pour toute aide !
C'est pas mal du tout. Juste quelques remarques à la lecture du .spec :
  • tu peux retirer blas-devel des BuildRequires, il est déjà requis par lapack-devel ;
  • tu dois retirer blas et lapack des Requires, ces deux bibliothèques seront détectées à la construction de ton paquet parce qu'ergo est lié dynamiquement à celles-ci (tu pourras le constater, après avoir supprimé ces Requires, en lançant la commande « rpm -qRp ergo-3.1-1.fc16.x86_64.rpm » pour voir les dépendances du RPM généré) ;
  • tu peux supprimer le nettoyage du build root dans la cible %install ;
  • je ne vois pas l'intérêt de générer et fournir la documentation Doxygen, d'autant plus que le paquet ne fournit pas de bibliothèque sur laquelle développer.
D'autres notes viendront peut-être une fois que j'aurai construit ce paquet.
Pikachu_2014 wrote:C'est pas mal du tout. Juste quelques remarques à la lecture du .spec :
  • tu peux retirer blas-devel des BuildRequires, il est déjà requis par lapack-devel ;
  • tu dois retirer blas et lapack des Requires, ces deux bibliothèques seront détectées à la construction de ton paquet parce qu'ergo est lié dynamiquement à celles-ci (tu pourras le constater, après avoir supprimé ces Requires, en lançant la commande « rpm -qRp ergo-3.1-1.fc16.x86_64.rpm » pour voir les dépendances du RPM généré) ;
  • tu peux supprimer le nettoyage du build root dans la cible %install ;
  • je ne vois pas l'intérêt de générer et fournir la documentation Doxygen, d'autant plus que le paquet ne fournit pas de bibliothèque sur laquelle développer.
D'autres notes viendront peut-être une fois que j'aurai construit ce paquet.
  • Ah oui j'y avais pas pensé...
  • Fait : en fait je pensais que les Requires c'était obligatoire
  • Fait
  • La documentation c'est plus pour s'en servir. Je ne sais pas si ça peut servir où pas vu qu'il n'y a pas de manpages je me suis dit pourquoi pas l'ajouter
Merci pour les notifications. J'ai mis à jour le spec (voir message #1).
MarbolanGos wrote:La documentation c'est plus pour s'en servir. Je ne sais pas si ça peut servir où pas vu qu'il n'y a pas de manpages je me suis dit pourquoi pas l'ajouter
Sauf que la documentation générée concerne essentiellement son code source, pas son utilisation. Pas vraiment utile donc pour les utilisateurs...

Retire au passage gcc-c++ des BuildRequires aussi, il fait partie des prérequis de construction.
Ah oui c'est un peu inutile la documentation 8-)

spec mis à jour avec tes remarques. Merci !
Dernières remarques, j'espère, et ton RPM sera prêt pour une revue :
  • d'après les commentaires dans le code, ce dernier est en GPL version 3 ou supérieure ; le champ License de ton fichier .spec devrait donc être à « GPLv3+ » ;
  • tu peux inclure le fichier ChangeLog dans %doc, ce sera toujours ça de gagné pour les prochaines mises à jour.
Ah tiens pendant que j'y pense, je suis en train de contacter l'auteur pour le paquet (j'étais déjà en contact avec lui pour autre chose).
Aussi ne serait-il pas intéressant de faire un deuxième paquet spécialement performance (en OpenMP) vu que c'est un code parallèle.

[edit] Autre question. Dans l'archive il y a un dossier basis qu'il serait bien d'inclure dans le RPM. Où je l'inclus ? Dans /usr/local/basis ?
Non je me rappelle qu'il faut mettre un need sponsor quelque part mais je sais plus ou...
MarbolanGos wrote:Non je me rappelle qu'il faut mettre un need sponsor quelque part mais je sais plus ou...
C'est corrigé 😉