0.9 Entwicklung
Inhaltsverzeichnis |
Allgemeines
Diese Seite ist Bestandteil der internen Seiten.
Die Dokumentation für Enduser findet sich hier.
Basisinformationen
- www.debian.org/doc/maint-guide/
- http://wiki.ubuntuusers.de/Paketbau
- http://wiki.ubuntuusers.de/Grundlagen_der_Paketerstellung
Aktuelle Designprinzipien
Es gelten nach wie vor die allgemeinen easyVDR Ziele und Standards wie z.B. "easy" und "offline". Vor allem auch der Allgemeine Entwicklerguide.
Filessystem-Struktur
Erfolgt nach den FHS-Vorgaben: Details siehe Filessystem-Struktur
Einrichtung einer Entwicklungsumgebung
Der Befehl dazu lautet
apt-get install easyvdr-dev
Mit der Installation wird man gefragt, ob man Sourcen im Git einchecken möchte, Pakete ins PPA laden möchte oder eine lokale PPA-Testumgebung = pbuilder installieren möchte. Diese Fragen sind zu beantworten. Wer nicht weiß, was das bedeutet, sollte bei den Entwicklern nachfragen, oder die Fragen mit "Nein" beantworten.
Weitere Infos zu Git: Gituse
Weitere Infos zu PPA: Launchpad
Weitere Infos zu pbuilder pbuilder
Ablauf der Entwicklung
Konventionen beim Paketbau
Alle Pakete mit "easyVDR" und im direkten Anschluss Versionsnummer mit Dezimalpunkt also z.B. "easyVDR1.3".
vdr-plugin-<Paketname> (<Version>~<Zusatz>-<Majorreleasae>easyVDR<Versionsnummer>)
Paketname = burn, femon, etc
Zusatz = beta3, git2001123, etc
Majorrelease = Zahl 0 bis x, je nach Erfordernis
Versionsnummer = 0.1 beim ersten Bau, später immer mit Dezimalpunkt und EINER Stelle hinter dem Punkt
Ganz Wichtig noch was Zwischen den <> steht.
- Das Minus darf nur EINMAL direkt vor <Majorrelease>easyVDR vorkommen
- Deshalb um einen Zusatz zu trennen die Tilde nutzen
- easyVDR - IMMER VDR groß und easy klein geschrieben
NUR dann funktioniert das Script zum automatischen Build fehlerfrei.
Beispiel:
vdr-plugin-burn (5.1~git20120417-0easyVDR9.9)
Addonlist
Neue Plugins müssem in easyvdr-setup/setup/addonlist.v3 eingetragen werden. Eigentlich soweit selbsterklärend.
Conflictmatrix ist binär
O bedeutet wird nicht angezeigt (das ist ein O, keine Null)
X bedeutet wird angezeigt
1. Stelle - FF
2. Stelle - FF-HD
3. Stelle - eHD
4. Stelle - NVidia
5. Stelle - PVR350
6. Stelle - X
7. Stelle - ATI
8. Stelle - frei
GIT
Die nötigen Dateien werden im GIT gesammelt und daraus dann Pakete im PPA gebaut.
Struktur in unserem Lucid-GIT-Repository
| meta |
Metapakete für die wichtigsten Dinge, aber auch z.B. das Setup |
| vdr |
wie der Name sagt |
| plugins |
Plugins zum VDR |
| dvb |
Kernel Erweiterung: v4l oder Liplianin |
| libs |
wie der Name sagt |
| addon |
Addons wie noad, motd, lirc... |
| iso |
Root Verzeichniss des ISO inkl angeopasster Installer |
| easyportal |
wie der Name sagt |
Pfui
so sollte man es nicht machen (geht aber auch für manche Fälle)
apt-get install easyvdr-dev #apt-get build-dep vdr #weitere basispakete je nachdem sudo aptitude install gettext libssl-dev libcurl4-openssl-dev mercurial -y cd /usr/local/src apt-get source vdr cd vdr-1.7.18 dpatch apply-all
euer Plugin wie z.B. "rotor" nach PLUGINS/src legen
make make plugins ~strip vdr ~strip im PLUGINS/lib dir ...
Pakete manuell bauen
1. den Tarball des Plugins entpacken und die Version mit "-" getrennt hinten anstellen. z.B. blub-1.0.0
2. danach in das Verzeichnis blub-1.0.0 wechseln
3. im Verzeichnis folgenden Befehl aufrufen debianize-vdrplugin
4. jetzt im gleichen Verzeichnis "dpkg-buildpackage -tc" aufrufen
Und schon ist ein Debian - Paket erzeugt.
PBuilder
noch nicht beschrieben
PPA
Der Upload ins PPA erfolgt mit dput.
Die nötige .dput.cf wird automatisch erstellt, wenn easyvdr-dev installiert wird.
easyvdr-dev mus per apt-get install installiert werden und kann nun mit den folgenden Parametern auch in unsere anderen PPA laden.
dput testing paketname_version_source.changes dput stable paketname_version_source.changes dput unstable paketname_version_source.changes
Anzulesen folgende Artikel:
- http://wiki.ubuntuusers.de/Launchpad/PPA
- http://wiki.ubuntuusers.de/Ubuntero
- http://wiki.ubuntuusers.de/Grundlagen_der_Paketerstellung
- http://wiki.ubuntuusers.de/GnuPG
- http://wiki.ubuntuusers.de/umgebungsvariable
- http://wiki.ubuntuusers.de/pbuilder
- http://www.tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/
Paketbau
1. Sourcen holen
apt-get source paketname
changelog mit dch -i ändern (Achtung - hängt an den Paketnamen immer unbuntu1 an - entspr. editieren - Versionsnummer erste Zeile eins nach oben setzen)
2. Paketsourcen bauen - debuild -S -sa
3. Testlauf in pbuilder - sudo pbuilder build paketname.dsc
4. Upload - dput repo paketname_version_source.changes
Beispiel:
dput ppa:easyvdr-team/testing-vdr <paketname.changes>
Quilt
Mögliches Problem:
Die entpackten Sourcen im Git sind schon gepatcht. Es wird beim dput der letzte Zustand gespeichert.
Merker für die Zukunft:
Quilt-Pakete nie aus den alten Sourcen hochladen.
Immer die entstandenen .orig und das ...debian.tar.bz2 frisch entpacken, ändern und dann hochladen.
Man erkennt gepachte Sourcen auch an dem .pc-Ordner. Den zu löschen bringt da nichts, da schon gepatcht ist.
Mit einem
quilt pull -a
sollten die wieder resumed werden, aber die andere Methode ist sicherer.
Updates
erfolgen als Debs
Wer auf dem Server + GIT als Entwickler Zugang hat kann Inhalte zum Update direkt hochladen.
Dies geht z.B. so: (Laptop mit Debian Etch)
git clone ssh://username@www.easy-vdr.de:9022/git/lucid
cd /lucid ...
Es kann auch sein das der eine oder der andere Entwickler die selbe Datei ändern will. Dann müßt ihr euch eben kurzschließen. Komunikation ist alles..!
git add * //werden alle geänderten Dateien aufgenommen git commit -m „so ich habe dies und jenes gemacht“ // so werden Kommentare eingefügt git push //jetzt wird alles auf den Server geladen und das update steht zur Verfügung.
Das git clone muß nur einmal gemacht werden.
Um das Verzeichniß auf den neusten Stand zu bringen braucht man nur einzugeben dann wird synchronisiert:
git pull
ISO Erstellen:
Das Alternate ISO wird bevorzugt mit UCK bearbeitet.
Quelle z.B. http://www.easyvdr-forum.de/forum/index.php/topic,11109
Installation von USB-Stick
- Standard-K/Ubuntu-Desktop 10.04 booten (egal ob installiert, oder Live-CD)
- easyVDR 0.9-ISO speichern
- im Menü System - Startup-Diskcreator starten
- easyVDR 0.9-ISO auswählen
- USB-Stick einstecken (Größe >1GB)
- USB-Stick auswählen
- USB-Stick leeren
- Startup-Disk erstellen
- Wenn fertig, Stick entfernen und damit booten
- Einmalig bei Aufforderung CD einzulegen mit Enter bestätigen
Den USB-Creator gibt es in Ubuntu und Kubuntu.
Weitere Infos hier:
Ubuntu CD remastern
Vorbereitung: gpg --list-keys
- uck-remaster-unpack-iso xxxx.iso
- uck-remaster-prepare-alternate
STATUS="testing" PART="vdr" mkdir $PART cd $PART wget -r -nd -A deb http://ppa.launchpad.net/easyvdr-team/$PART-$STATUS/ubuntu/pool/main/ rm *amd64* cd .. PART="base" mkdir $PART cd $PART wget -r -nd -A deb http://ppa.launchpad.net/easyvdr-team/$PART-$STATUS/ubuntu/pool/main/ rm *amd64* cd .. PART="others" mkdir $PART cd $PART wget -r -nd -A deb http://ppa.launchpad.net/easyvdr-team/$PART-$STATUS/ubuntu/pool/main/ rm *amd64* cd ..
- partman-base gegen easyPart tauschen isolinux+preseed "anpassen"
- /u/ubuntu-keyring alte Version löschen
- uck-remaster-finalize-alternate 03EEE71C (mein Server Key)
- Beim ersten Bearbeiten /u/ubuntu-keyring alte version löschen (und dann nochmals "...finalize..."
- uck-remaster-pack-iso -h
Anmerkung: Bei uck wird das Paket ubuntu-keyring als source runtergeladen, der gpg key hinzugefügt und neu erstellt. Wenn dieses z.B. aufgrund fehlender Quellen nicht passieren kann, dann scheitert das spätere Iso mit der Meldung: "Konnte keine Apt-Quelle für Kernel finden"
Preseeding:
https://help.ubuntu.com/11.10/installation-guide/amd64/preseed-contents.html
"XkbLayout" definiert das Tastaturlayout. Also: Option "XkbLayout" "de_DE" => Deutschland
Partman erstellen bzw. verändern
Quellen aus dem Git oder per apt-get source xxx holen
in das Verzeichnis wechseln
Änderungen vornehmen
dpkg-buildpackage
sudo bash apt-get build-dep partman-base apt-get install dpkg-dev cd /usr/local/src apt-get source partman-base #apt-get source partman-utils
Preseeding
echo "debconf-get-selections --installer" > debconf.txt echo "=============== starts here ===================" >> debconf.txt debconf-get-selections --installer >> debconf.txt echo "" >> debconf.txt echo "" >> debconf.txt echo "" >> debconf.txt echo "" >> debconf.txt echo "" >> debconf.txt echo "" >> debconf.txt echo "" >> debconf.txt echo "debconf-get-selections" >> debconf.txt echo "=============== starts here ===================" >> debconf.txt debconf-get-selections >> debconf.txt
Details
Fernbedienungen / Receiver
Infos gibt es hier: 0.9_Remotes