** 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

Reply via email to