Snapcraft stage packages inconsistent behaviour

While building snaps on our automated builders on videolan, I’ve noticed that some jobs result in different stage-packages being pulled in to the resulting snap.
What we have is a docker image, which stays the same between container launches (those are per-nightly-build, so destroyed once snap is built and published), and same snapcraft.yaml behave differently while installing seemingly same packages (at least the diff -urN shows they’re of a same size/version).

E.g. in job 642 (https://thre.sh/stuff/snaps/jenkins.job.642.nightly-4.0-snap.txt) we see no vlc-nox getting pulled in, and in job 643 (same URL, but /jenkins.job.643.nightly-4.0-snap.txt) it is pulled in, which results in bloated image, and unneeded errors on VLC startup.

Now, for the most fun part, is when I do “apt install” all the stage packages mentioned in (same url, /snapcraft.yaml), apt never pulls in vlc-nox.

The docker image we use to build can be fetched with docker pull registry.videolan.org:5000/vlc-ubuntu-xenial:20180221135507. The dockerfile is available on code videolan org, under videolan/docker-images/vlc-ubuntu-xenial catalog (sorry, this forum does not allow me to post links).

The --debug option for snapcraft prime does not reveal why it chooses a package to be fetched, so it was of no use for that.

How can I debug that behaviour?

How odd. I was hoping to take a look at the snapcraft.yaml, but I can’t find it in https://github.com/videolan/vlc . Can you point me in the right direction?

Oh duh, found it at https://thre.sh/stuff/snaps/snapcraft.yaml like you said, sorry.

In job 643 it seems that not only is vlc-nox being fetched, but vlc itself:

Get:1 vlc_2.2.2-5ubuntu0.16.04.4_amd64.deb [1505 kB]
Get:1 vlc-data_2.2.2-5ubuntu0.16.04.4_all.deb [5903 kB]

Which is then pulling in vlc-nox. I can’t explain why that would be pulled in though, it doesn’t look like any of your stage-packages should be doing that.

Yeah, it’s multiple packages actually; the snapcraft yaml is also at https://github.com/videolan/vlc/tree/master/extras/package/snap, dockerfile is at https://code.videolan.org/videolan/docker-images/tree/master/vlc-ubuntu-xenial

Is there any insight in the dependencies solver used by snapcraft?

Have you checked whether any KDE Neon packages are depending on VLC recently that weren’t depending on it during the previous builds? I see specifically that your Docker container includes the KDE Neon repository definitions, which is making me wonder if the dependency is coming from upstream of you and the packages there have changed their dependencies between your two daily builds.

Yes, I’ve checked that by running apt install for all the packages mentioned in the snapcraft.yaml manually in the container, after doing apt-get update:

oddjob% docker run -ti --rm registry.videolan.org:5000/vlc-ubuntu-xenial:20180325094644 bash
root@f6586bf77a3c:/# egrep -Ern '^deb ' /etc/apt/
/etc/apt/sources.list.d/neon.list:1:deb http://archive.neon.kde.org/user xenial main
/etc/apt/sources.list:3:deb http://archive.ubuntu.com/ubuntu/ xenial main restricted
/etc/apt/sources.list:8:deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted
/etc/apt/sources.list:14:deb http://archive.ubuntu.com/ubuntu/ xenial universe
/etc/apt/sources.list:16:deb http://archive.ubuntu.com/ubuntu/ xenial-updates universe
/etc/apt/sources.list:24:deb http://archive.ubuntu.com/ubuntu/ xenial multiverse
/etc/apt/sources.list:26:deb http://archive.ubuntu.com/ubuntu/ xenial-updates multiverse
/etc/apt/sources.list:34:deb http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
/etc/apt/sources.list:44:deb http://security.ubuntu.com/ubuntu/ xenial-security main restricted
/etc/apt/sources.list:46:deb http://security.ubuntu.com/ubuntu/ xenial-security universe
/etc/apt/sources.list:48:deb http://security.ubuntu.com/ubuntu/ xenial-security multiverse
root@f6586bf77a3c:/# apt-get update
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://archive.neon.kde.org/user xenial InRelease [31.1 kB]
Get:3 http://archive.neon.kde.org/user xenial/main amd64 Packages [2,391 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9,802 kB]
Get:7 http://archive.neon.kde.org/user xenial/main all Packages [299 kB]
Get:8 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1,558 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9,827 kB]
Get:12 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [77.2 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [250 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [962 kB]
Get:16 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [593 kB]
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.1 kB]
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [792 kB]
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [18.5 kB]
Get:20 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [5,153 B]
Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [7,734 B]
Get:22 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.7 kB]
Get:23 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [427 kB]
Get:24 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3,492 B]
Fetched 27.8 MB in 4s (6,352 kB/s)
Reading package lists... Done
root@f6586bf77a3c:/# apt-get install git g++ make yasm autoconf libtool cmake automake build-essential libxcb-xfixes0-dev texinfo libvpx-dev libqt5svg5-dev li
ba52-0.7.4-dev libaa1-dev libasound2-dev libass-dev libavahi-client-dev libavc1394-dev libbluray-dev libcaca-dev libcairo2-dev libcddb2-dev libcdio-dev libchr
omaprint-dev libcrystalhd-dev libdbus-1-dev libdc1394-22-dev libdca-dev libdirectfb-dev libdvbpsi-dev libdvdnav-dev libdvdread-dev libegl1-mesa-dev libfaad-de
v libflac-dev libfluidsynth-dev libfreerdp-dev libfreetype6-dev libfribidi-dev libgles2-mesa-dev libgnutls28-dev libgtk2.0-dev libidn11-dev libiso9660-dev lib
jack-dev libkate-dev liblircclient-dev liblivemedia-dev liblua5.2-dev libmad0-dev libmatroska-dev libmodplug-dev libmpcdec-dev libmpeg2-4-dev libmtp-dev libncursesw5-dev libogg-dev libomxil-bellagio-dev libopus-dev libpng-dev libpostproc-dev libprojectm-dev libpulse-dev libqt5x11extras5-dev qtbase5-private-dev libraw1394-dev libresid-builder-dev librsvg2-dev libsamplerate0-dev libsdl-image1.2-dev libsdl1.2-dev libsecret-1-dev libshine-dev libshout3-dev libsidplay2-dev l
ibsmbclient-dev libspeex-dev libspeexdsp-dev libssh2-1-dev libswscale-dev libtag1-dev libtheora-dev libtwolame-dev libudev-dev libupnp-dev libv4l-dev libva-de
v libvcdinfo-dev libvdpau-dev libvncserver-dev libvorbis-dev libx11-dev libx264-dev libx265-dev libxcb-composite0-dev libxcb-keysyms1-dev libxcb-randr0-dev li
bxcb-shm0-dev libxcb-xv0-dev libxcb1-dev libxext-dev libxi-dev libxinerama-dev libxml2-dev libxpm-dev libzvbi-dev lua5.2 pkg-config qtbase5-dev xz-utils zlib1
g-dev bison flex zsh fonts-freefont-ttf dbus-x11 libaa1 libcaca0 libcairo2 libegl1-mesa libfreerdp-client1.1 libfreerdp-core1.1 libfreerdp-gdi1.1 libfreetype6
 libfribidi0 libgcc1 libgl1-mesa-glx libgles2-mesa libglib2.0-0 libpulse0 libqt5core5a libqt5gui5 librsvg2-2 libsdl-image1.2 libsdl1.2debian libsecret-1-0 lib
va-drm1 libva-x11-1 libva1 libvdpau1 libvncclient1 libx11-6 libxcb-composite0 libxcb-keysyms1 libxcb-randr0 libxcb-shm0 libxcb-xv0 libxcb1 libxext6 libxi6 lib
xinerama1 libxpm4 vdpau-va-driver i965-va-driver mesa-utils mesa-vdpau-drivers zlib1g libprojectm2v5 projectm-data kde-style-breeze breeze-icon-theme framewor
kintegration plasma-integration phonon4qt5-backend-null
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libpng12-dev' instead of 'libpng-dev'
autoconf is already the newest version (2.69-9).
autoconf set to manually installed.
automake is already the newest version (1:1.15-4ubuntu1).
automake set to manually installed.
bison is already the newest version (2:3.0.4.dfsg-1).
build-essential is already the newest version (12.1ubuntu2).
flex is already the newest version (2.6.0-11).
g++ is already the newest version (4:5.3.1-1ubuntu1).
g++ set to manually installed.
libaa1 is already the newest version (1.4p5-44build1).
libaa1 set to manually installed.
libaa1-dev is already the newest version (1.4p5-44build1).
libasound2-dev is already the newest version (1.1.0-0ubuntu1).
libavahi-client-dev is already the newest version (0.6.32~rc+dfsg-1ubuntu2).
libavc1394-dev is already the newest version (0.5.4-4).
libcaca-dev is already the newest version (0.99.beta19-2build2~gcc5.2).
libcaca0 is already the newest version (0.99.beta19-2build2~gcc5.2).
libcaca0 set to manually installed.
libcairo2 is already the newest version (1.14.6-1).
libcairo2 set to manually installed.
libcairo2-dev is already the newest version (1.14.6-1).
libcdio-dev is already the newest version (0.83-4.2ubuntu1).
libflac-dev is already the newest version (1.3.1-4).
libfribidi-dev is already the newest version (0.19.7-1).
libfribidi0 is already the newest version (0.19.7-1).
libfribidi0 set to manually installed.
libgcc1 is already the newest version (1:6.0.1-0ubuntu1).
liblircclient-dev is already the newest version (0.9.0-0ubuntu6).
liblua5.2-dev is already the newest version (5.2.4-1ubuntu1).
libmtp-dev is already the newest version (1.1.10-2ubuntu1).
libncursesw5-dev is already the newest version (6.0+20160213-1ubuntu1).
libogg-dev is already the newest version (1.3.2-1).
libopus-dev is already the newest version (1.1.2-1ubuntu1).
libpng12-dev is already the newest version (1.2.54-1ubuntu1).
libraw1394-dev is already the newest version (2.1.1-2).
librsvg2-2 is already the newest version (2.40.13-3).
librsvg2-2 set to manually installed.
librsvg2-dev is already the newest version (2.40.13-3).
libsamplerate0-dev is already the newest version (0.1.8-8).
libsdl1.2-dev is already the newest version (1.2.15+dfsg1-3).
libsdl1.2debian is already the newest version (1.2.15+dfsg1-3).
libsdl1.2debian set to manually installed.
libsecret-1-0 is already the newest version (0.18.4-1ubuntu2).
libsecret-1-0 set to manually installed.
libsecret-1-dev is already the newest version (0.18.4-1ubuntu2).
libshout3-dev is already the newest version (2.3.1-3).
libspeex-dev is already the newest version (1.2~rc1.2-1ubuntu1).
libspeexdsp-dev is already the newest version (1.2~rc1.2-1ubuntu1).
libtheora-dev is already the newest version (1.1.1+dfsg.1-8).
libtool is already the newest version (2.4.6-0.1).
libtool set to manually installed.
libv4l-dev is already the newest version (1.10.0-1).
libvdpau-dev is already the newest version (1.1.1-3ubuntu1).
libvdpau1 is already the newest version (1.1.1-3ubuntu1).
libvdpau1 set to manually installed.
libvpx-dev is already the newest version (1.5.0-2ubuntu1).
libx11-6 is already the newest version (2:1.6.3-1ubuntu2).
libx11-6 set to manually installed.
libx11-dev is already the newest version (2:1.6.3-1ubuntu2).
libxcb-composite0 is already the newest version (1.11.1-1ubuntu1).
libxcb-composite0 set to manually installed.
libxcb-composite0-dev is already the newest version (1.11.1-1ubuntu1).
libxcb-keysyms1 is already the newest version (0.4.0-1).
libxcb-keysyms1 set to manually installed.
libxcb-keysyms1-dev is already the newest version (0.4.0-1).
libxcb-randr0 is already the newest version (1.11.1-1ubuntu1).
libxcb-randr0 set to manually installed.
libxcb-randr0-dev is already the newest version (1.11.1-1ubuntu1).
libxcb-shm0 is already the newest version (1.11.1-1ubuntu1).
libxcb-shm0 set to manually installed.
libxcb-shm0-dev is already the newest version (1.11.1-1ubuntu1).
libxcb-xfixes0-dev is already the newest version (1.11.1-1ubuntu1).
libxcb-xfixes0-dev set to manually installed.
libxcb-xv0 is already the newest version (1.11.1-1ubuntu1).
libxcb-xv0 set to manually installed.
libxcb-xv0-dev is already the newest version (1.11.1-1ubuntu1).
libxcb1 is already the newest version (1.11.1-1ubuntu1).
libxcb1 set to manually installed.
libxcb1-dev is already the newest version (1.11.1-1ubuntu1).
libxext-dev is already the newest version (2:1.3.3-1).
libxext6 is already the newest version (2:1.3.3-1).
libxext6 set to manually installed.
libxi-dev is already the newest version (2:1.7.6-1).
libxi6 is already the newest version (2:1.7.6-1).
libxi6 set to manually installed.
libxinerama-dev is already the newest version (2:1.1.3-1).
libxinerama1 is already the newest version (2:1.1.3-1).
libxinerama1 set to manually installed.
lua5.2 is already the newest version (5.2.4-1ubuntu1).
make is already the newest version (4.1-6).
pkg-config is already the newest version (0.29.1-0ubuntu1).
xz-utils is already the newest version (5.1.1alpha+20120614-2ubuntu2).
xz-utils set to manually installed.
liba52-0.7.4-dev is already the newest version (0.7.4-18).
libass-dev is already the newest version (0.13.1-1).
libbluray-dev is already the newest version (1:0.9.2-2).
libcddb2-dev is already the newest version (1.3.2-5fakesync1).
libchromaprint-dev is already the newest version (1.3-1).
libcrystalhd-dev is already the newest version (1:0.0~git20110715.fdd2f19-11build1).
libdc1394-22-dev is already the newest version (2.2.4-1).
libdca-dev is already the newest version (0.0.5-7build1).
libdirectfb-dev is already the newest version (1.2.10.0-5.1).
libdvbpsi-dev is already the newest version (1.3.0-4).
libdvdnav-dev is already the newest version (5.0.3-1).
libdvdread-dev is already the newest version (5.0.3-1).
libfaad-dev is already the newest version (2.8.0~cvs20150510-1).
libfluidsynth-dev is already the newest version (1.1.6-3).
libiso9660-dev is already the newest version (0.83-4.2ubuntu1).
libjack-dev is already the newest version (1:0.124.1+20140122git5013bed0-3build2).
libkate-dev is already the newest version (0.4.1-7).
liblivemedia-dev is already the newest version (2016.02.09-1).
libmad0-dev is already the newest version (0.15.1b-8ubuntu1).
libmatroska-dev is already the newest version (1.4.4-1).
libmodplug-dev is already the newest version (1:0.8.8.5-2).
libmpcdec-dev is already the newest version (2:0.1~r459-4.1build1).
libmpeg2-4-dev is already the newest version (0.5.1-7).
libomxil-bellagio-dev is already the newest version (0.9.3-3ubuntu1).
libprojectm-dev is already the newest version (2.1.0+dfsg-3build1).
libprojectm2v5 is already the newest version (2.1.0+dfsg-3build1).
libprojectm2v5 set to manually installed.
libresid-builder-dev is already the newest version (2.1.1-14ubuntu2).
libsdl-image1.2 is already the newest version (1.2.12-5build2).
libsdl-image1.2 set to manually installed.
libsdl-image1.2-dev is already the newest version (1.2.12-5build2).
libshine-dev is already the newest version (3.1.0-4).
libsidplay2-dev is already the newest version (2.1.1-14ubuntu2).
libtwolame-dev is already the newest version (0.3.13-1.2).
libupnp-dev is already the newest version (1:1.6.19+git20160116-1).
libvcdinfo-dev is already the newest version (0.7.24+dfsg-0.2).
libx264-dev is already the newest version (2:0.148.2643+git5c65704-1).
libx265-dev is already the newest version (1.9-3).
libzvbi-dev is already the newest version (0.2.35-10).
projectm-data is already the newest version (2.1.0+dfsg-3build1).
projectm-data set to manually installed.
texinfo is already the newest version (6.1.0.dfsg.1-5).
yasm is already the newest version (1.3.0-2).
cmake is already the newest version (3.5.1-1ubuntu3).
git is already the newest version (1:2.7.4-0ubuntu1.3).
git set to manually installed.
libdbus-1-dev is already the newest version (1.10.6-1ubuntu3.3).
libegl1-mesa is already the newest version (17.2.8-0ubuntu0~16.04.1).
libegl1-mesa set to manually installed.
libegl1-mesa-dev is already the newest version (17.2.8-0ubuntu0~16.04.1).
libfreerdp-client1.1 is already the newest version (1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.2).
libfreerdp-client1.1 set to manually installed.
libfreerdp-core1.1 is already the newest version (1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.2).
libfreerdp-core1.1 set to manually installed.
libfreerdp-dev is already the newest version (1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.2).
libfreerdp-gdi1.1 is already the newest version (1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.2).
libfreerdp-gdi1.1 set to manually installed.
libfreetype6 is already the newest version (2.6.1-0.1ubuntu2.3).
libfreetype6 set to manually installed.
libfreetype6-dev is already the newest version (2.6.1-0.1ubuntu2.3).
libgl1-mesa-glx is already the newest version (17.2.8-0ubuntu0~16.04.1).
libgl1-mesa-glx set to manually installed.
libgles2-mesa is already the newest version (17.2.8-0ubuntu0~16.04.1).
libgles2-mesa set to manually installed.
libgles2-mesa-dev is already the newest version (17.2.8-0ubuntu0~16.04.1).
libglib2.0-0 is already the newest version (2.48.2-0ubuntu1).
libglib2.0-0 set to manually installed.
libgnutls28-dev is already the newest version (3.4.10-4ubuntu1.4).
libgtk2.0-dev is already the newest version (2.24.30-1ubuntu1.16.04.2).
libidn11-dev is already the newest version (1.32-3ubuntu1.2).
libpulse-dev is already the newest version (1:8.0-0ubuntu3.8).
libpulse0 is already the newest version (1:8.0-0ubuntu3.8).
libpulse0 set to manually installed.
libsmbclient-dev is already the newest version (2:4.3.11+dfsg-0ubuntu0.16.04.13).
libudev-dev is already the newest version (229-4ubuntu21.2).
libvncclient1 is already the newest version (0.9.10+dfsg-3ubuntu0.16.04.1).
libvncclient1 set to manually installed.
libvncserver-dev is already the newest version (0.9.10+dfsg-3ubuntu0.16.04.1).
libvorbis-dev is already the newest version (1.3.5-3ubuntu0.2).
libxml2-dev is already the newest version (2.9.3+dfsg1-1ubuntu0.5).
libxpm-dev is already the newest version (1:3.5.11-1ubuntu0.16.04.1).
libxpm4 is already the newest version (1:3.5.11-1ubuntu0.16.04.1).
libxpm4 set to manually installed.
zlib1g is already the newest version (1:1.2.8.dfsg-2ubuntu4.1).
zlib1g-dev is already the newest version (1:1.2.8.dfsg-2ubuntu4.1).
libpostproc-dev is already the newest version (7:2.8.11-0ubuntu0.16.04.1).
libssh2-1-dev is already the newest version (1.5.0-2ubuntu0.1).
libswscale-dev is already the newest version (7:2.8.11-0ubuntu0.16.04.1).
libva-dev is already the newest version (1.7.0-1ubuntu0.1).
libva-drm1 is already the newest version (1.7.0-1ubuntu0.1).
libva-drm1 set to manually installed.
libva-x11-1 is already the newest version (1.7.0-1ubuntu0.1).
libva-x11-1 set to manually installed.
libva1 is already the newest version (1.7.0-1ubuntu0.1).
libva1 set to manually installed.
libqt5core5a is already the newest version (5.10.0+dfsg-2+16.04+xenial+build46).
libqt5core5a set to manually installed.
libqt5gui5 is already the newest version (5.10.0+dfsg-2+16.04+xenial+build46).
libqt5gui5 set to manually installed.
libqt5svg5-dev is already the newest version (5.10.0-1+16.04+xenial+build22).
libqt5x11extras5-dev is already the newest version (5.10.0-1+16.04+xenial+build22).
libtag1-dev is already the newest version (1.11.1-0.2+16.04+xenial+build1).
qtbase5-dev is already the newest version (5.10.0+dfsg-2+16.04+xenial+build46).
qtbase5-private-dev is already the newest version (5.10.0+dfsg-2+16.04+xenial+build46).
The following additional packages will be installed:
  aspell aspell-en dictionaries-common dirmngr emacsen-common fonts-hack-ttf fonts-noto-hinted gamin gnupg-agent gnupg2 hunspell-en-us kactivities-bin
  kactivitymanagerd kinit kio kpackagelauncherqml kpackagetool5 kwayland-data kwayland-integration libappstream4 libappstreamqt2 libaspell15 libassuan0
  libdbusmenu-qt5 libgamin0 libgpgme11 libgpgmepp6 libhunspell-1.3-0 libkf5activities5 libkf5archive5 libkf5attica5 libkf5auth-data libkf5auth5
  libkf5bookmarks-data libkf5bookmarks5 libkf5calendarevents5 libkf5codecs-data libkf5codecs5 libkf5completion-data libkf5completion5 libkf5config-bin
  libkf5config-data libkf5configcore5 libkf5configgui5 libkf5configwidgets-data libkf5configwidgets5 libkf5coreaddons-data libkf5coreaddons5 libkf5crash5
  libkf5dbusaddons-bin libkf5dbusaddons-data libkf5dbusaddons5 libkf5declarative-data libkf5declarative5 libkf5doctools5 libkf5globalaccel-bin
  libkf5globalaccel-data libkf5globalaccel5 libkf5globalaccelprivate5 libkf5guiaddons5 libkf5i18n-data libkf5i18n5 libkf5iconthemes-bin
  libkf5iconthemes-data libkf5iconthemes5 libkf5idletime5 libkf5itemviews-data libkf5itemviews5 libkf5jobwidgets-data libkf5jobwidgets5 libkf5kiocore5
  libkf5kiofilewidgets5 libkf5kiontlm5 libkf5kiowidgets5 libkf5kirigami2-5 libkf5newstuffcore5 libkf5notifications-data libkf5notifications5
  libkf5package-data libkf5package5 libkf5plasma5 libkf5plasmaquick5 libkf5quickaddons5 libkf5service-bin libkf5service-data libkf5service5 libkf5solid5
  libkf5solid5-data libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5 libkf5style5 libkf5textwidgets-data libkf5textwidgets5 libkf5wallet-data
  libkf5wallet5 libkf5waylandclient5 libkf5widgetsaddons-data libkf5widgetsaddons5 libkf5windowsystem-data libkf5windowsystem5 libkf5xmlgui-bin
  libkf5xmlgui-data libkf5xmlgui5 libksba8 libkwalletbackend5-5 libnpth0 libpackagekitqt5-0 libphonon4qt5-4 libpolkit-qt5-1-1 libqt5qml5 libqt5quick5
  libqt5quickcontrols2-5 libqt5quicktemplates2-5 libqt5script5 libqt5texttospeech5 libqt5waylandclient5 libqt5waylandcompositor5 libstemmer0d
  libtext-iconv-perl libvoikko1 libxcb-damage0 libxss1 media-player-info phonon4qt5 pinentry-curses plasma-framework qml-module-org-kde-kconfig
  qml-module-org-kde-kirigami2 qml-module-org-kde-kquickcontrols qml-module-org-kde-kquickcontrolsaddons qml-module-org-kde-newstuff
  qml-module-org-kde-qqc2desktopstyle qml-module-qtgraphicaleffects qml-module-qtqml-models2 qml-module-qtquick-controls
  qml-module-qtquick-controls-styles-breeze qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts
  qml-module-qtquick-privatewidgets qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2 qtwayland5 sonnet-plugins udev zsh-common
Suggested packages:
  aspell-doc spellutils wordlist gnupg-doc parcimonie xloadimage hunspell openoffice.org-hunspell | openoffice.org-core gpgsm qt5-qmltooling-plugins
  voikko-fi phonon4qt5-backend-gstreamer phonon4qt5-backend-vlc pinentry-doc hspell zsh-doc
Recommended packages:
  python3-aptdaemon.pkcompat | packagekit
The following NEW packages will be installed:
  aspell aspell-en breeze-icon-theme dbus-x11 dictionaries-common dirmngr emacsen-common fonts-freefont-ttf fonts-hack-ttf fonts-noto-hinted
  frameworkintegration gamin gnupg-agent gnupg2 hunspell-en-us i965-va-driver kactivities-bin kactivitymanagerd kde-style-breeze kinit kio
  kpackagelauncherqml kpackagetool5 kwayland-data kwayland-integration libappstream4 libappstreamqt2 libaspell15 libassuan0 libdbusmenu-qt5 libgamin0
  libgpgme11 libgpgmepp6 libhunspell-1.3-0 libkf5activities5 libkf5archive5 libkf5attica5 libkf5auth-data libkf5auth5 libkf5bookmarks-data libkf5bookmarks5
  libkf5calendarevents5 libkf5codecs-data libkf5codecs5 libkf5completion-data libkf5completion5 libkf5config-bin libkf5config-data libkf5configcore5
  libkf5configgui5 libkf5configwidgets-data libkf5configwidgets5 libkf5coreaddons-data libkf5coreaddons5 libkf5crash5 libkf5dbusaddons-bin
  libkf5dbusaddons-data libkf5dbusaddons5 libkf5declarative-data libkf5declarative5 libkf5doctools5 libkf5globalaccel-bin libkf5globalaccel-data
  libkf5globalaccel5 libkf5globalaccelprivate5 libkf5guiaddons5 libkf5i18n-data libkf5i18n5 libkf5iconthemes-bin libkf5iconthemes-data libkf5iconthemes5
  libkf5idletime5 libkf5itemviews-data libkf5itemviews5 libkf5jobwidgets-data libkf5jobwidgets5 libkf5kiocore5 libkf5kiofilewidgets5 libkf5kiontlm5
  libkf5kiowidgets5 libkf5kirigami2-5 libkf5newstuffcore5 libkf5notifications-data libkf5notifications5 libkf5package-data libkf5package5 libkf5plasma5
  libkf5plasmaquick5 libkf5quickaddons5 libkf5service-bin libkf5service-data libkf5service5 libkf5solid5 libkf5solid5-data libkf5sonnet5-data
  libkf5sonnetcore5 libkf5sonnetui5 libkf5style5 libkf5textwidgets-data libkf5textwidgets5 libkf5wallet-data libkf5wallet5 libkf5waylandclient5
  libkf5widgetsaddons-data libkf5widgetsaddons5 libkf5windowsystem-data libkf5windowsystem5 libkf5xmlgui-bin libkf5xmlgui-data libkf5xmlgui5 libksba8
  libkwalletbackend5-5 libnpth0 libpackagekitqt5-0 libphonon4qt5-4 libpolkit-qt5-1-1 libqt5qml5 libqt5quick5 libqt5quickcontrols2-5 libqt5quicktemplates2-5
  libqt5script5 libqt5texttospeech5 libqt5waylandclient5 libqt5waylandcompositor5 libstemmer0d libtext-iconv-perl libvoikko1 libxcb-damage0 libxss1
  media-player-info mesa-utils mesa-vdpau-drivers phonon4qt5 phonon4qt5-backend-null pinentry-curses plasma-framework plasma-integration
  qml-module-org-kde-kconfig qml-module-org-kde-kirigami2 qml-module-org-kde-kquickcontrols qml-module-org-kde-kquickcontrolsaddons
  qml-module-org-kde-newstuff qml-module-org-kde-qqc2desktopstyle qml-module-qtgraphicaleffects qml-module-qtqml-models2 qml-module-qtquick-controls
  qml-module-qtquick-controls-styles-breeze qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts
  qml-module-qtquick-privatewidgets qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2 qtwayland5 sonnet-plugins udev
  vdpau-va-driver
The following packages will be upgraded:
  zsh zsh-common
2 upgraded, 158 newly installed, 0 to remove and 21 not upgraded.
Need to get 47.0 MB of archives.
After this operation, 222 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

I’ve also tried only specyfing the staged packages, to the same result - no vlc is seen there.

Also, it seems to be happenning on-and-off, e.g. this night’s https://jenkins.videolan.org/job/vlc-nightly/job/vlc-nightly-snap/647/ pulls vlc in, and just launched https://jenkins.videolan.org/job/vlc-nightly/job/vlc-nightly-snap/648/ does not do that. I’ve double checked the images used for two of those jobs, and they’re the same.

My suspicion is that snapcraft does not always check the dependencies for packages right. What might pull VLC in is Neon’s plasma-integration package, which depends on libkf5notifications5, which depends on phonon4qt5, which has a following Depends:

Depends: libphonon4qt5-4 (>= 4:4.10.0-0neon+16.04+xenial+build21), debconf (>= 0.5) | debconf-2.0, phonon4qt5-backend-vlc | phonon4qt5-backend

But I’ve explicitely stated in stage-packages that I want to install phonon4qt5-backend-null, which has Provides: phonon4qt5-backend, so it would be chosen to fetch. And then again I don’t see phonon4qt5-backend-vlc alongside when vlc gets pulled in, so it might be false as well…

So, the question still stands: how do I debug the snapcraft dep solver?

Here’s the difference of packages that are fetched during snap build:

http://thre.sh/stuff/snaps/builds/diff-647-648-Gets.txt

for i in find . -type f -name ‘*.deb’; do echo $i; dpkg -I $i | grep vlc; done

when vlc is getting pulled in: same website, /stuff/snaps/builds/packages.txt

Yeah I went down that rabbit hole as well, only to arrive at the exact same conclusion: phonon4qt5-backend-vlc isn’t actually pulled in, so that “can’t be it”, heh. I still suspect it may have something to do with alternative packages though, which sounds like your inclination as well.

The code that’s pulling in stage-packages is here. It’s not doing anything special when it comes to alternatives, so it’s really just letting libapt mark stuff to be installed. We might be able to get some dependency graphs printed as it goes through this process, let me look into that. Any chance you’ve tried duplicating this in a clean LXD container?

Can you reproduce this in a container that you can reach into and debug? typically when packages get pulled in and I don’t know what did it, I use aptitude why <packagename>. Which should tell you what the dependency graph is that’s pulling in the various vlc debs.

I’ve tried to reproduce the issue here using lxc and a similar setup with the kde neon repo added.

However when I try to ‘snapcraft’ vlc it fails because appmenu-qt5 from the ubuntu archive won’t install because a newer libqt5core5a is pulled in from the kde neon archive. Have you done some package pinning to prevent this?

Thanks popey. We don’t have any package/repo pinning.

Indeed, when running under lxd with current ubuntu, I get an error when trying to install appmenu-qt5. The only difference to the docker image we use was the version of snapcraft:
2.39.3+really2.35 in docker vs 2.40 in lxd. I’ve updated the docker image to use it and was able to hit the same thing as you mentioned. Somehow appmenu-qt5 was silently ignored with previous version of snapcraft and the inability to get the package was not fatal.

Can you try a following patch on vlc.git to move forward: http://oddjob.videolan.org/~thresh/vlc-snap-remove-desktop-qt5.patch ?

With it, I’m able to reproduce the vlc-nox/libvlc/vlc pulled in as stage packages even under lxd.

Thank you,

I’ve updated vlc.git to make it buildable again, and I still can reproduce the dependency solver issue.

I would appreciate if someone takes a look.

Ping. This is still an issue.

Still investigating, but I want to share some observations:

  1. I can duplicate this literally every build using the docker image given in the OP.
  2. I’ve added logging to print the entire dependency tree. It’s big, here you go: https://pastebin.ubuntu.com/p/fNS6VsVrQX/

Using (2), I’ve verified that, indeed, the only thing that depends upon vlc is phonon4qt5-backend-vlc, but while vlc is fetched, phonon4qt5-backend-vlc is not. We already knew that, of course. So how can this be? I tried removing phonon4qt5-backend-null from stage-packages, and BAM suddenly phonon4qt5-backend-vlc is fetched as well (https://pastebin.ubuntu.com/p/n7yNbrwk73/). So the snapcraft CLI seems to be honoring your request regarding the OR, but still seems to pull in the other OR packages’ dependencies.

Some more observations:

>>> import apt
>>> c = apt.Cache()
>>> p = c['phonon4qt5']
>>> p.candidate
<Version: package:'phonon4qt5' version:'4:4.10.0-0neon+16.04+xenial+build21'>
>>> for dep in p.candidate.dependencies:
...     print(dep)
... 
Depends: libphonon4qt5-4 >= 4:4.10.0-0neon+16.04+xenial+build21
Depends: debconf >= 0.5 | debconf-2.0
Depends: phonon4qt5-backend-vlc | phonon4qt5-backend
>>> p.mark_install()
>>> for pkg in c.get_changes():
...     print(pkg)
... 
libfontenc1
libfile-basedir-perl
vlc-plugin-samba
libfile-desktopentry-perl
libipc-system-simple-perl
phonon4qt5
vlc-nox
vlc-plugin-notify
libvlc5
xdg-utils
libx11-protocol-perl
libvlccore8
libfile-mimeinfo-perl
libxaw7
libnet-dbus-perl
libproxy-tools
libxml-twig-perl
vlc
libtie-ixhash-perl
vlc-data
libxxf86dga1
libphonon4qt5-4
x11-xserver-utils
libxmu6
phonon4qt5-backend-vlc
x11-utils
libtext-iconv-perl
fonts-freefont-ttf
libxml-xpathengine-perl
>>> p2 = c['phonon4qt5-backend-null']
>>> p2.mark_install()
>>> for pkg in c.get_changes():
...     print(pkg)
... 
libfontenc1
libfile-basedir-perl
vlc-plugin-samba
phonon4qt5-backend-null
libfile-desktopentry-perl
libipc-system-simple-perl
phonon4qt5
vlc-nox
vlc-plugin-notify
libvlc5
xdg-utils
libx11-protocol-perl
libvlccore8
libfile-mimeinfo-perl
libxaw7
libnet-dbus-perl
libproxy-tools
libxml-twig-perl
vlc
libtie-ixhash-perl
vlc-data
libxxf86dga1
libphonon4qt5-4
x11-xserver-utils
libxmu6
x11-utils
libtext-iconv-perl
fonts-freefont-ttf
libxml-xpathengine-perl

Alright, here’s what I think is happening:

The Snapcraft CLI marks phonon4qt5 for installation, which by default generally takes the first package in each OR (i.e. phonon4qt5-backend-vlc). It THEN marks phonon4qt5-backend-null for installation, which has a Conflicts: phonon4qt5-backend, so it unmarks phonon4qt5-backend-vlc for installation, but that doesn’t do anything about its dependencies which have already been marked for installation. It’s like we need to run some sort of autoremove on the stuff we marked… if only such a thing existed in the API. Guess I’ll write my own.

If this happens in the opposite order (the order is non-deterministic), phonon4qt5-backend-vlc is never marked for installation since the OR is already satisfied, thus none of its dependencies get pulled in either. That explains the inconsistencies.

Alright, I wrote my own autokeep method, which seems to work in both cases:

Run 1 (note how ‘phonon4qt5’ comes first, which will select the VLC backend):

$ snapcraft clean && snapcraft -d pull && ls parts/my-part/ubuntu/download/*vlc*
Cleaning up priming area
Cleaning up staging area
Cleaning up parts directory
Starting snapcraft 2.42 from /home/kyrofa/src/snapcraft/snapcraft/cli.
Setting up part 'my-part' with plugin 'nil' and properties {'plugin': 'nil', 'stage-packages': ['phonon4qt5', 'phonon4qt5-backend-null'], 'stage': [], 'prime': []}.
Preparing to pull my-part 
Fetching stage-packages {'phonon4qt5', 'phonon4qt5-backend-null'}
snapcraft is running as a snap False, SNAP_NAME set to ''
Hit http://security.ubuntu.com/ubuntu bionic-security InRelease                                                                                
Hit http://us.archive.ubuntu.com/ubuntu bionic InRelease                                                                                       
Hit http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease                                                                               
Hit http://ppa.launchpad.net/nextcloud-devs/client/ubuntu bionic InRelease                                                                     
Hit http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease                                                                             
Fetched 0 B in 0s (0 B/s)                                                                                                                      
Marking 'phonon4qt5' (and its dependencies) to be fetched
Marking 'phonon4qt5-backend-null' (and its dependencies) to be fetched
Skipping blacklisted from manifest packages: ['adduser', 'apt', 'apt-utils', 'base-files', 'base-passwd', 'bash', 'bsdutils', 'coreutils', 'dash', 'debconf', 'debconf-i18n', 'debianutils', 'diffutils', 'dmsetup', 'dpkg', 'e2fslibs', 'e2fsprogs', 'file', 'findutils', 'gcc-5-base', 'gnupg', 'gpgv', 'grep', 'gzip', 'hostname', 'init', 'libacl1', 'libapparmor1', 'libattr1', 'libaudit-common', 'libaudit1', 'libblkid1', 'libbz2-1.0', 'libc-bin', 'libc6', 'libcap2', 'libcap2-bin', 'libcomerr2', 'libdb5.3', 'libdebconfclient0', 'libdevmapper1.02.1', 'libgcc1', 'libgcrypt20', 'libgpg-error0', 'libgpm2', 'libkmod2', 'liblocale-gettext-perl', 'liblzma5', 'libmagic1', 'libmount1', 'libncurses5', 'libncursesw5', 'libpam-modules', 'libpam-modules-bin', 'libpam-runtime', 'libpam0g', 'libpcre3', 'libselinux1', 'libsemanage-common', 'libsemanage1', 'libsepol1', 'libslang2', 'libsmartcols1', 'libss2', 'libstdc++6', 'libsystemd0', 'libtext-charwidth-perl', 'libtext-iconv-perl', 'libtext-wrapi18n-perl', 'libtinfo5', 'libudev1', 'libusb-0.1-4', 'libustr-1.0-1', 'libuuid1', 'locales', 'login', 'lsb-base', 'makedev', 'manpages', 'manpages-dev', 'mawk', 'mount', 'multiarch-support', 'ncurses-base', 'ncurses-bin', 'passwd', 'perl-base', 'procps', 'readline-common', 'sed', 'sensible-utils', 'systemd', 'systemd-sysv', 'sysvinit-utils', 'tar', 'tzdata', 'ubuntu-keyring', 'udev', 'util-linux', 'zlib1g']
::::::::::: MARKING libx265-146 KEEP
::::::::::: MARKING libdc1394-22 KEEP
::::::::::: MARKING libssh2-1 KEEP
::::::::::: MARKING libcroco3 KEEP
::::::::::: MARKING libwebp6 KEEP
::::::::::: MARKING vlc-plugin-video-output KEEP
::::::::::: MARKING libusb-1.0-0 KEEP
::::::::::: MARKING libkrb5-3 KEEP
::::::::::: MARKING libavformat57 KEEP
::::::::::: MARKING libgssapi-krb5-2 KEEP
::::::::::: MARKING libsnappy1v5 KEEP
::::::::::: MARKING libopenjp2-7 KEEP
::::::::::: MARKING libpangoft2-1.0-0 KEEP
::::::::::: MARKING libplacebo4 KEEP
::::::::::: MARKING libaa1 KEEP
::::::::::: MARKING libraw1394-11 KEEP
::::::::::: MARKING libcom-err2 KEEP
::::::::::: MARKING libvulkan1 KEEP
::::::::::: MARKING libchromaprint1 KEEP
::::::::::: MARKING libgroupsock8 KEEP
::::::::::: MARKING libmtp9 KEEP
::::::::::: MARKING libcrystalhd3 KEEP
::::::::::: MARKING libgdk-pixbuf2.0-0 KEEP
::::::::::: MARKING libupnp6 KEEP
::::::::::: MARKING libsndio6.1 KEEP
::::::::::: MARKING libswresample2 KEEP
::::::::::: MARKING libshout3 KEEP
::::::::::: MARKING libpixman-1-0 KEEP
::::::::::: MARKING libasound2-data KEEP
::::::::::: MARKING gcc-8-base KEEP
::::::::::: MARKING libsecret-1-0 KEEP
::::::::::: MARKING libxrender1 KEEP
::::::::::: MARKING libebml4v5 KEEP
::::::::::: MARKING libopenmpt0 KEEP
::::::::::: MARKING libarchive13 KEEP
::::::::::: MARKING libdvdread4 KEEP
::::::::::: MARKING libavahi-common-data KEEP
::::::::::: MARKING libgmp10 KEEP
::::::::::: MARKING libavahi-common3 KEEP
::::::::::: MARKING libvdpau1 KEEP
::::::::::: MARKING libmp3lame0 KEEP
::::::::::: MARKING liba52-0.7.4 KEEP
::::::::::: MARKING libnuma1 KEEP
::::::::::: MARKING libdca0 KEEP
::::::::::: MARKING libvlc5 KEEP
::::::::::: MARKING libk5crypto3 KEEP
::::::::::: MARKING libvorbisfile3 KEEP
::::::::::: MARKING libsecret-common KEEP
::::::::::: MARKING libgles2 KEEP
::::::::::: MARKING libwavpack1 KEEP
::::::::::: MARKING libopus0 KEEP
::::::::::: MARKING libpostproc54 KEEP
::::::::::: MARKING libvlccore9 KEEP
::::::::::: MARKING libvpx5 KEEP
::::::::::: MARKING libdvdnav4 KEEP
::::::::::: MARKING libtiff5 KEEP
::::::::::: MARKING libva2 KEEP
::::::::::: MARKING libx264-152 KEEP
::::::::::: MARKING libpangocairo-1.0-0 KEEP
::::::::::: MARKING libopenmpt-modplug1 KEEP
::::::::::: MARKING libass9 KEEP
::::::::::: MARKING libmpg123-0 KEEP
::::::::::: MARKING libxvidcore4 KEEP
::::::::::: MARKING libcaca0 KEEP
::::::::::: MARKING libprotobuf-lite10 KEEP
::::::::::: MARKING librsvg2-2 KEEP
::::::::::: MARKING libkrb5support0 KEEP
::::::::::: MARKING libzvbi0 KEEP
::::::::::: MARKING libdvbpsi10 KEEP
::::::::::: MARKING libtag1v5 KEEP
::::::::::: MARKING libresid-builder0c2a KEEP
::::::::::: MARKING libspeex1 KEEP
::::::::::: MARKING libwayland-egl1-mesa KEEP
::::::::::: MARKING libbasicusageenvironment1 KEEP
::::::::::: MARKING libavcodec57 KEEP
::::::::::: MARKING libkeyutils1 KEEP
::::::::::: MARKING libxcb-xv0 KEEP
::::::::::: MARKING liblz4-1 KEEP
::::::::::: MARKING libavutil55 KEEP
::::::::::: MARKING vlc-data KEEP
::::::::::: MARKING libtheora0 KEEP
::::::::::: MARKING liblua5.2-0 KEEP
::::::::::: MARKING libsidplay2 KEEP
::::::::::: MARKING libmatroska6v5 KEEP
::::::::::: MARKING libgomp1 KEEP
::::::::::: MARKING libsdl1.2debian KEEP
::::::::::: MARKING libgme0 KEEP
::::::::::: MARKING libssh-gcrypt-4 KEEP
::::::::::: MARKING libmad0 KEEP
::::::::::: MARKING libsoxr0 KEEP
::::::::::: MARKING libwebpmux3 KEEP
::::::::::: MARKING libhogweed4 KEEP
::::::::::: MARKING libcddb2 KEEP
::::::::::: MARKING libswscale4 KEEP
::::::::::: MARKING libgdk-pixbuf2.0-common KEEP
::::::::::: MARKING libspeexdsp1 KEEP
::::::::::: MARKING libmpeg2-4 KEEP
::::::::::: MARKING libnfs11 KEEP
::::::::::: MARKING libasound2 KEEP
::::::::::: MARKING libnettle6 KEEP
::::::::::: MARKING libmpcdec6 KEEP
::::::::::: MARKING libshine3 KEEP
::::::::::: MARKING libjbig0 KEEP
::::::::::: MARKING libkate1 KEEP
::::::::::: MARKING libidn11 KEEP
::::::::::: MARKING libgnutls30 KEEP
::::::::::: MARKING libtwolame0 KEEP
::::::::::: MARKING libgsm1 KEEP
::::::::::: MARKING libva-x11-2 KEEP
::::::::::: MARKING libva-wayland2 KEEP
::::::::::: MARKING libunistring2 KEEP
::::::::::: MARKING liblivemedia62 KEEP
::::::::::: MARKING libp11-kit0 KEEP
::::::::::: MARKING libzstd1 KEEP
::::::::::: MARKING libva-drm2 KEEP
::::::::::: MARKING libsdl-image1.2 KEEP
::::::::::: MARKING libtasn1-6 KEEP
::::::::::: MARKING libtag1v5-vanilla KEEP
::::::::::: MARKING vlc-plugin-base KEEP
::::::::::: MARKING libcairo2 KEEP
::::::::::: MARKING libavc1394-0 KEEP
::::::::::: MARKING libavahi-client3 KEEP
::::::::::: MARKING libzvbi-common KEEP
::::::::::: MARKING libpango-1.0-0 KEEP
::::::::::: MARKING liblirc-client0 KEEP
::::::::::: MARKING libsamplerate0 KEEP
::::::::::: MARKING libmicrodns0 KEEP
::::::::::: MARKING libidn2-0 KEEP
::::::::::: MARKING libmtp-common KEEP
::::::::::: MARKING libbluray2 KEEP
::::::::::: MARKING libfaad2 KEEP
::::::::::: MARKING libusageenvironment3 KEEP
::::::::::: MARKING libaribb24-0 KEEP
::::::::::: MARKING libfribidi0 KEEP
::::::::::: MARKING liblzo2-2 KEEP
<snip>
Running on 'bionic'
Pulling my-part 
ls: cannot access 'parts/my-part/ubuntu/download/*vlc*': No such file or directory

Run 2 (note how ‘phonon4qt5-backend-null’ comes first this time, so the VLC backend is not pulled):

(snapcraft) kyrofa@protege:/tmp/foo$ snapcraft clean && snapcraft -d pull && ls parts/my-part/ubuntu/download/*vlc*
Cleaning up priming area
Cleaning up staging area
Cleaning up parts directory
Starting snapcraft 2.42 from /home/kyrofa/src/snapcraft/snapcraft/cli.
Setting up part 'my-part' with plugin 'nil' and properties {'plugin': 'nil', 'stage-packages': ['phonon4qt5', 'phonon4qt5-backend-null'], 'stage': [], 'prime': []}.
Preparing to pull my-part 
Fetching stage-packages {'phonon4qt5-backend-null', 'phonon4qt5'}
snapcraft is running as a snap False, SNAP_NAME set to ''
Hit http://security.ubuntu.com/ubuntu bionic-security InRelease                                                                                
Hit http://us.archive.ubuntu.com/ubuntu bionic InRelease                                                                                       
Hit http://ppa.launchpad.net/nextcloud-devs/client/ubuntu bionic InRelease                                                                     
Hit http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease                                                                               
Hit http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease                                                                             
Fetched 0 B in 0s (0 B/s)                                                                                                                      
Marking 'phonon4qt5-backend-null' (and its dependencies) to be fetched
Marking 'phonon4qt5' (and its dependencies) to be fetched
Skipping blacklisted from manifest packages: ['adduser', 'apt', 'apt-utils', 'base-files', 'base-passwd', 'bash', 'bsdutils', 'coreutils', 'dash', 'debconf', 'debconf-i18n', 'debianutils', 'diffutils', 'dmsetup', 'dpkg', 'e2fslibs', 'e2fsprogs', 'file', 'findutils', 'gcc-5-base', 'gnupg', 'gpgv', 'grep', 'gzip', 'hostname', 'init', 'libacl1', 'libapparmor1', 'libattr1', 'libaudit-common', 'libaudit1', 'libblkid1', 'libbz2-1.0', 'libc-bin', 'libc6', 'libcap2', 'libcap2-bin', 'libcomerr2', 'libdb5.3', 'libdebconfclient0', 'libdevmapper1.02.1', 'libgcc1', 'libgcrypt20', 'libgpg-error0', 'libgpm2', 'libkmod2', 'liblocale-gettext-perl', 'liblzma5', 'libmagic1', 'libmount1', 'libncurses5', 'libncursesw5', 'libpam-modules', 'libpam-modules-bin', 'libpam-runtime', 'libpam0g', 'libpcre3', 'libselinux1', 'libsemanage-common', 'libsemanage1', 'libsepol1', 'libslang2', 'libsmartcols1', 'libss2', 'libstdc++6', 'libsystemd0', 'libtext-charwidth-perl', 'libtext-iconv-perl', 'libtext-wrapi18n-perl', 'libtinfo5', 'libudev1', 'libusb-0.1-4', 'libustr-1.0-1', 'libuuid1', 'locales', 'login', 'lsb-base', 'makedev', 'manpages', 'manpages-dev', 'mawk', 'mount', 'multiarch-support', 'ncurses-base', 'ncurses-bin', 'passwd', 'perl-base', 'procps', 'readline-common', 'sed', 'sensible-utils', 'systemd', 'systemd-sysv', 'sysvinit-utils', 'tar', 'tzdata', 'ubuntu-keyring', 'udev', 'util-linux', 'zlib1g']
::::::::::: MARKING gcc-8-base KEEP
::::::::::: MARKING liblz4-1 KEEP
::::::::::: MARKING libzstd1 KEEP
<snip>
Running on 'bionic'
Pulling my-part 
ls: cannot access 'parts/my-part/ubuntu/download/*vlc*': No such file or directory

I suspect this will result in general space saving overall, since we unmark some packages by default, but don’t autoremove their dependents.

Alright, fix here:

https://github.com/snapcore/snapcraft/pull/2119

1 Like

Thanks! The fix worked fine for me.

2 Likes

Good to know! Thanks for getting back to us with a response!