Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] akonadi bauen  (Read 5827 times)

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
[DE] akonadi bauen
« on: 2011/03/19, 18:06:02 »
Hi,
mal wieder ein Problemchen, wo ich an meinem Verstand zweifele und eventuell einen hilfreichen Tritt in die Seite bräuchte.

Ich hab ein wenig gespielt und bin dabei an den aconadi gelangt.Da steht dann
Code: [Select]

debian/akonadi-backend-mysql.install:etc/akonadi/mysql-global-mobile.conf

Die Datei liegt aber hier:
Code: [Select]

debian/tmp/usr/share/kde4/config/akonadi/mysql-global-mobile.conf

Genau das nörgelt debuild auch an und bricht ab. Ist ja auch irgendwie verständlich. Korregiere ich das, baut das Paket durch. Da die .install-Dateien für mich momentan Teufelswerk sind, würde ich das jetzt über die rules umsetzen.

1. Frage: könnte man die Umsetzung per .install machen?
2. Frage: Wenn ja, wie?

3. Frage: Wie haben die das Paket ohne manuellen Eingriff gebaut?

Frage 3 ist eigentlich die, die mir wirklich am Herzen liegt, manuell zurechtferkeln kann ich das auch, da kenn ich nichts. Nur ist für mich das Paket in diesem Zustand nicht baubar und es war nicht das Einzige dieser Art, auf dass ich heute gestossen bin.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline brummer

  • User
  • Posts: 276
    • http://guitarix.sourceforge.net/
akonadi bauen
« Reply #1 on: 2011/03/19, 20:57:42 »
Quote

3. Frage: Wie haben die das Paket ohne manuellen Eingriff gebaut?

schau mal auf http://packages.debian.org/de/sid/akonadi-server unter http://ftp.de.debian.org/debian/pool/main/a/akonadi/akonadi_1.3.1-3.diff.gz
zeile 563 - 574.
+02_hardcode_debian_mysqld_path.diff
Es ist genau dokumentiert was geändert wurde um das Problem zu umgehen.

Also nicht zurechtferkeln, sondern für debian anpassen ist angesagt.   :)

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
akonadi bauen
« Reply #2 on: 2011/03/19, 21:42:01 »
Ok. Noch mal vom Anfang an. Danke für den Patch. Das Paket kompiliert einwandfrei. Aber: Das Paket baut nicht!

Code: [Select]

dh_bugfiles -pakonadi-backend-mysql
dh_install -pakonadi-backend-mysql  
cp: Aufruf von stat für „debian/tmp/etc/akonadi/mysql-global-mobile.conf“ nicht möglich: Datei oder Verzeichnis nicht gefunden
dh_install: cp -a debian/tmp/etc/akonadi/mysql-global-mobile.conf debian/akonadi-backend-mysql//etc/akonadi/ returned exit code 1
make: *** [binary-install/akonadi-backend-mysql] Fehler 2
dpkg-buildpackage: Fehler: Fehler-Exitstatus von debian/rules binary war 2
root@ramme:/home/agaida/willi/akonadi-1.4.0#

Das kommt daher, weil
Code: [Select]

root@ramme:/home/agaida/willi/akonadi-1.4.0/debian# cat akonadi-backend-mysql.install
etc/akonadi/mysql-global-mobile.conf
etc/akonadi/mysql-global.conf

Aber:
Code: [Select]

root@ramme:/home/agaida/willi/akonadi-1.4.0/debian/tmp/usr/share/kde4/config/akonadi# ls -l
insgesamt 8
-rw-r--r-- 1 root root 2156 31. Jul 2010  mysql-global.conf
-rw-r--r-- 1 root root 2154 31. Jul 2010  mysql-global-mobile.conf

tun wir mal jetzt so, als hätten wir es nicht bemerkt:
Code: [Select]

root@ramme:/home/agaida/willi/akonadi-1.4.0/debian/akonadi-backend-mysql/etc/akonadi# ls -lia
insgesamt 8
928794 drwxr-xr-x 2 root root 4096 19. Mär 21:24 .
928784 drwxr-xr-x 3 root root 4096 19. Mär 21:24 ..
root@ramme:/home/agaida/willi/akonadi-1.4.0/debian/akonadi-backend-mysql/etc/akonadi#

Irgendwie hätte ich an dieser Stelle mehr erwartet. Und genau deshalb die Frage: Wie wurde dass zusammengeferkelt? Die beiden Konfigurationsdateien hätte ich laut Script genau in diesem Verzeichnis erwartet. Sind sie aber nicht, die haben sich böswilligerweise nach debian/tmp/usr verzogen. So wie es im generierten cmake auch drinsteht. Deshalb die Frage - mach ich was falsch, cmake oder wer auch immer. Ich erinnere mich irgendwie noch an die cmake-experimental, die jetzt in sid ist. Kann das was damit zu tun haben. Das wäre wenigstens eine Erklärung.

Ich müsste noch einen Rechner auf einem Uralt-Stand haben oder eine Datensicherung. Da probiere ich das mal. Wenn das so passen sollte, nehme ich das Ferkeln zurück. Verbrochen hätte es aber trotzdem M. Vainius
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline brummer

  • User
  • Posts: 276
    • http://guitarix.sourceforge.net/
akonadi bauen
« Reply #3 on: 2011/03/19, 22:03:52 »
+DEB_CONFIG_INSTALL_DIR = /etc

http://patch-tracker.debian.org/patch/debianonly/view/akonadi/1.3.1-3

du solltest dir mal den gesamten diff ansehen. :wink:

Es wird eben nicht alles für debian entwickelt, oftmals sind anpassungen nötig, das betrifft auch das config build install system welches der upstream maitainer beifügt.

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
akonadi bauen
« Reply #4 on: 2011/03/19, 22:31:48 »
OK, mit diesem patch wird das debian-verzeichnis erzeugt, wie man unschwer da rauslesen kann. Dass die Unterschiede zwischen dem orginalen Tar-Ball und dem debianisierten Paket so abgelegt werden, ist nun nicht wirklich neu. ;) Und siehe da, die Entsprechung zum Patch findet sich bei mir im Filesystem:
Code: [Select]

agaida@ramme:~/willi/akonadi-1.4.0/debian$ cat rules
#!/usr/bin/make -f
                                                                                     
DEB_CONFIG_INSTALL_DIR = /etc                
DEB_DH_MAKESHLIBS_ARGS_libakonadiprivate1 := -V                                      
                                                                                   
DEB_CMAKE_EXTRA_FLAGS += -DMYSQLD_EXECUTABLE:STRING=/usr/sbin/mysqld  
                 
DEB_STRICT_LOCAL_SHLIBS_PACKAGES = $(DEB_LIBRARY_PACKAGES)

include /usr/share/pkg-kde-tools/qt-kde-team/1/debian-qt-kde.mk
include /usr/share/pkg-kde-tools/qt-kde-team/1/library-packages.mk


sieht sich irgendwie ähnlich:
Code: [Select]

--- akonadi-1.3.1.orig/debian/rules
+++ akonadi-1.3.1/debian/rules
@@ -0,0 +1,11 @@
+#!/usr/bin/make -f
+
+DEB_CONFIG_INSTALL_DIR = /etc
+DEB_DH_MAKESHLIBS_ARGS_libakonadiprivate1 := -V
+
+DEB_CMAKE_EXTRA_FLAGS += -DMYSQLD_EXECUTABLE=/usr/sbin/mysqld
+
+DEB_STRICT_LOCAL_SHLIBS_PACKAGES = $(DEB_LIBRARY_PACKAGES)
+
+include /usr/share/pkg-kde-tools/qt-kde-team/1/debian-qt-kde.mk
+include /usr/share/pkg-kde-tools/qt-kde-team/1/library-packages.mk


Ich vermute den Fehler auch nicht unbedingt in den doch recht übersichtlichen debian-Dateien. Die sind in diesem Fall so minimalistisch gehalten, dass man da gar nicht weiter drauf schauen muss. Der Fehler muss also an einer anderen Stelle liegen. Und genau das macht mich so wuschig. Bei Kleinigkeiten kann ich so was noch selbst erledigen, doch spätestens, wenn es an Scripte geht, die ich nicht mehr anpacken möchte, wenn ich es vermeiden kann, ist Schicht. cmake gehört da auf jeden Fall mit dazu.

Und ein grep -r 'mobile' * in den sourcen bringt
Code: [Select]

agaida@ramme:~/willi/akonadi-1.4.0$ grep -r 'mobile.conf' *
ChangeLog:      * trunk/kdesupport/akonadi/server/src/storage/mysql-global-mobile.conf:
ChangeLog:      * trunk/kdesupport/akonadi/server/src/storage/mysql-global-mobile.conf
debian/akonadi-backend-mysql.install:etc/akonadi/mysql-global-mobile.conf
debian/akonadi-backend-mysql/usr/share/doc/akonadi-backend-mysql/changelog:     * trunk/kdesupport/akonadi/server/src/storage/mysql-global-mobile.conf:
debian/akonadi-backend-mysql/usr/share/doc/akonadi-backend-mysql/changelog:     * trunk/kdesupport/akonadi/server/src/storage/mysql-global-mobile.conf
obj-x86_64-linux-gnu/install_manifest.txt:/usr/share/kde4/config/akonadi/mysql-global-mobile.conf
obj-x86_64-linux-gnu/server/cmake_install.cmake:   "/usr/share/kde4/config/akonadi/mysql-global.conf;/usr/share/kde4/config/akonadi/mysql-global-mobile.conf")
obj-x86_64-linux-gnu/server/cmake_install.cmake:    "/home/agaida/willi/akonadi-1.4.0/server/src/storage/mysql-global-mobile.conf"
server/CMakeLists.txt:  src/storage/mysql-global-mobile.conf


und spätestens die obj-x86_64-linux-gnu/install_manifest.txt: ... ist einfach nur falsch.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline brummer

  • User
  • Posts: 276
    • http://guitarix.sourceforge.net/
akonadi bauen
« Reply #5 on: 2011/03/19, 22:55:26 »
diese Schnitzelweise Informationsart von dir . . .ist einfach nur falsch :lol:  
Na ja, hier ist noch nen Knochen für dich
http://git.debian.org/?p=pkg-kde/kde-req/akonadi.git;a=blob;f=debian/rules;h=6d611e2c8f2d6605a5754c415ce8f1fe0f04fb3b;hb=HEAD

achte auf die override passagen  :wink:

und browse ma ein Verzeichnis höher

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
akonadi bauen
« Reply #6 on: 2011/03/19, 23:37:49 »
Auch nichts neues - damit habe ich heute auch 3 Stunden gepielt. 2 Stunden hats gedauert, bis ich meine Installation wieder sauber hatte. Ich habe auch nicht Infos scheibchenweise rausgerückt, sondern die Frage falsch gestellt. Das ist mir aber erst jetzt so richtig klar geworden. Die "Knochen", die du mir hingeworfen hast, habe ich schon heute nachmittag verdaut. ;)

Eventuell ist die Frage so richtiger: Was ist bei denen anders als bei mir? Das es eigentlich nicht an den Quellen liegen kann und die debian-Steuerdateien eigentlich unschuldig sind, das haben wir durch. Was mich an diesem Fall wirklich interessiert, ist folgende Frage: Das Bauen der in den Quellen enthaltenen Pakete geht an genau einer Stelle, bei 2 Dateien, schief. Der Rest des Bauvorgangs ist wenigstens vom Ablauf so richtig, dass keine offensichtlichen Fehler vorliegen und die debian-Bauwerkzeuge Alarm schlagen. Das habe ich geprüft, bis auf die 2 fehlgeleiteten Konfigurationsdateien funktioniert das alles vom Feinsten. Berichtige ich die beiden Dateien manuell, dann habe ich wirklich schicke "neue" alte Pakete.

Wie man weiterhin sieht, hat sich zwischen 1.3.1 und dem experimental-snapshot nichts geändert. Es geht wirklich nur darum, sich ein debian-Paket als Quelle zu nehmen und das "einfach" neu zu übersetzen. Wenn das im experimental knallt, ist mir das wurst, dafür ist es experimental. Wenn aber Versionen, die mehrere Wochen oder auch Monate auseinanderliegen, die selben Fehler aufweisen und nicht baubar sind, dann gibt mir das zu denken. Es geht mir nicht um die neusten Sachen aus dem git. Es wird kein Mensch je anstellen, aber so was wie ein 'make world' sollte auch unter debian theoretisch möglich sein. Beim heutigen Versuch reichte es noch nicht mal zum 'make vorgarten'. Und genau das macht mich nicht glücklich, von der verbratenen Zeit mal abgesehen.

Wenn es wenigstens einer dieser Fehler wäre, die durch den Wechsel des Kompilers zu begründen wären, wäre ich ruhig. Wäre zwar nicht unbedingt schön, aber nachvollziehbar. Nur zu diesem Fall fällt mir nichts mehr ein. Ein paar kleine Unschönheiten, die ich alle auf den Kompiler schieben und dann natürlich auch beheben konnte, waren heute auch dabei. Nur hier weiss ich nicht weiter. Wenn mir jetzt jemand sagt, dass da ein menschliches Korrektiv, das nicht erwähnt wurde, am Werke war, wäre ich zwar auch sauer, könnte das dann aber nachvollziehen.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline brummer

  • User
  • Posts: 276
    • http://guitarix.sourceforge.net/
akonadi bauen
« Reply #7 on: 2011/03/20, 05:11:20 »
Quote

Auch nichts neues - damit habe ich heute auch 3 Stunden gepielt. 2 Stunden hats gedauert, bis ich meine Installation wieder sauber hatte. Ich habe auch nicht Infos scheibchenweise rausgerückt, sondern die Frage falsch gestellt

Hallo, du hast nicht mit einer Silbe erwähnt was du schon versucht hast, welche version du bauen willst, ob du schon mal das original Paket gebaut hast um zu überprüfen ob das wenigstens geht.
Also du hast recht, nicht scheibchenweise, sondern hintern Berg gehalten.
Mein Interesse an deinem Problem ist damit gestorben.
viel glück

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
akonadi bauen
« Reply #8 on: 2011/03/20, 07:16:07 »
Die Versionsnummern stehen übrigens in den Quellen drin, die Pakete kompilieren, bauen aber nicht. Es liegt an 2 Dateinen. An den debian-Dateien liegt es nicht. Die Version ist nebensächlich. Die Frage war eingentlich allgemeiner Natur und auch so gestellt und mit einem Beispiel belegt. Was tue ich, wenn die Realität nicht mit dem Script übereinstimmt? Was war an meinem 3. Posting nicht zu verstehen?

Du wirfst in Deinem ersten Posting ein Diff in den Raum, bekommst die Rückmeldung, dass das Diff haargenau so umgesetzt wurde. Im Patchformat und als File. Auf die ignoranten Hinweise, dass Quellen auf debian angepasst werden und nicht nur für debian gemacht werden, kann ich verzichten. Es geht um Pakete von debian. Damit meine ich die Orginale von debian. Es ging hier nicht um den Punkt: Entschuldige, ich lebe und wie baut man eigentlich ein debian-Paket. Es ging darum, dass unter etlichen Paketen, die tun, eines ist, das nicht tut. Es ging explizit darum, ob es denkbar ist, dass da geferkelt wurde.

Wenn Dein Interesse nicht mal so reicht, Postings der anderen Partein zu lesen, kann es nicht so groß gewesen sein. Da war dann also nicht viel, was sterben könnte. Und wenn Du mich schon zitiersts: Es ging genau um den Zustand, dass ich das (die) orginalen Pakete ohne Änderung nicht bauen kann.
Quote

Es geht wirklich nur darum, sich ein debian-Paket als Quelle zu nehmen und das "einfach" neu zu übersetzen.

Wenn ich irgendwelche Änderungen gemacht hätte, dann hätte ich das gesondert bemerkt. Es geht wieder einmal nur darum, dass orginale Quellen nicht bauen, nicht zum ersten mal. Wenn Dir 'make world' als Target, unbekannt ist ein kleiner Tipp - schau mal bei gentoo. Das bedeutet, dass zu einem beliebigen Zeitpunkt ein Script angeworfen wird, der das gesamte System neu und aktuell baut. Das funktioniert wirklich. Und genau diesen Zustand hätte ich auch gern bei debian.  Das würde mich glücklich machen.

Wenn das jetzt zu scharf geschrieben ist, upps, war aber so gemeint. Auch ich werden in mich gehen und spezielle Fragen sehr viel spezieller stellen. Das war eine allgemeine.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline brummer

  • User
  • Posts: 276
    • http://guitarix.sourceforge.net/
akonadi bauen
« Reply #9 on: 2011/03/22, 07:17:02 »
Fahr inne Harz. :P

Online towo

  • Administrator
  • User
  • *****
  • Posts: 2.948
akonadi bauen
« Reply #10 on: 2011/03/22, 08:35:48 »
Code: [Select]
dh_shlibdeps  
dh_installdeb  
dh_sameversiondep
dh_gencontrol  
dh_md5sums  
dh_builddeb  
dpkg-deb: building package `akonadi-server' in `../akonadi-server_1.5.1-1_amd64.deb'.
dpkg-deb: building package `libakonadiprotocolinternals1' in `../libakonadiprotocolinternals1_1.5.1-1_amd64.deb'.
dpkg-deb: building package `libakonadi-dev' in `../libakonadi-dev_1.5.1-1_amd64.deb'.
dpkg-deb: building package `akonadi-backend-mysql' in `../akonadi-backend-mysql_1.5.1-1_all.deb'.
dpkg-deb: building package `akonadi-backend-postgresql' in `../akonadi-backend-postgresql_1.5.1-1_all.deb'.
dpkg-deb: building package `akonadi-backend-odbc' in `../akonadi-backend-odbc_1.5.1-1_all.deb'.
dpkg-deb: building package `akonadi-backend-sqlite' in `../akonadi-backend-sqlite_1.5.1-1_amd64.deb'.
dpkg-deb: building package `akonadi-dbg' in `../akonadi-dbg_1.5.1-1_amd64.deb'.
make[1]: Leaving directory `/tmp/buildd/akonadi-1.5.1'

Wo ist jetzt das Problem nochmal?
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.