après quelques tentatives je me tourne vers vous, car j'aimerais savoir si je passe à côté de
quelque chose ou si mes suppositions sont bonnes. C'est long, mais j'ai essayé
d'être le plus détaillé possible. Pour faire court: y'a-t-il des outils ou règles spécifiques pour
les logiciels en perl ? J'ai trouvé quelque chose sur le wiki, mais ça ne m'a pas aidé.

Je suis le mainteneur de gscan2pdf qui est un
programme écrit en perl. Dernièrement une nouvelle version du logiciel est sorti et j'ai
voulu actualiser le PKGBUILD. C'est la première fois que je l'adapte et ça ne fonctionne pas.
Tout d'abord le PKGBUILD est ici.
La fonction build() contient le bout de code suivant:
Code : Tout sélectionner
perl Makefile.PL
make
make DESTDIR=${pkgdir} install
Code : Tout sélectionner
ln: target ‘usr/bin/’ is not a directory: No such file or directory
==> ERROR: A failure occurred in build().
Aborting...
usr/bin
n'est pas créé. Par contre des fichiers vont être installésdans le HOME de l'utilisateur, ce que je ne veux pas. Le développeur m'a conseillé de faire la modification suivante:
Code : Tout sélectionner
perl Makefile.PL INSTALL_BASE=${pkgdir}
make
make install
Code : Tout sélectionner
$ makepkg
msgfmt -c po/gscan2pdf-ab.po -o /usr/share/locale/ab/LC_MESSAGES/gscan2pdf.mo
msgfmt -c po/gscan2pdf-bg.po -o /usr/share/locale/bg/LC_MESSAGES/gscan2pdf.mo
msgfmt -c po/gscan2pdf-ca.po -o /usr/share/locale/ca/LC_MESSAGES/gscan2pdf.mo
po/gscan2pdf-ab.po:7: warning: header field 'Language' missing in header
msgfmt: error while opening "/usr/share/locale/ab/LC_MESSAGES/gscan2pdf.mo" for writing: Permission denied
Makefile:1036: recipe for target '/usr/share/locale/ab/LC_MESSAGES/gscan2pdf.mo' failed
make: *** [/usr/share/locale/ab/LC_MESSAGES/gscan2pdf.mo] Error 1
make: *** Waiting for unfinished jobs....
po/gscan2pdf-be.po:7: warning: header field 'Language' missing in header
msgfmt: error while opening "/usr/share/locale/be/LC_MESSAGES/gscan2pdf.mo" for writing: Permission denied
Makefile:1036: recipe for target '/usr/share/locale/be/LC_MESSAGES/gscan2pdf.mo' failed
make: *** [/usr/share/locale/be/LC_MESSAGES/gscan2pdf.mo] Error 1
po/gscan2pdf-bg.po:7: warning: header field 'Language' missing in header
msgfmt: error while opening "/usr/share/locale/bg/LC_MESSAGES/gscan2pdf.mo" for writing: Permission denied
Makefile:1036: recipe for target '/usr/share/locale/bg/LC_MESSAGES/gscan2pdf.mo' failed
make: *** [/usr/share/locale/bg/LC_MESSAGES/gscan2pdf.mo] Error 1
po/gscan2pdf-ca.po:7: warning: header field 'Language' missing in header
msgfmt: error while opening "/usr/share/locale/ca/LC_MESSAGES/gscan2pdf.mo" for writing: Permission denied
Makefile:1036: recipe for target '/usr/share/locale/ca/LC_MESSAGES/gscan2pdf.mo' failed
make: *** [/usr/share/locale/ca/LC_MESSAGES/gscan2pdf.mo] Error 1
==> ERROR: A failure occurred in build().
Aborting...
/usr/share
au lieu de usr/share
. Le développeur du programme m'a en gros dit que normalement chaque distribution a des outils pour gérer les variables
et que normalement ce n'est pas mon boulot. A mon avis, je dois donners les bonnes commander et variables dans la
fonction build(). Est-ce que je passe à côté d'un outil ou réglage qui pourrait régler le problème ?
Si non, je n'ai aucune autre information. En regardant le
Makefile.PL
j'ai vu que les variables SHAREINSTDIR
et SHAREDIR
étaient utilisés. Est-ce que quelqu'un sait si c'est des variables à peu près standard ? Car apparemment je peux spécifier avec SHAREDIR
d'installer dans usr/share
au lieu de /usr/share
. Mais je ne sais pas si je dois mettre les deux variables ou une suffit. Comme cela va être distribué, j'ai pas envie de tout casser chez les autres.Ou alors la proposition du développeur est mauvaise. Car là tout est bien installé dans
usr/share
, mais reste les fichiers qui vont être installés dans le HOME.Merci!