Packaging für UCS

mail
german

#1

Hallo!

Ich bin gerade dabei Tine 2.0(tine20.org) für UCS zu packagen. Prinzipiell funktioniert das auch so weit, allerdings sind noch einige Fragen offen, die sich durch die nicht interaktive Installation ergeben.

Unsere Debian Pakete installieren automatisch eine Datenbank. Dazu fragen sie Admin Zugangsdaten der MySQL Datenbank ab(via dbconfig-common). Dies ist durch die nicht interaktive Installation unter UCS aber nicht möglich.
Daher die Frage, was ist der beste Weg um während der Installation eine Datenbank, DB-User und DB-Passwort für eine Anwendung anzulegen?

Ein anderes Thema ist die zentrale Konfigurationsdatei. Ich würde die Pakete gerne so gestalten, das man die Pakete sehr einfach auf mehreren Servern installieren kann. Dazu müssen sie z.B. alle auf die gleiche Datenbank zugreifen können.
Wäre es der richtige Weg die Datenbank Zugangsdaten als UCR Variablen abzulegen um sie dann während der Installation des Paketes abrufen zu können? Oder sollte so etwas anders gelöst werden?


#2

Hallo,

das Zarafa4UCS Integrationspaket behandelt diese Anforderung ebenfalls. Im entsprechenden postinst sollten Sie Hinweise finden wie das Problem dort gelöst wurde.

Mit freundlichen Grüßen
Janis Meybohm


#3

Vielen Dank! Genau das habe ich gesucht.


#4

Hallo!

Bin dann beim nächsten Problem angekommen. Ich würde Tine 2.0 gerne mit auf der Startseite unter server/ucs-overview/de.html einbinden. Dazu habe ich im Paket die Dateien

conffiles/var/www/ucs-overview/de.html.d/42tine20-webaccess.html conffiles/var/www/ucs-overview/en.html.d/42tine20-webaccess.html
angelegt.

In der Datei debian/tine20-tinebase.univention-config-registry steht folgendes:

[code]Type: multifile
Multifile: var/www/ucs-overview/de.html

Type: multifile
Multifile: var/www/ucs-overview/en.html

Type: subfile
Multifile: var/www/ucs-overview/de.html
Subfile: var/www/ucs-overview/de.html.d/42tine20-webaccess.html

Type: subfile
Multifile: var/www/ucs-overview/en.html
Subfile: var/www/ucs-overview/en.html.d/42tine20-webaccess.html
[/code]
Leider wird die Startseite während der Paketinstallation nicht aktualisiert und ich habe im zarafa4ucs auch keinen Hinweis gefunden. Wenn ich auf der Konsole

ucr commit /var/www/ucs-overview/de.html /var/www/ucs-overview/en.html

nach der Installation ausführe wird die Startseite richtig aktualisiert.

D.h. die Datei sind richtig im Paket und werden auch an die richtige Stelle kopiert. Nur wie ist der richtige Weg um die Startseite während der Installation zu aktualisieren? Fehlt da noch etwas im zarafa4ucs Paket?

Lars


#5

Hallo,

ich vermute in Ihrem Paket wird univention-install-config-registry nicht korrekt im rules-File ausgeführt. Bitte prüfen Sie hierzu noch einmal die Hinweise im Wiki unter Paketierung von Software für UCS: Integration von Univention Configuration Registry in eigene Pakete.

Mit freundlichen Grüßen
Janis Meybohm


#6

In der rules Datei steht folgendes. (Ich habe die nicht relevanten Sachen mal gelöscht)

[code]
%:
dh $@

override_dh_auto_install:
univention-install-config-registry
dh_auto_install[/code]

Das sollte dann wohl reichen, oder? Dann würde ich mich noch mal auf die Suche begeben.


#7

Hallo,

das sollte reichen sofern im postinst/preinst bzw. postrm/prerm die “#DEBHELPER#”-Zeilen eingetragen sind.
Wenn das der Fall ist und das Template trotzdem nicht committed wird, können wir die Quellen irgendwo einsehen? Evtl. lässt sich der Haken so schneller finden.

Mit freundlichen Grüßen
Janis Meybohm


#8

Der Source Code ist hier zu finden:

git.tine20.org/git?p=tine20;a=tr … c7;hb=HEAD


#9

Hallo,

ich kann das Paket derzeit nicht bauen da es beim dh_clean immer zu Syntax Fehlern in der “tine20/build.xml” kommt:

[code]…
dh clean
dh_testdir
dh_auto_clean
ant clean
Buildfile: /root/tine20/tine20/build.xml

BUILD FAILED
/root/tine20/tine20/build.xml:9: Unexpected attribute “description”

Total time: 0 seconds
dh_auto_clean: ant clean returned exit code 1
make: *** [clean] Fehler 2[/code]

Folgende Anpassungen an den Build-Deps habe ich außerdem vorgenommen:

[code]diff --git a/scripts/packaging/Univention/debian/control b/scripts/packaging/Univention/debian/control
index 84b5000…c605ee3 100644
— a/scripts/packaging/Univention/debian/control
+++ b/scripts/packaging/Univention/debian/control
@@ -7,7 +7,9 @@ Build-Depends: debhelper (>= 8), po-debconf,
python-support,
univention-config-dev,
python-all,

  • python-support (>= 0.90)

Mit freundlichen Grüßen
Janis Meybohm


#10

Hallo!

Ich schaue mir das mal an.

Aber eigentlich macht der Fehler keinen Sinn. Versuchst Du vielleicht direkt vom GIT Checkout zu bauen? Das funktioniert nämlich nicht.

Wenn Du Dir das letzte Release runterlädst(tine20.org/downloads/2012-03 … -2.tar.bz2) und in diesem das debian Verzeichnis anlegst, sollte der Build ohne Probleme funktionieren.


#11

Hallo,

ich hatte natürlich versucht das Paket aus den GIT Sourcen zu bauen. :slight_smile: Mit dem Tarball funktioniert dass und auch die Anpassungen an den Build-Dependencies aus meinem letzten Posting sind nicht notwendig.

Zum Problem:
Die Templates werden nicht automatisch committed da der UCR Prozess der dies übernehmen würde durch die “sys.exit(1)” Aufrufe im UCR-Modul “tine20-cfg.py” vorher beendet wird. Sie sollten hier einfach nur die Funktion “handler”, z.B. durch ein “return” verlassen um nicht den kompletten Prozess aus dem Modul heraus zu beendet.

Außerdem sollten Multi-Files aus anderen Paketen (de.html/en.html) nicht erneut in Ihrem Paket registriert werden. Dies würde dazu führen dass die beiden Dateien beim purgen von tine20-tinebase mit entfernt werden.

Mit dem angehängten Patch werden die ucs-overwiev Seiten bei der Installation korrekt commited.

Mit freundlichen Grüßen
Janis Meybohm
tine20.patch (2.94 KB)