From 27a424ab2cc384208e7f19656abc013a4832fa97 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Sun, 26 Oct 2025 21:01:20 +0200 Subject: [PATCH] Update package version to 3.12.12 and split package --- pkg.info | 40 +++++++++++++++++++++++++++++----- source.sh | 65 +++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 76 insertions(+), 29 deletions(-) diff --git a/pkg.info b/pkg.info index 3077452..ec4a9b1 100644 --- a/pkg.info +++ b/pkg.info @@ -1,11 +1,41 @@ name: python3 description: The Python3 interpreter -version: 3.12.2 -revision: 4 +version: 3.12.12 +revision: 1 url: https://www.python.org/ license: PSF-2.0 architecture: any -depends: ["bzip2","expat","gdbm","glibc","libffi","libxcrypt","ncurses","openssl","zlib"] -optional_depends: ["python-pip","sqlite"] -make_depends: ["llvm","sqlite"] type: source +depends: + - bzip2 + - expat + - glibc + - libffi + - libnsl + - libxcrypt + - mpdecimal + - ncurses + - openssl + - tzdata + - zlib +optional_depends: + - python-pip + - python-setuptools + - sqlite + - xz-utils +make_depends: + - bluez + - gdb + - llvm + - sqlite +downloads: + - url: https://www.python.org/ftp/python/${BPM_PKG_VERSION}/Python-${BPM_PKG_VERSION}.tar.xz + extract_to: ${BPM_SOURCE} + extract_strip_components: 1 + checksum: fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4 +split_packages: + - name: python3 + - name: python3-tests + description: Test files for python + depends: + - python3 diff --git a/source.sh b/source.sh index 50b60bd..17e2271 100644 --- a/source.sh +++ b/source.sh @@ -2,45 +2,62 @@ # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT -DOWNLOAD="https://www.python.org/ftp/python/${BPM_PKG_VERSION}/Python-${BPM_PKG_VERSION}.tar.xz" -FILENAME="${DOWNLOAD##*/}" - -# The prepare function is executed in the root of the temp directory -# This function is used for downloading files and putting them into the correct location -prepare() { - wget "$DOWNLOAD" - tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE" -} - # The build function is executed in the source directory # This function is used to compile the source code build() { - ./configure --prefix=/usr \ - --enable-shared \ - --with-system-expat \ - --without-ensurepip \ - --enable-optimizations + ./configure --prefix=/usr \ + --enable-shared \ + --with-system-expat \ + --with-tzpath=/usr/share/zoneinfo \ + --with-computed-gotos \ + --with-system-libmpdec \ + --enable-optimizations \ + --enable-loadable-sqlite-extensions \ + --without-ensurepip + make } # The check function is executed in the source directory # This function is used to run tests to verify the package has been compiled correctly -# Temporary disabled due to failing tests -#check() { - #make test -#} +check() { + make test TESTOPTS="--timeout 120 -x test_urllib2net" +} + +_pick() { + local p="$1" f d; shift + for f; do + [ -d "$BPM_WORKDIR"/output_"$p" ] || { echo "Split package $p not found"; exit 1; } + d="$BPM_WORKDIR"/output_"$p"/"${f#$BPM_OUTPUT}" + mkdir -p "$(dirname "$d")" + mv "$f" "$d" + rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" + done +} # The package function is executed in the source directory # This function is used to move the compiled files into the output directory -package() { +package_python3() { make DESTDIR="$BPM_OUTPUT" install - ln -s python3 "$BPM_OUTPUT"/usr/bin/python - ln -s python3-config "$BPM_OUTPUT"/usr/bin/python-config - ln -s idle3 "$BPM_OUTPUT"/usr/bin/idle - ln -s pydoc3 "$BPM_OUTPUT"/usr/bin/pydoc + # Install non-versioned symlinks + ln -s python3 "$BPM_OUTPUT"/usr/bin/python + ln -s python3-config "$BPM_OUTPUT"/usr/bin/python-config + ln -s idle3 "$BPM_OUTPUT"/usr/bin/idle + ln -s pydoc3 "$BPM_OUTPUT"/usr/bin/pydoc ln -s python3.1 "$BPM_OUTPUT"/usr/share/man/man1/python.1 + cd "$BPM_OUTPUT" + + # Move test files into split package + _pick python3-tests usr/lib/python*/{test,idlelib/idle_test} + # Install package license install -Dm644 "$BPM_SOURCE"/LICENSE "$BPM_OUTPUT"/usr/share/licenses/python3/LICENSE } + +package_python3-tests() { + # Install package license + install -d "$BPM_OUTPUT"/usr/share/licenses/ + ln -sf python3 "$BPM_OUTPUT"/usr/share/licenses/python3-tests +}