0.9 Entwicklung

Aus EasyVDR Wiki
Wechseln zu: Navigation, Suche


Inhaltsverzeichnis

Allgemeines

Diese Seite ist Bestandteil der internen Seiten.

Die Dokumentation für Enduser findet sich hier.


Basisinformationen


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:

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:

wiki.ubuntuusers.de/Live-USB

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

Links

DKMS