DVDs in Fedora ansehen
Letzte Woche wollte ich zu den Feiertagen eine gute alte DVD ansehen. Leider bin ich wieder einmal angestanden, da der letzte DVD-Abend schon länger als die letzte Fedora-Installation her ist. Diesmal löse ich das Problem ein für alle mal und vor allem auch sauber mit fpm!
Hintergrund
Um unter Linux gekaufte DVDs ansehen zu können wird eine eigene Applikation/Bibliothek benötigt und zwar libdvdcss. Diese Applikation umgeht den Kopierschutz um die DVD lesen zu können. Die Umgehung des Kopierschutzes ist allerdings ein patentrechtlich geschützter Algorithmus. Dieser Umstand hatte dazu geführt, dass die meisten Distributionen (inkl. Fedora und Debian) die Applikation nicht offiziell als Paket anbieten. Ärgerlich, insbesondere für Linux-Neulinge.
Distanzierung
Wenngleich ich das Urheberrecht und auch Patente als ein Meme befinde, bin ich mir sehr wohl über die ernsten Folgen von deren Bruch bewusst. Deshalb distanziere ich mich klarerweise von jeder kriminellen Nutzung von libdvdcss und beschränke mich rein darauf wie man selbst gekaufte DVDs unter Linux ansehen kann.
libdvdcss in Debian installieren
Obwohl Debian libdvdcss nicht offiziell anbietet kann es dort sehr einfach installiert werden, denn deb-multimedia bietet das Paket an. Wer der dortigen Installationsanleitung für das Repository folgt und danach ein apt install lidvdcss
absetzt hat das Problem bereits gelöst.
libdvdcss in Fedora installieren
livna
Die einfache Option ist die Installation über das Repository von livna.
Es gibt allerdings zwei Probleme:
- Zum Datum der Erstellung dieses Blog-Eintrags bietet livna nur libdvdcss 1.4.0 (vom 2015-12-16) an. Die aktuelle ist 1.4.3 (vom 2019-10-13).
- Ich hab nirgendwo eine offizielle Aussage über den verwendeten GPG Schlüssel von livna gefunden. Da das Repository kein HTTPS anbietet, ist das auf jeden Fall ein Sicherheitsrisiko.
Manuell
Die schwierige Option ist die Kompilierung der aktuellsten libdvdcss Version und die Erstellung eines Pakets daraus. Dafür werden zwei Verzeichnisse benötigt: ~/wurzel
und ~/libdvdcss
.
Vorbereitungen
Bevor man überhaupt irgendwas machen kann müssen die Abhängigkeiten zur Kompilierung installiert werden:
sudo dnf install -y git gcc make autoconf automake libtool
Danach können die Abhängigkeiten zur Paketerstellung installiert werden. Bitte dafür den Installationsteil dieses Blog-Eintrags befolgen.
Kompilierung
Um den aktuellsten Quellcode von libdvdcss zu bekommen kann folgendes Kommando abgesetzt werden:
git clone https://code.videolan.org/videolan/libdvdcss.git ~/libdvdcss
Nun mit Hilfe von git zum Commit der letzten Version wechseln:
cd ~/libdvdcss
git checkout $(git tag | grep v -v | tail -n 1)
Endlich kann man kompilieren (und installieren):
mkdir -p ~/wurzel/usr
autoreconf -i
./configure --prefix=$HOME/wurzel/usr
make
make install
Paket erstellen
Die installierten Dateien liegen in ~/wurzel
bereit. Wichtig: das Paket hat eine Abhängigkeit auf libdvdread, da diese Applikation/Bibliothek libdvdcss in VLC und andere Video-Spieler einbindet. Somit bringt libdvdcss ohne libdvdread nichts.
Wenn das Zielsystem für das Paket eine x64 Maschine ist, dann muss
- die Kompilierung natürlich auch für x64 durchgeführt werden
- das Kommando
mv ~/wurzel/usr/lib ~/wurzel/usr/lib64
nach der Installation abgesetzt werden, damit die installierten Bibliotheken verwendet werden können.
Das Paket kann mit dem folgenden Kommandos erstellt werden:
cd ~/wurzel
fpm -s dir -t rpm -n libdvdcss -v $(cd ~/libdvdcss && git tag | grep v -v | tail -n 1) -d libdvdread usr
Das Paket wurde in ~/wurzel
erstellt und kann nun am System mit dnf install
installiert werden!