| Current Path : /snap/core26/646/snap/ |
| Current File : //snap/core26/646/snap/manifest.yaml |
snapcraft-version: 9.1.2
snapcraft-started-at: '2026-09-25T03:11:16.561191Z'
snapcraft-os-release-id: ubuntu
snapcraft-os-release-version-id: '26.04'
name: core26
version: '20260925'
summary: Runtime environment based on Ubuntu 26.04
description: |
The base snap based on the Ubuntu 26.04 release.
base: null
grade: stable
confinement: strict
apps: null
parts:
build-env:
plugin: nil
source: .
override-pull: "# We use a file with env vars in /build/core26 to decide whether\
\ to\n# include cloud-init or not. This file can be manually created for local\n\
# builds, or created here if we are running from a launchpad recipe with\n#\
\ suffix -cloud-init. This is detected by looking at the\n# SNAPCRAFT_IMAGE_INFO\
\ env var injected in LP, which tells us the build\n# url and has a form like:\n\
#\n# {\n# \"build-request-id\": \"lp-<id>\",\n# \"build-request-timestamp\"\
: \"<time>\",\n# \"build_url\": \"https://launchpad.net/~ubuntu-core-service/+snap/core26-cloud-init/+build/<build_id>\"\
\n# }\n#\n# (although in one line).\nif ! [ -e \"/build/core26\"/build-env ];\
\ then\n (\n cd \"${CRAFT_PART_SRC}\"\n touch build-env\n #\
\ parse the snap name from the url, and remove the prefix \"core26-\" and \n\
\ # suffix \"/+build\" to get the variant name, if any.\n if [ -n\
\ \"${SNAPCRAFT_IMAGE_INFO+x}\" ]; then\n SNAP_BUILD_VARIANT=$(printf\
\ '%s' \"$SNAPCRAFT_IMAGE_INFO\" | grep -oP '(?<=core26-)[^/]*(?=/\\+build)'\
\ || true)\n if [ -n \"$SNAP_BUILD_VARIANT\" ]; then\n echo\
\ \"SNAP_BUILD_VARIANT=$SNAP_BUILD_VARIANT\" > build-env\n fi\n \
\ fi\n )\nelse\n # copy to install dir so that we can use it in the build\
\ step\n cp \"/build/core26\"/build-env \"${CRAFT_PART_SRC}\"/build-env\nfi\n\
\ndate_tag=$(\"/build/core26\"/get-version.sh)\n\n# make sure we load the build-env\
\ here, especially if we're using\n# the locally sourced one.\n. \"${CRAFT_PART_SRC}\"\
/build-env\nSNAP_BUILD_VARIANT=${SNAP_BUILD_VARIANT:-}\n\n# handle build variants\n\
if [ -n \"$SNAP_BUILD_VARIANT\" ]; then\n craftctl set version=\"${date_tag}+$SNAP_BUILD_VARIANT\"\
\n echo \"SNAP_BUILD_NAME=core26-$SNAP_BUILD_VARIANT\" >> \"${CRAFT_PART_SRC}\"\
/build-env\nelse\n craftctl set version=\"${date_tag}\"\n echo \"SNAP_BUILD_NAME=core26\"\
\ > \"${CRAFT_PART_SRC}\"/build-env\nfi\n"
override-build: |
cp "${CRAFT_PART_SRC}"/build-env "${CRAFT_PART_INSTALL}"/build-env
prime:
- -build-env
stage-packages: []
stage: []
build-packages: []
chisel-libs:
after:
- build-env
plugin: nil
build-packages:
- golang
- file
source: https://github.com/canonical/chisel-ubuntu-core.git
source-type: git
source-branch: '26.04'
override-build: "go install github.com/canonical/chisel/cmd/chisel@latest\n\n\
# Define the system utilities that we want to include in the base\n# These are\
\ the ones where we can probably slim down the number of binaries\n# later on,\
\ but for now we include them all to ensure maximum compatibility.\nUTILS=(\n\
\ apparmor_bins\n bash_bins\n bzip2_scripts\n coreutils-from-uutils_bins\n\
\ diffutils_bins\n dosfstools_bins\n debianutils_which\n debianutils_ischroot\n\
\ debianutils_run-parts\n file_bins\n gdbserver_bins\n gnu-coreutils_bins\n\
\ gnutls-bin_bins\n gpgv_bins\n grep_bins\n gzip_scripts\n hostname_bins\n\
\ iptables_bins\n iputils-ping_bins\n less_bins\n login_bins\n mawk_bins\n\
\ ncurses-bin_bins\n polkitd_bins\n rfkill_bins\n sed_bins\n sudo-rs_bins\n\
\ sysvinit-utils_scripts\n squashfs-tools_bins\n tar_bins\n util-linux_bins\n\
\ util-linux_nsenter\n util-linux-extra_pivot-root\n util-linux-extra_hardware\n\
\ util-linux-extra_process\n util-linux-extra_login\n vim-tiny_bins\n)\n\n\
# Define the system libraries and services that we want to include in the base\n\
# \nSLICES=(\n apparmor_systemd\n base-files_motd\n base-files_release-info\n\
\ base-files_root-defaults\n bash-completion_config\n bash-completion_completions\n\
\ ca-certificates_data-with-certs\n cracklib-runtime_bins\n cryptsetup_bins\n\
\ cryptsetup-bin_bins\n dbus_services\n dbus-user-session_services\n dhcpcd-base_standard\n\
\ distro-info-data_data\n dmsetup_rules\n e2fsprogs_services\n e2fsprogs_standard\n\
\ fdisk_bins\n fonts-ubuntu_all\n fonts-ubuntu_config\n finalrd_services\n\
\ iproute2_bins\n kmod_bins\n kmod_config\n\n libc6_config\n libc6_gconv\n\
\ libc-bin_iconv\n libc-bin_nsswitch\n libc-bin_ldconfig\n libc-bin_locale\n\
\ libc-bin_getconf\n libc-bin_getent\n\n libpam-modules_config\n libpam-modules_pam-config\n\
\ libpam-pwquality_pam-config\n libpam-modules-bin_standard\n libpam-modules-bin_extrausers\n\
\ libpam-modules-bin_namespace\n libpam-modules-bin_timestamp\n libpam-systemd_libs\n\
\ libengine-pkcs11-openssl_libs\n libgnutls30t64_config\n libopts25_libs\n\
\ libp11-3t64_libs\n libnss-mdns_mdns4-minimal\n libnss-extrausers_libs\n\
\ libpam-pwquality_libs\n libpciaccess0_libs\n libwrap0_host-files\n libx11-data_xerrordb\n\
\ locales_standard\n\n netcat-openbsd_bins\n netplan.io_bins\n ncurses-base_terminfo\n\
\n openssh-client_config\n openssh-client_services\n openssh-server_bins\n\
\ openssh-server_config\n openssh-server_services\n openssl_bins\n opensc_bins\n\
\ p11-kit_bins\n passwd_pam-config\n polkitd_services\n procps_bins\n plymouth_bins\n\
\ plymouth-label-ft_libs\n procps_config\n\n udev_services\n util-linux_services\n\
\ systemd_bash-completions\n systemd_extras\n systemd_run0\n systemd_kernel-parameters\n\
\ systemd_udev-rules\n systemd_tpm2\n systemd_standard\n systemd_user-services\n\
\ systemd-bootchart_services\n systemd-coredump_bins\n systemd-cryptsetup_bins\n\
\ systemd-cryptsetup_services\n systemd-resolved_bins\n systemd-sysv_bins\n\
\ systemd-timesyncd_services\n systemd-zram-generator_services\n \n tzdata_zoneinfo\n\
\ wpasupplicant_services\n)\n\n. \"/build/core26/stage\"/build-env\nSNAP_BUILD_VARIANT=${SNAP_BUILD_VARIANT:-}\n\
if [ \"$SNAP_BUILD_VARIANT\" = cloud-init ]; then\n SLICES+=(cloud-init_bins)\n\
fi\n\n# TODO: not sure about FIPS yet, this will have to come later, chisel\
\ has builtin\n# support for ESM, meaning it's something we can request chisel\
\ to do for us.\n# if [ \"$SNAP_BUILD_VARIANT\" = fips ]; then\n# # Ensure\
\ vital crypt packages are refreshed / downgraded and downloaded\n# # from\
\ the FIPS ppa. This should also contain openssh-server, but we already\n# \
\ # have that one listed above.\n# SLICES+=(libgcrypt20 libgnutls30t64 openssl-fips-module-3\
\ ssh)\n# fi\n\n# add architecture specific slices\ncase \"$(dpkg --print-architecture)\"\
\ in\n amd64|arm64)\n SLICES+=(secureboot-db_services nvidia-kernel-common-595_bins\
\ nvidia-kernel-common-595_modprobe-d-kms)\n ;;\n i386)\n SLICES+=(secureboot-db_services)\n\
\ ;;\n riscv64)\n SLICES+=(gdbserver_bins systemd-bootchart_services)\n\
\ ;;\nesac\n\n# create the rootfs directory we install slices into\n\
mkdir -p \"${CRAFT_PART_INSTALL}\"/base\n\n# Cut the initial slices into the\
\ rootfs\nchisel cut \\\n --release=\"${CRAFT_PART_SRC}\" \\\n --root \"${CRAFT_PART_INSTALL}\"\
/base \\\n \"${SLICES[@]}\" \"${UTILS[@]}\" \\\n base-files_chisel\n\n# Cut\
\ foreign libraries we also need\ncase \"$(dpkg --print-architecture)\" in\n\
\ amd64)\n chisel cut \\\n --arch=i386 \\\n --release=\"\
${CRAFT_PART_SRC}\" \\\n --root \"${CRAFT_PART_INSTALL}\"/base \\\n\
\ libnss-mdns_mdns4-minimal libc6_libs libc6_gconv libc6_config libgcc-s1_libs\n\
\ ;;\nesac\n\n# https://documentation.ubuntu.com/chisel/en/latest/reference/manifest/\n\
# chisel automatically generates a manifest for the cut slices here:\n# $rootfs/var/lib/chisel/manifest.wall\n\
# this is zstd compressed, and must therefor be uncompressed\n# unzstd ./manifest.wall\
\ -o manifest.json\n"
override-prime: |
# No files from this step in prime
stage-packages: []
stage: []
prime: []
snapd-files:
plugin: nil
source: .
build-packages:
- snapd
after:
- chisel-libs
override-build: |
mkdir -p "${CRAFT_PART_INSTALL}"/base/usr/lib/systemd/system-generators
cp /usr/lib/systemd/system-generators/snapd-generator "${CRAFT_PART_INSTALL}"/base/usr/lib/systemd/system-generators/snapd-generator
mkdir -p "${CRAFT_PART_INSTALL}"/base/usr/lib/tmpfiles.d
cp /usr/lib/tmpfiles.d/snapd.conf "${CRAFT_PART_INSTALL}"/base/usr/lib/tmpfiles.d/snapd.conf
override-prime: |
# No files from this step in prime
stage-packages: []
stage: []
prime: []
generators:
plugin: nil
source: generators/
build-packages:
- cargo
- rustc
override-build: |
cd "${CRAFT_PART_SRC}"
cargo build --release
strip target/release/ubuntu-core-generator
mkdir -p "${CRAFT_PART_INSTALL}/usr/lib/core"
install -m 755 target/release/ubuntu-core-generator \
"${CRAFT_PART_INSTALL}/usr/lib/core/ubuntu-core-generator"
stage-packages: []
stage: []
prime: []
splash-theme:
plugin: dump
source: https://github.com/snapcore/plymouth-theme-ubuntu-core.git
source-type: git
organize:
ubuntu-core: usr/share/plymouth/themes/ubuntu-core
copyright: usr/share/doc/plymouth-theme-ubuntu-core/copyright
stage:
- -README.md
stage-packages: []
prime: []
build-packages: []
hooks:
after:
- chisel-libs
- snapd-files
- splash-theme
- build-env
plugin: make
source: .
build-packages:
- shellcheck
- distro-info
override-prime: |
craftctl default
# ensure build-in tests are run
make -C ${CRAFT_PART_SRC} test TESTDIR=/build/core26/prime
stage-packages: []
stage: []
prime: []
generate-changelog:
after:
- hooks
plugin: make
source: .
build-packages:
- python3-debian
- python3-requests
- python3-yaml
build-snaps:
- core26/beta
override-build: |
cd ${CRAFT_PART_SRC}
# Generate the dpkg.yaml for compatability purposes. Scanning tools still expect
# this file to be present, and they move slowly in terms of support for the new chisel format.
mkdir -p "${CRAFT_PART_INSTALL}/usr/share/snappy"
python3 ./tools/wall2dpkg.py "/build/core26/stage/var/lib/chisel/manifest.wall" "${CRAFT_PART_INSTALL}/usr/share/snappy/dpkg.yaml"
# When building through spread there is no .git, which means we cannot
# generate the changelog in this case, ensure that the current folder is
# a git repository, additionally check that the snap we are building a changelog
# against has the dpkg.yaml.
if git rev-parse HEAD && [ -e "/snap/core26/current/usr/share/snappy/dpkg.yaml" ]; then
CHG_PARAMS=
if [ -e /build/core26 ]; then
CHG_PARAMS=--launchpad
fi
mkdir -p "${CRAFT_PART_INSTALL}/usr/share/doc"
./tools/generate-changelog.py "/snap/core26/current" "${CRAFT_PART_INSTALL}" core26 $CHG_PARAMS
else
echo "WARNING: changelog will not be generated for this build"
fi
stage-packages: []
stage: []
prime: []
publish-artifacts-lp:
after:
- generate-changelog
plugin: nil
override-prime: |
# copy dpkg.yaml, chisel manifest and changelog files for lp build
if [ -e /build/core26 ]; then
DATEFMT="$(date +%Y%m%d%H%M)"
/bin/cp /build/core26/prime/usr/share/snappy/dpkg.yaml /build/core26/core26-$(DATEFMT)_amd64.dpkg.yaml
/bin/cp /build/core26/prime/var/lib/chisel/manifest.wall /build/core26/core26-$(DATEFMT)_amd64.manifest.wall
/bin/cp /build/core26/prime/usr/share/doc/ChangeLog /build/core26/core26-$(DATEFMT)_amd64.ChangeLog
fi
stage-packages: []
stage: []
prime: []
build-packages: []
architectures:
- amd64
image-info:
build_url: https://launchpad.net/~ubuntu-core-service/+snap/core26/+build/3292799
build-packages: []
build-snaps: []
primed-stage-packages: []