** Description changed: Seen on: Ubuntu 18.04.3 LTS dpkg version: 1.19.0.5ubuntu2.3 (also in 1.19.0.5ubuntu2.2) Regression compared to dpkg 1.19.0.5ubuntu2.1 To reproduce this: 1. You need a package that depends on a library for running a script in its postinst hook. For instance, the attached minimal package has `Depends: python-augeas`, and tries to do “from augeas import Augeas” in a script invoked from the postinst hook. (It does nothing else.) 2. Make sure the dependent library is not yet installed. In this example: libaugeas0, which is a dependency of python-augeas. 3. apt-get install the package. For the attached exmple, you can use `dpkg -i`, followed by `apt-get -f install`. Result: Setting up the-package (1.2.3ubuntu1-2-1) ... Traceback (most recent call last): File "/usr/lib/the-package/setup-package.py", line 3, in <module> from augeas import Augeas File "/usr/lib/python2.7/dist-packages/augeas.py", line 78, in <module> class Augeas(object): File "/usr/lib/python2.7/dist-packages/augeas.py", line 82, in Augeas _libaugeas = _dlopen("augeas") File "/usr/lib/python2.7/dist-packages/augeas.py", line 75, in _dlopen raise ImportError("Unable to import lib%s!" % args[0]) ImportError: Unable to import libaugeas! dpkg: error processing package the-package (--configure): installed the-package package post-installation script subprocess returned error exit status 1 Simply running apt-get -f install afterwards will succeed and run the postinst script. - The cause of this problem seems to be that any invocations of `ldconfig` during the installation of the dependent libraries, do nothing at all. - When adding `ldconfig -p >/tmp/ldconfig-output` to the postinst hook, one can see that neither libaugeas0 nor any other libraries that were just installed, are in the ldconfig cache at the moment the script is invoked. + The cause of this problem seems to be either that any invocations of + `ldconfig` during the installation of the dependent libraries, do + nothing at all, or rather that `ldconfig` is not invoked when it should + be. + + When adding `ldconfig -p >/tmp/ldconfig-output` to the postinst hook, + one can see that neither libaugeas0 nor any other libraries that were + just installed, are in the ldconfig cache at the moment the script is + invoked. Even when trying to perform an ugly workaround by adding an explicit `ldconfig` invocation in the postinst script before running the python script, it still fails. Very curiously, calling `ldconfig -v >/dev/null` instead, somehow makes ldconfig work. This is probably because ldconfig calls are actively blocked in maintainer scripts, but adding the argument and redirect circumvents this block...
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1851675 Title: dpkg fails to properly invoke ldconfig To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/1851675/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs