Je viens de voir le spec file. Je ne jugerai pas de l'utilite de l'application. Quelques remarques :
1. la ligne '%url
http://ktown.kde.org/~seli/numlockx/' ne sert a rien
2. la ligne '%packager ' non plus. (Et en regle generale on ne definit pas le packager dans le spec file).
3. cella la aussi "%define __exec_prefix %{_prefix}"
4. %define _prefix /usr/X11R6/ <- redefinir le _prefix est rarement une bonne chose. cela dit ici.. peut-etre, pourquoi pas, dans la mesure ou tu t'inscris dans le groupe User Interface/X. Je doute que Mike Harris apprecie, cela dit 🙂
5. Puisque tu as redefinis le _prefix en tant que /usr/X11R6, tous les /usr/X11R6/bin doivent etre remplace par des %{_bindir}. Ditto pour ton %{_prefix}bin.
6. Pour installer un fichier, utilise la commande 'install' au lieu de cp. Profites-en pour forcer les permissions sur le turnumlock
7. Les scriptlets ici ne sont pas une super bonne idee. De la meme maniere qu'on ne fait pas un `chkconfig on' quand on installe un package contenant un nouveau daemon, tu ne devrais pas faire un turnumlock.
8. `Wrappe' les lignes de ton changelog a 80 caracteres - toujours, meme quand tu codes. (sous emacs Meta-q fait ca automatiquement)
9. Tu peux - et dois tant que c'est possible - mettre une URL dans les tags Source. Genre
http://ktown.kde.org/~seli/numlockx/numlockx-%{version}.tar.gz. Evite tant que tu peux de mettre des macros dans les urls, mais y laisser la version est tres souvent tolere.
10. Ton buildroot devrait au moins contenir la version et la release. e.g:
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
11. Tu *dois* requerir tous les repertoires qui contiennent tes fichiers ou toi meme les fournir. Dans le cas, present tu dois faire un 'Requires: /usr/X11R6/bin'. Sinon tu n'es pas a l'abris d'un probleme de permission a l'installation.
Un dernier lien pour la route ? Ca t'aidera peut-etre si tu continues dans le rpm-ing.
http://www.gurulabs.com/GURULABS-RPM-LAB/GURULABS-RPM-GUIDE-v1.0.PDF
Le wiki de fedoraproject.org possede une page sur les 'guidelines' a adopter dans les spec files.