Segmentation fault on Bookworm after upgrade
srs4511351 opened this issue · 72 comments
Describe the bug
After a recent package upgrade, liquidsoap terminates with Segmentation fault. It worked before the upgrades.
To Reproduce
Upgrade to the latest packages, then run any liquidsoap command
dietpi@DietPi:~$ liquidsoap --version
Segmentation fault
Expected behavior
I should see version information.
Version details
liquidsoap/stable,now 2.1.3-2 arm64
- OS: DietPi Debian GNU/Linux 12 (bookworm)
- Version: DietPi v8.23.3
Install method
Installed with apt
Common issues
Can't decode or encode in some audio format? Check if you have installed the correct dependencies
The package dependencies are listed below. The packages with versions listed were upgraded.
adduser
curl Patched
libcamomile-ocaml-data
ocaml-base
sox
libao4
libasound2 libasound2 arm64 1.2.8-1+rpt1
libavcodec59 ibavcodec59 arm64 8:5.1.3-1+rpt4
libavdevice59 libavdevice59 arm64 8:5.1.3-1+rpt4
libavfilter8 libavfilter8 arm64 8:5.1.3-1+rpt4
libavformat59 libavformat59 arm64 8:5.1.3-1+rpt4
libavutil57 libavutil57 arm64 8:5.1.3-1+rpt4
libc6 libc6-dev arm64 2.36-9+rpt2+deb12u3
libcurl3-gnutls
libexif12
libfaad2
libflac12
libfreetype6
libgcc-s1
libgd3
libgif7
libglib2.0-0 libglib2.0-0:arm64 (2.74.6-2) (probably not upgraded)
libgstreamer-plugins-base1.0-0
libgstreamer1.0-0
libjack-jackd2-0 (>= 1.9.10+20150825) | libjack-0.125
libjpeg62-turbo
liblo7
libmad0
libmagic1
libmp3lame0
libogg0
libopus0
libpcre3
libpng16-16
libportaudio2
libpulse0 libpulse0 arm64 16.1+dfsg1-2+rpt1
libsamplerate0
libshine3
libsoundtouch1
libspeex1
libssl3
libstdc++6
libswresample4 libswresample4 arm64 8:5.1.3-1+rpt4
libswscale6 libswscale6 arm64 8:5.1.3-1+rpt4
libtag1v5
libtheora0
libtiff6
libvorbis0a
libvorbisenc2
libvorbisfile3
libx11-6
libxpm4
Hi,
Thanks for reporting. Have you every used gdb
?
% gdb /path/to/liquidsoap
> run --version
...crashes...
> thread apply all bt
Here is the output from the terminal
Starting program: /usr/bin/liquidsoap --version
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fe64fd4c0 (LWP 2600)]
[New Thread 0x7fe5ced4c0 (LWP 2601)]
[New Thread 0x7fe14dd4c0 (LWP 2602)]
Thread 1 "liquidsoap" received signal SIGSEGV, Segmentation fault.
0x0000007ff3f4b710 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
(gdb) thread apply all bt
Thread 4 (Thread 0x7fe14dd4c0 (LWP 2602) "liquidsoap"):
#0 0x0000007ff3f8088c in sched_yield () at /lib/aarch64-linux-gnu/libc.so.6
#1 0x0000007fe8cef1b8 in () at /lib/aarch64-linux-gnu/libopenblas.so.0
#2 0x0000007ff3f2ee18 in () at /lib/aarch64-linux-gnu/libc.so.6
#3 0x0000007ff3f97e9c in () at /lib/aarch64-linux-gnu/libc.so.6
Thread 3 (Thread 0x7fe5ced4c0 (LWP 2601) "liquidsoap"):
#0 0x0000007ff3f8088c in sched_yield () at /lib/aarch64-linux-gnu/libc.so.6
#1 0x0000007fe8cef1b8 in () at /lib/aarch64-linux-gnu/libopenblas.so.0
#2 0x0000007ff3f2ee18 in () at /lib/aarch64-linux-gnu/libc.so.6
#3 0x0000007ff3f97e9c in () at /lib/aarch64-linux-gnu/libc.so.6
Thread 2 (Thread 0x7fe64fd4c0 (LWP 2600) "liquidsoap"):
#0 0x0000007ff3f8088c in sched_yield () at /lib/aarch64-linux-gnu/libc.so.6
#1 0x0000007fe8cef1b8 in () at /lib/aarch64-linux-gnu/libopenblas.so.0
#2 0x0000007ff3f2ee18 in () at /lib/aarch64-linux-gnu/libc.so.6
#3 0x0000007ff3f97e9c in () at /lib/aarch64-linux-gnu/libc.so.6
Thread 1 (Thread 0x7fe650e040 (LWP 2592) "liquidsoap"):
#0 0x0000007ff3f4b710 in () at /lib/aarch64-linux-gnu/libc.so.6
#1 0x0000005556354548 in caml_copy_string ()
#2 0x00000055562fb9a0 in ocaml_avfilter_alloc_pads ()
--Type <RET> for more, q to quit, c to continue without paging--c
#3 0x00000055562fbb7c in ocaml_avfilter_get_all_filters ()
#4 0x0000005556371fa4 in caml_c_call ()
#5 0x000000555614fb74 in camlAvfilter__entry ()
#6 0x0000005555d20654 in caml_program ()
#7 0x0000005556372014 in caml_start_program ()
#8 0x000000555634dc5c in caml_startup_common ()
#9 0x000000555634dcd0 in caml_main ()
#10 0x0000005555d1f390 in main ()
(gdb)
I hope this is good.
----Steve
Woof thank. How did you install? It looks like something is wrong with the ffmpeg binding. Maybe recompile it. Also, is there a change you might have more than one copy of the ffmpeg libraries intalled on the system?
Only ffmpeg/stable,now 8:5.1.3-1+rpt4 arm64 [installed]
I installed with apt. It worked afterward.
It only failed after the upgrades. This happens on DietPi Bookworm and Raspberry Pi OS Bookworm. There is another post to that effect on the Raspberry Pi OS forum.
These are somewhat recent updates.
It also fails on
liquidsoap-e1f7023_2.2.2-debian-bookworm-1_arm64.deb
I also tried liquidsoap_2.2.1-debian-bookworm-1_arm64.deb
----Steve
Should I try to downgrade ffmpeg?
It was upgraded, but I didn't see in in the part of the list I looked at, so I missed it.
ffmpeg arm64 8:5.1.3-1+rpt4 [1795 kB]
I installed liquidsoap 2.1.3-2 arm64 on a new DietPi Bookworm OS with apt-get using the supplied package.
It did not install, suggest or recommend ffmpeg. ffmpeg is not installed.
I still get the Segmentation fault.
Here is the gdb output from this installation:
Reading symbols from /usr/bin/liquidsoap...
(No debugging symbols found in /usr/bin/liquidsoap)
(gdb) run --version
Starting program: /usr/bin/liquidsoap --version
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x0000007ff3f6b710 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
(gdb) thread apply all bt
Thread 1 (Thread 0x7ff7c53040 (LWP 4159) "liquidsoap"):
#0 0x0000007ff3f6b710 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
#1 0x0000005556354548 in caml_copy_string ()
#2 0x00000055562fb9a0 in ocaml_avfilter_alloc_pads ()
#3 0x00000055562fbb7c in ocaml_avfilter_get_all_filters ()
#4 0x0000005556371fa4 in caml_c_call ()
#5 0x000000555614fb74 in camlAvfilter__entry ()
#6 0x0000005555d20654 in caml_program ()
#7 0x0000005556372014 in caml_start_program ()
#8 0x000000555634dc5c in caml_startup_common ()
#9 0x000000555634dcd0 in caml_main ()
#10 0x0000005555d1f390 in main ()
----Steve
Thanks for these details. Our builds have switched to the debian multimedia ffmpeg packages to have builtin fdkaac
. I suspect the segfault could be due to a ABI difference between the two.
Would you be able to install the ffmpeg
package from https://deb-multimedia.org/ and try again?
Is there a particular version I should try for Debian Bookworm?
Sometimes the package dependencies require specific versions.
Does liqiudsoap require ffmpeg?
When I install the package, it does not install ffmpeg. It does not suggest or recommend ffmpeg.
On https://deb-multimedia.org/ I found ffmpeg (10:6.0-dmo6) - arm64 - Stable/bullseye
ffmpeg_4.4.4-dmo0+deb11u1_arm64.deb
I will try this one.
The package dependency versions are compatible with my Bullseye system.
The one listed for Bullseye uses newer dependencies.
Edit: there are no packages on https://deb-multimedia.org/ that work with my packages. ffmpeg_4.4.4-dmo0+deb11u1_arm64 is in theory compatible, but one of the required packages has dependency problems.
With a Bookworm installed from an image from https://raspi.debian.net/tested-images/
These packages work:
liquidsoap 2.1.3-2 arm64
ffmpeg 7:5.1.3-1 arm64
DietPi Bookworm had
liquidsoap 2.1.3-2 arm64 (works on the Debian system above)
and
ffmpeg 8:5.1.3-1+rpt4 arm64
It faults with these packages.
I downgraded ffmpeg to:
ffmpeg 7:5.1.3-1 arm64
It still faults, with the same 2 packages as the Debian system.
On one DietPi system, I removed the ffmpeg package and installed it from source.
It still faults.
It looks to me like it's something other that ffmpeg.
liquidsoap faults on a system that has never had ffmpeg installed.
The same versions work on another system.
Installing ffmpeg from source does not work.
Another user reports the same problem on the Raspberry Pi forum
https://forums.raspberrypi.com/search.php?keywords=liquidsoap&sid=8ee93e3d44f03092738ed8e898e33156
There will be more.
The problem clearly happens after the latest large batch of package upgrades.
I could try installing liquidsoap from source, but that would be a big task.
I was using ffmpeg
as an easy way to talk about dependencies. In fact, yes, ffmpeg
is not a dependency of liquidsoap
but the various shared libraries that comes with it (libavformat
, libavcodec
, etc) are.
I'm gonna have to have a look at the packages themselves. The versions have different debian epoch (7
in 7:5.1.3-1
vs. 8
in 8:5.1.3-1+rpt4
) which potentially indicates a different package.
Our goal with the binary packages we distribute is that they work with the standard packages of the regular distribution, here debian/bookworm
.
If the derived distribution has custom packages that do not work with our binary build, I'm afraid we won't have enough development time to handle situations like that, in which case I would recommend building the binary yourself, indeed.
I removed ffmpeg from the debian.net system and liquidsoap did run.
There are indeed big changes in the package versions. apt is saying:
Repository 'http://deb.debian.org/debian bookworm InRelease' changed its 'Version' value from '12.1' to '12.2'
Please let me know whether or not you have time to fix things. If not. I will attempt to build liquidsoap myself.
----Steve
Hi @srs4511351,
So you are basically using a mix of different repositories?
- Could you post a comprehensive list of the sources you use?
cat /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources > sources
cat /etc/apt/preferences /etc/apt/preferences.d/* > preferences
The result is stored in thesources
andpreferences
files.
- Could you post a list of installed packages?
dpkg -l > packages
apt list ?obsolete > obsolete
The result will be stored in thepackages
andobsolete
files.
I am using the default sources that came with the OS.
Repository 'http://deb.debian.org/debian bookworm InRelease' changed its 'Version' value from '12.1' to '12.2'
Means that they changed repositories to a newer version.
I renamed the files to *.txt as files without an extension are not supported.
Hi @srs4511351. It's possible that the 2.1.3
build is outdate w.r.t. the latest ABI shipped by debian bookworm.
One thing you could try is install the latest build from https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x and see it this one works.
Here's the one I tried.
sudo dpkg -i liquidsoap-3dc336b_2.2.2-debian-bookworm-1_arm64.deb
It installed with no dependency complaints.
dietpi@DietPi:~/Downloads$ /usr/bin/liquidsoap --version
Segmentation fault
- liquidsoap is from https://packages.debian.org/bookworm/liquidsoap.
- ffmpeg and libs are from https://archive.raspberrypi.org/debian/pool/main/f/ffmpeg/.
@srs4511351,
I'm curious if it's possible to use raspberry without deb https://archive.raspberrypi.org/debian/ bookworm main
.
My idea is to:
- Downgrade the versions of the libraries by pinning the deb.debian.org with priority 1000.
- Keep liquidsoap from deb.debian.org and test if it crashes.
- Try liquidsoap from the release artifacts.
- Try
deb https://www.deb-multimedia.org bookworm main non-free
with liquidsoap from release artifacts.
The backup plan is to compile from opam.
I think that deb https://archive.raspberrypi.org/debian/ bookworm main
contains firmware, Raspberry Pi utilities, etc.
I could remove it from /etc/apt/sources.list.d/raspi.list if the existing firmware remains, but there would be no upgrades.
I do not know how to pin the deb.debian.org with priority 1000.
I can add deb https://www.deb-multimedia.org bookworm main non-free
. Do I just add it to /etc/apt/sources.list, or do I need to remove the other lines in the file?
Then sudo apt update and sudo apt upgrade ?
I hope this is just a test. A permanent solution would be more transparent to the user.
Remember, it worked before the recent set of upgrades, so a downgrade may fix it.
I have a system installed from debian.net where liquidsoap works if you want to compare to that.
@srs4511351, if tampering with packages makes the system unbootable, do you have a solution to restore the current state of the system?
Yes, I have several other installations I can just swap in by changing the SD card.
I did a quick try...
renamed /etc/apt/sources.list.d/raspi.list
apt update/upgrade
The following packages will be upgraded:
libspeechd2 speech-dispatcher speech-dispatcher-audio-plugins
speech-dispatcher-espeak
liquidsoap
Segmentation fault
I added this to /etc/apt/preferences.d/dietpi-lxde
Pin: origin deb.debian.org
Pin-Priority: 1000
I added this to /etc/apt/sources.list
deb https://www.deb-multimedia.org bookworm main non-free
sudo apt update
Get:5 https://www.deb-multimedia.org bookworm InRelease [18.5 kB]
Err:5 https://www.deb-multimedia.org bookworm InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5C808C2B65558117
Reading package lists... Done
W: GPG error: https://www.deb-multimedia.org bookworm InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5C808C2B65558117
E: The repository 'https://www.deb-multimedia.org bookworm InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
/etc/apt/preferences.d/debian.pref
Package: * Pin: origin deb.debian.org Pin-Priority: 1000
/etc/apt/sources.list
deb https://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware deb https://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware deb https://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware deb https://deb.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware
apt-get update
apt-get dist-upgrade
So did this in effect remove the archive.raspberrypi.org/debian packages and use the debian ones?
Some were upgraded and MANY were downgraded.
liquidsoap no longer faults. I assume that this is restored to how it was before the recent upgrades.
If it is due to the raspberrypi.org packages, I would like for you to work with them to fix this properly.
This is the state of current Debian without any changes introduced by a raspberry repo.
From this state I would like to continue testing with the liquidsoap from release artifacts and later deb-multimedia.
OK, what do we do next?
- Download and install liquidsoap from the latest release artifact.
2.2.1 will also work.
Test it thoroughly to see if it works for you. - Add deb-multimedia.
Test liquidsoap.
wget https://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb echo '9faa6f6cba80aeb69c9bac139b74a3d61596d4486e2458c2c65efe9e21ff3c7d deb-multimedia-keyring_2016.8.1_all.deb' | sha256sum -c - apt-get install ./deb-multimedia-keyring_2016.8.1_all.deb echo 'deb https://www.deb-multimedia.org bookworm main non-free' > /etc/apt/sources.list.d/deb-multimedia.list rm /etc/apt/preferences.d/debian.pref apt-get update apt-get dist-upgrade
This is working for my application. It's op25, police scanner, used for compression and normalization.
I am hearing it on the same computer as the P25 scanner.
The raspberypi.org source is still disabled.
Have you tested deb-multimedia?
The raspberypi.org source is still disabled.
I'm thinking about the smoothest way to enable it without breaking everything else.
Yes, it is working after your instructions containing
echo 'deb https://www.deb-multimedia.org bookworm main non-free' > /etc/apt/sources.list.d/deb-multimedia.list
How do I know if it is the one from deb-multimedia?
They all seem to be the same version...
liquidsoap --version
Liquidsoap 2.1.3
Copyright (c) 2003-2022 Savonet team
Liquidsoap is open-source software, released under GNU General Public License.
See http://liquidsoap.info for more information.
How do I know if it is the one from deb-multimedia?
dpkg --list | grep libavcodec
It should be some of libavcodec-4-dev, libavcodec-5-dev, libavcodec-dev, libavcodec58, libavcodec59, libavcodec60.
For example, there will be libavcodec59, then you check apt-cache policy libavcodec59
.
dpkg --list | grep libavcodec
ii libavcodec-dev:arm64 10:6.0-dmo6 arm64 Library to encode decode multimedia streams - devel files
ii libavcodec59:arm64 10:5.1.3-dmo5 arm64 Library to encode decode multimedia streams - runtime files
ii libavcodec60:arm64 10:6.0-dmo6 arm64 Library to encode decode multimedia streams - runtime files
apt-cache policy libavcodec59
libavcodec59:
Installed: 10:5.1.3-dmo5
Candidate: 10:5.1.3-dmo5
Version table:
*** 10:5.1.3-dmo5 500
500 https://www.deb-multimedia.org bookworm/main arm64 Packages
100 /var/lib/dpkg/status
7:5.1.3-1 500
500 https://deb.debian.org/debian bookworm/main arm64 Packages
More than one version is installed
apt list -a libavcodec* | grep installed
libavcodec-dev/stable,now 10:6.0-dmo6 arm64 [installed]
libavcodec59/stable,now 10:5.1.3-dmo5 arm64 [installed,automatic]
libavcodec60/stable,now 10:6.0-dmo6 arm64 [installed,automatic]
Does liquidsoap work with and without deb-multimedia?
If the answer is yes, then here's the first step of the plan:
apt-get purge --autoremove liquidsoap
mv /etc/apt/sources.list.d/deb-multimedia.list{,.backup}
apt-get update
apt list ?obsolete
I removed liquidsoap and installed it again.
There was a line that said: Get:1 https://deb.debian.org/debian bookworm/main arm64 liquidsoap arm64 2.1.3-2
That isn't the one from deb-multimedia...
apt-cache policy liquidsoap
liquidsoap:
Installed: 2.1.3-2
Candidate: 2.1.3-2
Version table:
*** 2.1.3-2 500
500 https://deb.debian.org/debian bookworm/main arm64 Packages
100 /var/lib/dpkg/status
liquidsoap-3dc336b_2.2.2-debian-bookworm-1_arm64.deb does not work on my system.
It has errors:
./op25.liq
INFO: Loading Sdl_image, Target = linux
INFO: Loading Sdl_ttf, Target = linux
At ./op25.liq, line 61, char 0-0:
Error 9: Failure: Early computation of source content-type detected for source iir_filter!
Raised at Stdlib.failwith in file "stdlib.ml", line 29, characters 17-33
Called from Source.operator#content_type in file "src/core/source.ml", line 407, characters 14-190
Called from Source.operator#audio_channels in file "src/core/source.ml", line 420, characters 53-70
Called from Iir_filter.iir.(fun) in file "src/core/operators/iir_filter.ml", line 71, characters 21-40
Called from CamlinternalOO.iter_f in file "camlinternalOO.ml", line 371, characters 12-17
Called from CamlinternalOO.run_initializers_opt in file "camlinternalOO.ml", line 381, characters 24-40
Called from Lang_source.add_operator.f in file "src/core/lang_source.ml", line 431, characters 39-44
Called from Liquidsoap_lang__Evaluation.apply.f in file "src/lang/evaluation.ml", line 174, characters 8-12
Called from Liquidsoap_lang__Evaluation.eval_term in file "src/lang/evaluation.ml", line 341, characters 10-43
Called from Liquidsoap_lang__Evaluation.eval in file "src/lang/evaluation.ml", line 353, characters 10-38
Called from Liquidsoap_lang__Evaluation.eval_toplevel in file "src/lang/evaluation.ml", line 488, characters 38-46
Called from Liquidsoap_lang__Startup.time in file "src/lang/startup.ml", line 30, characters 12-16
Called from Stdlib__Fun.protect in file "fun.ml", line 33, characters 8-15
Re-raised at Stdlib__Fun.protect in file "fun.ml", line 38, characters 6-52
Called from Liquidsoap_lang__Runtime.type_and_run in file "src/lang/runtime.ml", line 30, characters 4-612
Called from Liquidsoap_lang__Runtime.report in file "src/lang/runtime.ml" (inlined), line 215, characters 12-23
Called from Liquidsoap_lang__Runtime.from_lexbuf in file "src/lang/runtime.ml", line 229, characters 2-159
Sorry, it's just the first step, the idea is to slowly introduce packages from raspberry.
My idea is to get rid of the packages from other sources and restore the original state, so it's possible to install packages in small groups.
apt-get purge --autoremove liquidsoap
mv /etc/apt/sources.list.d/deb-multimedia.list{,.backup}
apt-get update
apt list ?obsolete
Please paste the list of packages from the last command into this snippet. There's no need to install liquidsoap ahead of time.
My point is that I made is that I may never have tried the package from deb-multimedia
The latest package from https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x
fails with my script. With the other package there was a deprecation message I think about the set command.
i’m in bed now. I will pick this up tomorrow.
apt list ?obsolete
Listing... Done
deb-multimedia-keyring/now 2016.8.1 all [installed,local]
libavcodec60/now 10:6.0-dmo6 arm64 [installed,local]
libavdevice60/now 10:6.0-dmo6 arm64 [installed,local]
libavfilter9/now 10:6.0-dmo6 arm64 [installed,local]
libavformat60/now 10:6.0-dmo6 arm64 [installed,local]
libavutil58/now 10:6.0-dmo6 arm64 [installed,local]
libdavs2-16/now 1.7-dmo1 arm64 [installed,local]
libilbc3/now 3.0.4-dmo1 arm64 [installed,local]
libkvazaar7/now 1:2.2.0-dmo1 arm64 [installed,local]
libpostproc57/now 10:6.0-dmo6 arm64 [installed,local]
libraspberrypi-bin/now 1:2+git20231018~131943+3c97f76-1 arm64 [installed,local]
libraspberrypi0/now 1:2+git20231018~131943+3c97f76-1 arm64 [installed,local]
libswscale7/now 10:6.0-dmo6 arm64 [installed,local]
libunibreak5/now 5.1-0.0 arm64 [installed,local]
libvidstab1.2/now 2:1.1.1-dmo1 arm64 [installed,local]
libvmaf1/now 2.3.1-dmo2 arm64 [installed,local]
libxavs2-13/now 1:1.4-dmo1 arm64 [installed,local]
raspberrypi-archive-keyring/now 2021.1.1+rpt1 all [installed,local]
raspberrypi-bootloader/now 1:1.20230405-1 arm64 [installed,local]
raspberrypi-kernel/now 1:1.20230405-1 arm64 [installed,local]
raspberrypi-sys-mods/now 2:20230510-dietpi2 all [installed,local]
rpi-eeprom/now 20.0-2 all [installed,local]
sparksdr/now 2.0.966 arm64 [installed,local]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
Manually installed packages
deb-multimedia-keyring/now 2016.8.1 all [installed,local]
sparksdr/now 2.0.966 arm64 [installed,local]
Packages from raspberrypi repo
libraspberrypi-bin/now 1:2+git20231018~131943+3c97f76-1 arm64 [installed,local]
libraspberrypi0/now 1:2+git20231018~131943+3c97f76-1 arm64 [installed,local]
raspberrypi-archive-keyring/now 2021.1.1+rpt1 all [installed,local]
raspberrypi-bootloader/now 1:1.20230405-1 arm64 [installed,local]
raspberrypi-kernel/now 1:1.20230405-1 arm64 [installed,local]
raspberrypi-sys-mods/now 2:20230510-dietpi2 all [installed,local]
rpi-eeprom/now 20.0-2 all [installed,local]
Packages from deb-multimedia repo
libavcodec60/now 10:6.0-dmo6 arm64 [installed,local]
libavdevice60/now 10:6.0-dmo6 arm64 [installed,local]
libavfilter9/now 10:6.0-dmo6 arm64 [installed,local]
libavformat60/now 10:6.0-dmo6 arm64 [installed,local]
libavutil58/now 10:6.0-dmo6 arm64 [installed,local]
libdavs2-16/now 1.7-dmo1 arm64 [installed,local]
libilbc3/now 3.0.4-dmo1 arm64 [installed,local]
libkvazaar7/now 1:2.2.0-dmo1 arm64 [installed,local]
libpostproc57/now 10:6.0-dmo6 arm64 [installed,local]
libswscale7/now 10:6.0-dmo6 arm64 [installed,local]
libunibreak5/now 5.1-0.0 arm64 [installed,local]
libvidstab1.2/now 2:1.1.1-dmo1 arm64 [installed,local]
libvmaf1/now 2.3.1-dmo2 arm64 [installed,local]
libxavs2-13/now 1:1.4-dmo1 arm64 [installed,local]
Step 2:
/etc/apt/preferences.d/debian.pref
Package: * Pin: origin deb.debian.org Pin-Priority: 1000
-
All packages from the dmo group should be gone.
apt-get update apt-get dist-upgrade apt list ?obsolete
...
apt list ?obsolete
Listing... Done
deb-multimedia-keyring/now 2016.8.1 all [installed,local]
libavutil58/now 10:6.0-dmo6 arm64 [installed,local]
libdavs2-16/now 1.7-dmo1 arm64 [installed,local]
libilbc3/now 3.0.4-dmo1 arm64 [installed,local]
libkvazaar7/now 1:2.2.0-dmo1 arm64 [installed,local]
libpostproc57/now 10:6.0-dmo6 arm64 [installed,local]
libraspberrypi-bin/now 1:2+git20231018~131943+3c97f76-1 arm64 [installed,local]
libraspberrypi0/now 1:2+git20231018~131943+3c97f76-1 arm64 [installed,local]
libswscale7/now 10:6.0-dmo6 arm64 [installed,local]
libunibreak5/now 5.1-0.0 arm64 [installed,local]
libvidstab1.2/now 2:1.1.1-dmo1 arm64 [installed,local]
libvmaf1/now 2.3.1-dmo2 arm64 [installed,local]
libxavs2-13/now 1:1.4-dmo1 arm64 [installed,local]
raspberrypi-archive-keyring/now 2021.1.1+rpt1 all [installed,local]
raspberrypi-bootloader/now 1:1.20230405-1 arm64 [installed,local]
raspberrypi-kernel/now 1:1.20230405-1 arm64 [installed,local]
raspberrypi-sys-mods/now 2:20230510-dietpi2 all [installed,local]
rpi-eeprom/now 20.0-2 all [installed,local]
sparksdr/now 2.0.966 arm64 [installed,local]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
Some packages are still there...
apt list ?garbage
apt-get purge --auto-remove --dry-run libavutil58 | grep -v ^Purg
apt list ?garbage
Listing... Done
libaribb24-0/stable,now 1.0.3-2 arm64 [installed,auto-removable]
libavutil58/now 10:6.0-dmo6 arm64 [installed,local]
libdavs2-16/now 1.7-dmo1 arm64 [installed,local]
libilbc3/now 3.0.4-dmo1 arm64 [installed,local]
libkvazaar7/now 1:2.2.0-dmo1 arm64 [installed,local]
libopenh264-7/stable,now 2.3.1+dfsg-3 arm64 [installed,auto-removable]
libpostproc57/now 10:6.0-dmo6 arm64 [installed,local]
libswscale7/now 10:6.0-dmo6 arm64 [installed,local]
libunibreak5/now 5.1-0.0 arm64 [installed,local]
libvidstab1.2/now 2:1.1.1-dmo1 arm64 [installed,local]
libvmaf1/now 2.3.1-dmo2 arm64 [installed,local]
libvo-amrwbenc0/stable,now 0.1.3-2 arm64 [installed,auto-removable]
libxavs2-13/now 1:1.4-dmo1 arm64 [installed,local]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
sudo apt-get purge --auto-remove --dry-run libavutil58 | grep -v ^Purg
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be REMOVED:
libaribb24-0* libavutil58* libdavs2-16* libilbc3* libkvazaar7*
libopenh264-7* libpostproc57* libswscale7* libunibreak5* libvidstab1.2*
libvmaf1* libvo-amrwbenc0* libxavs2-13*
0 upgraded, 0 newly installed, 13 to remove and 0 not upgraded.
To get rid of that packages you should execute apt-get purge --auto-remove
.
OK.
Now, nothing listed with apt list ?garbage
After that you can reinstall liquidsoap.
apt-get install --no-install-recommends liquidsoap
Check that liquidsoap works as expected.
The following NEW packages will be installed:
libcamomile-ocaml-data liblo7 libsoundtouch1 libtag1v5 libtag1v5-vanilla
liquidsoap ocaml-base
It works and I can hear audio from it.
OK, looks fine.
rm /etc/apt/preferences.d/debian.pref
-
Do not upgrade any of the packages.
echo 'deb https://archive.raspberrypi.org/debian/ bookworm main' > /etc/apt/sources.list.d/raspberrypi.list apt-get update
apt list ?upgradable
apt list ?obsolete
apt list ?upgradable
Listing... Done
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
apt list ?obsolete
Listing... Done
deb-multimedia-keyring/now 2016.8.1 all [installed,local]
libraspberrypi-bin/now 1:2+git20231018~131943+3c97f76-1 arm64 [installed,local]
libraspberrypi0/now 1:2+git20231018~131943+3c97f76-1 arm64 [installed,local]
raspberrypi-archive-keyring/now 2021.1.1+rpt1 all [installed,local]
raspberrypi-bootloader/now 1:1.20230405-1 arm64 [installed,local]
raspberrypi-kernel/now 1:1.20230405-1 arm64 [installed,local]
raspberrypi-sys-mods/now 2:20230510-dietpi2 all [installed,local]
rpi-eeprom/now 20.0-2 all [installed,local]
sparksdr/now 2.0.966 arm64 [installed,local]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
Looks strange, maybe something went wrong.
All raspberry packages are obsolete, looks like raspberry repository is missing.
echo 'deb https://archive.raspberrypi.org/debian/ bookworm main' > /etc/apt/sources.list.d/raspberrypi.list apt-get update
Did you do this step?
I did that step, which seems to be two commands, which is how the command line performed it.
/etc/apt/sources.list.d/raspberrypi.list is empty.
However, there was a backup file of the original /etc/apt/sources.list.d/raspi.list, which I have now restored.
apt list ?upgradable
Listing... Done
alsa-utils/stable 1.2.8-1+rpt1 arm64 [upgradable from: 1.2.8-1]
console-setup-linux/stable 1.221rpt1 all [upgradable from: 1.221]
console-setup/stable 1.221rpt1 all [upgradable from: 1.221]
ffmpeg/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
firmware-atheros/stable 1:20230210-5+rpt1 all [upgradable from: 20230210-5]
firmware-brcm80211/stable 1:20230210-5+rpt1 all [upgradable from: 20230210-5]
firmware-iwlwifi/stable 1:20230210-5+rpt1 all [upgradable from: 20230210-5]
firmware-misc-nonfree/stable 1:20230210-5+rpt1 all [upgradable from: 20230210-5]
firmware-realtek/stable 1:20230210-5+rpt1 all [upgradable from: 20230210-5]
gsettings-desktop-schemas/stable 43.0-1+rpt1 all [upgradable from: 43.0-1]
keyboard-configuration/stable 1.221rpt1 all [upgradable from: 1.221]
libasound2-data/stable 1.2.8-1+rpt1 all [upgradable from: 1.2.8-1]
libasound2-dev/stable 1.2.8-1+rpt1 arm64 [upgradable from: 1.2.8-1+b1]
libasound2/stable 1.2.8-1+rpt1 arm64 [upgradable from: 1.2.8-1+b1]
libatopology2/stable 1.2.8-1+rpt1 arm64 [upgradable from: 1.2.8-1+b1]
libavcodec-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavcodec59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavdevice59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavfilter8/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavformat-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavformat59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavutil-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavutil57/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libc-bin/stable 2.36-9+rpt2+deb12u3 arm64 [upgradable from: 2.36-9+deb12u3]
libc-dev-bin/stable 2.36-9+rpt2+deb12u3 arm64 [upgradable from: 2.36-9+deb12u3]
libc-l10n/stable 2.36-9+rpt2+deb12u3 all [upgradable from: 2.36-9+deb12u3]
libc6-dev/stable 2.36-9+rpt2+deb12u3 arm64 [upgradable from: 2.36-9+deb12u3]
libc6/stable 2.36-9+rpt2+deb12u3 arm64 [upgradable from: 2.36-9+deb12u3]
libcairo-gobject2/stable 1.16.0-7+rpt1 arm64 [upgradable from: 1.16.0-7]
libcairo-script-interpreter2/stable 1.16.0-7+rpt1 arm64 [upgradable from: 1.16.0-7]
libcairo2-dev/stable 1.16.0-7+rpt1 arm64 [upgradable from: 1.16.0-7]
libcairo2/stable 1.16.0-7+rpt1 arm64 [upgradable from: 1.16.0-7]
libegl-mesa0/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libegl1-mesa-dev/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libgbm1/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libgl1-mesa-dev/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libgl1-mesa-dri/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libglapi-mesa/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libglx-mesa0/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
liblightdm-gobject-1-0/stable 1.26.0-8+rpt3 arm64 [upgradable from: 1.26.0-8]
libpam-modules-bin/stable 1.5.2-6+rpt2+deb12u1 arm64 [upgradable from: 1.5.2-6+deb12u1]
libpam-modules/stable 1.5.2-6+rpt2+deb12u1 arm64 [upgradable from: 1.5.2-6+deb12u1]
libpam-runtime/stable 1.5.2-6+rpt2+deb12u1 all [upgradable from: 1.5.2-6+deb12u1]
libpam0g/stable 1.5.2-6+rpt2+deb12u1 arm64 [upgradable from: 1.5.2-6+deb12u1]
libpixman-1-0/stable 0.42.2-1+rpt1 arm64 [upgradable from: 0.42.2-1]
libpixman-1-dev/stable 0.42.2-1+rpt1 arm64 [upgradable from: 0.42.2-1]
libpostproc56/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libpulse-dev/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulse-mainloop-glib0/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulse0/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulsedsp/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libswresample-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswresample4/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswscale-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswscale6/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
lightdm/stable 1.26.0-8+rpt3 arm64 [upgradable from: 1.26.0-8]
linux-libc-dev/stable 1:6.1.54-1+rpt2 arm64 [upgradable from: 6.5.3-1~bpo12+1]
locales/stable 2.36-9+rpt2+deb12u3 all [upgradable from: 2.36-9+deb12u3]
pulseaudio-equalizer/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-module-gsettings/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-module-zeroconf/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-utils/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
python3-pip-whl/stable 23.0.1+dfsg-1+rpt1 all [upgradable from: 23.0.1+dfsg-1]
python3-pip/stable 23.0.1+dfsg-1+rpt1 all [upgradable from: 23.0.1+dfsg-1]
xserver-common/stable 2:21.1.7-3+rpt1 all [upgradable from: 2:21.1.7-3+deb12u2]
xserver-xorg-core/stable 2:21.1.7-3+rpt1 arm64 [upgradable from: 2:21.1.7-3+deb12u2]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
apt list ?obsolete
Listing... Done
deb-multimedia-keyring/now 2016.8.1 all [installed,local]
sparksdr/now 2.0.966 arm64 [installed,local]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
Oh, sorry. There should be semicolon.
echo 'deb https://archive.raspberrypi.org/debian/ bookworm main' > /etc/apt/sources.list.d/raspberrypi.list;
apt-get update
Did it work this time? the only difference is that I restored the original /etc/apt/sources.list.d/raspi.list istead of creating /etc/apt/sources.list.d/raspberrypi.list
Yes, so far everything is working as expected.
I think it's safe to upgrade the following packages.
apt-get install --only-upgrade console-setup-linux console-setup firmware-atheros firmware-brcm80211 firmware-iwlwifi firmware-misc-nonfree firmware-realtek gsettings-desktop-schemas keyboard-configuration libc-bin libc-dev-bin libc-l10n libc6-dev libc6 libcairo-gobject2 libcairo-script-interpreter2 libcairo2-dev libcairo2 liblightdm-gobject-1-0 libpam-modules-bin libpam-modules libpam-runtime libpam0g lightdm linux-libc-dev locales python3-pip-whl python3-pip xserver-common xserver-xorg-core
Check if liquidsoap runs correctly after these changes.
Also post apt list ?upgradable
after that.
It works.
apt list ?upgradable
Listing... Done
alsa-utils/stable 1.2.8-1+rpt1 arm64 [upgradable from: 1.2.8-1]
ffmpeg/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libasound2-data/stable 1.2.8-1+rpt1 all [upgradable from: 1.2.8-1]
libasound2-dev/stable 1.2.8-1+rpt1 arm64 [upgradable from: 1.2.8-1+b1]
libasound2/stable 1.2.8-1+rpt1 arm64 [upgradable from: 1.2.8-1+b1]
libatopology2/stable 1.2.8-1+rpt1 arm64 [upgradable from: 1.2.8-1+b1]
libavcodec-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavcodec59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavdevice59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavfilter8/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavformat-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavformat59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavutil-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavutil57/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libegl-mesa0/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libegl1-mesa-dev/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libgbm1/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libgl1-mesa-dev/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libgl1-mesa-dri/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libglapi-mesa/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libglx-mesa0/stable 23.2.1-0+rpt2 arm64 [upgradable from: 22.3.6-1+deb12u1]
libpixman-1-0/stable 0.42.2-1+rpt1 arm64 [upgradable from: 0.42.2-1]
libpixman-1-dev/stable 0.42.2-1+rpt1 arm64 [upgradable from: 0.42.2-1]
libpostproc56/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libpulse-dev/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulse-mainloop-glib0/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulse0/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulsedsp/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libswresample-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswresample4/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswscale-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswscale6/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
pulseaudio-equalizer/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-module-gsettings/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-module-zeroconf/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-utils/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
Fine.
Let's update
- graphics
apt-get install --only-upgrade libegl-mesa0 libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libglx-mesa0 libpixman-1-0 libpixman-1-dev
- alsa
apt-get install --only-upgrade alsa-utils libasound2-data libasound2-dev libasound2 libatopology2
- pulseaudio
apt-get install --only-upgrade libpulse-dev libpulse-mainloop-glib0 libpulse0 libpulsedsp pulseaudio-equalizer pulseaudio-module-gsettings pulseaudio-module-zeroconf pulseaudio-utils pulseaudio
Check that liquidsoap is working after each step. Don't proceed to the next step if it crashes.
And then apt list ?upgradable
.
liquidsoap still works.
apt list ?upgradable
Listing... Done
ffmpeg/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavcodec-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavcodec59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavdevice59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavfilter8/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavformat-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavformat59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavutil-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavutil57/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libpostproc56/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libpulse-dev/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulse-mainloop-glib0/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulse0/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libpulsedsp/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
libswresample-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswresample4/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswscale-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswscale6/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
pulseaudio-equalizer/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-module-gsettings/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-module-zeroconf/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio-utils/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
pulseaudio/stable 16.1+dfsg1-2+rpt1 arm64 [upgradable from: 16.1+dfsg1-2+b1]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
And what about pulse?
apt-get install --only-upgrade libpulse-dev libpulse-mainloop-glib0 libpulse0 libpulsedsp pulseaudio-equalizer pulseaudio-module-gsettings pulseaudio-module-zeroconf pulseaudio-utils pulseaudio
I forgot to add sudo...
It still works.
apt list ?upgradable
Listing... Done
ffmpeg/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavcodec-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavcodec59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavdevice59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavfilter8/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavformat-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavformat59/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavutil-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libavutil57/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libpostproc56/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswresample-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswresample4/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswscale-dev/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
libswscale6/stable 8:5.1.3-1+rpt4 arm64 [upgradable from: 7:5.1.3-1]
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
OK, and the last one is ffmpeg.
- Let's try to upgrade.
Runapt-get dist-upgrade
. - Check the liquidsoap.
- To downgrade it back to the default version use the following settings
/etc/apt/preferences.d/ffmpeg.pref
And then downgrade it as usual by usingPackage: ffmpeg libavcodec-dev libavcodec59 libavdevice59 libavfilter8 libavformat-dev libavformat59 libavutil-dev libavutil57 libpostproc56 libswresample-dev libswresample4 libswscale-dev libswscale6 Pin: origin deb.debian.org Pin-Priority: 1000
apt-get dist-upgrade
. - I think if I pin it with a higher priority it will prevent any updates.
/etc/apt/preferences.d/ffmpeg.pref
Get the policy for ffmpegPackage: ffmpeg libavcodec-dev libavcodec59 libavdevice59 libavfilter8 libavformat-dev libavformat59 libavutil-dev libavutil57 libpostproc56 libswresample-dev libswresample4 libswscale-dev libswscale6 Pin: origin deb.debian.org Pin-Priority: 600
apt-cache policy ffmpeg
and check if it'sapt list ?upgradable
.
sudo apt-get dist-upgrade
liquidsoap Segmentation fault
edit /etc/apt/preferences.d/ffmpeg.pref
sudo apt-get dist-upgrade
liquidsoap works
sudo apt-cache policy ffmpeg...
ffmpeg:
Installed: 7:5.1.3-1
Candidate: 7:5.1.3-1
Version table:
8:5.1.3-1+rpt4 500
500 https://archive.raspberrypi.org/debian bookworm/main arm64 Packages
*** 7:5.1.3-1 600
500 https://deb.debian.org/debian bookworm/main arm64 Packages
100 /var/lib/dpkg/status
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
apt list ?upgradable
Listing... Done
N: Ignoring file 'deb-multimedia.list.backup' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
So basically this is it, you can leave the system in this semi-upgraded state.
Just a final check.
mv /etc/apt/sources.list.d/deb-multimedia.list{.backup,};
apt-get update;
apt-cache policy ffmpeg;
The ultimate solution in this whole case would be to build liquidsoap from source.
On the plus side, this allows you to use custom dependencies and custom liquisoap versions.
But the downside is the requirement to maintain the ocaml itself and its packages. You also have to maintain compatibility with the system packages and rebuild the ocaml packages after any major changes.
The alternative solution would be to use a container from https://hub.docker.com/r/savonet/liquidsoap or build one yourself.
It works fine out of the box if you have no special hardware requirements.
Wouldn’t it be easier to get Raspberry Pi to use compatible packages? Or maybe just the last pin to keep it from using the Raspberry Pi packages? It would have to be done before any of them are installed.
Otherwise I may as well do without liquidsoap.
Remember, others are having this problem and there will be more.
I will try your checks in the morning.
sudo apt-cache policy ffmpeg;
ffmpeg:
Installed: 7:5.1.3-1
Candidate: 7:5.1.3-1
Version table:
10:6.0-dmo6 500
500 https://www.deb-multimedia.org bookworm/main arm64 Packages
8:5.1.3-1+rpt4 500
500 https://archive.raspberrypi.org/debian bookworm/main arm64 Packages
*** 7:5.1.3-1 600
500 https://deb.debian.org/debian bookworm/main arm64 Packages
100 /var/lib/dpkg/status
I think the PATCH for ffmpeg in the raspberry pi repository makes it incompatible with the liquidsoap from the release artifacts and the bookworm repository.
Perhaps @toots will revisit this issue and suggest a better solution.
For now, my solutions to this problem are
- Use ffmpeg from debian or deb-multimedia.
But you will lose the benefits of the patch, probably some hardware acceleration features. - Install liquidsoap from opam.
But you will have to maintain your ocaml installation. - Use containers.
But it'll be a problem if you plan to use some system/hardware features.
You can comment out the contents of the deb-multimedia.list
.
Or if you'd like to clean up the remnants of deb-multimedia, then
-
rm /etc/apt/sources.list.d/deb-multimedia.list; apt-get purge -y deb-multimedia-keyring;
- Find and
rm deb-multimedia-keyring_2016.8.1_all.deb
.
Same issue here, tested with :
liquidsoap_2.1.4-debian-bookworm-1_arm64.deb
liquidsoap_2.2.2-debian-bookworm-1_arm64.deb
liquidsoap-7da2632_2.2.3-debian-bookworm-1_arm64.deb
and ffmpeg
versions :
5.1.4-0+rpt1+deb12u1
5.1.4-0+deb12u1
5.1.3-1
On a Raspberry Pi 4B (arm64) with Debian 12.2 (Bookworm).
# liquidsoap --version
Erreur de segmentation
Hi @toots I hope this will help :
# gdb /usr/bin/liquidsoap
[…]
Reading symbols from /usr/bin/liquidsoap...
Reading symbols from /usr/lib/debug/.build-id/b1/322399decbc8199db4fa2e389a4998f45944ee.debug...
(gdb) run --version
Starting program: /usr/bin/liquidsoap --version
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
__GI___strlen_asimd () at ../sysdeps/aarch64/multiarch/strlen_asimd.S:96
96 ../sysdeps/aarch64/multiarch/strlen_asimd.S: No such file or directory.
(gdb) thread apply all bt
Thread 1 (Thread 0x7ff7a04040 (LWP 365162) "liquidsoap"):
#0 __GI___strlen_asimd () at ../sysdeps/aarch64/multiarch/strlen_asimd.S:96
#1 0x000000555719ff48 in caml_copy_string (s=0x0) at alloc.c:120
#2 0x000000555715f5c0 in ocaml_avfilter_alloc_pads (pads=0x7ff6002cd0, pad_count=2, name=0x7ff5e18c50 "unsand") at avfilter_stubs.c:46
#3 0x000000555715f764 in ocaml_avfilter_get_all_filters (unit=<optimized out>) at avfilter_stubs.c:112
#4 0x00000055571b9864 in caml_c_call ()
#5 0x0000005556bc5524 in camlAvfilter__entry () at avfilter/avfilter.ml:166
#6 0x00000055567c2e64 in caml_program ()
#7 0x00000055571b98d4 in caml_start_program ()
#8 0x0000005557199900 in caml_startup_common (argv=0x55577e1bf8, pooling=<optimized out>, pooling@entry=0) at startup_nat.c:160
#9 0x0000005557199990 in caml_startup_exn (argv=<optimized out>) at startup_nat.c:167
#10 caml_startup (argv=<optimized out>) at startup_nat.c:172
#11 caml_main (argv=<optimized out>) at startup_nat.c:179
#12 0x00000055567bf710 in main (argc=<optimized out>, argv=<optimized out>) at main.c:37
(gdb)
Thread 1 (Thread 0x7ff7a04040 (LWP 365162) "liquidsoap"):
#0 __GI___strlen_asimd () at ../sysdeps/aarch64/multiarch/strlen_asimd.S:96
#1 0x000000555719ff48 in caml_copy_string (s=0x0) at alloc.c:120
#2 0x000000555715f5c0 in ocaml_avfilter_alloc_pads (pads=0x7ff6002cd0, pad_count=2, name=0x7ff5e18c50 "unsand") at avfilter_stubs.c:46
#3 0x000000555715f764 in ocaml_avfilter_get_all_filters (unit=<optimized out>) at avfilter_stubs.c:112
#4 0x00000055571b9864 in caml_c_call ()
#5 0x0000005556bc5524 in camlAvfilter__entry () at avfilter/avfilter.ml:166
#6 0x00000055567c2e64 in caml_program ()
#7 0x00000055571b98d4 in caml_start_program ()
#8 0x0000005557199900 in caml_startup_common (argv=0x55577e1bf8, pooling=<optimized out>, pooling@entry=0) at startup_nat.c:160
#9 0x0000005557199990 in caml_startup_exn (argv=<optimized out>) at startup_nat.c:167
#10 caml_startup (argv=<optimized out>) at startup_nat.c:172
#11 caml_main (argv=<optimized out>) at startup_nat.c:179
#12 0x00000055567bf710 in main (argc=<optimized out>, argv=<optimized out>) at main.c:37
(gdb)
Thread 1 (Thread 0x7ff7a04040 (LWP 365162) "liquidsoap"):
#0 __GI___strlen_asimd () at ../sysdeps/aarch64/multiarch/strlen_asimd.S:96
#1 0x000000555719ff48 in caml_copy_string (s=0x0) at alloc.c:120
#2 0x000000555715f5c0 in ocaml_avfilter_alloc_pads (pads=0x7ff6002cd0, pad_count=2, name=0x7ff5e18c50 "unsand") at avfilter_stubs.c:46
#3 0x000000555715f764 in ocaml_avfilter_get_all_filters (unit=<optimized out>) at avfilter_stubs.c:112
#4 0x00000055571b9864 in caml_c_call ()
#5 0x0000005556bc5524 in camlAvfilter__entry () at avfilter/avfilter.ml:166
#6 0x00000055567c2e64 in caml_program ()
#7 0x00000055571b98d4 in caml_start_program ()
#8 0x0000005557199900 in caml_startup_common (argv=0x55577e1bf8, pooling=<optimized out>, pooling@entry=0) at startup_nat.c:160
#9 0x0000005557199990 in caml_startup_exn (argv=<optimized out>) at startup_nat.c:167
#10 caml_startup (argv=<optimized out>) at startup_nat.c:172
#11 caml_main (argv=<optimized out>) at startup_nat.c:179
#12 0x00000055567bf710 in main (argc=<optimized out>, argv=<optimized out>) at main.c:37
(gdb)
Thread 1 (Thread 0x7ff7a04040 (LWP 365162) "liquidsoap"):
#0 __GI___strlen_asimd () at ../sysdeps/aarch64/multiarch/strlen_asimd.S:96
#1 0x000000555719ff48 in caml_copy_string (s=0x0) at alloc.c:120
#2 0x000000555715f5c0 in ocaml_avfilter_alloc_pads (pads=0x7ff6002cd0, pad_count=2, name=0x7ff5e18c50 "unsand") at avfilter_stubs.c:46
#3 0x000000555715f764 in ocaml_avfilter_get_all_filters (unit=<optimized out>) at avfilter_stubs.c:112
#4 0x00000055571b9864 in caml_c_call ()
#5 0x0000005556bc5524 in camlAvfilter__entry () at avfilter/avfilter.ml:166
#6 0x00000055567c2e64 in caml_program ()
#7 0x00000055571b98d4 in caml_start_program ()
#8 0x0000005557199900 in caml_startup_common (argv=0x55577e1bf8, pooling=<optimized out>, pooling@entry=0) at startup_nat.c:160
#9 0x0000005557199990 in caml_startup_exn (argv=<optimized out>) at startup_nat.c:167
#10 caml_startup (argv=<optimized out>) at startup_nat.c:172
#11 caml_main (argv=<optimized out>) at startup_nat.c:179
#12 0x00000055567bf710 in main (argc=<optimized out>, argv=<optimized out>) at main.c:37
(gdb)
Feel free to send me versions to test 😉
I finally understand the workaround, I was just downgrading ffmpeg
but not the other dependencies.
So I just downgrade ffmpeg and it's dependencies to the Debian version:
apt install ffmpeg=7:5.1.3-1
apt install libavcodec-dev=7:5.1.3-1 libavutil-dev=7:5.1.3-1 libswresample-dev=7:5.1.3-1 libswresample4=7:5.1.3-1 libavdevice-dev=7:5.1.3-1 libavfilter-dev=7:5.1.3-1 libavformat-dev=7:5.1.3-1 libswscale-dev=7:5.1.3-1 libavdevice59=7:5.1.3-1 libavfilter8=7:5.1.3-1 libpostproc-dev=7:5.1.3-1 libpostproc56=7:5.1.3-1 libavutil57=7:5.1.3-1 libswscale6=7:5.1.3-1 libavformat59=7:5.1.3-1 libavcodec59=7:5.1.3-1
Install Liquidsoap 2.2.2
dependencies:
apt install libao4 libfaad2 libfdk-aac2 liblo7 libmad0 libsdl2-image-2.0-0 libsdl2-ttf-2.0-0 libsoundtouch1 libtag1v5
And install it:
dpkg -i liquidsoap_2.2.2-debian-bookworm-1_arm64.deb
And it works!
Thanks @vitoyucepi
I have found that on systems which do not yet have the ffmpeg suite installed, you can prevent the installation form the raspberry pi repository and liquidsoap will work. Raspberry Pi OS may have ffmpeg installed in the distributed image.
/etc/apt/preferences.d/ffmpeg.pref
Package: ffmpeg libavcodec-dev libavcodec59 libavdevice59 libavfilter8 libavformat-dev libavformat59 libavutil-dev libavutil57 libpostproc56 libswresample-dev libswresample4 libswscale-dev libswscale6
Pin: origin deb.debian.org
Pin-Priority: 600
If you look where this is presented above, it also shows how to downgrade it also. I haven't tried is on another system yet.
Edit: The procedure with ffmpeg.pref` previously presented fixes a Raspberry Pi OS system that already had the ffmpeg suite installed.
----Steve
What can we do to resolve the root cause of this issue?
This issue removes out of the box apt installation of liquidsoap on raspberry pi's using bookworm.
@toots do you suggest we log this with ffmpeg support?
Beside the workaround, how can we get this fixed?
Hi @MediaMeasure,
There are a few ways to solve this problem.
- You can build the liquidsoap from opam yourself.
This solution could be problematic for a person not familiar with opam and linux. - You can use containers.
This one has a lot of advantages, but for me the main culprit would be hardware acceleration and input/output device interaction. - There will be a special package for rpi.
This solution requires additional attention from the liquidsoap development team.
For anyone coming here looking for a solution, here's a workaround I came up with that combines and tweaks the suggestions above. It's not a good permanent solution, but it should work for now.
This process will work even if you've already installed liquidsoap and are getting the segfault.
Tested on a fresh install of RaspberryOS 12.5 with liquidsoap 2.1.3-2.
Create the /etc/apt/preferences.d/ffmpeg.pref file with the following contents:
Package: ffmpeg libavcodec-dev libavcodec59 libavdevice59 libavfilter8 libavformat-dev libavformat59 libavutil-dev libavutil57 libpostproc56 libswresample-dev libswresample4 libswscale-dev libswscale6
Pin: origin deb.debian.org
Pin-Priority: 1001
(This tells apt to only get these packages from the Debian repos, not the archive.raspberrypi.com repos. The priority of 1001 tells apt that we want it to downgrade packages, if needed.)
Run apt to downgrade (or install) the problematic packages:
apt install ffmpeg libswresample4 libavdevice59 libavfilter8 libpostproc56 libavutil57 libswscale6 libavformat59 libavcodec59
That's it. liquidsoap should run without segfaulting and you can run updates as normal.