From 2ca8ef33e1c6e3d76b90e4f56388c8b669800519 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Mon, 28 Oct 2024 10:37:43 +0100 Subject: [PATCH 1/2] vagrant: pyenv: only install python 3.12 on macOS, installing older Pythons seems to uninstall OpenSSL 3 and only 1.1 is left. also, building all these pythons and misc. openssl versions takes forever and we only need 3.12 for the binary build. testing on misc. python versions is regularly done one github actions CI. --- Vagrantfile | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index 14e933629..4e25a3dd3 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -169,9 +169,6 @@ def install_pythons(boxname) . ~/.bash_profile echo "PYTHON_CONFIGURE_OPTS: ${PYTHON_CONFIGURE_OPTS}" pyenv install 3.12.4 # tests, binary build (3.12.5/6/7 has a broken pip on old macOS) - pyenv install 3.11.3 # tests - pyenv install 3.10.2 # tests - pyenv install 3.9.4 # tests pyenv rehash EOF end @@ -236,8 +233,8 @@ def run_tests(boxname, skip_env) . ../borg-env/bin/activate if which pyenv 2> /dev/null; then # for testing, use the earliest point releases of the supported python versions: - pyenv global 3.9.4 3.10.2 3.11.3 3.12.4 - pyenv local 3.9.4 3.10.2 3.11.3 3.12.4 + pyenv global 3.12.4 + pyenv local 3.12.4 fi # otherwise: just use the system python # some OSes can only run specific test envs, e.g. because they miss FUSE support: From 3a7881f8dd2ad04ca601d448fc522533dd879bf1 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Mon, 28 Oct 2024 21:10:28 +0100 Subject: [PATCH 2/2] vagrant: fix macos1012 box (curl, ca-certificates, openssl@3) --- Vagrantfile | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index 4e25a3dd3..0dbc25f70 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -117,15 +117,44 @@ def packages_macos sudo softwareupdate --ignore Safari sudo softwareupdate --ignore "Install macOS High Sierra" sudo softwareupdate --install --all - which brew || CI=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" + + # this box has openssl 1.1 installed + export PKG_CONFIG_PATH=/usr/local/opt/openssl@1.1/lib/pkgconfig + + # the box "as is" has troubles downloading ca-certificates, needs a better working curl: + # https://curl.se/docs/install.html + curl -L https://github.com/curl/curl/releases/download/curl-8_10_1/curl-8.10.1.tar.gz | tar -xz + cd curl-8.10.1/ + export ARCH=x86_64 + export SDK=macosx + export DEPLOYMENT_TARGET=10.12 + export CFLAGS="-arch $ARCH -isysroot $(xcrun -sdk $SDK --show-sdk-path) -m$SDK-version-min=$DEPLOYMENT_TARGET" + ./configure --host=$ARCH-apple-darwin --prefix $(pwd)/artifacts --with-openssl --without-libpsl + make -j8 + cp artifacts/bin/curl /usr/local/bin/ + unset ARCH + unset SDK + unset DEPLOYMENT_TARGET + unset CFLAGS + cd .. + export HOMEBREW_DEVELOPER=1 + export HOMEBREW_CURL_PATH=/usr/local/bin/curl + brew install ca-certificates + brew install curl # also installs openssl@3 + echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~vagrant/.bash_profile + unset HOMEBREW_CURL_PATH + unset HOMEBREW_DEVELOPER + export HOMEBREW_FORCE_BREWED_CURL=1 + + # now brew, curl, ca-certificates, openssl@3 should be all ok. brew update > /dev/null - brew install pkg-config readline xxhash openssl@3.0 zstd lz4 xz + brew install pkg-config readline xxhash zstd lz4 xz brew install --cask macfuse # brew upgrade # upgrade everything (takes rather long) - echo 'export LDFLAGS=-L/usr/local/opt/openssl@3.0/lib' >> ~vagrant/.bash_profile - echo 'export CPPFLAGS=-I/usr/local/opt/openssl@3.0/include' >> ~vagrant/.bash_profile - echo 'export PKG_CONFIG_PATH=/usr/local/opt/openssl@3.0/lib/pkgconfig' >> ~vagrant/.bash_profile - echo 'export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA=openssl@3.0' >> ~vagrant/.bash_profile + echo 'export LDFLAGS=-L/usr/local/opt/openssl@3/lib' >> ~vagrant/.bash_profile + echo 'export CPPFLAGS=-I/usr/local/opt/openssl@3/include' >> ~vagrant/.bash_profile + echo 'export PKG_CONFIG_PATH=/usr/local/opt/openssl@3/lib/pkgconfig' >> ~vagrant/.bash_profile + echo 'export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA=openssl@3' >> ~vagrant/.bash_profile EOF end