[PKGBUILD] Application Perl: gscan2pdf (résolu)

Mise à jour / Création /debug de paquetages
Tristelune
Elfe
Messages : 516
Inscription : mer. 01 août 2007, 16:38

[PKGBUILD] Application Perl: gscan2pdf (résolu)

Message par Tristelune »

Salut à tous,

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
A mon avis rien d'anormal. Si je lance la création du paquet, j'obtiens:

Code : Tout sélectionner

ln: target ‘usr/bin/’ is not a directory: No such file or directory
==> ERROR: A failure occurred in build().
    Aborting...
En regardant, j'ai constaté que usr/bin n'est pas créé. Par contre des fichiers vont être installés
dans 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
Là, ça coince toujours:

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...
Cette fois, c'est parce que certains fichiers sont installés dans /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!
Dernière modification par Tristelune le ven. 06 déc. 2013, 12:46, modifié 1 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PKGBUILD] Application Perl: gscan2pdf

Message par benjarobin »

Comprend pas ceci à l'air de fonctionner...

Code : Tout sélectionner

pkgname=gscan2pdf
pkgver=1.2.0
pkgrel=1
pkgdesc='A GUI to produce a multipage PDF from a scan'
arch=('i686' 'x86_64')
url='http://gscan2pdf.sourceforge.net/'
license=('GPL')
depends=('xsane' 'gtk2-perl' 'perl-locale-gettext' 'libtiff' 'sane'
         'perl-gtk2-ex-simple-list' 'imagemagick' 'perl-config-general>=2.40'
         'perl-pdf-api2' 'perl-goo-canvas' 'perl-gtk2-imageview' 'perl-sane' 
         'perl-test-critic' 'perl-set-intspan' 'perl-proc-processtable' 
         'perl-log-log4perl' 'perl-html-parser' 'perl-try-tiny' 'unpaper')
optdepends=('djvulibre' 'gocr' 'ocropus' 'xdg-utils' 'tesseract' 'cuneiform')
source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('739bb5dd6ed8abe7639722bb673533bd')

build() {
  cd ${srcdir}/${pkgname}-${pkgver}
  perl Makefile.PL
  make
}

package() {
  cd ${srcdir}/${pkgname}-${pkgver}
  make DESTDIR=${pkgdir} install
  
  # Create symlinks to /usr/bin/site_perl/* in /usr/bin/
  cd ${pkgdir}
  ln -sf site_perl/gscan2pdf usr/bin/
  ln -sf site_perl/scanadf-perl usr/bin/
  ln -sf site_perl/scanimage-perl usr/bin/

  # Standard perl cleaning
  /usr/bin/find ${pkgdir} -name '.packlist' -o -name 'perllocal.pod' -delete
}
Après j'ai compilé avec makepkg -d car j'ai vite abandonné quand j'ai vu le nombre de dépendance à installer depuis à AUR...

Je ne vois nulle par des fichiers installés dans le HOME... Cela me donne un truc comme

Code : Tout sélectionner

pkg
└── gscan2pdf
    └── usr
        ├── bin
        │   ├── gscan2pdf -> site_perl/gscan2pdf
        │   ├── scanadf-perl -> site_perl/scanadf-perl
        │   ├── scanimage-perl -> site_perl/scanimage-perl
        │   └── site_perl
        │       ├── gscan2pdf
        │       ├── scanadf-perl
        │       └── scanimage-perl
        ├── lib
        │   └── perl5
        │       ├── core_perl
        │       └── site_perl
        │           └── auto
        │               └── gscan2pdf
        └── share
            ├── applications
            │   └── gscan2pdf.desktop
            ├── gscan2pdf
            │   ├── gscan2pdf.svg
            │   ├── pdf.svg
            │   ├── scanner.svg
            │   ├── stock-rotate-180.svg
            │   ├── stock-rotate-270.svg
            │   ├── stock-rotate-90.svg
            │   └── stock-selection-all-16.png
            ├── locale
            │   ├── ab
            │   │   └── LC_MESSAGES
            │   │       └── gscan2pdf.mo
            ...
            │   └── zh_TW
            │       └── LC_MESSAGES
            │           └── gscan2pdf.mo
            ├── man
            │   └── man1
            │       ├── gscan2pdf.1p.gz
            │       ├── scanadf-perl.1p.gz
            │       └── scanimage-perl.1p.gz
            ├── perl5
            │   └── site_perl
            │       └── Gscan2pdf
            │           ├── Cuneiform.pm
            │           ├── Dialog
            │           │   ├── Renumber.pm
            │           │   ├── Scan
            │           │   │   ├── CLI.pm
            │           │   │   └── Sane.pm
            │           │   └── Scan.pm
            │           ├── Dialog.pm
            │           ├── Document.pm
            │           ├── Frontend
            │           │   ├── CLI.pm
            │           │   └── Sane.pm
            │           ├── NetPBM.pm
            │           ├── Ocropus.pm
            │           ├── Page.pm
            │           ├── PageRange.pm
            │           ├── Scanner
            │           │   └── Options.pm
            │           ├── Tesseract.pm
            │           └── Unpaper.pm
            └── pixmaps
                └── gscan2pdf.svg
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
clapas
yeomen
Messages : 286
Inscription : sam. 08 sept. 2012, 07:23
Localisation : Comtat Venaissin

Re: [PKGBUILD] Application Perl: gscan2pdf

Message par clapas »

Bonjour,
Si cela peut aider , voilà plusieurs semaines que je tente d'installer gscan2pdf. Il bloque à la compilation de perl-critic dont toutes les dépendances ont le statut "déjà installé".

Edit : bon, aujourd'hui je ne peux pas donner les messages d'erreur car il ne télécharge pas le tar.gz.
Tristelune
Elfe
Messages : 516
Inscription : mer. 01 août 2007, 16:38

Re: [PKGBUILD] Application Perl: gscan2pdf

Message par Tristelune »

benjarobin a écrit :Comprend pas ceci à l'air de fonctionner...
Bingo, je crois que c'est ce qu'il me fallait! Mais j'ai quand même besoin d'un coup de main pour avancer.
Si on reprend, chez moi le répertoire suivant est créé: home/user/perl5. Et ça correspond aux valeurs des
variables suivantes:

Code : Tout sélectionner

$ env
PERL_LOCAL_LIB_ROOT=/home/user/perl5:
PERL_MB_OPT=--install_base /home/user/perl5
PERL_MM_OPT=INSTALL_BASE=/home/user/perl5
PERL5LIB=/home/user/perl5/lib/perl5:
Qu'est-ce que tu as comme valeur pour ces variables? Si elles sont différentes (ce que j'espère), est-ce
que tu as une idée ce que j'ai pu faire de travers ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PKGBUILD] Application Perl: gscan2pdf

Message par benjarobin »

C'est simple, ces variables n'existent pas dans env chez moi...

Code : Tout sélectionner

$ env | grep -i perl
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl
Tu as du modifier quelque chose...

Si tu utilises bash, il n'y a pas 36 façons pour que ces variables arrivent là... Regarde ces fichiers

Code : Tout sélectionner

grep -R PERL ~/.bash* /etc/bash* /etc/profile*
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Tristelune
Elfe
Messages : 516
Inscription : mer. 01 août 2007, 16:38

Re: [PKGBUILD] Application Perl: gscan2pdf

Message par Tristelune »

Effectivement, tu avais raison, j'ai trouvé la chose suivante dans mon .zshrc:

Code : Tout sélectionner

export PERL_LOCAL_LIB_ROOT="/home/user/perl5:$PERL_LOCAL_LIB_ROOT";
export PERL_MB_OPT="--install_base "/home/user/perl5"";
export PERL_MM_OPT="INSTALL_BASE=/home/user/perl5";
export PERL5LIB="/home/user/perl5/lib/perl5:$PERL5LIB";
Plus aucun souvenir d'où ça peut venir. Mais effectivement, ça résoud le problème!

Le paquet est donc maintenant actualisé.

:merci:
clapas
yeomen
Messages : 286
Inscription : sam. 08 sept. 2012, 07:23
Localisation : Comtat Venaissin

Re: [PKGBUILD] Application Perl: gscan2pdf (résolu)

Message par clapas »

Bonjour,
Si c'est hors sujet, merci de le dire, je créerai un autre sujet.
Pour moi, l'installation de gscan2pdf est toujours impossible. Perl-critic ne compile pas :

Code : Tout sélectionner

Test Summary Report
-------------------
t/10_user_profile.t                         (Wstat: 256 Tests: 41 Failed: 1)
  Failed test:  38
  Non-zero exit status: 1
Files=38, Tests=7644, 90 wallclock secs ( 1.83 usr  0.20 sys + 85.16 cusr  3.98 csys = 91.17 CPU)
Result: FAIL
Failed 1/38 test programs. 1/7644 subtests failed.
Makefile:2348: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255
==> ERREUR : Une erreur s’est produite dans check().
    Abandon...
==> ERREUR: Makepkg n'a pas pu construire perl-critic.
==> Relancer la compilation de perl-critic ? [o/N]
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PKGBUILD] Application Perl: gscan2pdf (résolu)

Message par benjarobin »

Merci de créer un nouveau sujet...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre