diff options
author | Erica Portnoy <ebportnoy@gmail.com> | 2020-06-12 04:06:51 +0300 |
---|---|---|
committer | Brad Warren <bmw@eff.org> | 2020-06-18 02:57:51 +0300 |
commit | 0f53e8ad4e336b9742ffef9efa98b0198bc3a009 (patch) | |
tree | c37625f19fa1cd65558de550cf9cfe58e9f21c1c /snap | |
parent | 2a18ae6d578cf756613bf5fd4aa0f0f530dfe470 (diff) |
Upgrade snap to be based on core20
* Get rid of a whole bunch of error message
* Remove some more overlaps
* don't use certbot from nginx and apache
* use python3 from bin
* certbot needs to be in bin
* try to exclude just the certbot folder
* try a couple things to use the python from the venv bin
* play around with which versions of things we want from each package
* ok, certbot-nginx does need to stage bin
* certbot needs to not stage bin. why does certbot not put certbot in bin?
* fail to inspect more versions of things in the container shell
* take cffi backend from python-augeas
* if we use certbot from bin things should work?
* why is bin not in path? no idea, but let's get it compiled then inspect things in the snap shell
* use snap.certbot instead of bin/certbot
* it does require bin/certbot. I don't know why.
* let's see if we can stick it all in one step
* try installing local subdirectories
* move python-augeas into the single part
* remove after
* put back python-augeas part for now; ERROR: Could not satisfy constraints for 'python-augeas': installation from path or url cannot be constrained to a version
* how was this previously working without git installed? install git.
* maybe it needs to already have python3-wheel installed
* maybe wheel will install first if I change it to -e
* no -e
* maybe try a different python3 package to stage
* this last change wasn't necessary
* remove the bin/ from renew
* nope, it does need bin/certbot
* back to wget
* stage a bare python3
* add all necessary python packages to stage-packages
* pretty sure we don't actually need wheel. let's try removing it!
* remove python-augeas, since we have it pinned to an older version in cb-auto that might work
* stage augeas
* still need libaugeas-dev
* ok let's try building
* combining into one part works! just make sure to unpin python-augeas when generating snap-constraints.txt
* change our scripts to unpin python-augeas
* Use ubuntu 20 in compile_native_wheels.sh
* .travis.yml should use python3-dev instead of python-dev
* jk! we don't need python3-dev in travis
* Update cffi and cryptography wheels for ubuntu20 version of python
* looks like we need python3-dev to build things
* Remove deprecated i386 wheels
Diffstat (limited to 'snap')
-rwxr-xr-x | snap/local/build_and_install.sh | 3 | ||||
-rwxr-xr-x | snap/local/compile_native_wheels.sh | 5 | ||||
-rw-r--r-- | snap/local/packages/cffi/cffi-1.14.0-cp36-cp36m-linux_aarch64.whl | bin | 328276 -> 0 bytes | |||
-rw-r--r-- | snap/local/packages/cffi/cffi-1.14.0-cp36-cp36m-linux_armv7l.whl | bin | 304037 -> 0 bytes | |||
-rw-r--r-- | snap/local/packages/cffi/cffi-1.14.0-cp38-cp38-linux_aarch64.whl | bin | 0 -> 379390 bytes | |||
-rw-r--r-- | snap/local/packages/cffi/cffi-1.14.0-cp38-cp38-linux_armv7l.whl | bin | 0 -> 358547 bytes | |||
-rw-r--r-- | snap/local/packages/cryptography/cryptography-2.8-cp36-cp36m-linux_aarch64.whl | bin | 776803 -> 0 bytes | |||
-rw-r--r-- | snap/local/packages/cryptography/cryptography-2.8-cp36-cp36m-linux_armv7l.whl | bin | 777142 -> 0 bytes | |||
-rw-r--r-- | snap/local/packages/cryptography/cryptography-2.8-cp38-cp38-linux_aarch64.whl | bin | 0 -> 864286 bytes | |||
-rw-r--r-- | snap/local/packages/cryptography/cryptography-2.8-cp38-cp38-linux_armv7l.whl | bin | 0 -> 847477 bytes | |||
-rw-r--r-- | snap/snapcraft.yaml | 74 |
11 files changed, 34 insertions, 48 deletions
diff --git a/snap/local/build_and_install.sh b/snap/local/build_and_install.sh index e51e6770c..7e76fcdc1 100755 --- a/snap/local/build_and_install.sh +++ b/snap/local/build_and_install.sh @@ -21,7 +21,8 @@ source "${DIR}/common.sh" RegisterQemuHandlers ResolveArch "${SNAP_ARCH}" -tools/strip_hashes.py letsencrypt-auto-source/pieces/dependency-requirements.txt > snap-constraints.txt +tools/strip_hashes.py letsencrypt-auto-source/pieces/dependency-requirements.txt \ + | grep -v python-augeas > snap-constraints.txt pushd "${DIR}/packages" "${CERTBOT_DIR}/tools/simple_http_server.py" 8080 >/dev/null 2>&1 & diff --git a/snap/local/compile_native_wheels.sh b/snap/local/compile_native_wheels.sh index df909ba48..cabbf99e7 100755 --- a/snap/local/compile_native_wheels.sh +++ b/snap/local/compile_native_wheels.sh @@ -14,7 +14,8 @@ source "${DIR}/common.sh" RegisterQemuHandlers -tools/strip_hashes.py letsencrypt-auto-source/pieces/dependency-requirements.txt > "${DIR}/snap-constraints.txt" +tools/strip_hashes.py letsencrypt-auto-source/pieces/dependency-requirements.txt \ + | grep -v python-augeas > "${DIR}/snap-constraints.txt" for SNAP_ARCH in ${TARGET_ARCHS}; do ResolveArch "${SNAP_ARCH}" DownloadQemuStatic "${QEMU_ARCH}" "${DIR}" @@ -24,7 +25,7 @@ for SNAP_ARCH in ${TARGET_ARCHS}; do -v "${DIR}/qemu-${QEMU_ARCH}-static:/usr/bin/qemu-${QEMU_ARCH}-static" \ -v "${DIR}:/workspace" \ -w "/workspace" \ - "${DOCKER_ARCH}/ubuntu:18.04" \ + "${DOCKER_ARCH}/ubuntu:20.04" \ sh -c "\ apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3 python3-venv python3-dev libffi-dev libssl-dev gcc \ diff --git a/snap/local/packages/cffi/cffi-1.14.0-cp36-cp36m-linux_aarch64.whl b/snap/local/packages/cffi/cffi-1.14.0-cp36-cp36m-linux_aarch64.whl Binary files differdeleted file mode 100644 index 36dfa9ade..000000000 --- a/snap/local/packages/cffi/cffi-1.14.0-cp36-cp36m-linux_aarch64.whl +++ /dev/null diff --git a/snap/local/packages/cffi/cffi-1.14.0-cp36-cp36m-linux_armv7l.whl b/snap/local/packages/cffi/cffi-1.14.0-cp36-cp36m-linux_armv7l.whl Binary files differdeleted file mode 100644 index 26f107cc9..000000000 --- a/snap/local/packages/cffi/cffi-1.14.0-cp36-cp36m-linux_armv7l.whl +++ /dev/null diff --git a/snap/local/packages/cffi/cffi-1.14.0-cp38-cp38-linux_aarch64.whl b/snap/local/packages/cffi/cffi-1.14.0-cp38-cp38-linux_aarch64.whl Binary files differnew file mode 100644 index 000000000..aded6d595 --- /dev/null +++ b/snap/local/packages/cffi/cffi-1.14.0-cp38-cp38-linux_aarch64.whl diff --git a/snap/local/packages/cffi/cffi-1.14.0-cp38-cp38-linux_armv7l.whl b/snap/local/packages/cffi/cffi-1.14.0-cp38-cp38-linux_armv7l.whl Binary files differnew file mode 100644 index 000000000..4f6d0ab7d --- /dev/null +++ b/snap/local/packages/cffi/cffi-1.14.0-cp38-cp38-linux_armv7l.whl diff --git a/snap/local/packages/cryptography/cryptography-2.8-cp36-cp36m-linux_aarch64.whl b/snap/local/packages/cryptography/cryptography-2.8-cp36-cp36m-linux_aarch64.whl Binary files differdeleted file mode 100644 index 3a969945a..000000000 --- a/snap/local/packages/cryptography/cryptography-2.8-cp36-cp36m-linux_aarch64.whl +++ /dev/null diff --git a/snap/local/packages/cryptography/cryptography-2.8-cp36-cp36m-linux_armv7l.whl b/snap/local/packages/cryptography/cryptography-2.8-cp36-cp36m-linux_armv7l.whl Binary files differdeleted file mode 100644 index ea49f5dab..000000000 --- a/snap/local/packages/cryptography/cryptography-2.8-cp36-cp36m-linux_armv7l.whl +++ /dev/null diff --git a/snap/local/packages/cryptography/cryptography-2.8-cp38-cp38-linux_aarch64.whl b/snap/local/packages/cryptography/cryptography-2.8-cp38-cp38-linux_aarch64.whl Binary files differnew file mode 100644 index 000000000..e0392fcd4 --- /dev/null +++ b/snap/local/packages/cryptography/cryptography-2.8-cp38-cp38-linux_aarch64.whl diff --git a/snap/local/packages/cryptography/cryptography-2.8-cp38-cp38-linux_armv7l.whl b/snap/local/packages/cryptography/cryptography-2.8-cp38-cp38-linux_armv7l.whl Binary files differnew file mode 100644 index 000000000..38ee1eada --- /dev/null +++ b/snap/local/packages/cryptography/cryptography-2.8-cp38-cp38-linux_armv7l.whl diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index fec0a044d..515a6f688 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -26,7 +26,7 @@ apps: AUGEAS_LENS_LIB: "$SNAP/usr/share/augeas/lenses/dist" LD_LIBRARY_PATH: "$SNAP/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH" renew: - command: certbot -q renew + command: bin/certbot -q renew daemon: oneshot environment: PATH: "$SNAP/bin:$SNAP/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" @@ -35,58 +35,42 @@ apps: # Run approximately twice a day with randomization timer: 00:00~24:00/2 + parts: - python-augeas: - plugin: python - source: git://github.com/basak/python-augeas - source-branch: snap - python-version: python3 - build-packages: [libaugeas-dev] - acme: - plugin: python - source: . - source-subdir: acme - constraints: [$SNAPCRAFT_PART_SRC/snap-constraints.txt] - python-version: python3 - # To build cryptography and cffi if needed - build-packages: [libffi-dev, libssl-dev] certbot: plugin: python source: . - source-subdir: certbot constraints: [$SNAPCRAFT_PART_SRC/snap-constraints.txt] - python-version: python3 - after: [acme] - override-pull: | - snapcraftctl pull - snapcraftctl set-version `cd $SNAPCRAFT_PART_SRC && git describe|sed s/^v//` - # Workaround for lack of site-packages leading to empty sitecustomize.py - stage: - - -usr/lib/python3.8/sitecustomize.py - certbot-apache: - plugin: python - source: . - source-subdir: certbot-apache - constraints: [$SNAPCRAFT_PART_SRC/snap-constraints.txt] - python-version: python3 - after: [python-augeas, certbot] - stage-packages: [libaugeas0] + python-packages: + - git+https://github.com/basak/python-augeas.git@snap + - ./acme + - ./certbot + - ./certbot-apache + - ./certbot-nginx stage: + - -usr/lib/python3.8/sitecustomize.py # maybe unnecessary # Prefer cffi - -lib/python3.8/site-packages/augeas.py - certbot-nginx: - plugin: python - source: . - source-subdir: certbot-nginx - constraints: [$SNAPCRAFT_PART_SRC/snap-constraints.txt] - python-version: python3 - # This is the last step, compile pycache now as there should be no conflicts. - override-prime: | - snapcraftctl prime - ./usr/bin/python3 -m compileall -q . - # After certbot-apache to not rebuild duplicates (essentially sharing what was already staged, - # like zope) - after: [certbot-apache] + stage-packages: + - libaugeas0 + # added to stage python: + - libpython3-stdlib + - libpython3.8-stdlib + - libpython3.8-minimal + - python3-pip + - python3-setuptools + - python3-wheel + - python3-venv + - python3-minimal + - python3-distutils + - python3-pkg-resources + - python3.8-minimal + # To build cryptography and cffi if needed + build-packages: [libffi-dev, libssl-dev, git, libaugeas-dev, python3-dev] + override-pull: | + snapcraftctl pull + snapcraftctl set-version `cd $SNAPCRAFT_PART_SRC/certbot && git describe|sed s/^v//` + wrappers: plugin: dump source: . |