staging.inyokaproject.org

PPA für Popper

Status: Gelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

jokerGermany

Anmeldungsdatum:
11. Mai 2008

Beiträge: 992

Da Ralf es aufgegeben habe, möchte ich hier das Projekt gerne mit der Hilfe der ubuntuusers.de Community stemmen.

rhersel schrieb:

Zwischenbericht zum PPA-Bau

Das Paket wird nun in das PPA bei Launchpad geladen, akzeptiert und gebuilded. Es lässt sich auch in die Paketquellen aufnehmen und erscheint im Software-Center. Leider passiert nach dem Installieren überhaupt nichts, soll heissen es befindet sich kein Popper auf der Festplatte.

Im Moment habe ich keine Ahnung woran es liegt. Falls einer von euch mal gucken will, das PPA ist hier: https://launchpad.net/~ralf.hersel/+archive/rhersel-ppa/+packages

Aber ACHTUNG: nicht den Paketquellen hinzufügen weil es nicht funktioniert!

Update:

Nach ein paar Fragen an die Launchpad-Supporter bin ich wieder kurz vor dem Aufgeben. Diese komplizierte Sache wird immer komplizierter. 😢

Noch ein Update:

Nachdem ich nun nochmals viele Stunden lang versucht habe ein via PPA installierbares Paket zu bauen, gebe ich jetzt endgültig auf. Jeder der möchte kann sich gerne den Code schnappen und es selbst mal versuchen. Bis auf Weiteres werde ich DEBs via Launchpad liefern (so wie bisher).

Gibts wen der Ahnung vom PPA bau hat? Dieses Projekt verdient einfach ein PPA!

jokerGermany

(Themenstarter)

Anmeldungsdatum:
11. Mai 2008

Beiträge: 992

Also zumindestens https://launchpad.net/~ralf.hersel/+archive/rhersel-ppa/+files/popper_0.28.2-0ubuntu1_all.deb ist auch anders als die "normale" deb Weil da meckert er wegen der Version (Hab 64 Bit)

Liegt es vielleicht daran, dass es ne 32 und 64 Bit Version geben muss?

Sry, bin nen absoluter Launchpad noob 😉

g123

Avatar von g123

Anmeldungsdatum:
5. November 2007

Beiträge: 490

jokerGermany schrieb:

Liegt es vielleicht daran, dass es ne 32 und 64 Bit Version geben muss?

Es muss keine 32 und 64 Bit Versionen geben. Das Paket ist für alle Architekturen (erkennt man am "_all"). Wenn man sich den Inhalt des betreffenden Pakets aber einmal anschaut erkennt man ganz schnell, warum es nicht funktioniert:

  • Das Programm ist im Paket nicht enthalten, sondern nur eine Manpage

  • Es fehlen im Ordner DEBIAN einige Steuerdateien, man müsste es aber trotzdem installieren können

Wenn du ein "richtiges" Paket dafür bauen willst, solltest du dir Grundlagen der Paketerstellung anschauen. Das ist am Anfang zwar ein bisschen mehr Arbeit, sobald man die Umgebung aber einmal eingerichtet hat, geht es für neue Versionen ganz schnell. Der Upload auf Launchpad ist dann auch mit einem Befehl gemacht.

rhersel

Avatar von rhersel

Anmeldungsdatum:
30. Januar 2007

Beiträge: 920

Habe noch einen Versuch gestartet:

Successfully uploaded popper_0.28.3-0ubuntu1.dsc to ppa.launchpad.net for ppa.
Successfully uploaded popper_0.28.3.orig.tar.gz to ppa.launchpad.net for ppa.
Successfully uploaded popper_0.28.3-0ubuntu1.debian.tar.gz to ppa.launchpad.net for ppa.
Successfully uploaded popper_0.28.3-0ubuntu1_source.changes to ppa.launchpad.net for ppa.

Mal sehen was dieses Mal nicht stimmt.

Die ganze Dokumentation (wie z.B. 'Grundlagen der Paketerstellung' und viele andere) habe ich x-mal gelesen und kann sie mittlerweile fast auswändig. Mein Problem ist, dass ich vor Bäumen den Wald nicht mehr sehe und dass es verschiedene Methoden gibt ein Source-Package zu bauen. Ideal wäre eine Schritt-für-Schritt Anleitung für ein Python-"Hallo-Welt"-Paket.

g123

Avatar von g123

Anmeldungsdatum:
5. November 2007

Beiträge: 490

Ich habe mir das Paket die popper_0.28.3orig.tar.gz mal heruntergeladen.

  • Im "DEBIAN"-Ordner kannst du die Dateien docs, README.Debian und README.source eigentlich löschen, da hast du ja eh nichts drin stehen.

  • Du musst die Verzeichnisstruktur mit "usr/.." usw. auch nicht nachbilden. Das richtige Platzieren der Dateien kann man auch über die rules-Datei machen:

    #!/usr/bin/make -f
    # -*- makefile -*-
    %:
    	dh $@
    
    override_dh_install:
    	dh_install popper/* /usr/share/popper/
  • Zum Erstellen von Menüeinträgen ist das Grundlagen der Paketerstellung/Menüeintrag vorgesehen.

rhersel

Avatar von rhersel

Anmeldungsdatum:
30. Januar 2007

Beiträge: 920

So langsam beginne ich zu verstehen, es gibt aber noch ein paar Fragen:

  • brauche ich die Dateien setup.py und MANIFEST.in wirklich oder kann man das alles über die Datei debian/rules machen?

  • wie bekomme ich die Übersetzungsdateien ins richtige Verzeichnis? Bisher habe ich ein Verzeichnis usr/share/popper/locale/... in dem die Übersetzungsdateien liegen. Wo müssen die hin und wie bekomme ich sie dahin? Ausserdem fehlen diese Dateien in der DEB vollständig.

  • wie bekomme ich die Desktopdatei ins richtige Verzeichnis? Bisher habe ich ein Verzeichnis usr/share/applications/popper_config.desktop. Was ist die richtige Stelle für diese Datei und wie bekomme ich sie dahin?

  • es gibt eine Datei debian/source/format in der steht '3.0 (quilt)'. Brauche ich das Verzeichnis und die Datei wirklich?

Schau dir doch mal im PPA die Datei popper_0.28.3.orig.tar.gz an. Darin sind alle Dateien enthalten während in der Datei popper_0.28.3-0ubuntu1_all.deb das Verzeichnis locale fehlt.

g123

Avatar von g123

Anmeldungsdatum:
5. November 2007

Beiträge: 490

brauche ich die Dateien setup.py und MANIFEST.in wirklich oder kann man das alles über die Datei debian/rules machen?

Du kannst das auch alles über debian/rules machen, dass ist meiner Meinung nach bei kleinen Projekten (bei denen man dank Interpretersprache nichts kompilieren muss und ein bisschen herumkopieren reicht) am einfachsten. Ansonsten würde ich mir mal das anschauen: http://ghantoos.org/2008/10/19/creating-a-deb-package-from-a-python-setuppy

wie bekomme ich die Übersetzungsdateien ins richtige Verzeichnis? Bisher habe ich ein Verzeichnis usr/share/popper/locale/... in dem die Übersetzungsdateien liegen. Wo müssen die hin und wie bekomme ich sie dahin? Ausserdem fehlen diese Dateien in der DEB vollständig.

Die mo-Dateien müssen nach /usr/share/locale/de/LC_MESSAGES/. Die kannst du ebenfalls per debian/rules dahin kopieren.

wie bekomme ich die Desktopdatei ins richtige Verzeichnis? Bisher habe ich ein Verzeichnis usr/share/applications/popper_config.desktop. Was ist die richtige Stelle für diese Datei und wie bekomme ich sie dahin?

Die desktop-Datei kannst du ebenfalls per debian/rules nach "usr/share/applications" kopieren.

es gibt eine Datei debian/source/format in der steht '3.0 (quilt)'. Brauche ich das Verzeichnis und die Datei wirklich?

Nein

rhersel

Avatar von rhersel

Anmeldungsdatum:
30. Januar 2007

Beiträge: 920

Mit ist die Verzeichnisstruktur der Quellen noch nicht klar. Zur Zeit sieht das bei mir so aus:

ppa
|-- popper_0.28.3
|   |-- debian
|   |   |-- changelog
|   |   |-- compat
|   |   |-- control
|   |   |-- copyright
|   |   `-- rules
|   `-- usr
|       `-- share
|           |-- applications
|           |   `-- popper_config.desktop
|           `-- popper
|               |-- locale
|               |   `-- de
|               |       `-- LC_MESSAGES
|               |           |-- popper_config.mo
|               |           |-- popper_config.po
|               |           |-- popper.mo
|               |           `-- popper.po
|               |-- popper_changelog.txt
|               |-- popper_config.glade
|               |-- popper_config.py
|               |-- popper_config.sh
|               |-- popper_help_de.txt
|               |-- popper_help_en.txt
|               |-- popper_icon.png
|               |-- popper_keyring.glade
|               |-- popper_list.glade
|               |-- popper_list.py
|               |-- popper_message.glade
|               |-- popper.png
|               |-- popper.py
|               |-- popper.sh
|               `-- popper.wav
|-- popper_0.28.3-0ubuntu1.debian.tar.gz
|-- popper_0.28.3-0ubuntu1.dsc
|-- popper_0.28.3-0ubuntu1_source.build
|-- popper_0.28.3-0ubuntu1_source.changes
|-- popper_0.28.3-0ubuntu1_source.ppa.upload
`-- popper_0.28.3.orig.tar.gz

Du hast ja schon geschrieben, dass ich die Zielstruktur nicht nachempfinden muss. Was mir nicht klar ist, ist der Befehl 'dh_install' in der rules Datei. Sie sieht jetzt so aus:

# blabla
%:
	dh $@

override_dh_install:
	dh_install popper/* /usr/share/popper/
	dh_install popper/???  /usr/share/locale/de/LC_MESSAGES/
	dh_install popper/???  /usr/share/applications/

Wie du siehst ist mir nicht klar wie ich die Quellverzeichnisse angeben muss. Ich habe gelesen, dass sie relativ zum Current Directory sein müssen. Aber wie sieht das bei meinen Verzeichnissen konkret aus? So gesehen wäre ja dein Vorschlag (dh_install popper/* /usr/share/popper/) auch falsch weil es das Verzeichnis popper/ im Verzeichnis debian/ gar nicht gibt.

g123

Avatar von g123

Anmeldungsdatum:
5. November 2007

Beiträge: 490

Wie du siehst ist mir nicht klar wie ich die Quellverzeichnisse angeben muss. Ich habe gelesen, dass sie relativ zum Current Directory sein müssen. Aber wie sieht das bei meinen Verzeichnissen konkret aus?

Das "Current Directory" ist "ppa/popper_0.28.3/". Wenn du die Hierarchie, so belassen willst, müsste es so aussehen:

dh_install usr/share/popper/* /usr/share/popper/
dh_install usr/share/popper/locale/de/LC_MESSAGES/*.mo /usr/share/locale/de/LC_MESSAGES/
dh_install usr/share/applications/popper_config.desktop /usr/share/applications/

So gesehen wäre ja dein Vorschlag (dh_install popper/* /usr/share/popper/) auch falsch weil es das Verzeichnis popper/ im Verzeichnis debian/ gar nicht gibt.

Das Verzeichnis "popper/" muss nicht im debian-Ordner existieren. (siehe "Current Directory") Mein Beispiel war jetzt schon auf den Fall bezogen, dass du die Ordnerhierarchie nicht mehr nachbildest und sich der Ordner "popper", mit den Programmdateien, direkt im Ordner "popper_0.28.3" befindet. Wenn du es so, wie jetzt lassen willst, musst du den Pfad natürlich entsprechend anpassen (siehe oben).

rhersel

Avatar von rhersel

Anmeldungsdatum:
30. Januar 2007

Beiträge: 920

Prima, grundsätzlich funktioniert es jetzt. Ein Problem und eine Frage habe ich noch:

Der Menüeintrag wird bei der Installation durch das Software-Center nicht erstellt obwohl die Datei 'usr/share/applications/popper_config.desktop' korrekt erstellt wird. Sie sieht so aus:

[Desktop Entry]
Name=Popper Configurator
Name[de]=Popper Configurator
Name[de_CH]=Popper Configurator
Name[de_AT]=Popper Configurator
Comment=A notifier for new emails
Comment[de]=Ein Benachrichtiger für neue Emails
Comment[de_CH]=Ein Benachrichtiger für neue Emails
Comment[de_AT]=Ein Benachrichtiger für neue Emails
Exec=/usr/share/popper/popper_config.sh
Icon=/usr/share/popper/popper_icon.png
Terminal=false
Type=Application
Categories=GNOME;GTK;Email;Network;
StartupNotify=false

Vermutlich fehlt in der debian/rules noch eine Zeile. Aus deinem Link auf Grundlagen der Paketerstellung/Menüeintrag werde ich aber nicht schlau. Kannst du mir einen Tipp geben was ich genau in die rules reinschreiben muss damit der Menüeintrag erstellt wird.

Dann noch eine Frage: wie bekomme ich ein Bildschirmfoto in das Software-Center hinein?

jokerGermany

(Themenstarter)

Anmeldungsdatum:
11. Mai 2008

Beiträge: 992

BTW: Ziel erreicht ☺

rhersel schrieb:

Wie vor einiger Zeit versprochen, habe ich einen Artikel zum Thema "Paketbau und PPA" geschrieben. Damit möchte ich anderen Entwicklern den mühsamen Weg ersparen den ich gehen musste. Viel Vergnügen beim Lesen und Nachvollziehen.

Antworten |