Overview
Request 1160709 accepted
- Add missing runtime dependency
* Add Requires: qt6-sql-sqlite
- Update to 1.12
* No upstream changelog
- Build with Qt6
The runtime dependency mentioned by Carsten is now added. The problem with libjack0 discussed in the superseded SR is understood and needs no action by musique.
- Created by letsfindaway
- In state accepted
- Package maintainers: Kieltux and letsfindaway
- Supersedes 1160429
Hello, thank you for the update. On openSUSE Leap 15.5 this version does not work.
After setting the music folder, the scan starts but nothing shows up.
[unknown] artist id 0 "Dubioza Kolektiv"
[unknown] QSqlQuery::prepare: database not open
...
[unknown] Commit failed!
[unknown] QSqlQuery::exec: database not open
[unknown] QSqlDatabase: QSQLITE driver not loaded
[unknown] QSqlDatabase: available drivers:
[unknown] QSqlDatabasePrivate::addDatabase: duplicate connection name '', old connection removed.
Is there a missing dependency?
Ok, this runtime dependency is missing. Could you add
Requires: qt6-sql-sqlite
Thx.
I now tested the package in a fresh distrobox and found that also a
Requires: libjack0
is missing as runtime dependency. What is now best practice here: shall I just add this in an additional "osc ci" to my existing branch or shall I drop this SR and create a new one superseding this here with everything in just one check-in to keep the changelog clean?
Interestingly, if I add "Requires: libjack0" then rpmlint complains: I should rpm let figure this out instead of explicitly requiring it.
musique.x86_64: E: explicit-lib-dependency libjack0 You must let rpm find the library dependencies by itself. Do not put unneeded explicit Requires: tags.
If I omit this, then libjack0 is not installed as a dependency, however pipewire-libjack-0_3 is installed. libjack0 is however later needed when starting the program.
If I add the Requires: libjack0, then when installing musique libjack0 is installed, but pipewire-libjack-0_3 is not installed.
So what to do?
Edit: I found some posts on the Internet about pipewire-libjack replacing libjack. But some packages (could not figure out which) still seem to insist on using libjack.
was the lack of libjack0 preventing musique from starting?
Yes. I tested again:
- Build the package without Requires: libjack0
- Create new distrobox:
distrobox enter
- Install musique:
zypper in musique-1.12-0.x86_64.rpm
- Start musique: musique: error while loading shared libraries: libjack.so.0: cannot open shared object file: No such file or directory
- Looking for libjack.so.0:
rpm -ql pipewire-libjack-0_3
results in
/etc/alternatives/pw-jack /etc/alternatives/pw-jack.1.gz /usr/bin/pw-jack /usr/bin/pw-jack-0.3 /usr/lib64/pipewire-0.3/jack /usr/lib64/pipewire-0.3/jack/libjack.so.0 /usr/lib64/pipewire-0.3/jack/libjack.so.0.3.1004 /usr/lib64/pipewire-0.3/jack/libjacknet.so.0 /usr/lib64/pipewire-0.3/jack/libjacknet.so.0.3.1004 /usr/lib64/pipewire-0.3/jack/libjackserver.so.0 /usr/lib64/pipewire-0.3/jack/libjackserver.so.0.3.1004 /usr/share/man/man1/pw-jack-0.3.1.gz /usr/share/man/man1/pw-jack.1.gz /usr/share/pipewire/jack.conf
So the library is there in /usr/lib64/pipewire-0.3/jack, but the loader seems not to search there. ldconfig -p | grep jack
gives no output. I also cannot see any ldconfig configuration file in /etc/ld.so.conf.d
.
Note: this all happens in a distrobox, so I don't know whether it is a distrobox problem not correctly updating the ldconfig cache or a pipewire problem not correctly providing the ldconfig configuration.
However it seems that I should move this issue to some other place. What would be the best place to discuss this?
Edit: if I start the application using pw-jack musique
then it works! But is this the suggested way to start it?
Some info from a normal installation: I did test it on TW. When libjack0 itself is installed, it works without problem. When pipewire-libjack-0_3 is installed and libjack0 removed I get the error you have. pw-jack musique also works fine.
I get the same error with qjackctl, so I would file a bug at bugzilla.opensuse.org against pipewire.
BTW: I don't get why musique would need/use jack.
This is already a bug in bugzilla. The explanation starts at comment 8: https://bugzilla.opensuse.org/show_bug.cgi?id=1211926#c8
So for the time being the user has to install pipewire-jack
additionally to get the ldconfig configuration file. The bug is still open and I hope there will be a good solution for it. However this is nothing where musique can and should do anything.
It is a transitive dependency which is pulling in libjack. ffmpeg (libavdevice) and libmpv2 are requiring this library.
Request History
letsfindaway created request
- Add missing runtime dependency
* Add Requires: qt6-sql-sqlite
- Update to 1.12
* No upstream changelog
- Build with Qt6
The runtime dependency mentioned by Carsten is now added. The problem with libjack0 discussed in the superseded SR is understood and needs no action by musique.
Kieltux accepted request
LGTM. Thx.