Page 1 sur 1

[epson-inkjet-printer-201209w] Mise en ligne (Résolu)

Publié : sam. 08 déc. 2012, 00:52
par Pafrapé
Bonsoir.

Je viens de m'acheter une nouvelle imprimante, mon ancienn m'ayant lachée après 8 ans de bons et loyaux services.
J'ai mis mon dévolu sur une EPSON XP-750.

Le logiciel n'étant pas disponible actuellement sur archlinux, je viens donc d'écrire un PKGBUILD (en m'inspirant de ce qui existe déjà sur AUR) afin de pouvoir mettre se logiciel sur AUR.

Mais n'étant pas un pro merci de vérifier et me dire si ce PKGBUILD est correct et me dire ou modifier ce qui ne convient pas avant que l'un d'entre vous ne le dépose dans AUR.

Merci d'avance.

Voici le PKGBUILD :

Code : Tout sélectionner

pkgname=epson-inkjet-printer-201209w
pkgname_filter=epson-inkjet-printer-filter
pkgver=1.0.1
pkgrel=1
pkgdesc="Epson Inkjet Printer Driver - XP-750 Series, XP-850 Series"
arch=('i686' 'x86_64')
url="http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX"
license=('LGPL' 'custom:EPSON LICENSE AGREEMENT')
depends=('cups')
makedepends=('rpmextract' 'libtool' 'make' 'automake' 'autoconf')
source=(http://a1227.g.akamai.net/f/1227/40484/1d/download.ebz.epson.net/dsc/f/01/00/01/98/21/5a400e1e9ff60e9c66e3481710b7d606f76d5833/epson-inkjet-printer-201209w-1.0.1-1lsb3.2.src.rpm)

build() {
  cd "$startdir/src"
  rpmextract.sh $pkgname-$pkgver-1lsb3.2.src.rpm || return 1
  tar xzf $pkgname-$pkgver.tar.gz || return 1
  FILTER_FILE=`ls $_pkgname_filter*.tar.gz`
  tar xzf $FILTER_FILE || return 1

  cd "${FILTER_FILE%.tar.gz}"
  aclocal
  libtoolize
  chmod +x configure
  # if you have runtime problems: add "--enable-debug" and look into /tmp/epson-inkjet-printer-filter.txt
  ./configure LDFLAGS="$LDFLAGS -Wl,--no-as-needed" --prefix=/opt/$pkgname || return 1
  make || return 1
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  install -d "$pkgdir/opt/$pkgname/"
  if [ "$CARCH" = "x86_64" ]; then
     cp -r lib64 "$pkgdir/opt/$pkgname/"
  else
     cp -r lib "$pkgdir/opt/$pkgname/"
  fi
  cp -r resource "$pkgdir/opt/$pkgname/"

  if [ -e "watermark" ]; then
      cp -r watermark "$pkgdir/opt/$pkgname/"
  fi
  install -d "$pkgdir/usr/share/cups/model/$pkgname"
  install -m 644 ppds/* "$pkgdir/usr/share/cups/model/$pkgname"

  cd "$srcdir"
  FILTER_FILE=`ls $_pkgname_filter*.tar.gz`
  cd "${FILTER_FILE%.tar.gz}"
  install -d "$pkgdir/opt/$pkgname/cups/lib/filter/"
  install -m 755 src/epson_inkjet_printer_filter "$pkgdir/opt/$pkgname/cups/lib/filter/epson_inkjet_printer_filter"
}
sha256sums=('ec0471ed0733269f9e7a831542c7a59ce03c654d20ad7f59a7d56401573bbd9d')

Re: [epson-inkjet-printer-201209w] Vérification et mise en l

Publié : sam. 08 déc. 2012, 09:01
par Tristelune
Salut,

tu peux enlever tous les

Code : Tout sélectionner

|| return 1
Il y a des explications ici: http://forums.archlinux.fr/topic12177.html.

Pour le reste je laisse quelqu'un avec plus d'expérience juger.

Re: [epson-inkjet-printer-201209w] Vérification et mise en l

Publié : sam. 08 déc. 2012, 11:28
par FoolEcho
Pafrapé a écrit :pkgname_filter=epson-inkjet-printer-filter
Tu as testé ton PKGBUILD ? :copain:
Parce que là est une coquille très bête que je n'ai pas remarqué de suite, mais qui est très fâcheuse (esthétiquement/pour les standards et surtout pour le code qui s'en suit). :fou:
Il faut un tiret devant: [b][size=150]_[/size][/b]pkgname_filter.

En dehors de ça, voilà un PKGBUILD très légérement remanié:

Code : Tout sélectionner

pkgname=epson-inkjet-printer-201209w
_pkgname_filter=epson-inkjet-printer-filter
pkgver=1.0.1
pkgrel=1
pkgdesc="Epson Inkjet Printer Driver - XP-750 Series, XP-850 Series"
arch=('i686' 'x86_64')
url="http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX"
license=('LGPL' 'custom:EPSON LICENSE AGREEMENT')
depends=('cups')
source=(http://a1227.g.akamai.net/f/1227/40484/1d/download.ebz.epson.net/dsc/f/01/00/01/98/21/5a400e1e9ff60e9c66e3481710b7d606f76d5833/epson-inkjet-printer-201209w-1.0.1-1lsb3.2.src.rpm)
sha256sums=('ec0471ed0733269f9e7a831542c7a59ce03c654d20ad7f59a7d56401573bbd9d')

build() {
  cd "$srcdir"
  tar xzf $pkgname-$pkgver.tar.gz
  FILTER_FILE=`ls ${_pkgname_filter}*.tar.gz`
  tar xzf $FILTER_FILE

  cd "${FILTER_FILE%.tar.gz}"
  aclocal
  libtoolize
  chmod +x configure
  # if you have runtime problems: add "--enable-debug" and look into /tmp/epson-inkjet-printer-filter.txt
  ./configure LDFLAGS="$LDFLAGS -Wl,--no-as-needed" --prefix=/opt/$pkgname || return 1
  make || return 1
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  install -d "$pkgdir/opt/$pkgname/"
  if [ "$CARCH" = "x86_64" ]; then
     cp -r lib64 "$pkgdir/opt/$pkgname/"
  else
     cp -r lib "$pkgdir/opt/$pkgname/"
  fi
  cp -r resource "$pkgdir/opt/$pkgname/"

  if [ -e "watermark" ]; then
      cp -r watermark "$pkgdir/opt/$pkgname/"
  fi
  install -d "$pkgdir/usr/share/cups/model/$pkgname"
  install -m 644 ppds/* "$pkgdir/usr/share/cups/model/$pkgname"

  cd "$srcdir"
  FILTER_FILE=`ls $_pkgname_filter*.tar.gz`
  cd "${FILTER_FILE%.tar.gz}"
  install -d "$pkgdir/opt/$pkgname/cups/lib/filter/"
  install -m 755 src/epson_inkjet_printer_filter "$pkgdir/opt/$pkgname/cups/lib/filter/epson_inkjet_printer_filter"

  #license
  install -d "${pkgdir}/usr/share/licenses/${pkgname}"
  install -D -m644 COPYING{,.EPSON,.LIB} "${pkgdir}/usr/share/licenses/${pkgname}/"
}
Outre l'histoire du tiret:
-on utilise $srcdir plutôt que $startdir/src
-suppression de rpmextract (truc que je n'avais pas remarqué avant: en dépit du rpm source, l'extraction peut désormais se faire sans... même si je ne sais pas qui le fait d'ailleurs :) )
-rajout de la licence EPSON
-suppression de makedepends (tout est membre de base-devel)

Après je ne suis pas fan du /opt (plutôt /usr/share/$pkgname et voir si ça peut s'affiner)... mais bon, ça évite de modifier les ppds...

Essaie ça + utilisation via cups, on verra pour AUR après (j'ai compilé sous x86_64, pas de lib32 à l'horizon). Moi ou un autre (c'est mieux si c'est quelqu'un qui a le matériel mais bon...). :chinois:

Re: [epson-inkjet-printer-201209w] Vérification et mise en l

Publié : dim. 09 déc. 2012, 22:38
par Pafrapé
Je vous remercie tous les deux de votre aide.

J'ai compilé avec la proposition de FoolEcho, à savoir :

Code : Tout sélectionner

pkgname=epson-inkjet-printer-201209w
_pkgname_filter=epson-inkjet-printer-filter
pkgver=1.0.1
pkgrel=1
pkgdesc="Epson Inkjet Printer Driver - XP-750 Series, XP-850 Series"
arch=('i686' 'x86_64')
url="http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX"
license=('LGPL' 'custom:EPSON LICENSE AGREEMENT')
depends=('cups')
makedepends=('libtool' 'make' 'automake' 'autoconf')
source=(http://a1227.g.akamai.net/f/1227/40484/1d/download.ebz.epson.net/dsc/f/01/00/01/98/21/5a400e1e9ff60e9c66e3481710b7d606f76d5833/epson-inkjet-printer-201209w-1.0.1-1lsb3.2.src.rpm)
sha256sums=('ec0471ed0733269f9e7a831542c7a59ce03c654d20ad7f59a7d56401573bbd9d')

build() {
  cd "$srcdir"
  tar xzf $pkgname-$pkgver.tar.gz
  FILTER_FILE=`ls ${_pkgname_filter}*.tar.gz`
  tar xzf $FILTER_FILE

  cd "${FILTER_FILE%.tar.gz}"
  aclocal
  libtoolize
  chmod +x configure
  # if you have runtime problems: add "--enable-debug" and look into /tmp/epson-inkjet-printer-filter.txt
  ./configure LDFLAGS="$LDFLAGS -Wl,--no-as-needed" --prefix=/opt/$pkgname || return 1
  make || return 1
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  install -d "$pkgdir/opt/$pkgname/"
  if [ "$CARCH" = "x86_64" ]; then
     cp -r lib64 "$pkgdir/opt/$pkgname/"
  else
     cp -r lib "$pkgdir/opt/$pkgname/"
  fi
  cp -r resource "$pkgdir/opt/$pkgname/"

  if [ -e "watermark" ]; then
      cp -r watermark "$pkgdir/opt/$pkgname/"
  fi
  install -d "$pkgdir/usr/share/cups/model/$pkgname"
  install -m 644 ppds/* "$pkgdir/usr/share/cups/model/$pkgname"

  cd "$srcdir"
  FILTER_FILE=`ls $_pkgname_filter*.tar.gz`
  cd "${FILTER_FILE%.tar.gz}"
  install -d "$pkgdir/opt/$pkgname/cups/lib/filter/"
  install -m 755 src/epson_inkjet_printer_filter "$pkgdir/opt/$pkgname/cups/lib/filter/epson_inkjet_printer_filter"

  #license
  install -d "${pkgdir}/usr/share/licenses/${pkgname}"
  install -D -m644 COPYING{,.EPSON,.LIB} "${pkgdir}/usr/share/licenses/${pkgname}/"
}
, sans rien modifier d'autre.

La compilation se déroule sans problème. :bravo:

Je n'ai plus qu'à sortir l'imprimante de son emballage, la brancher et voir si tout marche.

Dès que c'est fait, je vous donne des nouvelles pour vous dire si tout fonctionne correctement.

:merci: encore de votre aide.

Re: [epson-inkjet-printer-201209w] Vérification et mise en l

Publié : jeu. 13 déc. 2012, 23:56
par Pafrapé
Ça y est, je viens de brancher l'imprimante et cela fonctionne à la perfection.

Une question à FoolEcho : comme toi, je préfère le /usr/share/ au /opt
Si dans mon PKGBUILD, je remplace /opt par /usr/share/, y a t-il d'autres choses à modifier ?

Re: [epson-inkjet-printer-201209w] Vérification et mise en l

Publié : ven. 14 déc. 2012, 11:04
par FoolEcho
Modifier le prefix à passer dans le configure et bien évidemment dans la fonction package.
Cependant, ça obligerait à modifier aussi les chemins dans les ppds.

On peut en discuter 10 plombes mais pour moi, le respect des standards d'empaquetage sous Arch fait qu'on doit en passer par /opt. Je ne dis pas ça parce que tous les paquets faits sur ce modèle sur AUR utilise /opt pour cette partie (*) :wink: mais parce qu'il faudrait modifier les ppds (ils ne sont pas produits par la compilation, ni adaptés après), ce qui revient à patcher du code source (et sous Arch on patche un minimum). L'opération en elle-même est triviale ici mais tu risques de faire dysfonctionner tout ou partie si tu oublies quelque chose.

Je le publierai sur AUR dans la journée sauf si toi (ou quelqu'un d'autre) veux le maintenir (sachant que je ne peux "que" faire l'empaquetage).



(*) à ce sujet, j'ai édité le message qui présente le PKGBUILD + rectifications. Il est inutile ici de mettre les makedepends, car tout fait partie de base-devel qui est un prérequis (la plupart des paquets epson-inkjet-printer que j'ai vu sur AUR sont donc incorrects :copain: ).

EDIT: publié: epson-inkjet-printer-201209w (mais si tu le veux, je te l'abandonne :chinois: )

Re: [epson-inkjet-printer-201209w] Vérification et mise en l

Publié : ven. 14 déc. 2012, 22:01
par Pafrapé
Je te remercie pour toutes les informations que tu as apporté.
Je te laisse le mettre sur Aur, car je n'ai encore jamais rien mis dessus et je n'ai pas créé de compte.
Par contre, j'ai appris pas mal de choses en quelques messages.
Merci encore