mirror of
https://github.com/certbot/certbot.git
synced 2026-07-23 16:22:34 +02:00
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
This commit is contained in:
committed by
Brad Warren
parent
2a18ae6d57
commit
0f53e8ad4e
@@ -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 &
|
||||
|
||||
@@ -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 \
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+29
-45
@@ -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: .
|
||||
|
||||
Reference in New Issue
Block a user