Control: reassign -1 libapt-pkg6.0t64
Control: forcemerge 1088398 -1
Control: retitle 1088398 libapt-pkg has fluctuating ABI
Control: severity 1088398 serious

On Tue, Feb 04, 2025 at 12:25:00PM +0100, Daniel Gomez wrote:
> On Mon, Feb 03, 2025 at 09:01:56PM +0100, Julian Andres Klode wrote:
> > Control: reassign -1 ansible-core
> > 
> > On Mon, Feb 03, 2025 at 08:44:59PM +0100, Daniel Gomez wrote:
> > > Package: python3-apt
> > > Version: 2.9.6+b1
> > > Severity: important
> > > Tags: upstream
> > > X-Debbugs-Cc: da.go...@samsung.com
> > > 
> > > Dear Maintainer,
> > > 
> > > The latest python3-apt releases 2.9.8 and 2.9.7 produce the following
> > > error with Ansible:
> > > 
> > > Error message:
> > > 
> > >   python3-apt must be installed and visible from /usr/bin/python3.
> > > 
> > > As workaround, downgrading the package to the latest version working 
> > > (2.9.6)
> > > "solves" the issue:
> > > 
> > >   apt install -y python3-setuptools libapt-pkg-dev python3-pip git
> > >   pip3 git+https://salsa.debian.org/apt-team/python-apt.git@2.9.6 \
> > >   --break-system-packages
> > > 
> > > Tested with Ansible version:
> > > 
> > >     ii  ansible        9.5.1+dfsg-1 all
> > >     ii  ansible-core   2.17.1-1
> > > 
> > >     ansible --version
> > >     ansible [core 2.17.1]
> > >       ...
> > >       python version = 3.12.6 (main, Sep  7 2024, 14:20:15) [GCC 14.2.0]
> > >     (/usr/bin/python3)
> > >       jinja version = 3.1.3
> > >       libyaml = True
> > >     ansible-playbook --version
> > >     ansible-playbook [core 2.17.1]
> > >       ...
> > >       executable location = /usr/bin/ansible-playbook
> > >       python version = 3.12.6 (main, Sep  7 2024, 14:20:15) [GCC 14.2.0]
> > >     (/usr/bin/python3)
> > >       jinja version = 3.1.3
> > >       libyaml = True
> > > 
> > > Also,
> > > 
> > > Reported in kdevops project:
> > > https://lore.kernel.org/all/20250131-fix-python3-apt-v1-1-bcdb14b14...@samsung.com/
> > > 
> > > Found the same issue in ludus:
> > > https://protect2.fireeye.com/v1/url?k=2c1ac1ce-4d616b47-2c1b4a81-74fe48600034-c592b7887e221b1d&q=1&e=87d47ef4-6ed1-446b-87af-105940a56804&u=https%3A%2F%2Fgitlab.com%2Fbadsectorlabs%2Fludus%2F-%2Fissues%2F76
> > > 
> > > Daniel
> > 
> > python3-apt is working fine as you can see by it having migrated,
> > so clearly the modules are importable, otherwise the test suites
> > fail. You can easily check this yourself by creating a fresh
> > install or launching a container, install python3-apt and running
> > 
> >     python3 -c "import apt"
> > 
> > Of course did you even check if python3-apt is installed at all?
> > It's not part of a normal Debian install...
> > 
> > In any case, good luck, I'm out.
> 
> To answer the question, yes the package was properly installed. And
> I think you are right regarding python3-apt version being working
> properly.
> 
> However, I still can reproduce the error above and I think I may be able
> to provide better explanation. My system has the following status:
> 
> sudo dpkg -l python3-apt apt apt-utils libapt-pkg6.0t64 python-apt-common
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name                   Version      Architecture Description
> +++-======================-============-============-===========================================
> ii  apt                    2.9.8        amd64        commandline package 
> manager
> ii  apt-utils              2.9.8        amd64        package management 
> related utility programs
> ii  libapt-pkg6.0t64:amd64 2.9.8        amd64        package management 
> runtime library
> ii  python-apt-common      2.9.8        all          Python interface to 
> libapt-pkg (locales)
> ii  python3-apt            2.9.8        amd64        Python 3 interface to 
> libapt-pkg
> 
> I think python3-apt was updated to the latest 2.9.8 after installing
> python3-pip. This situation allows me to reproduce the error above in
> python3-apt package with Ansible.
> 
> Then, upgrading apt package, will upgrade apt-utils and libapt-pkg6.0t64
> to the latest version and fix the problem:
> 
> sudo apt install --only-upgrade apt
> 
> sudo dpkg -l python3-apt apt apt-utils libapt-pkg6.0t64 python-apt-common
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name                   Version      Architecture Description
> +++-======================-============-============-===========================================
> ii  apt                    2.9.26       amd64        commandline package 
> manager
> ii  apt-utils              2.9.26       amd64        package management 
> related utility programs
> ii  libapt-pkg6.0t64:amd64 2.9.26       amd64        package management 
> runtime library
> ii  python-apt-common      2.9.8        all          Python interface to 
> libapt-pkg (locales)
> ii  python3-apt            2.9.8        amd64        Python 3 interface to 
> libapt-pkg
> 
> I think the python3-apt dependency should be updated to require the latest
> versions of apt, apt-utils, and libapt-pkg6.0.t64 (2.9.26). However, I'm not
> completely sure about the full dependency chain. From what I see, python3-apt
> (2.9.8) currently depends on libapt-pkg6.0t64 >= 2.7.11. Does that sound 
> right?

This is a duplicate of bug 1088398. APT has a fluctuating ABI that
depends on which std:: symbols it calls, and which of those calls
the compiler inlines and omits the symbols for, so it can change
with every update to APT or the compiler.

The new libapt-pkg7.0 ABI is sitting in binary-NEW waiting for the
ftpmaster approval, and it ensures a stable ABI by using a version
script that marks all std:: symbols as local.
-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer                              i speak de, en

Reply via email to