This is unfortunate, I did ask for the redirects in one of the checkpoint posts.
@Lukewh was setting under your jurisdiction
I’ll look into it and get back to you.
Working fine for my snaps
I wanted to try this to use base 18 but it appears the commands have changed? There is no longer a cleanbuild
command? And SNAPCRAFT_BUILD_ENVIRONMENT
no longer accepts lxd
?
@sergiusens Can you confirm that this release will not be SRUed in to Bionic? I need to make sure we can still build snaps using wiki parts until a suitable replacement process is found.
snapcraft
should run apt update
before installing dependencies. Otherwise if fails to run from provided Docker images.
I can confirm this is the case; we might be doing one minor SRU of our legacy branch onto the archives and that will be it.
Thanks for the feedback, this release will however not be freshened into bespoke docker images yet (it is a different set that needs creating depending on the base being targeted).
I’m getting this error:
Failed to generate snap metadata: The specified command 'desktop-launch' defined in the app 'picard' does not exist or is not executable.
Ensure that 'desktop-launch' is relative to the prime directory.
Run the same command again with --debug to shell into the environment if you wish to introspect this failure.
When trying to build the picard 2.0.x snap:
With snapcraft 3.0. If I try to snapcraft --debug
and find the desktop-launch
executable:
$ sudo snapcraft-picard # find . -iname desktop-launch
It gives me nothing. It seems this same problem: https://bugs.launchpad.net/snapcraft/+bug/1800057
This should be solved in edge where an appropriate error is raised when using wiki parts with bases.
I have just moved 3.0.1 to candidate, folks with existing projects built with 3.0 from candidate
will need to run snapcraft clean
when using this one. Here’s the list of fixes associated with this point release:
- cli: hide progress bar for dumb terminals (#2369)
- build providers: checks for when multipass is missing (#2354)
- meta: add assumes if using “full” app adapter (#2379)
- project_loader: raise error if part in after is undefined (#2386)
- project_loader: do not install base if already installed (#2384)
- cli: consolidate re-execution (#2385)
- project: early snapcraft.yaml validation (#2388)
- build providers: fix osx non base and injection (#2394)
- project_loader: add git to build-packages for version: git (#2403)
- cli: handle yaml errors for cleanbuild (#2404)
- multipass: avoid stdin where possible (#2408)
- build providers: preset the timezone (#2407)
- python plugin: process deps before and separately from setup.py (#2409)
- yaml_utils: allow unicode while encoding (#2414)
- cli: snapcraft init with a base (#2411)
- schema: add support for title (#2412)
Do you plan to update Docker images at https://hub.docker.com/r/snapcore/snapcraft/tags/ ? Or setup CI job to do this automatically? I’d like to build snaps without installing a lot of things on my system and without LXD.
The features added here are mostly related to bases which have many implications when using docker, this release is snap only as well.
We will look into how to cope with a multi base world and different build environments targeting those bases in a close future.
I’d like to build snaps without installing a lot of things on my system and without LXD.
Hi @abitrolly. Prior to snapcraft 3.0 and the base
keyword, snapcraft would indeed install packages on your system. We didn’t like that either, so in snapcraft 3.0 if you use a base (base: core18
), snapcraft will use multipass to build your snap. Your system will no longer be polluted by build packages and intermediate build state.
Is there any way to use LXD container instead? I rather don’t like multipass as it’s a VM which (probably) has the same VM limitations(like, how does it deal with snap builds that requires lots(a few gigabytes) of memory?)
3.0.1 is now on the stable channel
@sergiusens @evan multpass
installed from snap doesn’t work on Fedora, or am I missing something?
✗ snapcraft
Launching a VM.
failed to launch: Connect Failed
An error occurred when trying to launch the instance with 'multipass': returned exit code 3.
Ensure that 'multipass' is setup correctly and try again.
Is there a list of Docker implications?
Now the next logical step for me is to try snapcraft
in Docker, and because I switched to base: core18
it will attempt to install multipass
to create VM inside Docker.
I already started to port podman to snap, so I can run podman on Ubuntu, so that I can snapcraft in container without docker and build my other snap.
Hey,
@abitrolly can you check the permissions of /run/multipass_socket
please? If that doesn’t exist, post the output of journalctl --unit snap.multipass.*
somewhere?
I’ll try it myself here in the mean time.
✗ ls -la /run/multipass_socket
ls: cannot access '/run/multipass_socket': No such file or directory
✗ sudo journalctl --unit snap.multipass.*
zsh: no matches found: snap.multipass.*
EDIT (needed quotes around *):
Dec 04 17:49:37 blackred dnsmasq[5033]: started, version 2.75 cachesize 150
Dec 04 17:49:37 blackred dnsmasq[5033]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
Dec 04 17:49:37 blackred dnsmasq-dhcp[5033]: DHCP, IP range 10.x.x.2 -- 10.x.x.254, lease time infinite
Dec 04 17:49:37 blackred dnsmasq-dhcp[5033]: DHCP, sockets bound exclusively to interface>
Dec 04 17:49:37 blackred dnsmasq[5033]: reading /etc/resolv.conf
Dec 04 17:49:37 blackred dnsmasq[5033]: using nameserver x.x.x.x#53
Dec 04 17:49:37 blackred dnsmasq[5033]: using nameserver x.x.x.x#53
Dec 04 17:49:37 blackred dnsmasq[5033]: using nameserver fe80::1%wlp3s0#53
Dec 04 17:49:37 blackred dnsmasq[5033]: read /etc/hosts - 2 addresses
Dec 04 17:49:37 blackred dnsmasq[5033]: cannot read /var/snap/multipass/common/data/multipassd/network/dnsmasq.hosts: No such file or directory
Dec 04 17:49:37 blackred multipass.multipassd[4730]: E1204 17:49:37.662490010 4730 uri_parser.cc:46] bad uri.scheme: ''
Dec 04 17:49:37 blackred multipass.multipassd[4730]: E1204 17:49:37.662587115 4730 uri_parser.cc:52] ^ here
Dec 04 17:49:37 blackred multipass.multipassd[4730]: E1204 17:49:37.662603964 4730 http_proxy.cc:54] cannot parse value of 'http_proxy' env var
Dec 04 17:49:37 blackred multipassd[4730]: gRPC listening on unix:/run/multipass_socket, SSL:on
Dec 04 17:49:37 blackred multipassd[4730]: QIODevice::write (QFile, "/var/snap/multipass/common/cache/multipassd/vault/multipassd-image-records.json"): device not open
Dec 04 17:49:37 blackred multipass.multipassd[4730]: [error] [daemon] Could not determine group id for 'sudo'.
Dec 04 17:49:37 blackred systemd[1]: snap.multipass.multipassd.service: Main process exited, code=exited, status=1/FAILURE
Dec 04 17:49:37 blackred systemd[1]: snap.multipass.multipassd.service: Failed with result 'exit-code'.
Dec 04 17:49:37 blackred systemd[1]: snap.multipass.multipassd.service: Service hold-off time over, scheduling restart.
Dec 04 17:49:37 blackred systemd[1]: snap.multipass.multipassd.service: Scheduled restart job, restart counter is at 39.
Dec 04 17:49:37 blackred systemd[1]: Stopped Service for snap application multipass.multipassd.
Dec 04 17:49:37 blackred systemd[1]: Started Service for snap application multipass.multipassd.