TLDR: time is money. buy a bluray player. unless you are masochist, or call yourself a 'scholar', dont try this at home. i have a good excuse. this is what i do.
https://forums.linuxmint.com/viewtopic.php?t=420075
[SOLVED] VLC can't read Blu-ray (libaacs installed and KEYDB.cfg done)(2024)
"Kodi doesn't read Bluray by default. Anyway I tried putting the config file in /etc/xdg/aacs and it worked? It's really strange but I'm glad it fixed, although VLC just got an update so maybe something was fixed idk. Thanks for the help!"
"In case it helps anyone else, VLC was giving me the "Missing AACS configuration file!" error. After following all of the steps, putting "KEYDB.cfg" in
~/.config/aacs/
kept giving me the same error. Looking at VLC Messages and with some trial & error, I found that putting "KEYDB.cfg" in
~/.var/app/org.videolan.VLC/config/aacs/
made VLC work with blurays for me (I had to create that folder). I don't need to open MakeMKV; I am able to right-click the bluray disc icon on the desktop and select Open with VLC, and it plays fine now. I'm on Linux Mint 21.3 (Ubuntu 22.04)."
let me try the easier one first ~/.var/app/org.videolan.VLC/config/aacs/
/home/trygve/.var/app/org.videolan.VLC/config/aacs/
still no
try /home/trygve/.var/app/org.videolan.VLC/.config/aacs/
still no
ok try other method: /etc/xdg/aacs
new terminal
$ cd ..
$ cd ..
$ cd etc
$ cd xdg
$ sudo mkdir aacs
$ sudo mkdir /etc/xdg/aacs
success
$ sudo cp /home/trygve/Documents/2025/blu-ray-stuff/keydb.cfg /etc/xdg/aacs/keydb.cfg
still the same:
"Blu-ray error:
This Blu-ray Disc needs a library for AACS decoding, and your system does not have it.
Your input can't be opened:
VLC is unable to open the MRL 'bluray:///dev/sr1'. Check the log for details."
$ sudo rm -r /etc/xdg/aacs
delete the other one too.
neither solution helped.
it looks like libaacs is installed in /usr/local
googling libaacs vlc Blu-ray error /usr/local/lib /user/local/bin
looks like my problem
https://www.reddit.com/r/linux4noobs/comments/1ke5ysq/how_to_get_vlc_media_player_to_play_blurays/
actually i think i saw this already
idea filesystem search "vlc" and try existing folders:
/home/trygve/.config/vlc/
no
/etc/skel/.config/vlc/
not going to bother
/home/trygve/.local/share/vlc/
not going to bother
https://askubuntu.com/questions/140080/playing-blu-ray-using-vlc
Playing Blu-ray using VLC
"""
sudo add-apt-repository ppa:n-muench/vlc
sudo apt-get update
sudo apt-get install libaacs0 libbluray-bdj libbluray1
sudo apt-get dist-upgrade
That will only get blu-ray to work in VLC. We now need aacs folders, and to download the keys. We just enter a couple more commands into terminal.
cd ~/
mkdir -p ~/.config/aacs/
cd ~/.config/aacs/ && wget http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg
You should be all set now, enjoy your blu-ray movies!
All information and alternative methods can be found here.
http://video-player-software.blogspot.com/2012/10/how-to-enable-blu-ray-playback-in-vlc.html
"""
perhaps i also need to install libbluray(this was sort of mentioned in a reddit comment):
https://www.videolan.org/developers/libbluray.html
so hard to find vlc archive page:
http://ftp.videolan.org/pub/
looks like latest version of libbluray(1.4.0) requires Meson Build System:
https://mesonbuild.com/
libbluray-1.3.1 appears to use the old familiar configure and makefile
funny i just learned shift+ctrl+v for paste in term. it's nice to finally know, but why it has to be complicated?
./configure
checking for pkg-config... no
checking for LIBXML2... no
configure: error: in `/home/trygve/Documents/2025/blu-ray-stuff/libbluray-1.3.1':
configure: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables LIBXML2_CFLAGS
and LIBXML2_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see .
See `config.log' for more details
$ man pkg-config
No manual entry for pkg-config
...checking PATH in the build config.log:
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/local/games
PATH: /usr/games
PATH: /sbin
PATH: /usr/sbin
...is that all good?
...is pkg-config is not installed
...file-system search for "pkg-config":
/usr/lib/python2.7/dist-packages/numpy/core/lib/npy-pkg-config/
/usr/share/bash-completion/completions/pkg-config
/usr/share/lintian/data/files/pkg-config-bad-regex
...only 3 entries.
...i guess it is not installed then
$ apt search '(pkg-config)'
$ apt show pkg-config
Package: pkg-config
Version: 0.29-6
Priority: optional
Section: devel
Maintainer: Tollef Fog Heen
Installed-Size: 208 kB
Depends: libc6 (>= 2.14), libglib2.0-0 (>= 2.16.0), libdpkg-perl
Suggests: dpkg-dev
Conflicts: pkg-config-bin
Replaces: pkg-config-bin
Homepage: http://pkg-config.freedesktop.org
Tag: admin::configuring, devel::buildtools, interface::commandline,
role::program, scope::utility
Download-Size: 63.5 kB
APT-Sources: http://deb.debian.org/debian buster/main amd64 Packages
Description: manage compile and link flags for libraries
pkg-config is a system for managing library compile and link flags that
works with automake and autoconf.
.
Increasingly libraries ship with ".pc" files that allow querying of the
compiler and linker flags needed to use them through the pkg-config(1)
program.
$ sudo apt install pkg-config
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
pkg-config
0 upgraded, 1 newly installed, 0 to remove and 196 not upgraded.
Need to get 63.5 kB of archives.
After this operation, 208 kB of additional disk space will be used.
Err:1 http://deb.debian.org/debian buster/main amd64 pkg-config amd64 0.29-6
404 Not Found [IP: 2a04:4e42::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/p/pkg-config/pkg-config_0.29-6_amd64.deb 404 Not Found [IP: 2a04:4e42::644 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
too bad, apt crapped out on me again!
from https://www.freedesktop.org/wiki/Software/pkg-config/
https://pkgconfig.freedesktop.org/releases/
cd /home/trygve/Documents/2025/blu-ray-stuff/pkg-config-0.29.2/
./configure
checking whether to list both direct and indirect dependencies... no
checking for Win32... no
checking if prefix should be redefined at runtime... no
checking if internal glib should be used... no
checking for pkg-config... no
checking for glib-2.0 >= 2.16... no
configure: error: Either a previously installed pkg-config or "glib-2.0 >= 2.16" could not be found. Please set GLIB_CFLAGS and GLIB_LIBS to the correct values or pass --with-internal-glib to configure to use the bundled copy.
$ apt search --names-only 'glib'
...there are alot of options. not sure which one to pick. libglib2.0-0? who says apt will even work at this point.
$ apt show libglib2.0-0
Package: libglib2.0-0
Version: 2.58.3-2+deb10u3
Priority: optional
Section: libs
Source: glib2.0
Maintainer: Debian GNOME Maintainers
Installed-Size: 3,829 kB
Depends: libc6 (>= 2.28), libffi6 (>= 3.0.4), libmount1 (>= 2.28), libpcre3, libselinux1 (>= 1.32), zlib1g (>= 1:1.2.2)
Recommends: libglib2.0-data, shared-mime-info, xdg-user-dirs
Homepage: http://www.gtk.org/
Tag: role::shared-lib
Download-Size: 1,259 kB
APT-Sources: http://deb.debian.org/debian buster/main amd64 Packages
Description: GLib library of C routines
GLib is a library containing many useful C routines for things such
as trees, hashes, lists, and strings. It is a useful general-purpose
C library used by projects such as GTK+, GIMP, and GNOME.
.
This package contains the shared libraries.
N: There is 1 additional record. Please use the '-a' switch to see it
$ apt show libglib2.0-0 -a
Package: libglib2.0-0
Version: 2.58.3-2+deb10u3
Priority: optional
Section: libs
Source: glib2.0
Maintainer: Debian GNOME Maintainers
Installed-Size: 3,829 kB
Depends: libc6 (>= 2.28), libffi6 (>= 3.0.4), libmount1 (>= 2.28), libpcre3, libselinux1 (>= 1.32), zlib1g (>= 1:1.2.2)
Recommends: libglib2.0-data, shared-mime-info, xdg-user-dirs
Homepage: http://www.gtk.org/
Tag: role::shared-lib
Download-Size: 1,259 kB
APT-Sources: http://deb.debian.org/debian buster/main amd64 Packages
Description: GLib library of C routines
GLib is a library containing many useful C routines for things such
as trees, hashes, lists, and strings. It is a useful general-purpose
C library used by projects such as GTK+, GIMP, and GNOME.
.
This package contains the shared libraries.
Package: libglib2.0-0
Version: 2.58.3-2+deb10u2
Status: install ok installed
Priority: optional
Section: libs
Source: glib2.0
Maintainer: Debian GNOME Maintainers
Installed-Size: 3,824 kB
Depends: libc6 (>= 2.28), libffi6 (>= 3.0.4), libmount1 (>= 2.28), libpcre3, libselinux1 (>= 1.32), zlib1g (>= 1:1.2.2)
Recommends: libglib2.0-data, shared-mime-info, xdg-user-dirs
Homepage: http://www.gtk.org/
Download-Size: unknown
APT-Manual-Installed: no
APT-Sources: /var/lib/dpkg/status
Description: GLib library of C routines
GLib is a library containing many useful C routines for things such
as trees, hashes, lists, and strings. It is a useful general-purpose
C library used by projects such as GTK+, GIMP, and GNOME.
.
This package contains the shared libraries.
...pkg-config wants glib version >= 2.16. apperently that version is from 2008:
https://download.gnome.org/sources/glib/
https://download.gnome.org/sources/glib/2.16/
...glib 2.58.3 is from 2019:
https://download.gnome.org/sources/glib/2.58/
...i will give apt a fair chance
$ sudo apt install libglib2.0-0
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libglib2.0-bin
The following packages will be upgraded:
libglib2.0-0 libglib2.0-bin
2 upgraded, 0 newly installed, 0 to remove and 194 not upgraded.
Need to get 0 B/1,385 kB of archives.
After this operation, 6,144 B of additional disk space will be used.
Do you want to continue? [Y/n]
...looks like it is already installed?
...system search "glib"
/usr/lib/x86_64-linux-gnu/glib-2.0/
/usr/share/glib-2.0/
also lots in /usr/share/doc/
$ man glib
"Glib - Perl wrappers for the GLib utility and Object libraries"
$ apt-cache policy libglib2.0-0
libglib2.0-0:
Installed: 2.58.3-2+deb10u2
Candidate: 2.58.3-2+deb10u3
Version table:
2.58.3-2+deb10u3 500
500 http://deb.debian.org/debian buster/main amd64 Packages
*** 2.58.3-2+deb10u2 100
100 /var/lib/dpkg/status
...try again:
$ sudo apt install libglib2.0-0
[sudo] password for trygve:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libglib2.0-bin
The following packages will be upgraded:
libglib2.0-0 libglib2.0-bin
2 upgraded, 0 newly installed, 0 to remove and 194 not upgraded.
Need to get 0 B/1,385 kB of archives.
After this operation, 6,144 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 328860 files and directories currently installed.)
Preparing to unpack .../libglib2.0-bin_2.58.3-2+deb10u3_amd64.deb ...
Unpacking libglib2.0-bin (2.58.3-2+deb10u3) over (2.58.3-2+deb10u2) ...
Preparing to unpack .../libglib2.0-0_2.58.3-2+deb10u3_amd64.deb ...
Unpacking libglib2.0-0:amd64 (2.58.3-2+deb10u3) over (2.58.3-2+deb10u2) ...
Setting up libglib2.0-0:amd64 (2.58.3-2+deb10u3) ...
Setting up libglib2.0-bin (2.58.3-2+deb10u3) ...
Processing triggers for libc-bin (2.28-10) ...
Processing triggers for man-db (2.8.5-2) ...
$ apt-cache policy libglib2.0-0
libglib2.0-0:
Installed: 2.58.3-2+deb10u3
Candidate: 2.58.3-2+deb10u3
Version table:
*** 2.58.3-2+deb10u3 500
500 http://deb.debian.org/debian buster/main amd64 Packages
100 /var/lib/dpkg/status
...it looks the same as before. i should have glib already installed. not sure what pkg-config is complaining about.
...out of curiousity:
$ apt-cache policy pkg-config
pkg-config:
Installed: (none)
Candidate: 0.29-6
Version table:
0.29-6 500
500 http://deb.debian.org/debian buster/main amd64 Packages
...but apt doesn't want to install, so back to /pkg-config-0.29.2/
./configure
...
checking whether to list both direct and indirect dependencies... no
checking for Win32... no
checking if prefix should be redefined at runtime... no
checking if internal glib should be used... no
checking for pkg-config... no
checking for glib-2.0 >= 2.16... no
configure: error: Either a previously installed pkg-config or "glib-2.0 >= 2.16" could not be found. Please set GLIB_CFLAGS and GLIB_LIBS to the correct values or pass --with-internal-glib to configure to use the bundled copy.
...it looks the same as before
probably worth looking at:
https://people.freedesktop.org/~dbn/pkg-config-guide.html
...just to double check it is really not installed:
$ pkg-config
bash: pkg-config: command not found
...it looks like there is glib included in the install directory. should i "./configure --with-internal-glib && make install"? the readme says "This is GLib version 2.38.2", which is less than 2.58(my current install). basically a 2013 version vs my 2019 version. not sure if it matters.
this looks somewhat similar to my problem, maybe only tangentially:
https://www.linuxquestions.org/questions/linux-software-2/how-to-check-version-of-glib-87674/
also
https://github.com/politza/pdf-tools/issues/624
this was a bit helfpul(but not really in the way i wanted)
$ find /usr -name "pkgconfig"
/usr/local/lib/pkgconfig
/usr/share/pkgconfig
/usr/lib/x86_64-linux-gnu/pkgconfig
/usr/lib/pkgconfig
...i'm not sure why the find-files-here function in XFCE didnt catch these. actually yes it does: note, pkgconfig is the name for old versions of pkg-config. it is there. and it looks like there are entries for gpg-error, libaacs, and libgcrypt within pkgconfig folders(/usr/local/lib/pkgconfig/). perhaps this is why libaacs didn't work? maybe i'll redo all that when i get done with this?
$ find /usr -name "pkg-config"
/usr/share/bash-completion/completions/pkg-config
$ find /usr -name "libglib2.0-0"
/usr/share/doc/libglib2.0-0
/usr/share/lintian/overrides/libglib2.0-0
...shouldn't there be more? xfce find-file gives me a few more locations:
/var/cache/apt/archives/libglib2.0-0_2.58.3-2+deb10u3_amd64.deb
/var/lib/dpkg/info/libglib2.0-0:amd64.list
/var/lib/dpkg/info/libglib2.0-0:amd64.md5sums
...
is there something wrong with my glib install? what do i set GLIB_CFLAGS and GLIB_LIBS to? how do i set them? (export PATH=$PATH:/??/??/??)
$ man export
No manual entry for export
...getting closer - not really:
https://forums.fedoraforum.org/showthread.php?280208-Problems-with-GLib-2-0-library
https://github.com/SRI-CSL/gllvm/issues/46
...i should just try and build it with the bundled glib at this point:
/pkg-config-0.29.2/
$ ./configure --with-internal-glib
seemed better: no errors
$ make
one warning:"glibintl.h:37:42: warning: statement with no effect [-Wunused-value]
#define bindtextdomain(Domain,Directory) (Domain)"
$ make check
All 30 tests passed
$ sudo make install
that was quick
$ find /usr -name "pkg-config"
/usr/local/share/doc/pkg-config
/usr/local/bin/pkg-config
/usr/share/bash-completion/completions/pkg-config
...i will assume it is all there
back to /libbluray-1.3.1/
$ ./configure
...
checking for LIBXML2... no
configure: error: Package requirements (libxml-2.0 >= 2.6) were not met:
No package 'libxml-2.0' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBXML2_CFLAGS
and LIBXML2_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
$ apt-cache search --names-only 'libxml'
...lots of entries
$ apt search '(libxml)'
...
libxml2/stable 2.9.4+dfsg1-7+deb10u2 amd64 [upgradable from: 2.9.4+dfsg1-7+deb10u1]
GNOME XML library
...
$ apt show libxml2 -a
Package: libxml2
Version: 2.9.4+dfsg1-7+deb10u2
Priority: optional
Section: libs
Maintainer: Debian XML/SGML Group
Installed-Size: 1,903 kB
Depends: libc6 (>= 2.28), libicu63 (>= 63.1-1~), liblzma5 (>= 5.1.1alpha+20120614), zlib1g (>= 1:1.2.3.3)
Homepage: http://xmlsoft.org
Tag: role::shared-lib
Download-Size: 689 kB
APT-Sources: http://deb.debian.org/debian buster/main amd64 Packages
Description: GNOME XML library
XML is a metalanguage to let you design your own markup language.
A regular markup language defines a way to describe information in
a certain class of documents (eg HTML). XML lets you define your
own customized markup languages for many classes of document. It
can do this because it's written in SGML, the international standard
metalanguage for markup languages.
.
This package provides a library providing an extensive API to handle
such XML data files.
Package: libxml2
Version: 2.9.4+dfsg1-7+deb10u1
Status: install ok installed
Priority: optional
Section: libs
Maintainer: Debian XML/SGML Group
Installed-Size: 1,903 kB
Depends: libc6 (>= 2.28), libicu63 (>= 63.1-1~), liblzma5 (>= 5.1.1alpha+20120614), zlib1g (>= 1:1.2.3.3)
Homepage: http://xmlsoft.org
Download-Size: unknown
APT-Manual-Installed: no
APT-Sources: /var/lib/dpkg/status
Description: GNOME XML library
XML is a metalanguage to let you design your own markup language.
A regular markup language defines a way to describe information in
a certain class of documents (eg HTML). XML lets you define your
own customized markup languages for many classes of document. It
can do this because it's written in SGML, the international standard
metalanguage for markup languages.
.
This package provides a library providing an extensive API to handle
such XML data files.
$ find /usr -name "libxml2"
/usr/share/doc/libxml2
/usr/share/lintian/overrides/libxml2
...seems like it is missing something
$ sudo apt install libxml2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
libxml2
1 upgraded, 0 newly installed, 0 to remove and 193 not upgraded.
Need to get 689 kB of archives.
After this operation, 0 B of additional disk space will be used.
Err:1 http://deb.debian.org/debian buster/main amd64 libxml2 amd64 2.9.4+dfsg1-7+deb10u2
404 Not Found [IP: 2a04:4e42:400::644 80]
E: Failed to fetch http://deb.debian.org/debian/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+deb10u2_amd64.deb 404 Not Found [IP: 2a04:4e42:400::644 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
...apt fails again
...i guess i need to build from source again. libbluray wants libxml2 >=v2.6. i supposedly already have v2.9.4
https://download.gnome.org/sources/libxml2/
...i guess i need to read manuals more closely
$ man find
... -path pattern
File name matches shell pattern pattern. The metacharacters do not treat `/' or
`.' specially; so, for example,
find . -path "./sr*sc"
will print an entry for a directory called `./src/misc' (if one exists). To ignore
a whole directory tree, use -prune rather than checking every file in the tree.
For example, to skip the directory `src/emacs' and all files and directories under
it, and print the names of the other files found, do something like this:
find . -path ./src/emacs -prune -o -print
Note that the pattern match test applies to the whole file name, starting from one
of the start points named on the command line. It would only make sense to use an
absolute path name here if the relevant start point is also an absolute path. This
means that this command will never match anything:
find bar -path /foo/bar/myfile -print
Find compares the -path argument with the concatenation of a directory name and the
base name of the file it's examining. Since the concatenation will never end with
a slash, -path arguments ending in a slash will match nothing (except perhaps a
start point specified on the command line). The predicate -path is also supported
by HP-UX find and is part of the POSIX 2008 standard.
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "libxml2"
.../usr/ seems to be the only relevant place
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "pkg-config"
...again /usr/ seems to be the only relevant place. maybe i am learning something about where libs are stored in linux - it's not that different from mac(at 1st glance).
...anyway, it seems for some reason i am missing libxml2 install. either that, or the actual fielnames for relevant files are different from what i have been searching.
...so i guess the next step is to install libxml and then maybe libbluray will install, afterwhich i don't know if i will need to redo all the steps for libaacs to link my new pkg-config. interesting:
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "libaacs"
...only gives on valid entry. does not seem to find all libaacs files
$ man find
...-name pattern
Base of file name (the path with the leading directories removed) matches shell
pattern pattern. Because the leading directories are removed, the file names con‐
sidered for a match with -name will never include a slash, so `-name a/b' will
never match anything (you probably need to use -path instead). A warning is issued
if you try to do this, unless the environment variable POSIXLY_CORRECT is set. The
metacharacters (`*', `?', and `[]') match a `.' at the start of the base name (this
is a change in findutils-4.2.2; see section STANDARDS CONFORMANCE below). To ig‐
nore a directory and the files under it, use -prune; see an example in the descrip‐
tion of -path. Braces are not recognised as being special, despite the fact that
some shells including Bash imbue braces with a special meaning in shell patterns.
The filename matching is performed with the use of the fnmatch(3) library function.
Don't forget to enclose the pattern in quotes in order to protect it from expansion
by the shell.
...-regex pattern
File name matches regular expression pattern. This is a match on the whole path,
not a search. For example, to match a file named `./fubar3', you can use the regu‐
lar expression `.*bar.' or `.*b.*3', but not `f.*r3'. The regular expressions un‐
derstood by find are by default Emacs Regular Expressions (except that `.' matches
newline), but this can be changed with the -regextype option.
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "libaacs*"
...seems to work a little better. maybe i'm improving.
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "pkg-config*"
...also better, though i get the feeling there is possible still something im missing.
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "libxml2*"
...there it is: inside /usr/lib/x86_64-linux-gnu/
...perhaps i should install a new version anyway?
...btw, i don't think i tested pkg-config yet
$ man pkg-config
...hey, there is a manpage there now! i must be doing something right.
...i guess i should also find out the deal about libglib
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "libglib*"
...there definitely appears to be some more stuff i didn't find the first time. notably inside /usr/lib/x86_64-linux-gnu/ and /var/lib/dpkg/info/ and /usr/share/doc/
note $ man glib always served a manual, though it is for a pearl wrapper for glib
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "glib*"
...there are lots of results for here, many of which i am sure are unrelated to libglib
...anyway, back to libxml2. should i install i manually. alternatively i guess i could try to figure outwhatever i need to do with the PKG_CONFIG_PATH or LIBXML2_CFLAGS and LIBXML2_LIBS in the configure file? i could probably benefit to learn more about makefiles and modifying flags and build-paths, though i am not sure i have the energy for it right now. i'm guessing the worst that will happen here is i'll end up with a redundant install that will be there to get referenced whenever i want to instal a new lib to my /usr/ directory. i wish i were skilled in setting up build environments. i feel like i have been here before, and i guess i just ran out of steam and never got around to figuring it out. life is tough. there is too much to do. perhapse i will find time later to brush up on makefiles and environment variable. for now, i feel moderately confident that if i just execute each build+install for each dependency that comes up, then i have a decent chance at succeeding at getting bluray working on this computer. not that i can't just pop it in my mac, but it would be nice to get things functioning better on linux, and it can't hurt to install some libs. Longterm, my goal is still to get back into writing software, and to do so on a more "free" platform than when i was starting out and published a mac app. However "freedom" is kind of a loaded word, and it sort of seems that there is a paradox in the world of "free" software. maybe the real truth is that freedom is not free. it's very philosophical. i don't expect humanity will ever get to the bottom of it. IS IT DINNER TIME NOW?!
...anyway, i'm back. i managed to cook a halfway decent dinner. life is all about the small successes. i really got to finish this, or find a stopping point. maybe install libxml2 and then perhaps libbluray.
i think i'm going to go with v2.9.9 since it's similar to v2.9.4 which supposedly is already installed by apt but somehow not accesible by pkg-config.
found here:
https://download.gnome.org/sources/libxml2/2.9/
$ cd /home/trygve/Documents/2025/blu-ray-stuff/libxml2-2.9.9/
$ ./configure
done
$ make
...warnings ...fatal error
maybe i should go for a 2019 version. 2.9 is from 2022. actually it looks like you have to go to v2.6 to get anything from before 2022. I'm scratching my head at how this is possible. when did i buy this computer and install MX? speaking of MX, i should probably make an account on their forum some time. i'm not sure if they would be into my old computer shinanigans, but it's probably worth checking out some time. anyway, i think i better try installing libxml2 v2.6 for now:
https://download.gnome.org/sources/libxml2/2.6/
...going with 2.6.30 (from 2007 hope it works)
$ cd /home/trygve/Documents/2025/blu-ray-stuff/libxml2-2.6.30/
$ ./configure
done
$ make
...warnings ...done
$ make check
...module tests success! ...regression tests segmentation fault ...nothing to be done?
$ sudo make install
that was quick!
$ man libxml
...now serves a man-page
finally(hope this is it) back to /libbluray-1.3.1/
$ ./configure
...checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LIBXML2... yes
checking for FT2... no
configure: error: Package requirements (freetype2) were not met:
No package 'freetype2' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables FT2_CFLAGS
and FT2_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
...so now freetype. this is bringing me back to my app days.
$ find / \( -path "/proc" -o -path "/home" \) -prune -o -name "freetype*"
...2 entries in /usr/
$ find /usr -name "freetype*"
...there it is
/usr/share/doc/libcairo-perl/examples/freetype-font.pl
/usr/lib/x86_64-linux-gnu/girepository-1.0/freetype2-2.0.typelib
...it appears to be in the same spot with libxml2.9 and some of these other libs i have been duplicate installing. how long will this go on.
$ echo $PKG_CONFIG_PATH
[BLANK?]
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin
https://askubuntu.com/questions/210210/pkg-config-path-environment-variable
$ find /usr -name "*.pc"
...
/usr/lib/x86_64-linux-gnu/pkgconfig/libxfce4sensors-1.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/reiserfscore.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/geany.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/lxappearance.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/libelf.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/zlib.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/xorg-wacom.pc
...
...do this in the open build term-window(/libbluray-1.3.1/):
$ echo $PKG_CONFIG_PATH
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig
$ echo $PKG_CONFIG_PATH
$ ./configure
...still the same
$ man pkg-config
...DESCRIPTION
The pkg-config program is used to retrieve information about installed libraries in the
system. It is typically used to compile and link against one or more libraries. Here is
a typical usage scenario in a Makefile:
program: program.c
cc program.c `pkg-config --cflags --libs gnomeui`
pkg-config retrieves information about packages from special metadata files. These files
are named after the package, and has a .pc extension. On most systems, pkg-config looks
in /usr/lib/pkgconfig, /usr/share/pkgconfig, /usr/local/lib/pkgconfig and /usr/lo‐
cal/share/pkgconfig for these files. It will additionally look in the colon-separated (on
Windows, semicolon-separated) list of directories specified by the PKG_CONFIG_PATH envi‐
ronment variable.
The package name specified on the pkg-config command line is defined to be the name of the
metadata file, minus the .pc extension. If a library can install multiple versions simul‐
taneously, it must give each version its own name (for example, GTK 1.2 might have the
package name "gtk+" while GTK 2.0 has "gtk+-2.0").
In addition to specifying a package name on the command line, the full path to a given .pc
file may be given instead. This allows a user to directly query a particular .pc file.
...so i have too versions of pkgconfig/pkg-config now. and it looks like some of the stuff i installed the other day involved the old version to some degree.
$ find /usr -name "pkgconfig*"
/usr/local/lib/pkgconfig
/usr/share/pkgconfig
/usr/lib/x86_64-linux-gnu/pkgconfig
/usr/lib/rpm/pkgconfigdeps.sh
/usr/lib/rpm/fileattrs/pkgconfig.attr
/usr/lib/pkgconfig
$ find /usr -name "pkg-config*"
/usr/local/share/doc/pkg-config
/usr/local/share/doc/pkg-config/pkg-config-guide.html
/usr/local/share/man/man1/pkg-config.1
/usr/local/bin/pkg-config
/usr/share/lintian/data/files/pkg-config-bad-regex
/usr/share/bash-completion/completions/pkg-config
...note before install pkg-config errors messages cited PKG_CONFIG. now they site PKG_CONFIG_PATH. also the glib problem only started after installing newer pkg-config. what will this mean for the installs i did yesterday? is it possible to finish this current install tonight? maybe the best thing to do is to just keep going, with freetype2 and whatever comes next, rather than trying to figure out environment variables to access pre-installed tools. should it hurt anything? thinking about this is taking me time.
$ apt search freetype
...freetype2-doc?
check here:
https://download.savannah.gnu.org/releases/freetype/
...i'm going to have to pick this up again later(sleepy).
...
...
...
$ ./configure
$ make
$ make check
$ sudo make install
$ ./configure
$ make
$ make check
$ sudo make install
$ ./configure
$ make
$ make check
$ sudo make install
some more garbage:
https://wiki.archlinux.org/title/Blu-ray
https://en.wikipedia.org/wiki/GLib
https://en.wikipedia.org/wiki/Glibc
https://en.wikipedia.org/wiki/Pkg-config
https://stackoverflow.com/questions/12262925/linux-glib-needs-pkg-config-and-pkg-config-needs-glib
https://dossy.org/2008/03/pkgconfig-and-glib-chicken-and-egg-same-thing/
https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion.html
https://github.com/scop/bash-completion
https://numpy.org/
https://wiki.debian.org/Lintian
https://gitlab.gnome.org/GNOME/glib
https://docs.gtk.org/glib/
https://opensource.com/article/17/6/set-path-linux
https://www.linuxjournal.com/content/how-set-or-modify-path-variable-linux
https://quickref.me/find.html
https://gist.github.com/gr1ev0us/3a9b9d9dbdd38f6379288eb2686fc538
https://stackoverflow.com/questions/4210042/how-do-i-exclude-a-directory-when-using-find
https://linuxconfig.org/how-to-explicitly-exclude-directory-from-find-command-s-search
(this is maybe worth looking into at some point. -prune not mentioned in man find)
https://en.wikipedia.org/wiki/Libxml2
https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home
http://freetype.org/