Bug 35148 - python3-solv does not provide python3dist(solv)
Summary: python3-solv does not provide python3dist(solv)
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 9
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: MGA9-64-OK
Keywords: advisory, validated_update
Depends on:
Blocks:
 
Reported: 2026-02-20 17:43 CET by papoteur
Modified: 2026-02-26 18:59 CET (History)
6 users (show)

See Also:
Source RPM: libsolv
CVE:
Status comment:
herman.viaene: test_passed_mga9_64+


Attachments

Description papoteur 2026-02-20 17:43:33 CET
Requirement of python packages are done through python3.13dist(solv) but is not found this way.
Comment 1 papoteur 2026-02-20 17:45:02 CET
Submitting:

RPMS:
libsolv-tools-0.7.35-1.mga9
lib64solv1-0.7.35-1.mga9
python3-solv-0.7.35-1.mga9
perl-solv-0.7.35-1.mga9
lib64solv-devel-0.7.35-1.mga9
ruby-solv-0.7.35-1.mga9
libsolv-doc-0.7.35-1.mga9
libsolv-demo-0.7.35-1.mga9
libsolv-demo-debuginfo-0.7.35-1.mga9

SRPM:
libsolv-0.7.35
Comment 2 papoteur 2026-02-20 17:52:58 CET
The update submits the same version as cauldron, with a patch from Fedora which allows the production of metadata. They are used by rpm macro python_provide for generating the provides.

https://bugzilla.redhat.com/show_bug.cgi?id=2252743
https://src.fedoraproject.org/rpms/libsolv/blob/rawhide/f/0001-Python-Provide-dist-info-metadata.patch

Libsolv is used by dnf and zypp.

CC: (none) => maat-ml
Assignee: python => qa-bugs

Comment 3 Dan Fandrich 2026-02-20 18:34:58 CET
The new metadata files look incomplete and pip can show errors, for example:

$ pip show -f solv
Name: solv
Version: 0.7.35
Summary:
Home-page:
Author:
Author-email:
License:
Location: /usr/lib64/python3.10/site-packages
Requires:
Required-by:
Files:
Cannot locate RECORD or installed-files.txt

It does appear sufficient, though, to satisfy pip that the "solv" dependency is available:

Requirement already satisfied: solv in /usr/lib64/python3.10/site-packages (from urpm==0.2.1) (0.7.35)

I don't know if this state will cause other problems, but there are a number of other packages that do the same, so maybe it's (mostly) harmless. This is the only package that I've seen that doesn't include an INSTALLER file, though, but I don't know if that will cause any harm.

CC: (none) => dan

Comment 4 Jani Välimaa 2026-02-20 19:49:23 CET
I'm trying to figure out what's really broken and why we need this fix/update in Mageia 9?

Mageia 9 was released a long time ago and we have managed to live without pythondist() provide for libsolv so far.

CC: (none) => jani.valimaa

Comment 5 Herman Viaene 2026-02-21 16:12:06 CET
MGA9-64 server Plasma Wayland on Compaq H000SB
No installation issues.
Cfr. info above:
$ pip show -f solv
Name: solv
Version: 0.7.35
Summary: 
Home-page: 
Author: 
Author-email: 
License: 
Location: /usr/lib64/python3.10/site-packages
Requires: 
Required-by: 
Files:
Cannot locate RECORD or installed-files.txt

# strace -o solv.txt dnf -v check
Failed loading plugin "changelog": No module named 'six'
Loaded plugins: builddep, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.14.0
cachedir: /var/cache/dnf
User-Agent: constructed: 'libdnf (Mageia 9; generic; Linux.x86_64)'
Trace shows call to libsolv, so good AFAICS.

Whiteboard: (none) => MGA9-64-OK
CC: (none) => herman.viaene
Flags: (none) => test_passed_mga9_64+

Comment 6 papoteur 2026-02-21 17:05:25 CET
(In reply to Jani Välimaa from comment #4)
> I'm trying to figure out what's really broken and why we need this
> fix/update in Mageia 9?
> 
> Mageia 9 was released a long time ago and we have managed to live without
> pythondist() provide for libsolv so far.

Hello Wally,
We are working on an application which requires python3-solv. By adding "solv" in dependencies of the pyproject.toml, generate_buildrequires try to pull python3dist(solv), but fails. We would like to provide a package also for mga9.
Comment 7 Dan Fandrich 2026-02-21 17:53:12 CET
Installing just python3-solv-0.7.35-1.mga9 results in:

$ python3 -m solv
Traceback (most recent call last):
  File "/usr/lib64/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib64/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/lib64/python3.10/site-packages/solv.py", line 12, in <module>
    import _solv
ImportError: /usr/lib64/python3.10/site-packages/_solv.so: undefined symbol: solver_decisionlist_merged, version SOLV_1.0

because the libsolv.so.1 is not versioned. This subpackage (likely as well as the perl & ruby subpackages) needs a versioned libsolv dependency so the right libsolv will be pulled in.
Comment 8 Thomas Andrews 2026-02-21 20:20:51 CET
Validating.

CC: (none) => andrewsfarm, sysadmin-bugs
Keywords: (none) => validated_update

Comment 9 Dan Fandrich 2026-02-22 01:14:02 CET
I think the issue in comment 7 is worth fixing first. It will break someone's (stable) system if one package is updated without the others.
Comment 10 papoteur 2026-02-22 08:35:18 CET
(In reply to Dan Fandrich from comment #7)
> Installing just python3-solv-0.7.35-1.mga9 results in:
> 
> $ python3 -m solv
> Traceback (most recent call last):
>   File "/usr/lib64/python3.10/runpy.py", line 196, in _run_module_as_main
>     return _run_code(code, main_globals, None,
>   File "/usr/lib64/python3.10/runpy.py", line 86, in _run_code
>     exec(code, run_globals)
>   File "/usr/lib64/python3.10/site-packages/solv.py", line 12, in <module>
>     import _solv
> ImportError: /usr/lib64/python3.10/site-packages/_solv.so: undefined symbol:
> solver_decisionlist_merged, version SOLV_1.0
> 
> because the libsolv.so.1 is not versioned. This subpackage (likely as well
> as the perl & ruby subpackages) needs a versioned libsolv dependency so the
> right libsolv will be pulled in.

In my case:
urpmi python3-solv --media Testing                                                                                                                   

    http://fr2.rpmfind.net/linux/mageia/distrib/9/x86_64/media/core/updates_testing/python3-solv-0.7.35-1.mga9.x86_64.rpm
installation de python3-solv-0.7.35-1.mga9.x86_64.rpm depuis /var/cache/urpmi/rpms                                                                                      
Préparation...                   ######################################################################################################################################
      1/1: python3-solv          ######################################################################################################################################
      1/1: désinstallation de python3-solv-0.7.22-2.mga9.x86_64

Then:

[yves@YZenbook ~]$ python3 -m solv
[yves@YZenbook ~]$ 

And the same after updating lib64solv1 and libsolv-tools
Comment 11 Dan Fandrich 2026-02-22 08:54:58 CET
Are you sure you had the lib64solv1-0.7.22-2.mga9 package installed at the same time as the python3-solv-0.7-35-1.mga9 package? With that combination I get the ImportError.
katnatek 2026-02-22 19:09:42 CET

Keywords: validated_update => (none)
Whiteboard: MGA9-64-OK => (none)

Comment 12 katnatek 2026-02-22 19:21:00 CET
rpm -qa|grep solv
lib64solv1-0.7.22-2.mga9
lpsolve-5.5.2.5-5.mga9
python3-solv-0.7.22-2.mga9

python3 -m solv

After the update
rpm -qa|grep solv
lpsolve-5.5.2.5-5.mga9
lib64solv1-0.7.35-1.mga9
python3-solv-0.7.35-1.mga9

python3 -m solv

(In reply to Dan Fandrich from comment #11)
> Are you sure you had the lib64solv1-0.7.22-2.mga9 package installed at the
> same time as the python3-solv-0.7-35-1.mga9 package? With that combination I
> get the ImportError.

As the lib should be updated when the packages pass QA stage I not see the issue
Comment 13 Dan Fandrich 2026-02-23 01:05:26 CET
The problematic combination is:

lib64solv1-0.7.22-2.mga9
python3-solv-0.7.35-1.mga9

The Requires: are supposed to ensure that all necessary packages are available, but that fails in the case of python3-solv-0.7.35-1.mga9; "a" lib64solv1 package is ensured to be available, but the wrong one. Just because a package is in the repo does not mean it's going to be installed. I encountered this problem when I manually updated python3-solv, since that was the only package I cared about, but it didn't ensure that its required dependency was installed alongside.
Comment 14 papoteur 2026-02-23 15:27:25 CET
Submitting:
RPMS:
libsolv-tools-0.7.35-1.1.mga9
lib64solv1-0.7.35-1.1.mga9
python3-solv-0.7.35-1.1.mga9
perl-solv-0.7.35-1.1.mga9
lib64solv-devel-0.7.35-1.1.mga9
ruby-solv-0.7.35-1.1.mga9
libsolv-doc-0.7.35-1.1.mga9
libsolv-demo-0.7.35-1.1.mga9
libsolv-demo-debuginfo-0.7.35-1.1.mga9

SRPMS:
libsolv-0.7.35-1.1.mga9
Comment 15 papoteur 2026-02-23 15:28:57 CET
The versioned requirement is added for bindings packages
Comment 16 katnatek 2026-02-23 18:01:48 CET
RH x86_64

Testing lib requirement
 LC_ALL=C urpmi /home/katnatek/qa-testing/x86_64/python3-solv-0.7.35-1.1.mga9.x86_64.rpm --test
A requested package cannot be installed:
python3-solv-0.7.35-1.1.mga9.x86_64 (due to unsatisfied lib64solv1[== 0.7.35-1.1.mga9])


LC_ALL=C urpmi /home/katnatek/qa-testing/x86_64/perl-solv-0.7.35-1.1.mga9.x86_64.rpm 
A requested package cannot be installed:
perl-solv-0.7.35-1.1.mga9.x86_64 (due to unsatisfied lib64solv1[== 0.7.35-1.1.mga9])

LC_ALL=C urpmi /home/katnatek/qa-testing/x86_64/ruby-solv-0.7.35-1.1.mga9.x86_64.rpm 
A requested package cannot be installed:
ruby-solv-0.7.35-1.1.mga9.x86_64 (due to unsatisfied lib64solv1[== 0.7.35-1.1.mga9])

Now updating

installing python3-solv-0.7.35-1.1.mga9.x86_64.rpm lib64solv1-0.7.35-1.1.mga9.x86_64.rpm from //home/katnatek/qa-testing/x86_64
Preparing...                     ###################################################################################################
      1/2: lib64solv1            ###################################################################################################
      2/2: python3-solv          ###################################################################################################
      1/2: removing python3-solv-0.7.35-1.mga9.x86_64
                                 ###################################################################################################
      2/2: removing lib64solv1-0.7.35-1.mga9.x86_64
                                 ###################################################################################################

strace dnf -v check
openat(AT_FDCWD, "/usr/lib64/libsolv.so.1", O_RDONLY|O_CLOEXEC) = 3

Looks good

Whiteboard: (none) => MGA9-64-OK
Source RPM: libsolv-0.7.24 => 0.7.24

Comment 17 katnatek 2026-02-23 18:02:14 CET
ups

Source RPM: 0.7.24 => libsolv

katnatek 2026-02-23 18:23:50 CET

Keywords: (none) => advisory

Comment 18 Dan Fandrich 2026-02-23 19:23:19 CET
python3-solv-0.7.35-1.1.mga9 fixes the issue for me. Thanks!
Comment 19 katnatek 2026-02-23 21:09:14 CET
@papoteur I think for cauldron you should add too,
the lib requirement in the bindings
Comment 20 Thomas Andrews 2026-02-26 13:46:38 CET
Validating, hoping this time is good. Sometimes, this job isn't easy when you aren't a developer.

Keywords: (none) => validated_update

Comment 21 Mageia Robot 2026-02-26 18:59:47 CET
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGAA-2026-0016.html

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.