Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 935028 - app-crypt/gnupg: /usr/lib64/libassuan.so.9: version `LIBASSUAN_2.0' not found after updating dev-libs/libassuan to 3.x series
Summary: app-crypt/gnupg: /usr/lib64/libassuan.so.9: version `LIBASSUAN_2.0' not found...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-06-27 18:26 UTC by risto.paavola
Modified: 2024-12-18 15:22 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Emerge --info log (emerge_info.txt,6.56 KB, text/plain)
2024-06-27 18:29 UTC, risto.paavola
Details

Note You need to log in before you can comment on or make changes to this bug.
Description risto.paavola 2024-06-27 18:26:45 UTC
When for example "emerge-webrsync" or "emaint -a sync" are executed, they give following:

OpenPGP key import failed: gpg: /usr/lib64/libassuan.so.9: version `LIBASSUAN_2.0' not found (required by gpg)  

Reproducible: Always

Steps to Reproduce:
1.emerge-webrsync
2.Error
Actual Results:  
Error

Expected Results:  
Synced packages
Comment 1 risto.paavola 2024-06-27 18:29:17 UTC
Created attachment 896533 [details]
Emerge --info log
Comment 2 risto.paavola 2024-06-27 18:30:42 UTC
Emaint stdout:
# emaint -a sync
>>> Syncing repository 'gentoo' into '/var/db/repos/gentoo'...
 * Using keys from /usr/share/openpgp-keys/gentoo-release.asc
!!! Manifest verification impossible due to keyring problem:
OpenPGP key import failed:
gpg: /usr/lib64/libassuan.so.9: version `LIBASSUAN_2.0' not found (required by gpg)

gpgconf --kill failed:
gpgconf: error running '/usr/bin/gpg-connect-agent': exit status 1
gpgconf: error running '/usr/bin/gpg-connect-agent KILLDIRMNGR': General error
gpgconf: error running '/usr/bin/gpg-connect-agent': exit status 1
gpgconf: error running '/usr/bin/gpg-connect-agent scd killscd': General error
gpgconf: error running '/usr/bin/gpg-connect-agent': exit status 1
gpgconf: error running '/usr/bin/gpg-connect-agent KILLAGENT': General error
gpgconf: error running '/usr/bin/gpg-connect-agent': exit status 1
gpgconf: error running '/usr/bin/gpg-connect-agent KILLKEYBOXD': General error


Action: sync for repo: gentoo, returned code = 1
Comment 3 Eli Schwartz gentoo-dev 2024-06-28 04:47:23 UTC
Probably you have libassuan 3.0.1

$ emerge -p =libassuan-3.0.1

!!! All ebuilds that could satisfy "=libassuan-3.0.1" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-libs/libassuan-3.0.1::gentoo (masked by: package.mask, ~amd64 keyword)
/var/db/repos/gentoo/profiles/package.mask:
# Sam James <sam@gentoo.org> (2024-06-25)
# The symbol versioning "fix" breaks anything built with 3.0.0.


Rebuild gnupg and you should be fine. Unclear that there's anything which can be done to detect this beyond masking libassuan itself.
Comment 4 risto.paavola 2024-06-28 05:41:58 UTC
Thank you, rebuilding of gnupg did the job.

I'm using ~amd64 and libassuan-3.0.1 got pulled automatically in some day for some reason.
Comment 5 ncr 2024-12-16 15:45:20 UTC
Hello, another newbee Gentoo user here. Sorry if this does not belong to this bug, but I think it may be related.

On 11. December I have synced the portage tree and used that to perform the update of everything as last update was done about a month ago or so.

All looked fine, so I rebooted as there was also glibc update. All OK, but I am now receiving "getuto" errors involving gnupg.

Noticed that gnupg and libassuan got updated as well:

snips from emerge.log:
1734277623:  >>> AUTOCLEAN: app-crypt/gnupg:0
1734277623:  === Unmerging... (app-crypt/gnupg-2.4.5-r1)
1734277626:  >>> unmerge success: app-crypt/gnupg-2.4.5-r1
1734277629:  === (107 of 214) Post-Build Cleaning (app-crypt/gnupg-2.4.6-r1::/var/cache/binpkgs/app-crypt/gnupg-2.4.6-r1.gpkg.tar)
1734277629:  ::: completed emerge (107 of 214) app-crypt/gnupg-2.4.6-r1 to /

734277105:  >>> AUTOCLEAN: dev-libs/libassuan:0
1734277105:  === Unmerging... (dev-libs/libassuan-2.5.7)
1734277108:  >>> unmerge success: dev-libs/libassuan-2.5.7
1734277111:  === (65 of 214) Post-Build Cleaning (dev-libs/libassuan-3.0.0::/var/cache/binpkgs/dev-libs/libassuan-3.0.
0.gpkg.tar)
1734277111:  ::: completed emerge (65 of 214) dev-libs/libassuan-3.0.0 to /


Now, any attempt to use emerge fails with:


# emerge --ask --verbose --update --deep --newuse @world
gpgconf: error running '/usr/local/bin/gpg-connect-agent': probably not installed
gpgconf: error running '/usr/local/bin/gpg-connect-agent KILLAGENT': Configuration error
gpgconf: error running '/usr/local/bin/gpg-connect-agent': probably not installed
gpgconf: error running '/usr/local/bin/gpg-connect-agent KILLAGENT': Configuration error
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.12/emerge", line 57, in main
    retval = emerge_main()
             ^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/_emerge/main.py", line 1309, in emerge_main
    return run_action(emerge_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/_emerge/actions.py", line 3506, in run_action
    mytrees["bintree"].populate(
  File "/usr/lib/python3.12/site-packages/portage/dbapi/bintree.py", line 959, in populate
    self._populate_remote(
  File "/usr/lib/python3.12/site-packages/portage/dbapi/bintree.py", line 1363, in _populate_remote
    self._run_trust_helper()
  File "/usr/lib/python3.12/site-packages/portage/dbapi/bintree.py", line 1351, in _run_trust_helper
    ret.check_returncode()
  File "/usr/lib/python3.12/subprocess.py", line 502, in check_returncode
    raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command '/usr/bin/getuto' returned non-zero exit status 1.


Tried to look around:


# gpg-connect-agent --version
gpg-connect-agent: error while loading shared libraries: libassuan.so.0: cannot open shared object file: No such file or directory

# libassuan-config --version
3.0.0


# eix app-crypt/gnupg
[I] app-crypt/gnupg
     Available versions:  2.2.42-r4^t 2.2.43-r1^t 2.2.45^t 2.4.5-r1^t{gpkg} 2.4.5-r2^t 2.4.6-r1^t{gpkg} ~2.4.7^t [M]**2.5.1^t {bzip2 doc ldap nls readline selinux +smartcard ssl test (+)tofu tools tpm usb user-socket verify-sig wks-server}
     Installed versions:  2.4.6-r1^t{gpkg}(10:15:31 12/11/24)(bzip2 nls readline smartcard ssl tofu usb -doc -ldap -selinux -test -tools -tpm -user-socket -verify-sig -wks-server)
     Homepage:            <url_not_allowed_yet>
     Description:         The GNU Privacy Guard, a GPL OpenPGP implementation

# eix dev-libs/libassuan
[I] dev-libs/libassuan
     Available versions:  2.5.6 2.5.7 3.0.0(0/3.0){gpkg} [M]~3.0.1(0/3.0) {verify-sig}
     Installed versions:  3.0.0(0/3.0){gpkg}(11:18:02 10/06/24)(-verify-sig)
     Homepage:            <url_not_allowed_yet>
     Description:         IPC library used by GnuPG and GPGME

Althought gnupg seems to be present, revdep-rebuild ccomplains about some orphaned files:

# revdep-rebuild
 * This is the new python coded version
 * Please report any bugs found using it.
 * The original revdep-rebuild script is installed as revdep-rebuild.sh
 * Please file bugs at: <url_not_allowed_yet>
 * Checking dynamic linking consistency
 * Assign files to packages

 !!! Broken orphaned files: No installed package was found for the following:
	* /usr/local/bin/dirmngr-client
	* /usr/local/bin/gpg-wks-client
	* /usr/local/bin/gpgsm
	* /usr/local/bin/gpgv
	* /usr/local/bin/gpg-agent
	* /usr/local/bin/gpg-card
	* /usr/local/bin/gpg
	* /usr/local/bin/dirmngr
	* /usr/local/bin/gpg-connect-agent

There is nothing to emerge. Exiting.


I still have older version of gnupg inside of /var/cache/binpkgs, but since emerge is broken, I do not know how to fix that.

Is there any way to recover from this?
Comment 6 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-12-16 15:47:36 UTC
The issue is that you have a copy of gpg being picked up from /usr/local. Installing anything to /usr/local is a bad idea because it's outside the control of the PM, but many things look there (not just via PATH but sometimes hardcoding it as a search location).

If you must build things manually, you should put them in /opt or even better just in your homedir in some special location.
Comment 7 ncr 2024-12-18 15:22:34 UTC
I do not recall of having doing any manual things to gpg package, however your tip about that being pulled from /usr/local eventually lead me to reveal an issue with wrong selection of profile into split-usr variant.

I do not have /usr separated, but had split-usr profile in use for some time... 

I clearly fucked it up in the past, and consequently there might be many other problems than just gpg, so I will rather simply rebuild everything in new chroot with correct profile and then replace the whole content of rootfs.

Thank you very much for the tip, the lessons and have a nice holidays!