Remove base core18 from snap

Hi,

I have got different versions of a software as snap. The old gtk2 version still builds, it doesn’t mention any base.

Now, the gtk3 version doesn’t build anymore. I think it is because it uses base core18.

Should I remove base from gtk3 version? How would you deal with the situation?


regards, Joël

Do you have any logs ?

Hi @ogra

Yes for sure but currently I can’t access the snapcraft.io login service, because I get 502 bad gateway from server.

# 502 Bad Gateway

The server returned an invalid or incomplete response.

regards, Joël

Hi @ogra

Closing web browser did the job. By the way i386 build succeeded.

Here is the end of the logs:

Running '['linux64', 'snap', 'install', '--classic', '--channel=7.x/stable', 'snapcraft']'. Attempt 1
error: cannot perform the following tasks:
- Ensure prerequisites for "snapcraft" are available (cannot install snap base "core20": snap "core20" assumes unsupported features: snapd2.61 (try to refresh snapd))
Running '['linux64', 'snap', 'install', '--classic', '--channel=7.x/stable', 'snapcraft']'. Attempt 2
error: cannot perform the following tasks:
- Ensure prerequisites for "snapcraft" are available (cannot install snap base "core20": snap "core20" assumes unsupported features: snapd2.61 (try to refresh snapd))
Running '['linux64', 'snap', 'install', '--classic', '--channel=7.x/stable', 'snapcraft']'. Attempt 3
error: cannot perform the following tasks:
- Ensure prerequisites for "snapcraft" are available (cannot install snap base "core20": snap "core20" assumes unsupported features: snapd2.61 (try to refresh snapd))
Install failed
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/lpbuildd/target/build_snap.py", line 302, in run
    self.install()
  File "/usr/lib/python3/dist-packages/lpbuildd/target/build_snap.py", line 166, in install
    self.backend.run(
  File "/usr/lib/python3/dist-packages/lpbuildd/target/lxd.py", line 776, in run
    raise e
  File "/usr/lib/python3/dist-packages/lpbuildd/target/lxd.py", line 770, in run
    return self._run_command(
           ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/lpbuildd/target/lxd.py", line 699, in _run_command
    subprocess.check_call(cmd, **kwargs)
  File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['lxc', 'exec', 'lp-bionic-amd64', '--', 'linux64', 'snap', 'install', '--classic', '--channel=7.x/stable', 'snapcraft']' returned non-zero exit status 1.
Revoking proxy token...
[Thu Jul 31 14:12:56 2025]
RUN: /usr/share/launchpad-buildd/bin/in-target scan-for-processes --backend=lxd --series=bionic --arch=amd64 SNAPBUILD-2864385
Scanning for processes to kill in build SNAPBUILD-2864385

Obviously it tries to install core20 and I don’t know why?


regards, Joël

It tries to install snapcraft 7.x which in turn uses a core20 base (but tries to install it inside an 18.04 container due to you picking a core18 base), I suspect this might not be possible anymore with launchpad buildds …

Have you tried bumping to core20 or 22 ?

Hi,

I provide a newer version with core24 as a different snap gsequencer-8.

I would love to let the old snapcraft.yaml base untouched.

How would you deal with the situation?


regards, Joël

If you still wish to keep older versions of gsequencer (2.x and 3.x AFAIU) available for the users and have already published snaps for those versions to the store, I would personally open a topic with store-requests category requesting tracks, say 2.x and 3.x. Next publish the legacy version of the app into said tracks. Note, this should not require rebuilding anything, it should be as easy as dragging a specific revision in the store management page. Then the newest one can simply be released into a default latest track.

Hi @mborzecki1

No thank you. First you abandon bzr then launchpad …

Why should I care about tracks? I think with the current setup I am quiet happy. If you break something don’t come and blame others, yeah it is broken or broken because its obsolete.


regards, Joël

I don’t think there was any blame intended, the answers aren’t obscene.

If there’s a genuine need to keep the Core18 snap around, tracks are a brilliant fit. It’s the only choice you have aside from a different package name entirely, which you have already.

The only two other choices are, do nothing, or remove the core18 snap. Just being a snap won’t keep things running forever, removing things that cannot be maintained is a perfectly valid response if you don’t want to do the work, whether that decision is made today or in 2030 when Core18 would be beyond even the legacy 12 year support window, never mind the 5 year general support.

Hi @James-Carroll

What about base core instead of core18 I think it provides Gtk-3, too?

The Gtk-2 snap didn’t know about bases, yet. So it defaulted to base core, if I am correct. This snap just builds fine.

Sorry, I was not aware of tracks. Where can I read more about it?


regards, Joël

you as in who? Are you implying I’m personally to blame for this?

I’m trying to propose a solution to your problem. It’s fine if you feel it’s inadequate or does not address the issue you have. However, I would strongly suggest to keep things civil.

If your requirement is GTK3, core24 still has it. The Gnome extension on GTK3 is 3.38 and a rolling version of v4 at the same time, I’d expect reasonably core 26 to be similar and then you’d have a supported base on general support with GTK3 til 3031.

There’s some guides to tracks on the documentation but the high level is it let’s you push two separate releases to the same snap name rather than two different names. That unifies your metrics and keeps any bespoke store overrides easier to manage. The developer experience, after making a request to get one created, is effectively just pushing two separate revisions and then deciding which one is the default and which one would be under a specified name, graphically on the store website or e.g., snap push my.snap --release=GTK3/stable

E.G., for Install Pinta on Linux | Snap Store if you click the install drop down you can see there’s a track named GTK3 on Core24, and although that version of Pinta is no longer actively maintained, I expect to be able to rebase it on core26 too.

Hi all,

The thing is compatibility with older installations.

I have no interest in users using old version of my software but if the user wants this specific version, then he should get it.

I am asking about core because of compatibility and it was created for compatibility in mind.

regards, Joël

Hi,

Sorry, I was getting emotional about things changed along the way. I had to take things into my hand and make it work again.

thank you for your participation.

cheers, Joël

If the snapd Daemon itself is updated, there wouldn’t be any compatibility issues with e.g., running Core24 on on Ubuntu 16.04 ( albeit I wouldn’t recommend anyone does, but it’s still supported), if your concern is that way inclined?

Otherwise I think I might be misreading your concerns there.

And you don’t have to rebase it at all to make it a track, that’s just me suggesting it might be easier than you’re expecting if you did.

1 Like

FYI, I have some users still using ubuntu 16.04 or debian 10.

Hi @jkraehemann ! We hit the same problem with the nextcloud snap and found a workaround for when the recipe of the snap is hosted in launchpad.

Hope it helps!