Best way to install llibdvd-pkg
It seems there are only three ways to install libdvd-pkg (without building by yourself).
* add the debian contrib repository, install via apt
* add ubuntu's multiverse repository, install via apt
* download from videolan
Are there any freedom-wise issues with adding one of the two repositories?
I have downloaded the latest release from videolan, but it seems to require use of the 'Meson build system' which I have no idea of what is or how it works.
In this case I prefer ease, but with minimum freedom issues.
Which way is preferable?
Are there any freedom-wise issues with adding one of the two repositories?
Both include non-free software. We had better not recommend them and, indeed, https://trisquel.info/en/wiki/enable-dvd-playback does not. That manual, with a screenshot of Trisquel 8, would benefit from an update. Would you contribute to it?
"That manual, with a screenshot of Trisquel 8, would benefit from an update. Would you contribute to it?"
I did update the manual some time ago and added a section to compile it yourself from the VLC sources, it takes less than five minutes.
Would you contribute to it?
Yes, but I am not really in the knowing.
Will you help and guide me?
There is not much to know. https://trisquel.info/en/node/1626/edit allows you to update the page and https://trisquel.info/en/filter/tips gives technical tips, but looking at the tags on the current page is certainly enough here.
The one single quality of technical documentation is its clarity: the easiest way (fewer commands, etc.) is the preferred way, short sentences using the active voice and no parentheses are usually better, a good structure (with sections, if needed) helps, emphasizing important words with italics too, the language must be clear before being nice, it should be spell-checked, a picture is often worth a thousand words, etc.
Nevertheless, the most important is to not be afraid to contribute: we lack contributor. Your contribution needs not be perfect and, as long as it is positive, the whole community profits from it! Even if you completely screw the manual up, https://trisquel.info/en/node/1626/revisions allows to easily recover any previous version it. ;-)
I absolutely also need to learn (about) this, how to do the actual editing.
But I was referring to guidance on the content, i.e. the specific way(s) to install libdvd-pkg.
If you (or someone else) will guide me to learn how to actually do the installation, I can update the "Enable DVD Playback" page.
My computer does not have a DVD player. Please try to follow the instruction of the the current manual.
Got it.
Following the manual's first option worked. The version you get is 1.2.13, which appears to work well (source: https://download.videolan.org/pub/debian/stable/).
Nevertheless, according to https://www.videolan.org/developers/libdvdcss.html, the latest verison is 1.5.0.
Also, on https://www.videolan.org/developers/libdvdcss.html, one is guided to get libdvdcss through libdvd-pkg.
What are the implications of this, and how should I regard this in a revision of the guide?
Just stick with how to install version 1.2.13?
The other proposed way, "Install livdvdcss by compiling it", should provide the latest version. If you feel that some of the instructions you follow were unclear or incomplete, you may improve the manual. I have removed Trisquel 8's screenshot. It was in fact useless. Indeed, the lines to append to /etc/apt/sources.list are given before, in a copiable way.
I tried to follow the instructions to compile libdvdcss myself. It failed at this point:
$ meson setup build --prefix=/usr
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 194, in run
return options.run_func(options)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mesonbuild/msetup.py", line 357, in run
app = MesonApp(options)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mesonbuild/msetup.py", line 68, in __init__
(self.source_dir, self.build_dir) = self.validate_dirs()
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mesonbuild/msetup.py", line 148, in validate_dirs
(src_dir, build_dir) = self.validate_core_dirs(self.options.builddir, self.options.sourcedir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mesonbuild/msetup.py", line 121, in validate_core_dirs
os.makedirs(ndir1, exist_ok=True)
File "", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: '/opt/jbw/libdvdcss/build'
ERROR: Unhandled python OSError. This is probably not a Meson bug, but an issue with your build environment.
PermissionError: [Errno 13] Permission denied: '/opt/jbw/libdvdcss/build'
You are not allowed to write in /opt. With root's privileges, you will be:
$ sudo meson setup build --prefix=/usr
The manual page just says:
meson setup build --prefix=/usr
It looks like that part also needs revising.
That did it.
But then the command ninja/bash: ninja/: Ingen sådan fil eller filkatalog ("no such file or file catalogue")
ninja (without the "/") was more effective, though the result seems disappointing:
$ ninja
[1/9] Compiling C object src/libdvdcss.so.2.4.0.p/cpxm.c.o
FAILED: src/libdvdcss.so.2.4.0.p/cpxm.c.o
cc -Isrc/libdvdcss.so.2.4.0.p -Isrc -I../src -I. -I.. -Isrc/dvdcss -I../src/dvdcss -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c17 -O2 -g -D_DEFAULT_SOURCE -fPIC -MD -MQ src/libdvdcss.so.2.4.0.p/cpxm.c.o -MF src/libdvdcss.so.2.4.0.p/cpxm.c.o.d -o src/libdvdcss.so.2.4.0.p/cpxm.c.o -c ../src/cpxm.c
../src/cpxm.c:100:1: fatal error: opening dependency file src/libdvdcss.so.2.4.0.p/cpxm.c.o.d: Adgang nægtet
100 | }
| ^
compilation terminated.
[2/9] Compiling C object src/libdvdcss.so.2.4.0.p/error.c.o
FAILED: src/libdvdcss.so.2.4.0.p/error.c.o
cc -Isrc/libdvdcss.so.2.4.0.p -Isrc -I../src -I. -I.. -Isrc/dvdcss -I../src/dvdcss -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c17 -O2 -g -D_DEFAULT_SOURCE -fPIC -MD -MQ src/libdvdcss.so.2.4.0.p/error.c.o -MF src/libdvdcss.so.2.4.0.p/error.c.o.d -o src/libdvdcss.so.2.4.0.p/error.c.o -c ../src/error.c
../src/error.c:66:1: fatal error: opening dependency file src/libdvdcss.so.2.4.0.p/error.c.o.d: Adgang nægtet
66 | }
| ^
compilation terminated.
[3/9] Compiling C object src/libdvdcss.so.2.4.0.p/device.c.o
FAILED: src/libdvdcss.so.2.4.0.p/device.c.o
cc -Isrc/libdvdcss.so.2.4.0.p -Isrc -I../src -I. -I.. -Isrc/dvdcss -I../src/dvdcss -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c17 -O2 -g -D_DEFAULT_SOURCE -fPIC -MD -MQ src/libdvdcss.so.2.4.0.p/device.c.o -MF src/libdvdcss.so.2.4.0.p/device.c.o.d -o src/libdvdcss.so.2.4.0.p/device.c.o -c ../src/device.c
../src/device.c:844:1: fatal error: opening dependency file src/libdvdcss.so.2.4.0.p/device.c.o.d: Adgang nægtet
844 | }
| ^
compilation terminated.
[4/9] Compiling C object src/libdvdcss.so.2.4.0.p/ioctl.c.o
FAILED: src/libdvdcss.so.2.4.0.p/ioctl.c.o
cc -Isrc/libdvdcss.so.2.4.0.p -Isrc -I../src -I. -I.. -Isrc/dvdcss -I../src/dvdcss -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c17 -O2 -g -D_DEFAULT_SOURCE -fPIC -MD -MQ src/libdvdcss.so.2.4.0.p/ioctl.c.o -MF src/libdvdcss.so.2.4.0.p/ioctl.c.o.d -o src/libdvdcss.so.2.4.0.p/ioctl.c.o -c ../src/ioctl.c
../src/ioctl.c:1567:1: fatal error: opening dependency file src/libdvdcss.so.2.4.0.p/ioctl.c.o.d: Adgang nægtet
1567 | }
| ^
compilation terminated.
[5/9] Compiling C object src/libdvdcss.so.2.4.0.p/libdvdcss.c.o
FAILED: src/libdvdcss.so.2.4.0.p/libdvdcss.c.o
cc -Isrc/libdvdcss.so.2.4.0.p -Isrc -I../src -I. -I.. -Isrc/dvdcss -I../src/dvdcss -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c17 -O2 -g -D_DEFAULT_SOURCE -fPIC -MD -MQ src/libdvdcss.so.2.4.0.p/libdvdcss.c.o -MF src/libdvdcss.so.2.4.0.p/libdvdcss.c.o.d -o src/libdvdcss.so.2.4.0.p/libdvdcss.c.o -c ../src/libdvdcss.c
../src/libdvdcss.c:884:1: fatal error: opening dependency file src/libdvdcss.so.2.4.0.p/libdvdcss.c.o.d: Adgang nægtet
884 | }
| ^
compilation terminated.
[6/9] Compiling C object src/libdvdcss.so.2.4.0.p/libdvdcpxm.c.o
FAILED: src/libdvdcss.so.2.4.0.p/libdvdcpxm.c.o
cc -Isrc/libdvdcss.so.2.4.0.p -Isrc -I../src -I. -I.. -Isrc/dvdcss -I../src/dvdcss -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c17 -O2 -g -D_DEFAULT_SOURCE -fPIC -MD -MQ src/libdvdcss.so.2.4.0.p/libdvdcpxm.c.o -MF src/libdvdcss.so.2.4.0.p/libdvdcpxm.c.o.d -o src/libdvdcss.so.2.4.0.p/libdvdcpxm.c.o -c ../src/libdvdcpxm.c
../src/libdvdcpxm.c:935:1: fatal error: opening dependency file src/libdvdcss.so.2.4.0.p/libdvdcpxm.c.o.d: Adgang nægtet
935 | }
| ^
compilation terminated.
[7/9] Compiling C object src/libdvdcss.so.2.4.0.p/css.c.o
FAILED: src/libdvdcss.so.2.4.0.p/css.c.o
cc -Isrc/libdvdcss.so.2.4.0.p -Isrc -I../src -I. -I.. -Isrc/dvdcss -I../src/dvdcss -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c17 -O2 -g -D_DEFAULT_SOURCE -fPIC -MD -MQ src/libdvdcss.so.2.4.0.p/css.c.o -MF src/libdvdcss.so.2.4.0.p/css.c.o.d -o src/libdvdcss.so.2.4.0.p/css.c.o -c ../src/css.c
../src/css.c:550:32: warning: argument 1 of type ‘uint8_t[5]’ {aka ‘unsigned char[5]’} with mismatched bound [-Warray-parameter=]
550 | int dvdcss_unscramble( dvd_key p_key, uint8_t *p_sec )
| ~~~~~~~~^~~~~
In file included from ../src/css.c:54:
../src/css.h:63:25: note: previously declared as ‘uint8_t *’ {aka ‘unsigned char *’}
63 | int dvdcss_unscramble ( uint8_t *, uint8_t * );
| ^~~~~~~~~
../src/css.c:1685:1: fatal error: opening dependency file src/libdvdcss.so.2.4.0.p/css.c.o.d: Adgang nægtet
1685 | }
| ^
compilation terminated.
ninja: build stopped: subcommand failed.
Since there is a "adgang nægtet" (admission refused), I will try with sudo.
That apparently worked
$ sudo ninja
[7/9] Compiling C object src/libdvdcss.so.2.4.0.p/css.c.o
../src/css.c:550:32: warning: argument 1 of type ‘uint8_t[5]’ {aka ‘unsigned char[5]’} with mismatched bound [-Warray-parameter=]
550 | int dvdcss_unscramble( dvd_key p_key, uint8_t *p_sec )
| ~~~~~~~~^~~~~
In file included from ../src/css.c:54:
../src/css.h:63:25: note: previously declared as ‘uint8_t *’ {aka ‘unsigned char *’}
63 | int dvdcss_unscramble ( uint8_t *, uint8_t * );
| ^~~~~~~~~
[9/9] Linking target src/libdvdcss.so.2.4.0
Though there is a warning: warning: argument 1 of type ‘uint8_t[5]’
Next command to run is meson install/
Without sudo it gave me:
$ meson install/
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 194, in run
return options.run_func(options)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mesonbuild/msetup.py", line 357, in run
app = MesonApp(options)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mesonbuild/msetup.py", line 68, in __init__
(self.source_dir, self.build_dir) = self.validate_dirs()
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mesonbuild/msetup.py", line 148, in validate_dirs
(src_dir, build_dir) = self.validate_core_dirs(self.options.builddir, self.options.sourcedir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mesonbuild/msetup.py", line 121, in validate_core_dirs
os.makedirs(ndir1, exist_ok=True)
File "", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: '/opt/jbw/libdvdcss/build/install'
ERROR: Unhandled python OSError. This is probably not a Meson bug, but an issue with your build environment.
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
WITH sudo it gave me:
$ sudo meson install/
ERROR: Neither source directory 'install/' nor build directory None contain a build file meson.build.
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
I don't that looks too good!!
OK, I tried WITHOUT the "/", and it seems to work much better:
$ sudo meson install
ninja: Entering directory `/opt/jbw/libdvdcss/build'
ninja: no work to do.
Installing src/libdvdcss.so.2.4.0 to /usr/lib/x86_64-linux-gnu
Installing src/libdvdcss.a to /usr/lib/x86_64-linux-gnu
Installing /opt/jbw/libdvdcss/src/dvdcss/dvdcpxm.h to /usr/include/dvdcss
Installing /opt/jbw/libdvdcss/src/dvdcss/dvdcss.h to /usr/include/dvdcss
Installing /opt/jbw/libdvdcss/build/src/dvdcss/version.h to /usr/include/dvdcss
Installing /opt/jbw/libdvdcss/AUTHORS to /usr/share/doc/libdvdcss
Installing /opt/jbw/libdvdcss/COPYING to /usr/share/doc/libdvdcss
Installing /opt/jbw/libdvdcss/NEWS to /usr/share/doc/libdvdcss
Installing /opt/jbw/libdvdcss/README.md to /usr/share/doc/libdvdcss
Installing /opt/jbw/libdvdcss/build/meson-private/libdvdcss.pc to /usr/lib/x86_64-linux-gnu/pkgconfig
Installing symlink pointing to libdvdcss.so.2.4.0 to /usr/lib/x86_64-linux-gnu/libdvdcss.so.2
Installing symlink pointing to libdvdcss.so.2 to /usr/lib/x86_64-linux-gnu/libdvdcss.so
I updated the manual accordingly.
I thought I was supposed to do that (eventually) :-)
But thanks a lot.
The bookworm package for libdvd-pkg will get you version 1.4.3.
https://packages.debian.org/bookworm/all/libdvd-pkg/download
I downloaded the file and opened it with gdebi. It gives me an error (translated from Danish): "Error: Dependency cannot be met; debhelper-compat (= 13)".
The bullseye package is known to work on Trisquel 11. It installs libdvdcss2 v.1.4.2.
https://packages.debian.org/bullseye/all/libdvd-pkg/download
NB: Aramo has debhelper 13.6, which provides debhelper-compat (= 13) so not sure why gdebi says the dependency is not met for the bookworm package. The bullseye package only says debhelper (>= 9).
UPDATE: As it happens, I was able to install the bookworm package with gdebi after installing the bullseye package, also with gdebi. Then it was just too tempting to try and install the forky package, so I now have libdvdcss2 v.1.5.0 liberating archeological DVD-ROMs on Aramo.
I looked but failed (again): Where do I find "the bullseye package"?
By the way, I am on T12!
> Where do I find "the bullseye package"?
Following the link from my previous message. You can download it and install it with gdebi, the same way you tried earlier with the bookworm package.
What worked for me on Aramo was to install the bullseye package first, then download and install the bookworm package and finally download and install the forky package. You can find them on their respective download page and open them with gdebi:
https://packages.debian.org/bullseye/all/libdvd-pkg/download
https://packages.debian.org/bookworm/all/libdvd-pkg/download
https://packages.debian.org/forky/all/libdvd-pkg/download
We'll see how that works on Ecne, but Aramo is still going to be around for some time so the documentation should first be updated for Trisquel 11 Aramo.
OK.
Just successfully installed the bullseye and bookworm packages, but for some reason your link to the forky packages gives me a
Error 503 No healthy backends
No healthy backends
Error 54113
Details: cache-cph2320054-CPH 1770411365 1938016929
Varnish cache server
But even https://packages.debian.org/forky/ gives that response
I'll try again tomorrow (it's 10 pm here in Denmark - good night).
I have also been getting that error today, it is not specific to forky. Reloading the page eventually worked.
Here is the direct download link to the Danish mirror:
http://ftp.dk.debian.org/debian/pool/contrib/libd/libdvd-pkg/libdvd-pkg_1.5.0-1-1_all.deb
Partial success. Thanks.
The link works, and Gdebi installs the package.
But dpkg -l | grep libdvdcss stil gives me:
ii libdvdcss-dev:amd64 1.4.2-1~local amd64 library for accessing encrypted DVDs - development files
ii libdvdcss2:amd64 1.4.2-1~local amd64 library for accessing encrypted DVDs
Even after I logged out and in and re-installed the package...
Gdebi tells you to run dpkg-reconfigure libdvd-pkg at some point, but you need to click on "Terminal" in order to see the terminal output.
Anyway, icarolongo's method installs all the dependencies of the latest version at once and does not require gdebi, so it is probably the recommended way.
I will try icarolongo's method then.
> I now have libdvdcss2 v.1.5.0 liberating archeological DVD-ROMs on Aramo.
Are you using handbrake? And does it work?
Yes, it did create a single file with the requested video and audio quality.
However:
- I have not tried with subtitles
- I am using Handbrake 1.5.1
That advice is actually incorrect, because to install a piece of free software, you simply have to do it.
There are several ways to install libdvd-pkg. It is even the title of this thread.
That doesn't necessitate behaving in any other way shape or form, such as impacting the entire trisquel distribution and all of it's users, (or their 'freedom')
I have never written that adding a repository with proprietary software impacts "the entire trisquel distribution and all of it's users". Anybody doing so on her system loses one of Trisquel's main benefit though: being able to carelessly install anything the package manager proposes without risking to fall into the injustice of proprietary software.
These looping nonsensical 'discussions' are really typical here on trisquel forums
I have noticed here quite a lot of nonsensical discussions during the past ten days. Monologues rather than discussions, actually.
if anyone is seeking real freedom, they should avoid what has become a honeypot for it's destruction.(trisquel.info)
You seek "real freedom", don't you? Why don't you avoid trisquel.info?
--
Magic Banana, archaeologist bot on trisquel.info since 2010
> Which way is preferable?
You can install the bookworm package on Aramo with gdebi. This still means going off-repo, but involves no known software freedom restriction.
> That manual, with a screenshot of Trisquel 8, would benefit from an update.
Indeed. In fact, it looks like it could do with a full rewrite. I suggest using this thread as a discussion page for that purpose, if GNUbahn has no objection to hosting our little documentation assemblage.
I have absolutely no objections to that.
Also, as encouraged by Magic Banana, I would like to contribute, but that requires some guidance.
My main concern is if our efforts will be distracted by anti-trisquel trolling...
I still have not solved this.
I read somewhere (forgot the ref) that downgrading to handbrake version 1.3.3 might help. I tried that, but now I do not get clear images - they are blurred, rough pixeled and weird/surreal.
So far the best output was with the latest version of handbrake (whether from the repo in T11/aramo or T12/ecne, or via flatpak) + libdvdcss2 version 1.2.13.
But in those combinations, subtitles are badly synced and often lay on top of each other.
Hopefully, I will once find a way to install libdvdcss2 version. 1.5.0...
Now, if I have actually succeeded to build and install the latest version of libdvdcss, how would I know?
And "where" will it be installed?
How will an app, e.g. handbrake, know that it is installed and get to use it?
I learned that I can check it with this command: dpkg -l | grep libdvdcss
It tells me that the installed version of libdvdcss is version 1.2.13-0.
Hence, going through the process of building etc has either
a) not worked
or
b) did not give me the latest version, which should be version 1.5.0
If you want to know where it is installed you can use this command:
dpkg -L libdvdcss
Also you don't need grep to see if the package is installed.
dpkg -l libdvdcss
I don't know what handbrake does to find it, but it should be able to if you installed the version in the repository I would think, if not you may need the version from Debian.
Yes, you need to grep libdvdcss if you want to filter it out from the dpkg output. The installed package is called libdvdcss2, so that one will indeed show without grep.
Using the install method described above (with gdebi), I am currently getting the following output:
$ dpkg -l | grep libdvdcss ii libdvdcss-dev:amd64 1.5.0-1~local amd64 library for accessing encrypted DVDs - development files ii libdvdcss2:amd64 1.5.0-1~local amd64 library for accessing encrypted DVDs
IGNORE: Sorry, I am a bit confused: Which install method?
I had missed your post.
PS: Can I strike through text here?
The markdown method of '~~' before and after does not seem to work.
You should be able to strike out text with the < strike > tag.
Testing.
IGNORE: Sorry, I am a bit confused: Which install method?
SUCCESS
The best way to install libdvd-pkg with the latest version (1.5.0):
sudo apt update && sudo apt install build-essential debhelper meson ninja-build python3-setuptools -y && wget https://ftp.debian.org/debian/pool/contrib/libd/libdvd-pkg/libdvd-pkg_1.5.0-1-1_all.deb && sudo dpkg -i libdvd-pkg_1.5.0-1-1_all.deb && sudo dpkg-reconfigure libdvd-pkg
I tried on a fresh virtual machine with Trisquel 11 Aramo and Trisquel 12 Ecne.
And it works!
Thanks, that is very convenient.
I am uncertain though: Are all packages in contrib free software?

