that should not be … UC18 builds actually use the snapd snap and do only ship a symlink inside the core18 base pointing to the snap command inside the snapd snap (and usually do not ship core unless there is an app snap requiring it) … console-conf waits until snapd notifies about “seeding done” there …
if you included an app snap that had no base, yes, that would then use core at runtime … but would have no influence on the OS itself or on console-conf. if you built with a UC18 model assertion, used a gadget and kernel for UC18, you boot into a UC18 system, no matter what bases the apps on top of that use …
That gadget and kernel should just be the “stock” 18 gadget and kernel. The core snap it will pull when building is similarly the “stock” core. The only changes have been to either names or in the case of core replacing binaries.
The seed manifest is:
So what makes a Ubuntu Core 18 image an Ubuntu Core 18 image? is the gadget and kernel enough? Does the base need to be specified to core18?
it is using a kernel, UC does not care what kernel, as long as it is new enough (>= 4.4) the proper config defaults are there and the set of apparmor patches is complete, you should be able to combine any kernel with any base snap.
well, since this seems to be your own kernel installed from a local snap file, the track (18) is really not relevant…
but anyway, your statement about the snap binary in the base snap was the confusing bit here, since you claimed to have a core18 image in the initial post … that mystery has been solved for good now i think
Yeah just to be clear, the /usr/bin/snap command comes either from the core snap on a UC16 system, or from the snapd snap on all other systems, with the /usr/bin/snap command in the core18 or core20 snaps just being a symlink to the real command from the snapd snap.
Also I don’t think our documentation makes this distinction, but there are “3” types of model assertions for ubuntu core:
No base specified -> UC16, your base snap is the core snap and your snapd comes from the core snap (unless you manually transition the device to use the snapd snap which won’t be done automatically)
Base specified as core18 or anything other than core20 if you have your own forked base snap: Ubuntu Core 18, here you always have the snapd snap, so snapd always comes from the snapd snap, even if you also have the core snap installed
snaps header and grade header in the model assertion -> Ubuntu Core 20+. There are other tidbits here which create the system known as Ubuntu Core 20, such as the new initramfs in a kernel intended for Ubuntu Core 20, as well as a different partition layout, etc. If you have base: core20 then this is a stock UC20 system, if you have base: core22 (no idea if this exists yet), then this would be a Ubuntu Core 22 system, as we don’t plan on revamping the model assertion again for Ubuntu Core 22.
Hopefully that makes it slightly more clear how the model relates to the version of Ubuntu Core.