[gelöst] deb-Paket für sane-backends erstellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
theAllf
Beiträge: 54
Registriert: 16.09.2013 19:06:08

[gelöst] deb-Paket für sane-backends erstellen

Beitrag von theAllf » 04.03.2014 20:26:38

Hallo Leute,

ich habe einen Scanner der mit der aktuellen Version 1.0.24 aus den debian-repos nicht funktioniert jedoch mit der akutellen Version von der sane-Webseite schon.

In einer VM habe ich folgendes ausgeführt:

Code: Alles auswählen

git clone git://git.debian.org/sane/sane-backends.git
cd sane-backends
./configure
make
make install
Das ganze dann mit xsane getestet. Scanner funktioniert -> alles super.

Jetzt wollte ich mit checkinstall ein deb-paket bauen, da ich die Installation nicht am Paketmanager vorbei machen wollte und das zudem noch für mehrere Rechner brauche.
Also folgendes auf dem Live-System ausgeführt:

Code: Alles auswählen

./configure
make
checkinstall --install=no

*****************************************
**** Debian package creation selected ***
*****************************************

Das Paket wird entsprechend dieser Vorgaben erstellt:

0 -  Maintainer: [ xxx@foo ]
1 -  Summary: [ Ersatz für libsane ]
2 -  Name:    [ libsane-1.0.25-pre ]
3 -  Version: [ 20140303 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ libsane-1.0.25-pre-20140303 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ libsane-1.0.25-pre ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

checkinstall bricht dann mit fogendem Fehler ab:

Code: Alles auswählen

installing sane-dll.5 in /usr/local/share/man/man5/sane-dll.5...
installing sane-scsi.5 in /usr/local/share/man/man5/sane-scsi.5...
installing sane-usb.5 in /usr/local/share/man/man5/sane-usb.5...
 /bin/mkdir -p '/usr/local/doc/sane-1.0.25git'
/bin/mkdir: das Verzeichnis „/usr/local/doc“ kann nicht angelegt werden: Datei oder Verzeichnis nicht gefunden
make[2]: *** [install-dist_docDATA] Fehler 1
make[2]: Leaving directory `/home/xxx/kdevelop_projects/sane-backends/test/libsane-1.0.25/libsane-1.0.25-pre-20140303/doc'
make[1]: *** [install-am] Fehler 2
make[1]: Leaving directory `/home/xxx/kdevelop_projects/sane-backends/test/libsane-1.0.25/libsane-1.0.25-pre-20140303/doc'
make: *** [install-recursive] Fehler 1

**** Installation fehlgeschlagen. Breche Paket-Erzeugung ab.

Räume auf...OK

Auf Wiedersehen!
Hat jemand eine Idee wo hier der Fehler liegen könnte?
Zuletzt geändert von theAllf am 10.03.2014 21:32:32, insgesamt 1-mal geändert.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22355
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: deb-Paket für sane-backends erstellen

Beitrag von KBDCALLS » 06.03.2014 11:13:50

Hast du dir die die Installitionsanweisungen angesehen die in dem Sourcepaket enthalten sind? Das wäre schon mal ein erster Anhaltspunkt. In solchen Fällen hilft auch häufig wenn man sich an den Buildvorausetzungen der Debianpakete selbst orientiert, bzw. diese installiert.

Hab mal versuchsweise die Debiansourcen genommen mit uupate aktualisiert. Und die dann versucht mit pbuilder zu kompilieren. Hat erst auch nicht funktioniert, das lag aber daran weil er einige Patche nicht integriert bekam. Nachdem ich die deaktiviert hatte, funktionierte das Kompilieren .
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

theAllf
Beiträge: 54
Registriert: 16.09.2013 19:06:08

Re: deb-Paket für sane-backends erstellen

Beitrag von theAllf » 07.03.2014 23:04:37

@KBDCALLS
Danke für deine Antwort, das hat mich schon mal ein ganzes Stück weiter gebracht.

Aktuell scheitert es zwar noch daran, dass die Tests nicht durchlaufen, aber vielleicht komme ich da auch noch dahinter...

Code: Alles auswählen

cat test-suite.log 
=============================================================
   sane-backends 1.0.25git: testsuite/sanei/test-suite.log
=============================================================

# TOTAL: 5
# PASS:  4
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: sanei_usb_test
====================

sanei_usb_test: sanei_usb_test.c:849: main: Assertion `test_init (1)' failed.

./sanei_usb_test built with libusb-1.0

test_init starting ...
ERROR: sanei_usb not initialized!
Hier werde ich dann versuchen morgen weiter zu kommen.

Falls jemand spontan weiß was hier fehlt bzw. falsch läuft bin ich natürlich nicht böse wenn es mir jemand verrät :mrgreen:

Die entsprechenden Zeilen aus der sanei_usb_test.c

Code: Alles auswählen

829 int
830 main (int argc, char **argv)
831 {
832   int detected, opened, i;
833   SANE_Int dn[MAX_DEVICES];
834 
835 #ifdef HAVE_LIBUSB
836   printf ("\n%s built with old libusb\n\n", argv[0]);
837 #endif
838 #ifdef HAVE_LIBUSB_1_0
839   printf ("\n%s built with libusb-1.0\n\n", argv[0]);
840 #endif
841 #ifdef HAVE_USBCALLS
842   printf ("\n%s built with usbcalls\n\n", argv[0]);
843 #endif
844 #if !defined(HAVE_LIBUSB) && !defined(HAVE_LIBUSB_1_0) && !defined(HAVE_USBCALLS)
845   printf ("\n%s relying on deprecated scanner kernel module\n", argv[0]);
846 #endif
847 
848   /* start sanei_usb */
849   assert (test_init (1));

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: deb-Paket für sane-backends erstellen

Beitrag von Cae » 08.03.2014 11:05:57

Ich beziehe mich im folgenden auf Commit 0a37fc9: Der assert(3) fuehrt zu test_init() in testsuite/sanei/sanei_usb_test.c:48, welches wiederum sanei_usb_init() aus sanei/sanei_usb.c:467. Das explodiert irgendwo dazwischen bis Zeile 520, wo initialized inkrementiert wird. Vermutlich bekommt man mit erhoehtem Debugging raus, an was das letztendlich scheitert.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

theAllf
Beiträge: 54
Registriert: 16.09.2013 19:06:08

Re: deb-Paket für sane-backends erstellen

Beitrag von theAllf » 10.03.2014 21:32:14

So, ich habe mir mal die Patche aus der 1.0.24 genau angesehen.

Da gibt es einen Patch "nousbtest.patch"...

Und was macht der?
Genau, ihr habt es erraten ;-)

Nun habe ich mir erlaubt dies bei meinem Paket ähnlich handzuhaben.

Das Ergebnis ist jetzt tatsächlich ein funktionierendes deb-Paket.

Kurzabriss dessen was ich gemacht habe (falls es jemanden interessiert):

Code: Alles auswählen

git clone git://git.debian.org/sane/sane-backends.git
cp -r sane-backends sane-backends-1.0.25-pre-20140306
Nun die Datei sane-backends-1.0.25-pre-20140306/testsuite/sanei/sanei_usb_test.c
bearbeitet und alles rausgeschmissen was etwas mit dem usb-test zu tun hatte.
(Das nackte Anwenden des ursprünglichen Patches hat nicht zum Erfolg geführt. Wobei ich den Grund hierfür nicht verstanden habe, da ich keinen wesentlichen Unterschied der Datei zu der von 1.0.24 gefunden habe. Allerdings habe ich es auch nicht tiefer ergründet.)

Code: Alles auswählen

cd sane-backends-1.0.25-pre-20140306
dh_make --createorig
soeben erzeugtes debian-Verzeichnis aus sane-backends-1.0.25-pre-20140306 wieder gelöscht
und mit dem debian-Verzeichnis was ich über

Code: Alles auswählen

apt-get sources libsane
erhalten habe ersetzt.
Darin die Patche rausgeschmissen und die controls etwas angepasst (Versionsnummer etc.).

pbuilder nach dieser Anleitung eingerichtet http://failshell.io/devel/creating-ubun ... launchpad/
(das es hier im wiki auch eine Anleitung gibt habe ich erst hinterher gespannt...)

Code: Alles auswählen

pdebuilt
Pakete installiert :-)

Ich gebe zu, dass das mit validem Paketbau nicht mehr viel zu tun hat, aber zumindest habe ich ein Paket welches ich installieren und vor allem wieder deinstallieren kann.

Nochmals Danke für die Hinweise!

Antworten