picard debianisieren mit dpkg-buildpackage

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
feldmaus
Beiträge: 1307
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

picard debianisieren mit dpkg-buildpackage

Beitrag von feldmaus » 19.05.2010 11:32:44

Hi Alle,

ich wollte mir für picard eine neue Version erstellen mit allem Komfort, also Menu-Eintrag, Abhängigkeiten. Leider weiß ich nicht wie der Debian Maintainer das gemacht hat. Laut der Beschreibung debianpaketeerstellen muss ein Verzeichnis erstellt werden,
/usr/src/picard/
und dort wird das gepackte picard-0.12.1.tar.gz entpackt
/usr/src/picard/picard-0.12.1
danach folgt dh_make, allerdings gibt es hier keine make + configure Installation. Der Ordner beinhaltet nur

Code: Alles auswählen

-rw-r--r-- 1 root root   258  1. Nov 2009  AUTHORS.txt
drwxr-xr-x 3 root root  4096  1. Nov 2009  contrib
-rw-r--r-- 1 root root 17989  1. Nov 2009  COPYING.txt
drwxr-xr-x 3 root root  4096  1. Nov 2009  installer
-rw-r--r-- 1 root root  1204  1. Nov 2009  INSTALL.txt
-rw-r--r-- 1 root root 17760  1. Nov 2009  NEWS.txt
drwxr-xr-x 8 root root  4096  1. Nov 2009  picard
-rw-r--r-- 1 root root   223  1. Nov 2009  picard.desktop
-rw-r--r-- 1 root root 86038  1. Nov 2009  picard.icns
-rw-r--r-- 1 root root 85724  1. Nov 2009  picard.ico
drwxr-xr-x 2 root root  4096  1. Nov 2009  po
drwxr-xr-x 4 root root  4096  1. Nov 2009  resources
drwxr-xr-x 2 root root  4096  1. Nov 2009  scripts
-rwxr-xr-x 1 root root 20449  1. Nov 2009  setup.py
-rwxr-xr-x 1 root root   194  1. Nov 2009  tagger.py
drwxr-xr-x 3 root root  4096  1. Nov 2009  test
drwxr-xr-x 2 root root  4096  1. Nov 2009  ui
Und in der INSTALL.txt steht

Code: Alles auswählen

Installation
------------

After installing the dependencies, you can install Picard by running:

  python setup.py config
  sudo python setup.py install

This will automatically build and install all required Python modules. To
start Picard now you can use:

  picard


Running From the Source Tree
----------------------------

If you want to run Picard from the source directory without installing, you
need to build the C extensions and locales manually:

  python setup.py config
  python setup.py build_ext -i
  python setup.py build_locales -i

And to start Picard use:

  python tagger.py
Wie debianisiere ich dieses Paket mit dpkg-buildpackage?

Grüße Markus

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: picard debianisieren mit dpkg-buildpackage

Beitrag von novalix » 20.05.2010 11:29:55

Hi,

Debianpicard ist ja nun schon debianisiert. Was spricht dagegen, sich diese debianisierten Sourcen runterzuladen und als Grundlage zu nehmen?

Das script "dh_make" ist dazu da, ein generisches Verzeichnis "/debian" im Quellendateibaum zu erstellen. Die einzelnen Dateien (rules, control, etc.) müssen dann noch händisch bearbeitet werden. Dies ist alles schon geschehen. Es gibt keinen ersichtlichen Grund diese Arbeit ein zweites mal durchzuführen.

Das Programm ist offensichtlich in Python geschrieben. Dazu solltest Du die entsprechende Debian-Policy suchen und lesen.
Es kann sein, dass sich die neueste Version dieser Software nicht so ohne weiteres auf ein Lenny (vielleicht auch nicht auf ein Squeeze) zurück portieren lässt, da es durchaus unauflösbare Abhängigkeiten zu bestimmten Versionen von Python geben könnte.
Um das herauzufinden solltest Du die Dokumentation der Quellen (Hint: die News-Datei) genauer studieren und Dir mal die Abhängigkeiten der Versionen im derzeitigen stable und unstable anschauen.

In dem von Dir verlinkten Tutorial sehe ich keinen Hinweis darauf, dass man die Quellen unter

Code: Alles auswählen

/usr/src/
entpacken und bearbeiten sollte.
Für solche Aufgaben solltest Du Dir ein geeignetes Verzeichnis in Deinem home erstellen und das Paket mit Debianfakeroot bauen.

Code: Alles auswählen

dpkg-buildpackage -rfakeroot -us -uc
Groetjes, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Benutzeravatar
feldmaus
Beiträge: 1307
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: picard debianisieren mit dpkg-buildpackage

Beitrag von feldmaus » 26.05.2010 15:47:22

Danke Dir novalix,

ich habe im Music Brainz Forum ebenfalls Hilfe bekommen, wobei ich mir über die korrekte Syntax nocht nicht ganz klar bin. Ich habe mir die Sourcen picard_0.9.0.orig.tar.gz und die Diff Datei picard_0.9.0-4.diff.gz besorgt. Das habe ich dann unter ~/eigenedateien/projekte/picard/ gespeichert und entpackt.

Code: Alles auswählen

markus@feld-bert:~/eigenedateien/projekte/picard$ ls -l
insgesamt 596
drwxr-xr-x 11 markus markus   4096 25. Mai 20:20 picard-0.12.1
drwxr-xr-x 11 markus markus   4096 25. Mai 20:24 picard-0.9.0
-rw-r--r--  1 markus markus   3732 24. Jun 2008  picard_0.9.0-4.diff.gz
-rw-r--r--  1 markus markus 183392 24. Jun 2008  picard_0.9.0-4_i386.deb
-rw-r--r--  1 markus markus 401571  5. Jan 2008  picard_0.9.0.orig.tar.gz
Dann habe ich das ganze gepatched:

Code: Alles auswählen

markus@feld-bert:~/eigenedateien/projekte/picard$ gunzip -c picard_0.9.0-4.diff.gz | patch -p0 -
patching file -
patching file picard-0.9.0/debian/pyversions
patching file picard-0.9.0/debian/links
patching file picard-0.9.0/debian/picard.1
patching file picard-0.9.0/debian/control
patching file picard-0.9.0/debian/rules
patching file picard-0.9.0/debian/changelog
patching file picard-0.9.0/debian/menu
patching file picard-0.9.0/debian/copyright
patching file picard-0.9.0/debian/compat
patching file picard-0.9.0/debian/manpages
patching file picard-0.9.0/debian/patches/000-picard_filebrowser_collapse.patch
patching file picard-0.9.0/debian/patches/series
Den erstellten Ordner ~/eigenedateien/projekte/picard/picard-0.9.0/debian/ habe ich dann nach ~/eigenedateien/projekte/picard/picard-0.12.1/ kopiert...

Code: Alles auswählen

markus@feld-bert:~/eigenedateien/projekte/picard/picard-0.9.0$ pwd
/home/markus/eigenedateien/projekte/picard/picard-0.9.0
markus@feld-bert:~/eigenedateien/projekte/picard/picard-0.9.0$ cp -R debian/ ../picard-0.12.1/
markus@feld-bert:~/eigenedateien/projekte/picard/picard-0.9.0$ cd ../picard-0.12.1/
markus@feld-bert:~/eigenedateien/projekte/picard/picard-0.12.1$ 
Bei der Paketierung bekomme ich Fehler:

Code: Alles auswählen

markus@feld-bert:~/eigenedateien/projekte/picard/picard-0.12.1$ dpkg-buildpackage -rfakeroot -us -uc
dpkg-buildpackage: setze CFLAGS auf Standardwert: -g -O2
dpkg-buildpackage: setze CPPFLAGS auf Standardwert: 
dpkg-buildpackage: setze LDFLAGS auf Standardwert: 
dpkg-buildpackage: setze FFLAGS auf Standardwert: -g -O2
dpkg-buildpackage: setze CXXFLAGS auf Standardwert: -g -O2
dpkg-buildpackage: Quellpaket picard
dpkg-buildpackage: Quellversion 0.9.0-4
dpkg-buildpackage: Quellen geändert durch Adam Cécile (Le_Vert) <gandalf@le-vert.net>
dpkg-buildpackage: Host-Architektur i386
 fakeroot debian/rules clean
/usr/bin/fakeroot: line 164: debian/rules: Keine Berechtigung
dpkg-buildpackage: Fehlschlag: fakeroot debian/rules clean gab Fehler-Exitstatus 126
Irgendwas mache ich grundsätzlich falsch? Muss ich mit fakeroot noch was machen? Die rules-Datei geht nur bis Zeile 83 und ist lesbar für alle.

Der clean-Abschnitt in der rules-Datei beinhaltet:

Code: Alles auswählen

clean: unpatch
        dh_testdir
        dh_testroot
        rm -rf build/ build.cfg scripts/picard
        rm -f configure-stamp build-stamp* install-stamp*
        find $(CURDIR) -name '*.mo' | xargs rm -f
        find $(CURDIR) -name '*.pyc' | xargs rm -f
        dh_clean 
Die Variable $(CURDIR) kennt mein System nicht.

In der Datei /usr/bin/fakeroot steht in Zeile 164:

Code: Alles auswählen

  FAKEROOTKEY=$FAKEROOTKEY LD_LIBRARY_PATH="$PATHS"  LD_PRELOAD="$LIB" "$@"
Grüße Markus

Benutzeravatar
feldmaus
Beiträge: 1307
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: picard debianisieren mit dpkg-buildpackage

Beitrag von feldmaus » 26.05.2010 16:29:50

Ok bin weiter. Die Datei debian/rules muss ausführbar sein.

Ich habe in debian/pyversion 2.5- eingetragen, danach erhalte ich die Fehlermeldung http://nopaste.debianforum.de/34664.

Wo wird die Version nummer eingetragen? Ich erhalte sonst,

Code: Alles auswählen

dpkg-source: Warnung: Quellverzeichnis »picard-0.12.1« lautet nicht <Quellpaket>-<UpstreamVersion> »picard-0.9.0«
dpkg-source: Warnung: .orig-Verzeichnisname picard-0.12.1.orig ist nicht <Paket>-<Ursprungsversion> (erwünscht picard-0.9.0.orig)
Grüße Markus

Benutzeravatar
feldmaus
Beiträge: 1307
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: picard debianisieren mit dpkg-buildpackage

Beitrag von feldmaus » 26.05.2010 21:14:01

Ok bin weiter, habe mit ch -v 0.12.1-1 eine neuen Eintrag in die chanelog vorgenommen. Danach komme ich dann weiter. Weiterhin habe ich die patches in debian/patches/ gelöscht, da die Probleme schon längst behoben sind. Zur Zeit bleibt er bei den Icons hängen, die er nicht finden kann. Ich weiß gar nicht, was zur Zeit bei Debian Lenny an Icons benötigt wird. :google: :D

http://pastebin.com/zDAQUJsq

Grüße Markus

Benutzeravatar
feldmaus
Beiträge: 1307
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: picard debianisieren mit dpkg-buildpackage

Beitrag von feldmaus » 27.05.2010 13:58:15

An wen kann man sein fertiges Paket schicken, wenn der ursprüngliche Paket Betreuer, nicht per e Mail antwortet? Testen muss ich es allerdings noch.

Weiterhin erstelle ich gerade ein lokales Repository nach Anleitung von hier, welche Dateien muss ich da alle reinkopieren?

Code: Alles auswählen

-rw-r--r--  1 markus markus     668 27. Mai 13:49 picard_0.12.1-1.dsc
-rw-r--r--  1 markus markus    1280 27. Mai 13:49 picard_0.12.1-1_i386.changes
-rw-r--r--  1 markus markus  688802 27. Mai 13:49 picard_0.12.1-1_i386.deb
-rw-r--r--  1 markus markus 1381561 27. Mai 13:49 picard_0.12.1-1.tar.gz
Grüße Markus

Antworten