Public bug reported:

update-manager failed to run today on my system.  When I investigated, I
found this:

$ sudo apt -f install
apt: relocation error: /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0: symbol 
_ZN13pkgSourceList16AddVolatileFilesER11CommandLinePSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EE,
 version APTPKG_5.0 not defined in file libapt-pkg.so.5.0 with link time 
reference
$ ldd -d -r /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0 2>&1 | grep 
libapt-pkg
        libapt-pkg.so.5.0 => 
/snap/conjure-up/156/usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0 
(0x00007f5da24bf000)
$ cat /etc/ld.so.conf.d/conjure-up.conf
/snap/conjure-up/156/usr/lib/x86_64-linux-gnu/
$

The conjure-up snap is bundling a copy of libapt-pkg from xenial, which
is incompatible with the libapt-private from yakkety.

I see several things wrong with this.

 - conjure-up should not be monkeying with the library path of the host system. 
 It appears to have been doing this for some time already before this current 
version of the snap; it's only the latest version that has added libapt-pkg to 
the snap and broken things in a way that I noticed, but it was already broken 
before this for conjure-up to tamper *at all* with the system path.
 - this is not the only change that conjure-up makes to the host system from 
its configure hook.  It also creates a file 
/usr/lib/sysctl.d/60-conjure-up.conf, and manually installs files under 
/usr/share/bash-completion/completions; and I have no idea what other things it 
might have done in previous versions of the snap.  The system integration goals 
here are reasonable, but the way conjure-up goes about them are unauditable.
 - thirdly, and the reason I'm filing this against snappy: I understand classic 
snaps being unconfined, by definition.  But why does this translate to a 
classic snap having the power to run an unconfined hook?  This is ten times 
worse than a dpkg maintainer script. For maintainer scripts we have policy 
around what the script may or may not touch on the filesystem, we have a 
community process governing who is allowed to upload packages to the Ubuntu 
archive; for classic snaps we are lacking both of these safeguards.  My 
expectation was that a classic snap would modify the host filesystem only under 
the user's direction.  An unconfined configure hook is a whole other matter 
entirely.

** Affects: snappy
     Importance: Critical
         Status: New

** Affects: conjure-up (Ubuntu)
     Importance: Critical
     Assignee: Adam Stokes (adam-stokes)
         Status: New

** Changed in: snappy
   Importance: Undecided => Critical

** Also affects: conjure-up (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: conjure-up (Ubuntu)
   Importance: Undecided => Critical

** Changed in: conjure-up (Ubuntu)
     Assignee: (unassigned) => Adam Stokes (adam-stokes)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1677417

Title:
  /etc/ld.so.conf.d/conjure-up.conf breaks apt on host system

To manage notifications about this bug go to:
https://bugs.launchpad.net/snappy/+bug/1677417/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to