From aa6cb4359c5e5a4289d5ad0aa42f198721ad5dde Mon Sep 17 00:00:00 2001 From: "Zach D. LAMAZIERE" Date: Sun, 10 Dec 2023 19:13:58 +0100 Subject: [PATCH 1/3] try with patch version if not cf https://discuss.afpy.org/t/venv-direnv-prompt-bash-et-emacs-et-lsp/1845/4 --- compile-python.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/compile-python.sh b/compile-python.sh index d0e0cbf..f1d8036 100644 --- a/compile-python.sh +++ b/compile-python.sh @@ -1,5 +1,10 @@ #!/bin/bash +_get_last_patch() +{ + curl -s https://www.python.org/ftp/python/ | grep -o ">[0-9.]\+/<" | sed "s/^>//;s|/<$||"| grep ^$1 | sort --version-sort | tail -n 1 +} + compile-python() { # Inspired from the great https://gitlab.com/python-devs/ci-images/ @@ -14,7 +19,8 @@ compile-python() ( cd /tmp || return 1 wget -qO- "$URL/$PY_VERSION/Python-$PY_VERSION$BETA.tgz" | tar -xzf - || ( - echo "Version not found, check on $URL." + echo "Version '$PY_VERSION' not found, check on $URL." + echo "Ttrying something else." && compile-python `_get_last_patch $PY_VERSION` ) [ -d "Python-$PY_VERSION$BETA" ] && (cd "Python-$PY_VERSION$BETA"; ./configure --prefix="$HOME/.local/" && make -j "$(nproc)" && make altinstall) && rm -r "Python-$PY_VERSION$BETA" -- 2.30.2 From 2810b5740f1fdcc8f82590a4658d5c1f82fcc7e0 Mon Sep 17 00:00:00 2001 From: "Zach D. LAMAZIERE" Date: Sun, 10 Dec 2023 20:31:51 +0100 Subject: [PATCH 2/3] add patch version to bin --- compile-python.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compile-python.sh b/compile-python.sh index f1d8036..1f8e8e2 100644 --- a/compile-python.sh +++ b/compile-python.sh @@ -18,12 +18,14 @@ compile-python() local URL="https://www.python.org/ftp/python" ( cd /tmp || return 1 + [ -f $HOME/.local/bin/python${PY_VERSION} ] || return 2 wget -qO- "$URL/$PY_VERSION/Python-$PY_VERSION$BETA.tgz" | tar -xzf - || ( echo "Version '$PY_VERSION' not found, check on $URL." echo "Ttrying something else." && compile-python `_get_last_patch $PY_VERSION` ) [ -d "Python-$PY_VERSION$BETA" ] && (cd "Python-$PY_VERSION$BETA"; ./configure --prefix="$HOME/.local/" && make -j "$(nproc)" && make altinstall) && - rm -r "Python-$PY_VERSION$BETA" + rm -r "Python-$PY_VERSION$BETA" && + cp $HOME/.local/bin/python${PY_VERSION%.*} $HOME/.local/bin/python${PY_VERSION} ) } -- 2.30.2 From 5036332666db29fee9933288cfc1d7fb47dde6f4 Mon Sep 17 00:00:00 2001 From: "Zach D. LAMAZIERE" Date: Mon, 11 Dec 2023 12:38:02 +0100 Subject: [PATCH 3/3] auto bump compile-pythons --- compile-python.sh | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/compile-python.sh b/compile-python.sh index 1f8e8e2..be621f8 100644 --- a/compile-python.sh +++ b/compile-python.sh @@ -1,8 +1,29 @@ #!/bin/bash -_get_last_patch() + + + +_get_last_tag() { - curl -s https://www.python.org/ftp/python/ | grep -o ">[0-9.]\+/<" | sed "s/^>//;s|/<$||"| grep ^$1 | sort --version-sort | tail -n 1 + [[ $1 =~ ^[23.]\.[0-9]+\.[0-9]+$ ]] && echo $1 || \ + curl -s https://www.python.org/ftp/python/ \ + | grep -o ">[0-9.]\+/<" \ + | sed "s/^>//;s|/<$||" \ + | grep ^$1 \ + | sort --version-sort \ + | tail -n 1 +} + +_get_last_instable() +{ + [[ $1 =~ ^[23.]\.[0-9]+\.0$ ]] && \ + curl -s https://www.python.org/ftp/python/$1/ \ + | grep -o "Python-[0-9]\.[0-9]\+\.0[a-z0-9]\+" \ + | sort \ + | uniq \ + | sed "s/Python-[0-9.]*//;" \ + | sort --version-sort \ + | tail -n 1 } compile-python() @@ -13,19 +34,18 @@ compile-python() # Needs: # sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev - local PY_VERSION="$1" - local BETA="$2" + local PY_VERSION=`_get_last_tag $1` + local BETA=${2:-`_get_last_instable $PY_VERSION`} local URL="https://www.python.org/ftp/python" ( cd /tmp || return 1 - [ -f $HOME/.local/bin/python${PY_VERSION} ] || return 2 + [ -f $HOME/.local/bin/python${PY_VERSION}${BETA} ] || return 2 wget -qO- "$URL/$PY_VERSION/Python-$PY_VERSION$BETA.tgz" | tar -xzf - || ( - echo "Version '$PY_VERSION' not found, check on $URL." - echo "Ttrying something else." && compile-python `_get_last_patch $PY_VERSION` + echo "Version not found, check on $URL." ) [ -d "Python-$PY_VERSION$BETA" ] && (cd "Python-$PY_VERSION$BETA"; ./configure --prefix="$HOME/.local/" && make -j "$(nproc)" && make altinstall) && rm -r "Python-$PY_VERSION$BETA" && - cp $HOME/.local/bin/python${PY_VERSION%.*} $HOME/.local/bin/python${PY_VERSION} + cp $HOME/.local/bin/python${PY_VERSION%.*} $HOME/.local/bin/python${PY_VERSION}${BETA} ) } -- 2.30.2