Bug 284307 - ports-mgmt/pkg: missing required shared library
Summary: ports-mgmt/pkg: missing required shared library
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-pkg (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-24 12:01 UTC by Tomáš Čiernik
Modified: 2025-01-25 10:55 UTC (History)
6 users (show)

See Also:
bugzilla: maintainer-feedback? (pkg)


Attachments
gif wich show a problem (144.47 KB, image/gif)
2025-01-24 18:03 UTC, lumiwa
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tomáš Čiernik 2025-01-24 12:01:34 UTC
Hello,

not sure if this is related to pkg, ImageMagick7 or librsvg2-rust, but after updating to pkg-2.0.2 pkg check complains:

# pkg -j php check -dan
Checking all packages: 100%
ImageMagick7 is missing a required shared library: librsvg-2.so.2

but librsvg-2.so.2 is installed:
# pkg -j php info -l librsvg2-rust-2.58.5_3 | grep librsvg-2.so.2
        /usr/local/lib/librsvg-2.so.2
        /usr/local/lib/librsvg-2.so.2.50.0

I already tried to reinstall all packages via pkg upgrade -f, no change. OS version is 13.4-RELEASE-p2.
Comment 1 Bennett Wetters 2025-01-24 12:57:51 UTC
Hi,

I have a similar issue relating to said ports:

$ sudo pkg install emacs
...
All repositories are up to date.
Checking integrity... done (1 conflicting)
  - librsvg2-2.40.21_4 [FreeBSD] conflicts with librsvg2-rust-2.58.5_3 [installed] on /usr/local/bin/rsvg-convert
Cannot solve problem using SAT solver, trying another plan
Checking integrity... done (0 conflicting)
The following 2 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
	ImageMagick7: 7.1.1.26_6
	fontpreview: 1.0.6_5

Number of packages to be removed: 2

The operation will free 35 MiB.

Proceed with this action? [Y/n]:


Note how the transaction does NOT include installing emacs.
I then tried this:

$ sudo pkg install -f librsvg2-rust
...
All repositories are up to date.
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
	librsvg2-rust-2.58.5_3 [FreeBSD]

Number of packages to be reinstalled: 1

Proceed with this action? [Y/n]:
[1/1] Reinstalling librsvg2-rust-2.58.5_3...
[1/1] Extracting librsvg2-rust-2.58.5_3: 100%
==> Running trigger: gdk-pixbuf-query-loaders.ucl
Generating gdk-pixbuf modules cache


Then the error changed:

$ sudo pkg install emacs
...
All repositories are up to date.
Checking integrity... done (1 conflicting)
  - librsvg2-2.40.21_4 [FreeBSD] conflicts with librsvg2-rust-2.58.5_3 [installed] on /usr/local/bin/rsvg-convert
Cannot solve problem using SAT solver, trying another plan
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed


It didn't want to install anything but emacs was still missing from my system.
I have a custom repo since I want different build flags for emacs.
So then tried:

$ sudo pkg install -r mycustomrepo emacs
...
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	emacs: 29.4_2,3 [pkgs.woozy.club]

Number of packages to be installed: 1

The process will require 258 MiB more space.

Proceed with this action? [Y/n]:
[1/1] Installing emacs-29.4_2,3...
[1/1] Extracting emacs-29.4_2,3: 100%
==> Running trigger: desktop-file-utils.ucl
Building cache database of MIME types
==> Running trigger: gtk-update-icon-cache.ucl
Generating GTK icon cache for /usr/local/share/icons/hicolor


This gave me an emacs binary, but now pkg still reports the missing dependency:
$ pkg check -da
Checking all packages: 100%
emacs is missing a required shared library: librsvg-2.so.2

But if I want to install that, pkg tries to remove all kinds of things I need and, curiously, emacs as well:

$ sudo pkg install librsvg2
...
All repositories are up to date.
Checking integrity... done (1 conflicting)
  - librsvg2-2.40.21_4 [FreeBSD] conflicts with librsvg2-rust-2.58.5_3 [installed] on /usr/local/bin/rsvg-convert
Checking integrity... done (0 conflicting)
The following 72 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	librsvg2: 2.40.21_4 [FreeBSD]

Installed packages to be REMOVED:
	arandr: 0.1.11_1
	bsdisks: 0.36
	emacs: 29.4_2,3
	firefox: 134.0.2,2
	girara: 0.4.5
	gtk3: 3.24.43
	gtkmm30: 3.24.9
	kf6-breeze-icons: 6.9.0_2
	kf6-karchive: 6.9.0
	kf6-kauth: 6.9.0
	kf6-kbookmarks: 6.9.0
	kf6-kcodecs: 6.9.0
	kf6-kcolorscheme: 6.9.0
	kf6-kcompletion: 6.9.0
	kf6-kconfig: 6.9.0
	kf6-kconfigwidgets: 6.9.0
	kf6-kcoreaddons: 6.9.0
	kf6-kcrash: 6.9.0
	kf6-kdbusaddons: 6.9.0
	kf6-kded: 6.9.0
	kf6-kdoctools: 6.9.0
	kf6-kguiaddons: 6.9.0
	kf6-ki18n: 6.9.0
	kf6-kiconthemes: 6.9.0
	kf6-kimageformats: 6.9.0
	kf6-kio: 6.9.0
	kf6-kitemviews: 6.9.0
	kf6-kjobwidgets: 6.9.0
	kf6-knotifications: 6.9.0
	kf6-kservice: 6.9.0
	kf6-kwallet: 6.9.0
	kf6-kwidgetsaddons: 6.9.0
	kf6-kwindowsystem: 6.9.0
	kf6-solid: 6.9.0
	libcanberra-gtk3: 0.30_11
	librsvg2-rust: 2.58.5_3
	nextcloudclient: 3.15.3
	p5-Gtk3: 0.034_2
	pavucontrol: 5.0_5
	pcsc-tools: 1.7.2
	polkit-qt-1-qt6: 0.200.0
	qca-qt6: 2.3.9
	qt6-5compat: 6.8.1
	qt6-base: 6.8.1
	qt6-base_sqldriver-sqlite: 6.8.1
	qt6-declarative: 6.8.1_1
	qt6-imageformats: 6.8.1
	qt6-location: 6.8.1
	qt6-lottie: 6.8.1
	qt6-multimedia: 6.8.1
	qt6-positioning: 6.8.1
	qt6-quick3d: 6.8.1
	qt6-quicktimeline: 6.8.1
	qt6-serialport: 6.8.1
	qt6-shadertools: 6.8.1
	qt6-svg: 6.8.1
	qt6-tools: 6.8.1
	qt6-wayland: 6.8.1
	qt6-webchannel: 6.8.1
	qt6-webengine: 6.8.1
	qt6-websockets: 6.8.1
	qtkeychain-qt6: 0.14.3
	signal-desktop: 7.38.0
	telegram-desktop: 5.10.3
	winetricks: 20250102
	wireshark: 4.4.3_1
	zathura: 0.5.11
	zathura-cb: 0.1.11
	zathura-pdf-poppler: 0.3.3_2
	zathura-ps: 0.2.8_2
	zenity: 3.42.1_3

Number of packages to be removed: 71
Number of packages to be installed: 1

The operation will free 2 GiB.

Proceed with this action? [Y/n]:


So something here is thoroughly messed up with the dependencies :D
Comment 2 Baptiste Daroussin freebsd_committer freebsd_triage 2025-01-24 13:10:21 UTC
please try with 2.0.3 which has just been released

You may need to rebuild librsvg
Comment 3 Bennett Wetters 2025-01-24 16:14:50 UTC
I just had my poudriere build 2.0.3 for me but it doesn't help (it seems) :/

$ pkg info pkg
pkg-2.0.3
...

$ sudo pkg install chromium
...
All repositories are up to date.
Checking integrity... done (1 conflicting)
  - librsvg2-2.40.21_4 [FreeBSD] conflicts with librsvg2-rust-2.58.5_3 [installed] on /usr/local/bin/rsvg-convert
Checking integrity... done (0 conflicting)
The following 2 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	chromium: 131.0.6778.204_2 [FreeBSD]

Installed packages to be REMOVED:
	emacs: 29.4_2,3

Number of packages to be removed: 1
Number of packages to be installed: 1

The process will require 137 MiB more space.

Proceed with this action? [Y/n]:


Still tries to install librsvg2 instead of using the librsvg2-rust I already have and remove emacs.

What do you mean by rebuilding librsvg2? As far as I know I don't have it installed and don't need it since librsvg2-rust provides the same shared library.
Comment 4 Baptiste Daroussin freebsd_committer freebsd_triage 2025-01-24 16:19:44 UTC
what is pkg check saying now ?

Can you show me the output of:

pkg rquery "%b" librsvg2
pkg rquery "%b" librsvg2-rust
pkg query "%b" librsvg2
Comment 5 Bennett Wetters 2025-01-24 16:25:27 UTC
(Forgot to add the pkg check -da output, sry ^^ First time writing FreeBSD bug reports so I just found out I can't edit comments. :c)

Still the same issue:

$ pkg check -da
Checking all packages: 100%
emacs is missing a required shared library: librsvg-2.so.2
...

If I try to install it, I get the same behavior where it tries to remove all kinds of stuff.

The commands you asked for:

$ pkg rquery "%b" librsvg2
librsvg-2.so.2
libpixbufloader-svg.so

$ pkg rquery "%b" librsvg2-rust
libpixbufloader-svg.so
libpixbufloader-svg.so

$ pkg query "%b" librsvg2
(no output, exit code 1)
Comment 6 Baptiste Daroussin freebsd_committer freebsd_triage 2025-01-24 16:35:50 UTC
I have a doubt so please also show me

$ pkg info -d emacs


That said in anycase just do first pkg install -f librsvg2 (your local version is having an issue)
Comment 7 Bennett Wetters 2025-01-24 16:48:09 UTC
Installing librsvg2 means losing my firefox (and all the other stuff) which I still need atm so I'll try that later.

So without reinstalling all my stuff this would be the current state:

$ pkg info -d emacs
emacs-29.4_2,3:
	libxcb-1.17.0
	libXrender-0.9.11
	libXrandr-1.5.4
	libXpm-3.5.17_1
	libXinerama-1.1.5,1
	libXi-1.8.1,1
	libXfixes-6.0.1
	libXext-1.3.6,1
	libXcomposite-0.4.6_1,1
	libX11-1.8.9,1
	libSM-1.2.4,1
	libICE-1.1.1,1
	pango-1.56.1
	libXt-1.3.0,1
	libXmu-1.1.4,1
	gtk3-3.24.43
	fontconfig-2.15.0_3,1
	libxml2-2.11.9
	gnutls-3.8.8
	indexinfo-0.3.1
	harfbuzz-10.2.0
	freetype2-2.13.3
	gmp-6.3.0
	mailutils-3.17
	gcc13-13.3.0
	webp-1.5.0
	tiff-4.7.0
	png-1.6.45
	librsvg2-rust-2.58.5_3
	lcms2-2.16_2
	jpeg-turbo-3.1.0
	giflib-5.2.2
	gdk-pixbuf2-2.42.10_3
	cairo-1.18.2,3
	tree-sitter-0.24.7
	jansson-2.14
	glib-2.80.5_1,2
	gettext-runtime-0.23.1
	desktop-file-utils-0.27
	dbus-1.14.10_5,1
	sqlite3-3.46.1,1
	at-spi2-core-2.54.1

FYI: The emacs I build with my poudriere only adds the NATIVECOMP option.
I use a custom repo with priority: 100 to override the FreeBSD repos for the few ports I build myself.

Will try to install librsvg2 later :)
Comment 8 Mark Millard 2025-01-24 17:30:57 UTC
(In reply to Tomáš Čiernik from comment #0)

The Makefile for the librsvg2-rust one explicitly says:

CONFLICTS_INSTALL=	librsvg2

But the other one’s Makefile appears to not indicate the
conflict, unless I missed it.

Looks to me like you can have only one at a time installed
as things are —and that both Makefiles should note the
conflict.

That propagates to the packages using the libraries as well:
only those using just one of the two —or not using either—
can validly be installed at once.
Comment 9 Baptiste Daroussin freebsd_committer freebsd_triage 2025-01-24 17:47:01 UTC
your emacs explicitly depends on librsvg2-rust so you can t dodge it you have to replace librsvg2 by librvsg2-rust, nothing pkg can do about it
Comment 10 Matthias Fechner freebsd_committer freebsd_triage 2025-01-24 17:50:29 UTC
(In reply to Mark Millard from comment #8)
I think that the CONFLICTS_INSTALL is causing a conflict with the package containing the string `librsvg2`, so librsvg2-rust is also a conflict.

Maybe the new pkg version sees this as a new conflict and tries to deinstall the package as it conflicts to itself.

I remove the CONFLICTS_INSTALL definition from librsvg2-rust and rebuild the package.

That fixes now the problem for me (just to make it sure, I have only librsvg2-rust installed).

Now `pkg upg -Fy` tells correctly:
Installed packages to be UPGRADED:
        librsvg2-rust: 2.58.5_2 -> 2.58.5_3
Comment 11 Baptiste Daroussin freebsd_committer freebsd_triage 2025-01-24 17:58:14 UTC
your emacs explicitly depends on librsvg2-rust so you can t dodge it you have to replace librsvg2 by librvsg2-rust, nothing pkg can do about it


(all of this has nothing to do with the ports conflicts, pkg does not uses that at all)
Comment 12 lumiwa 2025-01-24 18:03:30 UTC
Created attachment 256960 [details]
gif wich show a problem
Comment 13 lumiwa 2025-01-24 18:09:56 UTC
(In reply to lumiwa from comment #12)
I am so sorry for mistake woith picture.
I upgraded with pkg 2.0 and after upgrade I have a problem as other people wrote. I did built from ports pkg 2.03 and the problem exist as you see on the picture.

Thank you.
Comment 14 Baptiste Daroussin freebsd_committer freebsd_triage 2025-01-24 18:34:40 UTC
actually the right issue is librsvg2-rust has not been packaged correctly with pkg 2.0.0 it needs to be rebuild with pkg 2.0.3

I ll bump its revision
Comment 15 Bennett Wetters 2025-01-24 18:58:36 UTC
(In reply to Baptiste Daroussin from comment #11)

> your emacs explicitly depends on librsvg2-rust so you can t dodge it you have to replace librsvg2 by librvsg2-rust, nothing pkg can do about it

That was also my impression, was only going to try to install it since you explicitly said to do a `pkg install -f librsvg2`. Will test again once you've bumped the revision. :)
Comment 16 commit-hook freebsd_committer freebsd_triage 2025-01-24 19:18:14 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b8760710bff3cbc2dffd1812dfe2bb3f02df576e

commit b8760710bff3cbc2dffd1812dfe2bb3f02df576e
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2025-01-24 18:44:47 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2025-01-24 19:17:16 +0000

    graphics/librsvg2-rust: force rebuild the package

    from pkg 2.0.0 to pkg 2.0.3, a regression made the package "not
    providing" librsvg2.so.2 which made pkg trying to install both librsvg2
    and librsvg2-rust librsvg2 to satisfy the librsvg2.so.2 shlib dependency
    librsvg2-rust to satisfy the direct dependency, resulting in an
    unsolvable problem.

    PR:             284307

 graphics/librsvg2-rust/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 17 Tomáš Čiernik 2025-01-24 19:58:24 UTC
Sorry for long delay. I just want to confirm - after build and install both pkg-2.0.3 and librsvg2-rust-2.58.5_4 (pkg on host machine, librsvg2-rust in jail) pkg check -dan is not complaining.
Comment 18 Baptiste Daroussin freebsd_committer freebsd_triage 2025-01-24 20:05:49 UTC
great, sorry about the issue!
Comment 19 Bennett Wetters 2025-01-24 20:18:59 UTC
It also fixed the issue with emacs etc. on my side, thanks :)

My pkg check looks like this now:
$ pkg check -dan
Checking all packages: 100%
nextcloudclient is missing a required shared library: libQt6WebEngineCore.so.6

Which can't be because:

$ pkg which /usr/local/lib/qt6/libQt6WebEngineCore.so.6
/usr/local/lib/qt6/libQt6WebEngineCore.so.6 was installed by package qt6-webengine-6.8.1

So I'm assuming the fact that libQt6WebEngineCore.so.6 is not listed in pkg info -f means that this package is suffering from a similar issue as librsvg2-rust and needs a rebuild?

$ pkg info -f qt6-webengine
qt6-webengine-6.8.1
[...]
Shared Libs provided:
	libQt6WebEngineWidgets.so.6
	libQt6WebEngineQuickDelegatesQml.so.6
	libQt6WebEngineQuick.so.6
Annotations    :
	FreeBSD_version: 1401000
	build_timestamp: 2025-01-23T06:18:02+0000
	built_by       : poudriere-git-3.4.2
	port_checkout_unclean: no
	port_git_hash  : 74bc2a40e5
	ports_top_checkout_unclean: no
	ports_top_git_hash: 5bf2f84176
	repo_type      : binary
	repository     : FreeBSD


Should I open this as a separate issue?
Comment 20 Tomáš Čiernik 2025-01-24 21:17:31 UTC
(In reply to Baptiste Daroussin from comment #18)
Many thanks for your fix!

(In reply to Bennett Wetters from comment #19)
I guess new bugreport will be better ...
Comment 21 commit-hook freebsd_committer freebsd_triage 2025-01-24 21:35:32 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cd7ebe6c9f3cad014799f61c77d24733e7a36627

commit cd7ebe6c9f3cad014799f61c77d24733e7a36627
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2025-01-24 21:33:08 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2025-01-24 21:34:29 +0000

    www/qt6-webengine: force rebuilt

    Bump portrevision to force rebuild with pkg 2.0.3

    PR:     284307

 www/qt6-webengine/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 22 lumiwa 2025-01-25 10:55:50 UTC
Will pkg downgrade to working 1.21.3 solved the problem?