|
Umbau von VDR Plug-ins für VDRdevel |
|
|
Wie bäckt man sich am besten Plug-ins für VDRdevel-1.3.x,
dem Entwickler-Paket der
c't-Tobi-VDR-Distribution von
Klaus Schmidingers Video Disk Recorder
(VDR)?
Achtung!
Diese Anleitung ist nicht mehr aktuell.
Sie beschreibt den Stand der Entwicklung von VDRdevel-1.3.x,
als die ersten Plug-ins dafür angepasst wurden.
Ab VDRdevel-1.5.0 erfolgt der Umbau von VDR zu VDRdevel
nicht mehr durch den Patch
95_vdrdevel.dpatch,
sondern durch das Shell-Skript
make-special-vdr.sh.
Dadurch werden die Binärpakete eines Plug-ins
für VDR und VDRdevel aus demselben Sourcepaket erzeugt.
Der Vorteil ist,
dass das VDR-Plug-in nur noch einmal debianisiert werden muss.
Dies ist inzwischen durch das Skript debianize-vdrplugin
wesentlich einfacher geworden (siehe
Tobis Beschreibung).
|
- ein VDR Plug-in Paket vdr-plugin-NAME-X.Y.Z
- einen Patch zur Anpassung an vdr-1.3.x (falls notwendig)
- einen Texteditor
- dpatch, perl und 95_vdrdevel.dpatch
- Debian-Paketverwaltungswerkzeuge
- und ein wenig Sorgfalt ;-)
vdr-plugin-NAME-X.Y.Z ist das Plug-in-Paket für vdr-1.2.6,
die stabile Version der c't-Tobi-VDR-Distribution.
NAME ist der Name des Plug-ins (z.B. osdteletext) und
X.Y.Z ist die Versionsnummer des Plug-ins (z.B. 0.3.2).
Die Source-Einträge (deb-src) von c't bzw. Tobi müssen in
/etc/apt/sources.list stehen - siehe
Tobis Anleitung.
Falls der Quellcode des Plug-ins noch nicht an vdr-1.3.x angepasst ist,
wird ein entsprechender Patch benötigt.
Solche Patches findet man z.B. im
VDR-Portal.
Der Name des Patches ist meist NAME-X.Y.Z-1.3.7.diff
(z.B. osdteletext-0.3.2-1.3.7.diff).
Statt 1.3.7 könnten auch andere VDR-Versionsnummern auftauchen.
95_vdrdevel.dpatch ist das Kernstück des Umbaus von VDR zu VDRdevel.
Es ist ein Skript, das die notwendigen Konvertierungen vornimmt.
Es ersetzt vdr durch vdrdevel:
- in den Includes aller Quell-Dateien
- im Inhalt fast aller Dateien im Verzeichnis debian
- in den Namen aller Dateien im Verzeichnis debian
Hinweise zur Handhabung der Debian-Paketverwaltungswerkzeuge finden sich bei
Tobi
und im
Debian-Manual.
Als Vorlage können die bereits fertig umgebauten Plug-ins dienen,
die sich
hier auf der Website
befinden.
Zusätzlich zu
Tobis Einträgen
muss dazu folgendes in der sources.list stehen:
- deb http://toms-cafe.de vdrdevel/
- deb-src http://toms-cafe.de vdrdevel/
Nun kann's los gehen.
1. VDR Plug-in NAME-X.Y.Z von c't/Tobi runterladen und umbenennen
|
- apt-get source vdr-plugin-NAME
-
mv vdr-plugin-NAME_X.Y.Z.orig.tar.gz
vdrdevel-plugin-NAME_X.Y.Z.orig.tar.gz
-
mv vdr-plugin-NAME-X.Y.Z
vdrdevel-plugin-NAME-X.Y.Z
2. Umstellung auf dh_install (falls noch nicht geschehen)
|
-
rules
- dh_install im Abschnitt install einbauen
- mkdir, cp, install u.ä. löschen
- dh_install* ohne Parameter (Ausnahme: dh_installchangelogs HISTORY)
- *dirs
- *install
- *links
- *docs
- *examples
3. control, changelog, rules manuell anpassen
|
-
control
-
changelog
- dch -i "vdr -> vdrdevel"
- 1. Zeile: vdr -> vdrdevel
-
rules
-
VDR=vdrdevel
PACKAGE=$(VDR)-plugin-NAME
VDRDIR=/usr/include/$(VDR)
- $(MAKE) all DVBDIR=$(VDRDIR) VDRDIR=$(VDRDIR) LIBDIR=.
-
cat $(VDRDIR)/patchlevel >> debian/$(PACKAGE).substvars
4. Umstellung auf dpatch (falls noch nicht geschehen)
|
-
rules
- include /usr/share/dpatch/dpatch.make
- build-stamp: patch-stamp ...
-
clean: clean1 unpatch
clean1:
- .PHONY: ... clean1 patch unpatch
-
control
- Build-Depends: ..., dpatch
-
patches/00list
- 91_NAME-X.Y.Z-1.3.7
- 95_vdrdevel
-
91_NAME-X.Y.Z-1.3.7.dpatch (falls notwendig)
-
95_vdrdevel.dpatch
-
control
6. Paket backen und vorkosten |
- fakeroot dpkg-buildpackage -tc -uc -us
-
dpkg --install vdrdevel-plugin-NAME-X.Y.Z-D_i386.deb
(D = Debian-Versionsnummer aus changelog)
- Test
Wenn das neue Plug-in gut durchgetestet ist,
könnt ihr auch den Rest der Welt kosten lassen,
indem ihr es auf eure Website stellt oder im
VDR-Portal
postet.
Oder ihr schickt mir das Source-Paket,
dann bringe ich das Plug-in zu
seinesgleichen,
wo es sich wohl fühlt. ;-)
Zum Source-Paket gehören folgende Dateien:
- vdrdevel-plugin-NAME_X.Y.Z-D.dsc
- vdrdevel-plugin-NAME_X.Y.Z-D.diff.gz
- vdrdevel-plugin-NAME_X.Y.Z.orig.tar.gz
Um die von mir hochgeladenen neuen Pakete zu verwenden,
muss folgendes in die sources.list eingetragen werden:
- deb http://toms-cafe.de vdrdevel/
- deb-src http://toms-cafe.de vdrdevel/
Gutes Gelingen und wohl bekomm's!
Logbuch des VDRdevel-Patches |
2004-06-12:
Version 0.0.0.1
2004-06-14:
Version 0.0.0.2
- Umbenennen von Dateien eingebaut
- Anpassungen für das Plug-in mp3
2004-06-16:
Version 0.0.0.3
- Anpassungen für das Plug-in osdpip
- Beschreibung im Dateikopf präzisiert
2004-06-17:
Version 0.0.0.4
- Anpassungen für das Plug-in osdteletext
2004-06-18:
Version 0.0.1
- Anpassungen für das Plug-in text2skin
2004-06-25:
Version 0.0.2
- Anpassungen für das Plug-in analogtv
2004-07-03:
Version 0.0.3
- Anpassungen für das Plug-in bitstreamout
2004-09-08:
Version 0.0.4
- Anpassungen an neue Verzeichnisstruktur (/opt nicht mehr verwendet)
- Zusammenfassung der Behandlung von -patch und -unpatch
- Ausführung des Patches nur in VDRdevel-Paketen
- Anpassungen für das Plug-in games
2004-09-18:
Version 0.0.5
-
Ersetzungen auch in Unterverzeichnissen von debian
(außer patches und patched)
- Ersetzungen mit sed statt perl
- Datumsstempel der Dateien nicht verändern
2005-01-11:
Version 0.0.6
- Anpassungen für das Plug-in vdrcd
- Anpassungen für das Plug-in dvdselect
2005-01-21:
Version 0.0.7
- Anpassungen für das Plug-in epgsearch
2005-02-01:
Version 0.0.8
- Temporäre Dateien mit mktemp erzeugen
- Temporäre Dateien zum Schluß wieder löschen
2005-05-29:
Version 0.0.9
- Besitzer und Zugriffsrechte der Dateien nicht verändern
- Anpassungen für das Plug-in xxvautotimer
2005-06-04:
Version 0.1.0
-
Fehler beim Kopieren zur temporären Datei beseitigt
(falls Datei im Upstream-Paket schreibgeschützt)
2005-07-01:
Version 0.1.1
- Anpassungen für neue Version von ctvdrinfo
2005-09-01:
Version 0.1.2
- Keine Ersetzungen in plugin-template
2005-09-09:
Version 0.1.3
- Anpassungen für das Plug-in svdrpdemo
2005-09-29:
Version 0.1.4
-
Fehlerbehebung für die Demo-Plug-ins
(keine Ersetzungen in PLUGINS/src)
Logbuch des Shell-Skripts make-special-vdr.sh
|
2007-01-13:
Version 0.2
- VDRdevel-Patch konvertiert zu make-special-vdr.sh
2007-01-24:
Version 0.3
- Erkennung von *.vdr-Dateien im Plug-in burn korrigiert
2007-02-11:
Version 0.4
-
Aktualisierung von prepare_vompserver für das neue vompserver 0.2.6
- Fehlerbehebung in prepare_vdrc
- Skript bei Fehlern sofort beenden
2007-02-27:
Version 0.5
-
Aktualisierung von prepare_graphtft für das neue graphtft 0.0.16
2007-06-27:
Version 0.6
- Fehlerbehebung in prepare_xineliboutput
-
prepare_burn hinzugefügt,
um Backgrounds vom Standard-Paket zu verwenden
- Ersetzungen für debianize-vdrplugin in prepare_vdr korrigiert
- Erkennung von *.vdr-Dateien im Plug-in vompserver korrigiert
2008-02-10:
Version 0.7
-
Aktualisierung von prepare_text2skin,
um Skin-Locales von den Standard-Paketen zu verwenden
-
Ersetzung für die Empfehlung von vdr-skins in prepare_text2skin
hinzugefügt
-
Dokumentationsdateien (README usw.) von den Ersetzungen ausschließen
- Zugriffsrechte, Besitzer und Datumsstempel nicht verändern
2008-03-24:
Version 0.8
-
Aktualisierung von prepare_sudoku und prepare_wapd für das
cdbs-Build-System
- prepare_osdteletext hinzugefügt (keine Ersetzungen in README)
-
Aktualisierung der Ersetzungen für das Plug-in-Debianisierungs-Script in
prepare_vdr
2008-04-16:
Version 0.9
- Aktualisierung von prepare_softdevice für das cdbs-Build-System
-
Version von vdr-dev statt vdrdevel-dev im Plug-in-Debianisierungs-Script
verwenden
2009-04-19:
Version 1.0
-
Verwendung von 'at' ersetzt durch
'nohupc -c "(command)" >/dev/null 2>&1 &'
- Anpassung des Skripts patchcheck zu prepare_vdr hinzugefügt
- Ersetzung von svdrpdemo in debian/rules korrigiert
- Link für S91.lifeguard zu prepare_vdr hinzugefügt
- Aktualisierung von prepare_sudoku für das neue sudoku 0.3.3
- Aktualisierung von prepare_muggle für das neue muggle 0.2.1
- Aktualisierung von prepare_graphtft für das neue graphtft 0.2.2
-
Aktualisierung von prepare_osdteletext für das neue osdteletext 0.8.1
-
Changelog-Dateien (HISTORY usw.) von den Ersetzungen ausschließen
- prepare_surfer hinzugefügt, um alte Plug-in-Datei zu entfernen
- Übersetzungsfehler beim Plug-in xxvautotimer behoben
-
Aktualisierung von prepare_xineliboutput für den neuen CVS-Snapshot
xineliboutput 1.0.4+cvs20090419
2009-05-04:
Version 1.1
- Verwendung von MAKE_SPECIAL_VDR nur für Plug-in-Pakete
- Neuere Version von make-special-vdr.sh des Spezial-Pakets aufrufen
-
Konflikte zu alten Spezial-Paketen für die Plug-ins vdrc,
vdrcd und vdrrip entfernt
2009-06-07:
Version 1.2
- Aktualisierung von prepare_text2skin
- Fehlerbehebung in prepare_muggle
- prepare_alcd hinzugefügt für das neue alcd 1.5.0
2009-08-27:
Version 1.3
-
Umbennennung der Plug-ins vdrc, vdrcd, vdrrip, svdrpext und svdrpservice
verhindert
(korrigiert Remote-Aufruf des Plug-ins svdrpext vom Plug-in remotetimers aus)
- prepare_mediamvp entfernt (Plug-in veraltet)
-
prepare_osdteletext und anderen Code für alte Plug-in-Versionen entfernt
- prepare_webvideo hinzugefügt
2009-11-02:
Version 1.4
- Umbenennung von make-special-vdr.sh in make-special-vdr
-
Gebrauch von make-special-vdr geändert durch Verwendung der Option -R
von dpkg-builpackage usw.
(Source-Paket-Anpassung nicht mehr nötig)
- Behandlung von MAKE_SPECIAL_VDR entfernt
- Suche nach neuerer Skript-Version entfernt
- "devel" als Standard-Wert von SPECIAL_VDR_SUFFIX hinzugefügt
- Aktualisierung von prepare_common für das neue Plug-in svdrposd
-
Aktualisierung von prepare_common für das neue eigenständige
Hilfsprogramm vdr-markad
2010-01-07:
Version 1.5
(Tobias Grimm)
-
Aktualisierung für vdr-plugin-xine 0.9.3-1
(xineplayer entfernen -> kann vom Standard-Paket verwendet werden)
2010-01-07:
Version 1.6
(Tobias Grimm)
- Fehlerbehebung bei der Unterstützung von vdr-plugin-xine
2010-01-08:
Version 1.7
(Tobias Grimm)
-
Fehlerbehebung bei der Unterstützung von vdr-plugin-xine
(Abhängigkeit zu libxine1-vdr)
2010-01-11:
Version 1.8
- Aktualisierung von prepare_graphtft
2010-01-24:
Version 1.9
- Aktualisierung von prepare_webvideo für das neue webvideo 0.2.0
- Aktualisierung von prepare_xineliboutput