snap: confine classically and carry the full packaging toolchain
A devmode snap is a smoke test, not a distribution channel: pkh drives the whole host packaging stack (unshare chroots, overlay mounts, dpkg/quilt/lintian across arbitrary paths), which only classic confinement can express. The snap now bundles every host-side tool pkh execs (git, gnupg, dpkg-dev, quilt, pristine-tar, mmdebstrap, lintian, fakeroot, util-linux, mount, schroot, openssh, tar/xz/bzip2), with apt and dpkg deliberately left to the host: a core24 apt managing a newer host's package database is exactly the skew classic snaps must avoid. Tools running only inside the build chroot stay out; pkh provisions those itself. Release metadata comes from Cargo.toml instead of the git hash, and grade is stable, so a build of any commit packs as the declared version. Classic-mode correctness: noble's mount/umount are staged from the split mount package, fakeroot is exposed via symlink since update-alternatives does not run at staging, and every bundled ELF is patched to the core24 loader with a DT_RPATH resolving the base and $ORIGIN. Without this the host loader would pin the snap to hosts with a matching glibc, and the host ld.so.cache would mix host libraries with base ones.
This commit is contained in:
@@ -1,2 +1,9 @@
|
||||
*.lock
|
||||
target
|
||||
|
||||
# Local snapcraft builds
|
||||
.craft
|
||||
parts
|
||||
prim
|
||||
stage
|
||||
*.snap
|
||||
|
||||
Reference in New Issue
Block a user