Hello Luca, or anyone else affected,

Accepted libdnf into noble-proposed. The package will build now and be
available at
https://launchpad.net/ubuntu/+source/libdnf/0.69.0-2.3ubuntu0.1 in a few
hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.  Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
noble to verification-done-noble. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-noble. In either case, without details of your testing we will
not be able to proceed.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance for helping!

N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.

** Changed in: libdnf (Ubuntu Noble)
       Status: In Progress => Fix Committed

** Tags added: verification-needed verification-needed-noble

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to dh-python in Ubuntu.
https://bugs.launchpad.net/bugs/2095168

Title:
  dh-python: dh_python3 loses cpython module name when renaming shared
  object

Status in dh-python package in Ubuntu:
  Fix Released
Status in libdnf package in Ubuntu:
  Fix Released
Status in dh-python source package in Noble:
  Confirmed
Status in libdnf source package in Noble:
  Fix Committed
Status in dh-python source package in Oracular:
  Fix Released
Status in libdnf source package in Oracular:
  Fix Released
Status in dh-python package in Debian:
  Fix Released

Bug description:
  [Original Description/Impact]

  dh-python in Noble, on architectures other than amd64, renames libdnf
  binary modules and breaks them:

  I: dh_python3 fs:418: renaming _module.so to
  _.cpython-312-aarch64-linux-gnu.so

  https://launchpadlibrarian.net/722671993/buildlog_ubuntu-noble-
  arm64.libdnf_0.69.0-2.3build3_BUILDING.txt.gz

  https://packages.ubuntu.com/noble/arm64/python3-libdnf/filelist

  /usr/lib/python3/dist-packages/libdnf/_.cpython-312-aarch64-linux-
  gnu.so

  On amd64 it ships the module named as intended:

  https://packages.ubuntu.com/noble/amd64/python3-libdnf/filelist

  /usr/lib/python3/dist-
  packages/libdnf/_module.cpython-312-x86_64-linux-gnu.so

  This causes dnf to break on arm64:

  Traceback (most recent call last):
    File "/usr/bin/dnf", line 61, in <module>
      from dnf.cli import main
    File "/usr/lib/python3/dist-packages/dnf/__init__.py", line 30, in <module>
      import dnf.base
    File "/usr/lib/python3/dist-packages/dnf/base.py", line 29, in <module>
      import libdnf.transaction
    File "/usr/lib/python3/dist-packages/libdnf/__init__.py", line 13, in 
<module>
      from . import module
    File "/usr/lib/python3/dist-packages/libdnf/module.py", line 10, in <module>
      from . import _module
  ImportError: cannot import name '_module' from partially initialized module 
'libdnf' (most likely due to a circular import) 
(/usr/lib/python3/dist-packages/libdnf/__init__.py)

  Github Actions enable arm64 using Ubuntu 24.04 images yesterday, so
  this issue is starting to show up when building rpm-based images
  (fedora/centos) on Ubuntu 24.04 arm64 on Github as part of CI systems.

  The issue was already fixed in Debian, but didn't make it in Noble:

  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1068255

  https://salsa.debian.org/python-team/tools/dh-
  python/-/commit/5406e503c4428ae3b019f2078146a1ea2dfc2fa5

  It would be great to update dh-python in Noble, and do a binary
  rebuild of libdnf to fix this issue.

  [Test Plan]

  * On a non-amd64 host running Ubuntu 24.04, install and run dnf:

  $ dpkg --print-architecture
  $ apt install -y dnf
  $ dnf

  * Without the bug, the help output should be displayed. With the bug,
  an ImportError will be thrown.

  * For good measure, the package contents should be listed to confirm
  naming is correct:

  $ dpkg -L python3-libdnf

  [Other information]

  The root cause of this bug is in dh-python, and is fixed in oracular
  and newer. While the *best* fix would be to fix dh-python directly,
  and rebuild affected packages, it seems that libdnf is the only
  affected package. Hence, to simplify the fix, the workaround approach
  is preferred.

  In order for a package to be affected, it would have had to be built
  in noble after dh-python 6.20240401 was uploaded, *AND* ship a file
  named _module.cpython-312-*.so. On an amd64 host running noble, I see
  only libdnf meeting this criteria:

  nr@six:~$ apt-file search /_module.cpython
  python3-libdnf: 
/usr/lib/python3/dist-packages/libdnf/_module.cpython-312-x86_64-linux-gnu.so

  [Where problems could occur]

  The patch is in d/rules, and copies the incorrectly named
  _.cpython-*.so to _module.cpython-*.so instead. I.e., manually fixing
  the incorrect renaming. An error in this logic would result in either
  (a) the build failing, or (b) the bug not being fixed at all.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dh-python/+bug/2095168/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to