Kategorie:Raspbian VDR Streaming Client yaVDR Pakete
Fauthd (Diskussion | Beiträge) (→Fixed link) |
Fauthd (Diskussion | Beiträge) (→Update des scripts) |
||
Zeile 13: | Zeile 13: | ||
Es gibt noch einige offenen Punkte. Mithilfe ist sehr willkommen. | Es gibt noch einige offenen Punkte. Mithilfe ist sehr willkommen. | ||
* Beim zweiten Compilieren beschwert sich dpkg-buildpackage dass Dateien verändert wurden. Offensichtlich fehlt ein Cleanup. | * Beim zweiten Compilieren beschwert sich dpkg-buildpackage dass Dateien verändert wurden. Offensichtlich fehlt ein Cleanup. | ||
+ | * Es wird nur ein Kern benutzt (DEB_BUILD_OPTIONS wird ignoriert) | ||
* Einige Pakete haben fehlende Abängigkeiten, sind auskommentiert. | * Einige Pakete haben fehlende Abängigkeiten, sind auskommentiert. | ||
* Einige Pakete sind in yaVDR-stable kaputt, sind auskommentiert. | * Einige Pakete sind in yaVDR-stable kaputt, sind auskommentiert. | ||
Zeile 21: | Zeile 22: | ||
==Übersicht== | ==Übersicht== | ||
− | Ein | + | Ein Script holt die Quelltexte, compiliert/paketiert und plaziert die neuen Pakete in einem lokalen apt-repository. |
Damit kann man mittels normalen apt-get Befehlen installieren. | Damit kann man mittels normalen apt-get Befehlen installieren. | ||
Man kann auch alles von Hand machen, aber das war mir zu mühselig. | Man kann auch alles von Hand machen, aber das war mir zu mühselig. | ||
Zeile 37: | Zeile 38: | ||
Mit einem Parameter kann man noch sagen was getan werden soll. | Mit einem Parameter kann man noch sagen was getan werden soll. | ||
− | * kein paramter : macht alles (dauert aber gut 2 Stunden) | + | * kein paramter : macht alles (dauert aber gut 2-3 Stunden) |
* prepare : Nur Vorbereiten | * prepare : Nur Vorbereiten | ||
* core : VDR core bauen | * core : VDR core bauen | ||
Zeile 67: | Zeile 68: | ||
REPO="/var/local/repository" | REPO="/var/local/repository" | ||
sudo mkdir -p $REPO # might return an error if dir exists | sudo mkdir -p $REPO # might return an error if dir exists | ||
+ | |||
+ | # automatically use all CPUs | ||
+ | #export PROCESSORS=`getconf _NPROCESSORS_ONLN` | ||
+ | export DEB_BUILD_OPTIONS="parallel=auto" | ||
prepare() | prepare() | ||
Zeile 94: | Zeile 99: | ||
sudo sh -c 'echo deb [ trusted=yes ] file:///var/local/repository ./ >/etc/apt/sources.list.d/local.list' | sudo sh -c 'echo deb [ trusted=yes ] file:///var/local/repository ./ >/etc/apt/sources.list.d/local.list' | ||
# Ensure there is a package list (even it might be empty yet) | # Ensure there is a package list (even it might be empty yet) | ||
− | + | finalize_repo | |
− | + | ||
− | + | ||
# dependencies | # dependencies | ||
− | sudo apt-get install build-essential libssl-dev libboost-dev libpcre3-dev libmagick++-dev cdbs dpatch quilt libpoco-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libxcb-util0-dev autofs python-ipaddr python3-dbus python3-all python-all libjansson-dev python-sphinx libupnp6-dev libsqlite3-dev libtntdb- | + | sudo apt-get install build-essential libssl-dev libboost-dev libpcre3-dev libmagick++-dev cdbs dpatch quilt libpoco-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libxcb-util0-dev autofs python-ipaddr python3-dbus python3-all python-all libjansson-dev python-sphinx libupnp6-dev libsqlite3-dev libtntdb-dev |
} | } | ||
Zeile 149: | Zeile 152: | ||
core() | core() | ||
{ | { | ||
− | mkdir core | + | mkdir -p core |
pushd core | pushd core | ||
sudo apt-get build-dep $CORE && \ | sudo apt-get build-dep $CORE && \ | ||
Zeile 161: | Zeile 164: | ||
addons() | addons() | ||
{ | { | ||
− | mkdir addons | + | mkdir -p addons |
pushd addons | pushd addons | ||
sudo apt-get build-dep $FONTSLOGOS $LIBS $ADDONS && \ | sudo apt-get build-dep $FONTSLOGOS $LIBS $ADDONS && \ | ||
Zeile 171: | Zeile 174: | ||
plugins() | plugins() | ||
{ | { | ||
− | mkdir plugins | + | mkdir -p plugins |
pushd plugins | pushd plugins | ||
# get sources of library like plugins and build, install since it is required for the next steps | # get sources of library like plugins and build, install since it is required for the next steps | ||
PLUGINS1+="vdr-plugin-skindesigner " | PLUGINS1+="vdr-plugin-skindesigner " | ||
− | PLUGINS1+="vdr-plugin-svdrpservice | + | PLUGINS1+="vdr-plugin-svdrpservice " |
sudo apt-get build-dep $PLUGINS1 && \ | sudo apt-get build-dep $PLUGINS1 && \ | ||
Zeile 190: | Zeile 193: | ||
sd_skins() | sd_skins() | ||
{ | { | ||
− | mkdir sd_skins | + | mkdir -p sd_skins |
pushd sd_skins | pushd sd_skins | ||
− | sudo apt-get build-dep $ | + | sudo apt-get build-dep $SD_SKINS && \ |
apt-get $BUILD source $SD_SKINS | apt-get $BUILD source $SD_SKINS | ||
sudo mv *.deb $REPO | sudo mv *.deb $REPO | ||
Zeile 228: | Zeile 231: | ||
prepare | prepare | ||
core | core | ||
− | + | addons | |
plugins | plugins | ||
sd_skins | sd_skins | ||
Zeile 237: | Zeile 240: | ||
echo "DONE" | echo "DONE" | ||
− | + | ||
==Post-Install Aktionen== | ==Post-Install Aktionen== | ||
Für autostart sollte man /etc/default/vdr editieren und ENABLE=1 setzen. | Für autostart sollte man /etc/default/vdr editieren und ENABLE=1 setzen. |
Version vom 31. Dezember 2015, 20:07 Uhr
Inhaltsverzeichnis |
Einleitung
Diese experimentelle Anleitung beschreibt die Erzeugung von binär Paketen aus den Quelltext-Pakete vom yaVDR-Projekt. Das hat den Vorteil das man sich nicht so sehr um das "drum-herum" wie z.B. Konfigurationsdateien und "Patches" kümmern muss. Diese werden automatisch erstellt.
Trotzdem wendet sich die Anleitung an Leute mit Erfahrung in Linux. Anfänger nehmen besser eine speziell angepasste Distribution.
Voraussetzungen
Einrichtung des Raspberry und Raspian Jessie ähnlich wie dort beschrieben. Lirc oder CEC sollten auch schon eingerichtet sein damit die Fernbedienung gleich funktioniert.
Errata
Es gibt noch einige offenen Punkte. Mithilfe ist sehr willkommen.
- Beim zweiten Compilieren beschwert sich dpkg-buildpackage dass Dateien verändert wurden. Offensichtlich fehlt ein Cleanup.
- Es wird nur ein Kern benutzt (DEB_BUILD_OPTIONS wird ignoriert)
- Einige Pakete haben fehlende Abängigkeiten, sind auskommentiert.
- Einige Pakete sind in yaVDR-stable kaputt, sind auskommentiert.
- Der Script ist noch sehr primitiv und fängt Fehler nicht unbedingt ab.
- Keys sind noch nicht alle eingetragen, so daß sich apt-get source beschwert (nur Warnung).
- Es könnte sein das noch einige Abhängigkeiten fehlen weil sie schon auf meinem Raspian drauf waren.
Übersicht
Ein Script holt die Quelltexte, compiliert/paketiert und plaziert die neuen Pakete in einem lokalen apt-repository. Damit kann man mittels normalen apt-get Befehlen installieren. Man kann auch alles von Hand machen, aber das war mir zu mühselig.
Holen der Quelltexte, Build, Paketerzeugung
Wir verwenden "apt-get source", daher müssen die Quell-URLs eingetragen werden. Das Rpihddevice-plugin ist nicht in yaVDR enthalten, daher holen wir das Paket von e-tobi. Der Script installiert auch gleich einige Abhängigkeiten.
Wir erzeugen einen beliebigen Ordner und arbeiten darin. Beispiel:
mkdir ~/VDR chdir ~/VDR
Nun rufen wir den Script auf:
./getyavdr.sh
Mit einem Parameter kann man noch sagen was getan werden soll.
- kein paramter : macht alles (dauert aber gut 2-3 Stunden)
- prepare : Nur Vorbereiten
- core : VDR core bauen
- plugins : plugins bauen
- addons : addons bauen
- sd_skins : Skin designer skins bauen
Danach kann man normal mit apt-get installieren.
Wegen der vielen Ausgaben ist es besser diese in eine Datei zu schreiben, dann kann man später nachschauen wenn etwas nicht funktioniert hat.
./getyavdr.sh $* 2>&1 | tee get.log
getyavdr.sh
Nun der Script getyavdr.sh (bei Cut/Paste muss das erste Leerzeichen in der Zeile entfernt werden, das ist für die Wikiformatierung). Und nicht vergessen: chmod +x *.sh
#!/bin/bash #set -x # This script tries to create loacl debian packets from source od yaVDR and etobi. # Source are fetched, compiled and packets are created. Then we move them to a loacl repositoy. # Now you can use the normal "sudo apt-get install xxx". # http://www.vdr-wiki.de/wiki/index.php/Kategorie:Raspbian_VDR_Streaming_Client_yaVDR_Pakete # Created by Dieter Fauth, GPL. # We use a local apt repository as described there: # https://wiki.debianforum.de/Lokales_Repository REPO="/var/local/repository" sudo mkdir -p $REPO # might return an error if dir exists # automatically use all CPUs #export PROCESSORS=`getconf _NPROCESSORS_ONLN` export DEB_BUILD_OPTIONS="parallel=auto" prepare() { # add ubuntu keys sudo apt-get install ubuntu-archive-keyring # Ubuntu keys sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 # install the keys for this PPA sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8103B360 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5289F541 # e-tobi key sudo gpg --keyserver keyring.debian.org --recv-keys 041390BC sudo gpg --armor --export 041390BC | sudo apt-key add - # add ppa for sources sudo sh -c 'echo deb-src http://ppa.launchpad.net/yavdr/stable-vdr/ubuntu trusty main >/etc/apt/sources.list.d/yavdr-src.list' sudo sh -c 'echo deb-src http://ppa.launchpad.net/yavdr/main/ubuntu trusty main >>/etc/apt/sources.list.d/yavdr-src.list' sudo sh -c 'echo deb-src http://e-tobi.net/vdr-experimental jessie base vdr-multipatch >/etc/apt/sources.list.d/etobi-src.list' sudo sh -c 'echo deb-src http://de.archive.ubuntu.com/ubuntu trusty main >/etc/apt/sources.list.d/ubuntu-src.list' # Add local repository to apt database sudo sh -c 'echo deb [ trusted=yes ] file:///var/local/repository ./ >/etc/apt/sources.list.d/local.list' # Ensure there is a package list (even it might be empty yet) finalize_repo # dependencies sudo apt-get install build-essential libssl-dev libboost-dev libpcre3-dev libmagick++-dev cdbs dpatch quilt libpoco-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libxcb-util0-dev autofs python-ipaddr python3-dbus python3-all python-all libjansson-dev python-sphinx libupnp6-dev libsqlite3-dev libtntdb-dev } # collect packet names CORE="vdr" PLUGINS+="vdr-plugin-devstatus " PLUGINS+="vdr-plugin-femon " PLUGINS+="vdr-plugin-live " PLUGINS+="vdr-plugin-remoteosd " PLUGINS+="vdr-plugin-remotetimers " PLUGINS+="vdr-plugin-rpihddevice " PLUGINS+="vdr-plugin-skinnopacity " PLUGINS+="vdr-plugin-streamdev " PLUGINS+="vdr-plugin-suspendoutput " PLUGINS+="vdr-plugin-svdrposd " PLUGINS+="vdr-plugin-svdrpservice " PLUGINS+="vdr-plugin-systeminfo " PLUGINS+="vdr-plugin-timersync " #PLUGINS+="vdr-plugin-tvguideng " # Unmet build dependencies: vdr-plugin-skindesigner (>= 0.4.2) (bug in paket) PLUGINS+="vdr-plugin-undelete " #PLUGINS+="vdr-plugin-upnp " # Unmet build dependencies: libupnp6-dev libsqlite3-dev libavcodec-ffmpeg-dev libavformat-ffmpeg-dev libtntdb-dev PLUGINS+="vdr-plugin-vdrmanager " PLUGINS+="vdr-plugin-vnsiserver " #PLUGINS+="vdr-plugin-webvideo " # Unmet build dependencies: txt2man python-all-dev python-central (>= 0.5.6) #PLUGINS+="vdr-plugin-plex " # has Unmet build dependencies: libpoco-dev (>= 1.4.6~), but 1.3.6p1-5 installed #PLUGINS+="vdr-plugin-timeline " # Unmet build dependencies: dh-autoreconf python-sphinx (>= 1.0) #PLUGINS+="vdr-plugin-weatherforecast " # Unmet build dependencies: libjansson-dev vdr-plugin-skindesigner (>= 0.4.2) (bug in paket) SD_SKINS+="skindesigner-skin-blackholefrodo " SD_SKINS+="skindesigner-skin-blackholeperlbo " SD_SKINS+="skindesigner-skin-elchi " SD_SKINS+="skindesigner-skin-glasslike " SD_SKINS+="skindesigner-skin-holo " SD_SKINS+="skindesigner-skin-shady " SD_SKINS+="skindesigner-skin-shady-kiss " SD_SKINS+="skindesigner-skin-stillclassic " SD_SKINS+="skindesigner-skin-tryouts " SD_SKINS+="skindesigner-skin-vectra " ADDONS+="vdr-addon-avahi-linker " FONTSLOGOS="fonts-opensans fonts-vdropensans vdr-skins-speciallogos vdr-xpmlogos fugue-icons silk-icons vdr-enigmang-icons " LIBS="libdbus2vdr python-dbus2vdr vdrctl " BUILD="--compile " # get sources of vdr and build, install the vdr-dev since it is required for the next steps core() { mkdir -p core pushd core sudo apt-get build-dep $CORE && \ apt-get $BUILD source $CORE && \ sudo mv *.deb $REPO && \ finalize_repo && \ sudo apt-get install vdr-dev popd } addons() { mkdir -p addons pushd addons sudo apt-get build-dep $FONTSLOGOS $LIBS $ADDONS && \ apt-get $BUILD source $FONTSLOGOS $LIBS $ADDONS && \ sudo mv *.deb $REPO popd } plugins() { mkdir -p plugins pushd plugins # get sources of library like plugins and build, install since it is required for the next steps PLUGINS1+="vdr-plugin-skindesigner " PLUGINS1+="vdr-plugin-svdrpservice " sudo apt-get build-dep $PLUGINS1 && \ apt-get $BUILD source $PLUGINS1 && \ sudo mv *.deb $REPO && \ finalize_repo && \ sudo apt-get install libskindesignerapi0 libskindesignerapi-dev svdrpservice-dev && \ sudo apt-get build-dep $PLUGINS && \ apt-get $BUILD source $PLUGINS && \ sudo mv *.deb $REPO popd } sd_skins() { mkdir -p sd_skins pushd sd_skins sudo apt-get build-dep $SD_SKINS && \ apt-get $BUILD source $SD_SKINS sudo mv *.deb $REPO popd } # finalize local repo finalize_repo() { pushd $REPO sudo sh -c 'dpkg-scanpackages ./ > Packages && gzip -f Packages' sudo chown root.root * popd sudo apt-get update } case "$1" in addons) addons ;; plugins) plugins ;; sd_skins) sd_skins ;; core) plugins ;; prepare) prepare ;; *) # do all prepare core addons plugins sd_skins ;; esac finalize_repo echo "DONE"
Post-Install Aktionen
Für autostart sollte man /etc/default/vdr editieren und ENABLE=1 setzen. Eventuell sollte man SHUTDOWNCMD= auf einen Script setzen der das gewünschte Ausschaltverhalten erzeugt (gibt vielleicht einen neuen Beitrag).
Mehr Details findet man bei yavdr.
Script Download
Hier im Wiki sind keine .sh extensions möglich, daher sind sie mit .png versehen. Bitte nach dem Download entfernen und "chmod +x *.sh" nicht vergessen.
Wie immer: keine Garantie, Verwendung auf eigenes Risiko.
Download mit Rechtsklick und "save linked contents as" (je nach Browser): Medium:getyavdr.sh.png
Seiten in der Kategorie „Raspbian VDR Streaming Client yaVDR Pakete“
Diese Kategorie enthält folgende Seite: