244 lines
6.4 KiB
YAML
244 lines
6.4 KiB
YAML
name: subiquity
|
|
base: core22
|
|
version: git
|
|
summary: Ubuntu installer
|
|
description: The Ubuntu server installer
|
|
confinement: classic
|
|
source-code: https://github.com/canonical/subiquity
|
|
issues: https://bugs.launchpad.net/subiquity/+filebug
|
|
contact: https://bugs.launchpad.net/subiquity/+filebug
|
|
|
|
apps:
|
|
subiquity:
|
|
command: usr/bin/subiquity-cmd
|
|
environment:
|
|
# Save original values of environment variables, we want to restore them
|
|
# for the debug shell (LP: #1975629) and restart (LP: #1978139)
|
|
PYTHONPATH_ORIG: $PYTHONPATH
|
|
PATH_ORIG: $PATH
|
|
PYTHONIOENCODING_ORIG: $PYTHONIOENCODING
|
|
PYTHONIOENCODING: utf-8
|
|
SUBIQUITY_ROOT_ORIG: $SUBIQUITY_ROOT
|
|
SUBIQUITY_ROOT: $SNAP
|
|
PYTHON_ORIG: $PYTHON
|
|
PYTHON: $SNAP/usr/bin/python3.10
|
|
probert:
|
|
command: bin/probert
|
|
subiquity-server:
|
|
command: usr/bin/subiquity-server
|
|
daemon: simple
|
|
restart-condition: always
|
|
environment:
|
|
PYTHONIOENCODING: utf-8
|
|
SUBIQUITY_ROOT: $SNAP
|
|
PYTHON: $SNAP/usr/bin/python3.10
|
|
PY3OR2_PYTHON: $SNAP/usr/bin/python3.10
|
|
PATH: $PATH:$SNAP/bin:$SNAP/sbin
|
|
subiquity-service:
|
|
command: usr/bin/subiquity-service
|
|
daemon: simple
|
|
restart-condition: always
|
|
environment:
|
|
# Save original values of environment variables, we want to restore them
|
|
# for the debug shell (LP: #1975629).
|
|
PYTHONPATH_ORIG: $PYTHONPATH
|
|
PATH_ORIG: $PATH
|
|
PYTHONIOENCODING_ORIG: $PYTHONIOENCODING
|
|
PYTHONIOENCODING: utf-8
|
|
SUBIQUITY_ROOT_ORIG: $SUBIQUITY_ROOT
|
|
SUBIQUITY_ROOT: $SNAP
|
|
PYTHON_ORIG: $PYTHON
|
|
PYTHON: $SNAP/usr/bin/python3.10
|
|
os-prober:
|
|
command: usr/bin/os-prober
|
|
environment:
|
|
OS_PROBER_SHARE: $SNAP/usr/share
|
|
OS_PROBER_LIB: $SNAP/usr/lib
|
|
|
|
parts:
|
|
curtin:
|
|
plugin: nil
|
|
|
|
source: https://git.launchpad.net/curtin
|
|
source-type: git
|
|
source-commit: b1f4da3bec92356e8ef389c1c581cfdcd1b36c42
|
|
|
|
override-pull: |
|
|
craftctl default
|
|
PACKAGED_VERSION="$(git describe --long --abbrev=9 --match=[0-9][0-9]*)"
|
|
sed -e "s,@@PACKAGED_VERSION@@,$PACKAGED_VERSION,g" -i curtin/version.py
|
|
override-build: &pyinstall |
|
|
# We install without dependencies because all dependencies come from
|
|
# archive packages.
|
|
# XXX: On core22, running `pip3 install --prefix xxx` does not do the
|
|
# right thing. The package ends up installed in xxx/local and the modules
|
|
# get installed to dist-packages instead of site-packages.
|
|
# See https://discuss.python.org/t/18240
|
|
# As a workaround, we use a fake user install to get the package
|
|
# installed in the expected place.
|
|
PYTHONUSERBASE="$CRAFT_PART_INSTALL" pip3 install --user --no-dependencies .
|
|
|
|
build-packages:
|
|
- python3-pip
|
|
|
|
organize:
|
|
lib/python*/site-packages/usr/lib/curtin: usr/lib/
|
|
|
|
subiquity:
|
|
plugin: nil
|
|
|
|
source: .
|
|
source-type: git
|
|
|
|
override-build: *pyinstall
|
|
|
|
build-packages:
|
|
- gettext
|
|
- lsb-release
|
|
- python3-pip
|
|
|
|
stage-packages:
|
|
# This list includes the dependencies for curtin and probert as well,
|
|
# there doesn't seem to be any real benefit to listing them separately.
|
|
- cloud-init
|
|
- iso-codes
|
|
- libpython3-stdlib
|
|
- libpython3.10-minimal
|
|
- libpython3.10-stdlib
|
|
- libsystemd0
|
|
- lsb-release
|
|
- ntfs-3g
|
|
- python3-aiohttp
|
|
- python3-apport
|
|
- python3-attr
|
|
- python3-bson
|
|
- python3-jsonschema
|
|
- python3-minimal
|
|
- python3-oauthlib
|
|
- python3-pkg-resources
|
|
- python3-pyroute2
|
|
- python3-pyrsistent
|
|
- python3-pyudev
|
|
- python3-requests
|
|
- python3-requests-unixsocket
|
|
- python3-systemd
|
|
- python3-urwid
|
|
- python3-yaml
|
|
- python3-yarl
|
|
- python3.10-minimal
|
|
- ssh-import-id
|
|
- ubuntu-advantage-tools
|
|
|
|
organize:
|
|
bin/subiquity-tui: usr/bin/subiquity
|
|
bin/subiquity-service: usr/bin/subiquity-service
|
|
bin/subiquity-server: usr/bin/subiquity-server
|
|
bin/subiquity-cmd: usr/bin/subiquity-cmd
|
|
$CRAFT_PART_BUILD/system_setup/ubuntu-wsl-setup: bin/ubuntu-wsl-setup
|
|
|
|
build-attributes:
|
|
- enable-patchelf
|
|
|
|
users-and-groups:
|
|
plugin: nil
|
|
|
|
build-packages:
|
|
- user-setup
|
|
override-build: |
|
|
echo "get passwd/user-default-groups" | \
|
|
debconf-communicate user-setup | \
|
|
cut -d ' ' -f 2- > $CRAFT_PART_INSTALL/users-and-groups
|
|
stage:
|
|
- users-and-groups
|
|
|
|
user-setup:
|
|
plugin: nil
|
|
|
|
source: https://git.launchpad.net/ubuntu/+source/user-setup
|
|
source-type: git
|
|
|
|
override-build: cp -a reserved-usernames $CRAFT_PART_INSTALL/
|
|
stage:
|
|
- reserved-usernames
|
|
|
|
keyboard-data:
|
|
plugin: nil
|
|
|
|
build-packages:
|
|
- console-setup
|
|
- locales
|
|
- python3-attr
|
|
- python3-yaml
|
|
override-build: |
|
|
PYTHONPATH=$CRAFT_PROJECT_DIR/ $CRAFT_PROJECT_DIR/scripts/make-kbd-info.py
|
|
cp $CRAFT_PROJECT_DIR/kbds/keyboard-configuration.yaml \
|
|
$CRAFT_PART_INSTALL/kbds/keyboard-configuration.yaml
|
|
stage:
|
|
- kbds/
|
|
|
|
font:
|
|
plugin: dump
|
|
|
|
source: .
|
|
source-type: git
|
|
|
|
organize:
|
|
font/subiquity.psf: subiquity.psf
|
|
stage:
|
|
- subiquity.psf
|
|
|
|
languagelists:
|
|
plugin: nil
|
|
|
|
build-packages:
|
|
- localechooser-data
|
|
override-build: |
|
|
grep '^path-exclude=.*LC_MESSAGES.*' /etc/dpkg/dpkg.cfg.d/excludes && {
|
|
sed -i 's/^path-exclude.*LC_MESSAGES.*/#\0/g' /etc/dpkg/dpkg.cfg.d/excludes
|
|
apt-get -y install --reinstall iso-codes
|
|
} || true
|
|
$CRAFT_PROJECT_DIR/scripts/make-language-lists $CRAFT_PROJECT_DIR/po > $CRAFT_PART_INSTALL/languagelist
|
|
|
|
stage:
|
|
- languagelist
|
|
|
|
probert:
|
|
plugin: nil
|
|
|
|
source: https://github.com/canonical/probert.git
|
|
source-type: git
|
|
source-commit: 40479d08fce0370a0c41a140e6d322d2846c2a8f
|
|
|
|
override-build: *pyinstall
|
|
|
|
build-packages:
|
|
- build-essential
|
|
- libnl-3-dev
|
|
- libnl-genl-3-dev
|
|
- libnl-route-3-dev
|
|
- pkg-config
|
|
- python3-dev
|
|
- python3-pip
|
|
|
|
build-attributes:
|
|
- enable-patchelf
|
|
|
|
os-prober:
|
|
plugin: nil
|
|
|
|
source-type: git
|
|
source: https://github.com/dbungert/os-prober
|
|
source-commit: 80d6a3157a814278af4f96da91f9ab7218e20fdc
|
|
|
|
build-packages:
|
|
- build-essential
|
|
- debhelper
|
|
- fakeroot
|
|
override-build: |
|
|
./debian/rules build
|
|
fakeroot ./debian/rules install
|
|
cp -a debian/os-prober/{usr,var} $CRAFT_PART_INSTALL
|
|
|
|
build-attributes:
|
|
- enable-patchelf
|