From 8de369ece2c49c470ad76667e9b15515d0e9825e Mon Sep 17 00:00:00 2001 From: Michael Hudson-Doyle Date: Fri, 11 Jun 2021 15:38:54 +1200 Subject: [PATCH 1/2] snapcraft: change base to core20 --- snapcraft.yaml | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index c8023500..8c4d0f56 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: subiquity -base: core18 +base: core20 version: git summary: Ubuntu installer description: The Ubuntu server installer @@ -51,21 +51,9 @@ parts: - "-lib/python*/site-packages/_yaml.*.so" - "-lib/python*/site-packages/jsonschema" apport: - plugin: python - source-type: bzr - source: lp:~ubuntu-core-dev/ubuntu/focal/apport/ubuntu - build-packages: - - python3-distutils-extra - - python3-apt - - python3-httplib2 - - python3-problem-report - - python3-requests-unixsocket + plugin: nil stage-packages: - - python3-distutils-extra - - python3-apt - - python3-httplib2 - - python3-problem-report - - python3-requests-unixsocket + - apport stage: - "lib/python*/site-packages/" - "-lib/python*/site-packages/etc/*" @@ -78,16 +66,12 @@ parts: - libsystemd-dev - lsb-release - pkg-config - - python3-urwid + - python3-venv stage-packages: - cloud-init - libsystemd0 - iso-codes - lsb-release - - python3-bson - - python3-urwid - - python3-requests - - python3-requests-unixsocket - ssh-import-id python-packages: - attrs @@ -95,11 +79,16 @@ parts: - systemd-python - aiohttp - yarl==1.5.1 + - urwid + - requests + - bson + - requests-unixsocket #- urwid source: . source-type: git + build-environment: + PATH: "/usr/bin:$PATH" organize: - 'bin/console-conf-tui': usr/bin/console-conf 'bin/subiquity-tui': usr/bin/subiquity 'bin/subiquity-service': usr/bin/subiquity-service 'bin/subiquity-server': usr/bin/subiquity-server @@ -120,7 +109,6 @@ parts: build-packages: - console-setup - locales - - xkb-data-i18n - python3-attr - python3-yaml override-build: PYTHONPATH=$SNAPCRAFT_PROJECT_DIR/ $SNAPCRAFT_PROJECT_DIR/scripts/make-kbd-info.py From be158a375f4e2ef45515cd87f11feff2f557c92c Mon Sep 17 00:00:00 2001 From: Dan Bungert Date: Tue, 14 Sep 2021 14:50:49 -0600 Subject: [PATCH 2/2] snapcraft: environment and package fixes * adjust environment to set PYTHONPATH to pick up site-packages * add more required packages * add script for subiquity-server, and set PYTHONPATH there, so that the PYTHONPATH takes effect --- bin/subiquity-server | 4 ++ bin/subiquity-service | 6 ++- setup.py | 2 +- snapcraft.yaml | 92 +++++++++++++++++++++++++++++++------------ 4 files changed, 76 insertions(+), 28 deletions(-) create mode 100755 bin/subiquity-server diff --git a/bin/subiquity-server b/bin/subiquity-server new file mode 100755 index 00000000..2713a960 --- /dev/null +++ b/bin/subiquity-server @@ -0,0 +1,4 @@ +#!/bin/sh + +export PYTHONPATH=$PYTHONPATH:$SNAP/lib/python3.8/site-packages +$PYTHON -m subiquity.cmd.server diff --git a/bin/subiquity-service b/bin/subiquity-service index 2c2a18d3..75663a80 100755 --- a/bin/subiquity-service +++ b/bin/subiquity-service @@ -1,5 +1,7 @@ #!/bin/sh port=tty1 +export PYTHONPATH=$SNAP/lib/python3.8/site-packages + if [ -n "$1" ]; then port=$1 fi @@ -7,7 +9,7 @@ fi if [ "$port" = "tty1" ]; then $SNAP/bin/subiquity-loadkeys setfont $SNAP/subiquity.psf - exec /sbin/agetty -n --noclear -l $SNAP/usr/bin/python3 -o $SNAP/usr/bin/subiquity $port $TERM + exec /sbin/agetty -n --noclear -l $PYTHON -o $SNAP/usr/bin/subiquity $port $TERM else - exec /sbin/agetty -n --keep-baud -l $SNAP/usr/bin/python3 -o "$SNAP/usr/bin/subiquity --serial" $port 115200,38400,9600 $TERM + exec /sbin/agetty -n --keep-baud -l $PYTHON -o "$SNAP/usr/bin/subiquity --serial" $port 115200,38400,9600 $TERM fi diff --git a/setup.py b/setup.py index 1fadd085..a1d4c48d 100644 --- a/setup.py +++ b/setup.py @@ -111,10 +111,10 @@ setup(name='subiquity', 'bin/subiquity-configure-apt', 'bin/subiquity-loadkeys', 'bin/subiquity-service', + 'bin/subiquity-server', ], entry_points={ 'console_scripts': [ - 'subiquity-server = subiquity.cmd.server:main', 'subiquity-tui = subiquity.cmd.tui:main', 'console-conf-tui = console_conf.cmd.tui:main', 'system-setup-server = system_setup.cmd.server:main', diff --git a/snapcraft.yaml b/snapcraft.yaml index 8c4d0f56..ca3aac2b 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -20,7 +20,9 @@ apps: environment: PYTHONIOENCODING: utf-8 SUBIQUITY_ROOT: $SNAP - PYTHON: $SNAP/usr/bin/python3 + PYTHON: $SNAP/usr/bin/python3.8 + PY3OR2_PYTHON: $SNAP/usr/bin/python3.8 + PATH: $PATH:$SNAP/bin subiquity-service: command: usr/bin/subiquity-service daemon: simple @@ -28,6 +30,7 @@ apps: environment: PYTHONIOENCODING: utf-8 SUBIQUITY_ROOT: $SNAP + PYTHON: $SNAP/usr/bin/python3.8 parts: curtin: @@ -39,55 +42,79 @@ parts: source-type: git source: https://git.launchpad.net/curtin source-commit: 809817fdac257de1769e385a42aeaf3d5bcc2c60 + build-packages: + - shared-mime-info + - zlib1g-dev python-packages: - pyyaml==5.3.1 - oauthlib - jsonschema - pyrsistent + - wheel + - setuptools + - pip + - bson + - urwid + - requests + - requests-unixsocket organize: 'lib/python*/site-packages/usr/lib/curtin': 'usr/lib/' stage: - "*" - "-lib/python*/site-packages/_yaml.*.so" + - "-lib/python*/site-packages/setuptools" + - "-lib/python*/site-packages/pip" + - "-lib/python*/site-packages/pkg_resources" - "-lib/python*/site-packages/jsonschema" - apport: - plugin: nil - stage-packages: - - apport - stage: - - "lib/python*/site-packages/" - - "-lib/python*/site-packages/etc/*" - - "-lib/python*/site-packages/lib/*" - - "share/apport/general-hooks/" - - "usr/" + - "-lib/python*/site-packages/wheel*" + - "-lib/python*/site-packages/probert" + - "-bin/activate*" + - "-lib/python3.8/site-packages/__pycache__/six.cpython*" + - "-lib/python3.8/site-packages/pip-*.dist-info/RECORD" + - "-lib/python3.8/site-packages/wheel-*.dist-info/RECORD" + - "-lib/python3.8/site-packages/_distutils_hack" subiquity: plugin: python build-packages: + - gettext - libsystemd-dev - lsb-release - pkg-config - - python3-venv + - python3-yaml + - python3-attr + - python3-systemd + - python3-aiohttp + - python3-yarl + - python3-urwid + - python3-bson + - python3-requests-unixsocket + - python3-requests stage-packages: - cloud-init - libsystemd0 - iso-codes - lsb-release - ssh-import-id - python-packages: - - attrs - - pyyaml==5.3.1 - - systemd-python - - aiohttp - - yarl==1.5.1 - - urwid - - requests - - bson - - requests-unixsocket - #- urwid + - libpython3.8-minimal + - libpython3.8-stdlib + - libpython3-stdlib + - python3.8-minimal + - python3-minimal + - python3-yaml + - python3-apport + - python3-attr + - python3-systemd + - python3-aiohttp + - python3-yarl + - python3-urwid + - python3-bson + - python3-requests-unixsocket + - python3-requests + - python3-pyudev source: . source-type: git build-environment: - PATH: "/usr/bin:$PATH" + - PATH: "/usr/bin:$PATH" organize: 'bin/subiquity-tui': usr/bin/subiquity 'bin/subiquity-service': usr/bin/subiquity-service @@ -134,10 +161,25 @@ parts: $SNAPCRAFT_PROJECT_DIR/scripts/make-language-lists $SNAPCRAFT_PROJECT_DIR/po > $SNAPCRAFT_PART_INSTALL/languagelist stage: - languagelist + probert: plugin: python - build-packages: [python-setuptools, build-essential, libnl-3-dev, libnl-genl-3-dev, libnl-route-3-dev] + build-packages: + - python-setuptools + - build-essential + - libnl-3-dev + - libnl-genl-3-dev + - libnl-route-3-dev source: https://github.com/canonical/probert.git source-type: git source-commit: 2bb505172b5f97372eb1abd12ced4629e852504b requirements: [requirements.txt] + stage: + - "*" + - -bin/python3* + - -bin/activate* + - -lib/python3.8/site-packages/_distutils_hack + - -lib/python3.8/site-packages/pip* + - -lib/python3.8/site-packages/pkg_resources + - -lib/python3.8/site-packages/setuptools + - -lib/python3.8/site-packages/wheel*