diff --git a/.github/actions/build.sh b/.github/actions/build.sh index 8b764ffe46e..0c6e3082062 100755 --- a/.github/actions/build.sh +++ b/.github/actions/build.sh @@ -59,7 +59,7 @@ if [ -n "$API_KEY" ] && [ "$PUBLISH" == "true" ]; then fi # Build -PACKAGES_TO_KEEP="ffmpeg4 ffmpeg5 ffmpeg6" +PACKAGES_TO_KEEP="ffmpeg4 ffmpeg5 ffmpeg6 python310 python311" for package in ${build_packages} do echo "::group:: ---- build ${package}" diff --git a/.github/actions/download.sh b/.github/actions/download.sh index 98276420e70..29ae15e35d6 100755 --- a/.github/actions/download.sh +++ b/.github/actions/download.sh @@ -6,9 +6,11 @@ # # Functions: # - Download all referenced native and cross source files for packages to build. +# - Download all referenced python wheels needed to build. set -o pipefail +# Download regular cross/* sources if [ -z "${DOWNLOAD_PACKAGES}" ]; then echo "===> No packages to download. <===" else @@ -19,3 +21,19 @@ else make -C ${download} download done fi + +echo "" + +# Download python wheel sources files +build_packages="${NOARCH_PACKAGES} ${ARCH_PACKAGES}" + +if [ -z "${build_packages}" ]; then + echo "===> No wheels to download. <===" +else + for package in ${build_packages}; do + echo "===> Download wheels: ${package}" + make -C spk/${package} wheeldownload + done +fi + +echo "" diff --git a/.github/actions/prepare.sh b/.github/actions/prepare.sh index f950a1cdcbd..d9faf0da286 100755 --- a/.github/actions/prepare.sh +++ b/.github/actions/prepare.sh @@ -6,7 +6,7 @@ # # Functions: # - Evaluate all packages to build depending on files defined in ${GH_FILES}. -# - ffmpeg (spk/ffmpeg4), ffmpeg5 and ffmpeg6 are moved to head of packages to built first if triggered by its own or a dependent. +# - python310, python311, ffmpeg (spk/ffmpeg4), ffmpeg5 and ffmpeg6 are moved to head of packages to build first if triggered by its own or a dependent. # - Referenced native and cross packages of the packages to build are added to the download list. set -o pipefail @@ -56,7 +56,7 @@ fi # remove duplicate packages packages=$(printf %s "${SPK_TO_BUILD}" | tr ' ' '\n' | sort -u | tr '\n' ' ') -# for ffmpeg v4-6 find all packages that depends on them +# for ffmpeg v4-6 find all packages that depend on them for i in {4..6}; do ffmpeg_dependent_packages=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile" -exec grep -Ho "FFMPEG_VERSION = ${i}" {} \; | grep -Po ".*spk/\K[^/]*" | sort | tr '\n' ' ') @@ -72,6 +72,22 @@ for i in {4..6}; do done done +# for python (310, 311) find all packages that depend on them +for py in python310 python311; do + python_dependent_packages=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile" -exec grep -Ho "PYTHON_PACKAGE = ${py}" {} \; | grep -Po ".*spk/\K[^/]*" | sort | tr '\n' ' ') + + # If packages contain a package that depends on python (or is python), then ensure + # relevant python spk is first in list + for package in ${packages} + do + if [ "$(echo ${py} ${python_dependent_packages} | grep -ow ${package})" != "" ]; then + packages_without_python=$(echo "${packages}" | tr ' ' '\n' | grep -v "${py}" | tr '\n' ' ') + packages="${py} ${packages_without_python}" + break + fi + done +done + # find all noarch packages all_noarch=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile" -exec grep -Ho "override ARCH" {} \; | grep -Po ".*spk/\K[^/]*" | sort | tr '\n' ' ') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 48c8d904f43..1455f2bd6a4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -71,6 +71,8 @@ jobs: run: ./.github/actions/download.sh env: DOWNLOAD_PACKAGES: ${{ steps.dependencies.outputs.download_packages }} + ARCH_PACKAGES: ${{ needs.prepare.outputs.arch_packages }} + NOARCH_PACKAGES: ${{ needs.prepare.outputs.noarch_packages }} build: name: Build diff --git a/cross/bazarr/Makefile b/cross/bazarr/Makefile index e1bd8824bcb..eec8a74fe5c 100644 --- a/cross/bazarr/Makefile +++ b/cross/bazarr/Makefile @@ -1,5 +1,5 @@ PKG_NAME = bazarr -PKG_VERS = 1.2.1 +PKG_VERS = 1.2.4 PKG_EXT = zip PKG_DIST_NAME = $(PKG_NAME).$(PKG_EXT) PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) diff --git a/cross/bazarr/digests b/cross/bazarr/digests index 087d8b6285d..d09246686fe 100644 --- a/cross/bazarr/digests +++ b/cross/bazarr/digests @@ -1,3 +1,3 @@ -bazarr-1.2.1.zip SHA1 64e31750708a21520e2de1e7219e74e2db75c85b -bazarr-1.2.1.zip SHA256 3ee54ad63acd8f16a011262f82a4417f1cec57f2b11614dd3b29623bcb26c1e7 -bazarr-1.2.1.zip MD5 fa57920c4eee9684b7a0f3a3847f4bd0 +bazarr-1.2.4.zip SHA1 e454c27c2ccf53bd7e59727da6382febc61dcd9a +bazarr-1.2.4.zip SHA256 4dd05acde63fc3dbd211bb3f3a046d7688bfae20146a2d73ae633f03c79c6960 +bazarr-1.2.4.zip MD5 c1f4996968a79e9a0366fe1d7065a09a diff --git a/cross/cryptography/Makefile b/cross/cryptography/Makefile index f9199235074..f87252594f6 100644 --- a/cross/cryptography/Makefile +++ b/cross/cryptography/Makefile @@ -1,5 +1,5 @@ PKG_NAME = cryptography -PKG_VERS = 41.0.1 +PKG_VERS = 41.0.3 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://files.pythonhosted.org/packages/source/c/$(PKG_NAME) @@ -18,13 +18,4 @@ LICENSE = BSD/ASL2 WHEELS_BUILD_ARGS = --py-limited-api=$(PYTHON_LIMITED_API) -# Mandatory PYO3_* variables for rust cross-compiling -ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ -ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ -# Mandatory of using OPENSSL_*_DIR starting with -# cryptography version >= 40 -# https://docs.rs/openssl/latest/openssl/#automatic -ENV += OPENSSL_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ -ENV += OPENSSL_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ - include ../../mk/spksrc.python-wheel.mk diff --git a/cross/cryptography/digests b/cross/cryptography/digests index e1fe132c765..c4cb5ddc92d 100644 --- a/cross/cryptography/digests +++ b/cross/cryptography/digests @@ -1,3 +1,3 @@ -cryptography-41.0.1.tar.gz SHA1 25aba9235d2b4228417783ef1e56ab0293dd2711 -cryptography-41.0.1.tar.gz SHA256 d34579085401d3f49762d2f7d6634d6b6c2ae1242202e860f4d26b046e3a1006 -cryptography-41.0.1.tar.gz MD5 49d86f49c47e7b693700887efc117adc +cryptography-41.0.3.tar.gz SHA1 80ad50220559469dc0cd43a7490d526028aecc54 +cryptography-41.0.3.tar.gz SHA256 6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34 +cryptography-41.0.3.tar.gz MD5 fbf930acd8de95780604c40c4e817a74 diff --git a/cross/cryptography_38/Makefile b/cross/cryptography_38/Makefile new file mode 100644 index 00000000000..eae7e10b6b6 --- /dev/null +++ b/cross/cryptography_38/Makefile @@ -0,0 +1,24 @@ +PKG_NAME = cryptography +PKG_VERS = 38.0.3 +PKG_EXT = tar.gz +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://files.pythonhosted.org/packages/source/c/cryptography +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) + +DEPENDS = cross/openssl3 cross/cffi + +HOMEPAGE = https://github.com/pyca/cryptography +COMMENT = Provide cryptographic recipes and primitives to Python developers. +LICENSE = BSD/ASL2 + +### +### This cross/cryptography_38 is needed to generate python-limited abi3 wheels +### Ref: https://github.com/pyca/cryptography/issues/7671 +### +### And it is required to link to cross/openssl3 since +### cryptography < 40 is statically linked to openssl +### and prebuilt wheels are linked to openssl 1.1 + +WHEELS_BUILD_ARGS = --py-limited-api=$(PYTHON_LIMITED_API) + +include ../../mk/spksrc.python-wheel.mk diff --git a/cross/cryptography_38/PLIST b/cross/cryptography_38/PLIST new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cross/cryptography_38/digests b/cross/cryptography_38/digests new file mode 100644 index 00000000000..84bb9ac5ef8 --- /dev/null +++ b/cross/cryptography_38/digests @@ -0,0 +1,3 @@ +cryptography-38.0.3.tar.gz SHA1 fa8da1574efb4a44158825a8e8c60e050142e789 +cryptography-38.0.3.tar.gz SHA256 bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd +cryptography-38.0.3.tar.gz MD5 2148f1283f22df0677e204e46bccaf06 diff --git a/cross/duply/Makefile b/cross/duply/Makefile index c762bb562c7..0c3241568bb 100644 --- a/cross/duply/Makefile +++ b/cross/duply/Makefile @@ -1,5 +1,5 @@ PKG_NAME = duply -PKG_VERS = 2.4.1 +PKG_VERS = 2.4.3 PKG_SHORT_VERS = $(word 1,$(subst ., ,$(PKG_VERS))).$(word 2,$(subst ., ,$(PKG_VERS))) PKG_EXT = tgz PKG_DIST_NAME = $(PKG_NAME)_$(PKG_VERS).$(PKG_EXT) diff --git a/cross/duply/digests b/cross/duply/digests index ba413abe611..e7e9690b22e 100644 --- a/cross/duply/digests +++ b/cross/duply/digests @@ -1,3 +1,3 @@ -duply_2.4.1.tgz SHA1 98790dafb92f8441045ce430f4ad9ed80bd895f6 -duply_2.4.1.tgz SHA256 03fd28b06206505edf0e0820d098208708842999f21b1d132461e34e2c0b6973 -duply_2.4.1.tgz MD5 7d579e5a922c21b59e059a2dd4d2383b +duply_2.4.3.tgz SHA1 278e45e0c033a2f24adfe868339114c7365ea318 +duply_2.4.3.tgz SHA256 867388531ddda2a5cdb0a2af77bde03261491c03a406b60fe26b96b4d92627a3 +duply_2.4.3.tgz MD5 335f65f0af7610fb248f7f549ec81cab diff --git a/cross/libtorrent-rakshasa/Makefile b/cross/libtorrent-rakshasa/Makefile index 6c2e368755c..de09c8a30f9 100644 --- a/cross/libtorrent-rakshasa/Makefile +++ b/cross/libtorrent-rakshasa/Makefile @@ -6,7 +6,7 @@ PKG_DIST_SITE = https://github.com/rakshasa/libtorrent/archive PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/cppunit cross/openssl cross/libsigc++ cross/zlib +DEPENDS = cross/cppunit cross/openssl3 cross/libsigc++ cross/zlib HOMEPAGE = https://rakshasa.github.io COMMENT = LibTorrent is a BitTorrent library written in C++ for *nix, with a focus on high performance and good code. diff --git a/cross/nmap/Makefile b/cross/nmap/Makefile index 89cdbd867b8..f552f102b24 100644 --- a/cross/nmap/Makefile +++ b/cross/nmap/Makefile @@ -5,7 +5,7 @@ PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://nmap.org/dist PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/libpcap cross/openssl +DEPENDS = cross/libpcap cross/openssl3 # latest version for OLD_PPC_ARCHS is 7.92 UNSUPPORTED_ARCHS = $(OLD_PPC_ARCHS) @@ -15,7 +15,12 @@ COMMENT = Nmap ("Network Mapper") is a free and open source utility for network LICENSE = https://svn.nmap.org/nmap/COPYING GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --without-zenmap --with-liblua=included --with-libpcre=included +CONFIGURE_ARGS = --without-zenmap +CONFIGURE_ARGS += --with-liblua=included +CONFIGURE_ARGS += --with-libpcre=included +ifneq ($(wildcard $(OPENSSL_STAGING_PREFIX)),) +CONFIGURE_ARGS += --with-openssl=$(OPENSSL_STAGING_PREFIX) +endif ADDITIONAL_CPPFLAGS = -O3 diff --git a/cross/python310/Makefile b/cross/python310/Makefile index 43d5326a20e..0a9d8ee8487 100644 --- a/cross/python310/Makefile +++ b/cross/python310/Makefile @@ -53,9 +53,7 @@ CONFIGURE_ARGS += ac_cv_file__dev_ptmx=no CONFIGURE_ARGS += ac_cv_file__dev_ptc=no CONFIGURE_ARGS += ac_cv_have_long_long_format=yes -# keep both openssl until all python packages -# have been republished using openssl3 -DEPENDS += cross/openssl cross/openssl3 +DEPENDS += cross/openssl3 CONFIGURE_ARGS += --with-ssl-default-suites=openssl DEPENDS += cross/gdbm @@ -138,10 +136,12 @@ python310_install: CROSSENV_WHEELS = setuptools-rust==1.6.0 CROSSENV_WHEELS += setuptools-scm==7.1.0 CROSSENV_WHEELS += cffi==1.15.1 -CROSSENV_WHEELS += poetry==1.5.1 CROSSENV_WHEELS += Cython==0.29.35 CROSSENV_WHEELS += flit==3.9.0 -CROSSENV_WHEELS += cryptography==41.0.1 +ifneq ($(findstring $(ARCH),$(OLD_PPC_ARCHS)),$(ARCH)) +CROSSENV_WHEELS += cryptography==41.0.3 +CROSSENV_WHEELS += poetry==1.5.1 +endif ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(OLD_PPC_ARCHS)),$(ARCH)) CROSSENV_WHEELS += maturin==1.1.0 endif @@ -152,7 +152,7 @@ endif python310_post_install: $(WORK_DIR)/python-cc.mk mkdir -p $(PYTHON_LIB_CROSS) cp -R $(HOSTPYTHON_LIB_NATIVE) $(PYTHON_LIB_CROSS)/../ - @$(RUN) $(PYTHON_NATIVE) -m crossenv $(STAGING_INSTALL_PREFIX)/bin/python$(PKG_VERS_MAJOR_MINOR) --cc $${CC} --cxx $${CXX} --ar $${AR} --sysroot $${SYSROOT} --env LIBRARY_PATH= --manylinux manylinux2014 $(WORK_DIR)/crossenv/ + @$(RUN) $(PYTHON_NATIVE) -m crossenv $(STAGING_INSTALL_PREFIX)/bin/python$(PKG_VERS_MAJOR_MINOR) --cc $(TC_PATH)$(TC_PREFIX)gcc --cxx $(TC_PATH)$(TC_PREFIX)c++ --ar $(TC_PATH)$(TC_PREFIX)ar --sysroot $(TC_SYSROOT) --env LIBRARY_PATH= --manylinux manylinux2014 $(WORK_DIR)/crossenv/ . $(WORK_DIR)/crossenv/bin/activate && $(RUN) wget https://bootstrap.pypa.io/get-pip.py . $(WORK_DIR)/crossenv/bin/activate && $(RUN) build-python get-pip.py "pip==23.1.2" --no-setuptools --no-wheel --disable-pip-version-check . $(WORK_DIR)/crossenv/bin/activate && $(RUN) python get-pip.py "pip==23.1.2" --no-setuptools --no-wheel --disable-pip-version-check diff --git a/cross/python311/Makefile b/cross/python311/Makefile index 481a1f4b50d..b94b0c03656 100644 --- a/cross/python311/Makefile +++ b/cross/python311/Makefile @@ -6,6 +6,10 @@ PKG_DIST_NAME = Python-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.python.org/ftp/python/$(PKG_VERS) PKG_DIR = Python-$(PKG_VERS) +# Platform "powerpc-none-linux-gnuspe" with compiler "gcc" is not supported by the +# CPython core team, see https://peps.python.org/pep-0011/ for more information. +UNSUPPORTED_ARCHS = $(OLD_PPC_ARCHS) + BUILD_DEPENDS = native/$(PKG_NAME) DEPENDS = cross/zlib cross/sqlite cross/readline cross/ncursesw cross/bzip2 cross/xz @@ -34,29 +38,19 @@ include ../../mk/spksrc.archs.mk # optionally generate optimized code ifeq ($(strip $(PYTHON_OPTIMIZE)),1) CONFIGURE_ARGS += --enable-optimizations -# old compilers fail with unrecognized command line options: -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -ifneq ($(findstring $(ARCH),$(OLD_PPC_ARCHS)),$(ARCH)) # Enable Link-Time Optimization CONFIGURE_ARGS += --with-lto -endif else # test modules are required for optimization only CONFIGURE_ARGS += --disable-test-modules endif -ifeq ($(findstring $(ARCH),$(OLD_PPC_ARCHS)),$(ARCH)) -# older gcc does not know -Wno-unused-result -CONFIGURE_ARGS += ac_cv_disable_unused_result_warning=no -endif - CONFIGURE_ARGS += ac_cv_buggy_getaddrinfo=no CONFIGURE_ARGS += ac_cv_file__dev_ptmx=no CONFIGURE_ARGS += ac_cv_file__dev_ptc=no CONFIGURE_ARGS += ac_cv_have_long_long_format=yes -# keep both openssl until all python packages -# have been republished using openssl3 -DEPENDS += cross/openssl cross/openssl3 +DEPENDS += cross/openssl3 CONFIGURE_ARGS += --with-ssl-default-suites=openssl DEPENDS += cross/gdbm @@ -134,15 +128,30 @@ python311_install: @install -m 644 src/mime.types $(STAGING_INSTALL_PREFIX)/etc/ $(RUN) _PYTHON_HOST_PLATFORM=$(TC_TARGET) $(MAKE) install prefix=$(STAGING_INSTALL_PREFIX) -# wheels to install in crossenv -CROSSENV_WHEELS = setuptools-rust==1.6.0 -CROSSENV_WHEELS += setuptools-scm==7.1.0 -CROSSENV_WHEELS += cffi==1.15.1 -CROSSENV_WHEELS += poetry==1.5.1 +# default wheels to install in crossenv +CROSSENV_WHEELS = cffi==1.15.1 +CROSSENV_WHEELS += cryptography==41.0.3 CROSSENV_WHEELS += Cython==0.29.35 CROSSENV_WHEELS += flit==3.9.0 -CROSSENV_WHEELS += cryptography==41.0.1 -ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(OLD_PPC_ARCHS)),$(ARCH)) +CROSSENV_WHEELS += poetry==1.5.1 +CROSSENV_WHEELS += scikit-build==0.17.6 +CROSSENV_WHEELS += setuptools-rust==1.6.0 +CROSSENV_WHEELS += setuptools-scm==7.1.0 + +# [numpy] <= 1.21.6 (armv5) - gcc-4.6.4 - unsupported +# [numpy] <= 1.22.4 (armv7l) - gcc-4.8.3 - unsupported +ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(ARMv7L_ARCHS)),$(ARCH)) +# [numpy] <= 1.24.4 last working version with gcc-4.9 +ifeq ($(call version_le, $(TC_GCC), 5.0),1) +CROSSENV_WHEELS += numpy==1.24.4 +# [numpy] >= 1.25.0 requires c++17 +else ifeq ($(call version_gt, $(TC_GCC), 5.0),1) +CROSSENV_WHEELS += numpy==1.25.1 +endif +endif + +# [maturin] +ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH)) CROSSENV_WHEELS += maturin==1.1.0 endif @@ -152,7 +161,7 @@ endif python311_post_install: $(WORK_DIR)/python-cc.mk mkdir -p $(PYTHON_LIB_CROSS) cp -R $(HOSTPYTHON_LIB_NATIVE) $(PYTHON_LIB_CROSS)/../ - @$(RUN) $(PYTHON_NATIVE) -m crossenv $(STAGING_INSTALL_PREFIX)/bin/python$(PKG_VERS_MAJOR_MINOR) --cc $${CC} --cxx $${CXX} --ar $${AR} --sysroot $${SYSROOT} --env LIBRARY_PATH= --manylinux manylinux2014 $(WORK_DIR)/crossenv/ + @$(RUN) $(PYTHON_NATIVE) -m crossenv $(STAGING_INSTALL_PREFIX)/bin/python$(PKG_VERS_MAJOR_MINOR) --cc $(TC_PATH)$(TC_PREFIX)gcc --cxx $(TC_PATH)$(TC_PREFIX)c++ --ar $(TC_PATH)$(TC_PREFIX)ar --sysroot $(TC_SYSROOT) --env LIBRARY_PATH= --manylinux manylinux2014 $(WORK_DIR)/crossenv/ . $(WORK_DIR)/crossenv/bin/activate && $(RUN) wget https://bootstrap.pypa.io/get-pip.py . $(WORK_DIR)/crossenv/bin/activate && $(RUN) build-python get-pip.py "pip==23.1.2" --no-setuptools --no-wheel --disable-pip-version-check . $(WORK_DIR)/crossenv/bin/activate && $(RUN) python get-pip.py "pip==23.1.2" --no-setuptools --no-wheel --disable-pip-version-check diff --git a/cross/uamqp/Makefile b/cross/uamqp/Makefile new file mode 100644 index 00000000000..1e335ac7198 --- /dev/null +++ b/cross/uamqp/Makefile @@ -0,0 +1,22 @@ +PKG_NAME = uamqp +PKG_VERS = 1.6.0 +PKG_EXT = tar.gz +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://files.pythonhosted.org/packages/source/u/uamqp +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) + +DEPENDS = cross/openssl3 cross/cffi + +HOMEPAGE = https://github.com/Azure/azure-uamqp-python +COMMENT = AMQP 1.0 client library for Python. +LICENSE = MIT + +POST_PATCH_TARGET = uamqp_post_patch + +include ../../mk/spksrc.python-wheel.mk + +.PHONY: uamqp_post_patch +# https://github.com/Azure/azure-uamqp-python/issues/276#issuecomment-924890556 +uamqp_post_patch: + @$(MSG) "Patch CMakeLists.txt files to avoid (deprecation) warnings as errors." + @$(RUN) ; grep -rl "\-Werror" . | xargs sed -i 's/-Werror//' diff --git a/cross/uamqp/PLIST b/cross/uamqp/PLIST new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cross/uamqp/digests b/cross/uamqp/digests new file mode 100644 index 00000000000..7ffb03b17cb --- /dev/null +++ b/cross/uamqp/digests @@ -0,0 +1,3 @@ +uamqp-1.6.0.tar.gz SHA1 3f1cbb519c2252a73a92b7d89f179a6cd43d9469 +uamqp-1.6.0.tar.gz SHA256 2c31b74a10856eccf258d73c4d08e5cac4d6060a34b9834890bfd42bcb138350 +uamqp-1.6.0.tar.gz MD5 e052ebabbc9d72099c33fba6d9f66ec2 diff --git a/cross/uamqp/patches/001-OpenSSL3_Relax-the-range-checks-on-the-OpenSSL-version.patch b/cross/uamqp/patches/001-OpenSSL3_Relax-the-range-checks-on-the-OpenSSL-version.patch new file mode 100644 index 00000000000..75a9e2ddb70 --- /dev/null +++ b/cross/uamqp/patches/001-OpenSSL3_Relax-the-range-checks-on-the-OpenSSL-version.patch @@ -0,0 +1,58 @@ +From: Simon Chopin +Subject: Relax the range checks on the OpenSSL version +Forwarded: https://github.com/Azure/azure-c-shared-utility/pull/577 + +OpenSSL 3.0 has a high degree of API compatibility with the 1.1.1 +branch, so the 1.1 code branches are also valid for higher versions. + +Note that this patch does not address the deprecation warnings +introduced by OpenSSL 3.0. +--- src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/tlsio_openssl.c ++++ src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/tlsio_openssl.c +@@ -953,7 +953,7 @@ + } + else + { +-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && (OPENSSL_VERSION_NUMBER < 0x20000000L) ++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + const BIO_METHOD* bio_method; + #else + BIO_METHOD* bio_method; +@@ -1052,7 +1052,7 @@ + + const SSL_METHOD* method = NULL; + +-#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || (OPENSSL_VERSION_NUMBER >= 0x20000000L) ++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) + if (tlsInstance->tls_version == VERSION_1_2) + { + method = TLSv1_2_method(); +@@ -1248,7 +1248,7 @@ + + #if (OPENSSL_VERSION_NUMBER < 0x10000000L) + ERR_remove_state(0); +-#elif (OPENSSL_VERSION_NUMBER < 0x10100000L) || (OPENSSL_VERSION_NUMBER >= 0x20000000L) ++#elif (OPENSSL_VERSION_NUMBER < 0x10100000L) + ERR_remove_thread_state(NULL); + #endif + #if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && (OPENSSL_VERSION_NUMBER < 0x10010000L) && (SSL_COMP_free_compression_methods) +--- src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/x509_openssl.c ++++ src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/x509_openssl.c +@@ -75,7 +75,7 @@ + // certificates. + + /* Codes_SRS_X509_OPENSSL_07_006: [ If successful x509_openssl_add_ecc_credentials shall to import each certificate in the cert chain. ] */ +-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && (OPENSSL_VERSION_NUMBER < 0x20000000L) ++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + SSL_CTX_clear_extra_chain_certs(ssl_ctx); + #else + if (ssl_ctx->extra_certs != NULL) +@@ -345,7 +345,7 @@ + else + { + /*Codes_SRS_X509_OPENSSL_02_012: [ x509_openssl_add_certificates shall get the memory BIO method function by calling BIO_s_mem. ]*/ +-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && (OPENSSL_VERSION_NUMBER < 0x20000000L) ++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + const BIO_METHOD* bio_method; + #else + BIO_METHOD* bio_method; diff --git a/cross/znc/Makefile b/cross/znc/Makefile index 53425dad389..7a5203f3ea5 100644 --- a/cross/znc/Makefile +++ b/cross/znc/Makefile @@ -5,8 +5,8 @@ PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://znc.in/releases/archive PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -BUILD_DEPENDS = cross/python310 -DEPENDS = cross/openssl cross/libicu +BUILD_DEPENDS = cross/python311 +DEPENDS = cross/openssl3 cross/libicu cross/zlib # configure: No compiler with C++11 support was found # error: Upgrade your compiler. GCC 4.8+ and Clang 3.2+ are known to work. @@ -17,7 +17,8 @@ COMMENT = Advanced IRC bouncer LICENSE = Apache 2.0 GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --enable-python +CONFIGURE_ARGS = --enable-python +CONFIGURE_ARGS += --enable-openssl ifneq ($(wildcard modules/*),) POST_INSTALL_TARGET = znc_post_install @@ -57,5 +58,5 @@ znc_post_install: @chmod +x $(WORK_DIR)/$(PKG_DIR)/znc-buildmod @rm -fr $(WORK_DIR)/modules @cp -R modules $(WORK_DIR)/ - @cd $(WORK_DIR)/modules && PATH=$(WORK_DIR)/$(PKG_DIR) INCLUDES=-I$(STAGING_INSTALL_PREFIX)/include/znc prefix=$(STAGING_INSTALL_PREFIX) znc-buildmod $(EXTRA_MODULES) + @cd $(WORK_DIR)/modules && PATH=$(WORK_DIR)/$(PKG_DIR) INCLUDES="-I$(STAGING_INSTALL_PREFIX)/include/znc -I$(OPENSSL_STAGING_PREFIX)/include" prefix=$(STAGING_INSTALL_PREFIX) znc-buildmod $(EXTRA_MODULES) @install -m 644 $(WORK_DIR)/modules/*.so $(STAGING_INSTALL_PREFIX)/lib/znc/ diff --git a/cross/znc/PLIST b/cross/znc/PLIST old mode 100755 new mode 100644 diff --git a/mk/spksrc.common.mk b/mk/spksrc.common.mk index 68a0cc6ee35..16d3dabd5c5 100644 --- a/mk/spksrc.common.mk +++ b/mk/spksrc.common.mk @@ -20,8 +20,16 @@ PIP ?= pip PIP_SYSTEM = $(shell which pip) # Why ask for the same thing twice? Always cache downloads -PIP_CACHE_OPT ?= --cache-dir $(PIP_DIR) +PIP_CACHE_OPT ?= --find-links $(PIP_DISTRIB_DIR) --cache-dir $(PIP_CACHE_DIR) PIP_WHEEL_ARGS = wheel --disable-pip-version-check --no-binary :all: $(PIP_CACHE_OPT) --no-deps --wheel-dir $(WHEELHOUSE) +# Adding --no-index only for crossenv +# to force using localy downloaded version +PIP_WHEEL_ARGS_CROSSENV = $(PIP_WHEEL_ARGS) --no-index + +# BROKEN: https://github.com/pypa/pip/issues/1884 +# Current implementation is a work-around for the +# lack of proper source download support from pip +PIP_DOWNLOAD_ARGS = download --no-index --find-links $(PIP_DISTRIB_DIR) --disable-pip-version-check --no-binary :all: --no-deps --dest $(PIP_DISTRIB_DIR) --no-build-isolation --exists-action w # Available languages LANGUAGES = chs cht csy dan enu fre ger hun ita jpn krn nld nor plk ptb ptg rus spn sve trk diff --git a/mk/spksrc.directories.mk b/mk/spksrc.directories.mk index 6d4c358fccd..f02c506a9e9 100644 --- a/mk/spksrc.directories.mk +++ b/mk/spksrc.directories.mk @@ -12,7 +12,8 @@ PWD := $(shell pwd) BASE_DISTRIB_DIR = $(PWD)/../../distrib -PIP_DIR = $(BASE_DISTRIB_DIR)/pip +PIP_DISTRIB_DIR = $(DISTRIB_DIR)/pip +PIP_CACHE_DIR = $(WORK_DIR)/pip TOOLCHAIN_DIR = $(BASE_DISTRIB_DIR)/toolchain TOOLKIT_DIR = $(BASE_DISTRIB_DIR)/toolkit KERNEL_DIR = $(BASE_DISTRIB_DIR)/kernel diff --git a/mk/spksrc.plist.mk b/mk/spksrc.plist.mk index 787ea670460..e0f8fe43ea2 100644 --- a/mk/spksrc.plist.mk +++ b/mk/spksrc.plist.mk @@ -9,13 +9,20 @@ ifeq ($(strip $(PLIST_TRANSFORM)),) PLIST_TRANSFORM = cat endif +### +### When processing PLIST entries where we are re-using existing +### shared object from another spk (ex: python* or ffmpeg), +### always check that a $(PKG_NAME).plist exists as it won't +### be created when the shared build environment is being +### populated with symlinks to $(PKG_NAME)*_done +### .PHONY: cat_PLIST cat_PLIST: @for depend in $(DEPENDS) ; \ do \ $(MAKE) WORK_DIR=$(WORK_DIR) --no-print-directory -C ../../$$depend cat_PLIST ; \ done - @if [ -f PLIST ] ; \ + @if [ -f PLIST ] && [ -f $(WORK_DIR)/$(PKG_NAME).plist ] ; \ then \ $(PLIST_TRANSFORM) PLIST ; \ # If there is a PLIST.auto file or if parent directory is kernel \ diff --git a/mk/spksrc.python-module.mk b/mk/spksrc.python-module.mk index 97f60b9a1c0..5881f02113d 100644 --- a/mk/spksrc.python-module.mk +++ b/mk/spksrc.python-module.mk @@ -20,8 +20,9 @@ include ../../mk/spksrc.cross-cc.mk -include $(WORK_DIR)/python-cc.mk # Python module variables +ifneq ($(wildcard $(PYTHONPATH)),) PYTHONPATH = $(PYTHON_SITE_PACKAGES_NATIVE):$(PYTHON_LIB_NATIVE):$(INSTALL_DIR)$(INSTALL_PREFIX)/$(PYTHON_LIB_DIR)/site-packages/ - +endif ### Python module rules compile_python_module: diff --git a/mk/spksrc.python-wheel.mk b/mk/spksrc.python-wheel.mk index 3d220decdc2..82cd3e683cc 100644 --- a/mk/spksrc.python-wheel.mk +++ b/mk/spksrc.python-wheel.mk @@ -22,8 +22,17 @@ include ../../mk/spksrc.cross-cc.mk # Fetch python variables -include $(WORK_DIR)/python-cc.mk +# If using spk.python.mk with PYTHON_STAGING_PREFIX defined +# then redirect STAGING_INSTALL_PREFIX so rust +# wheels can find openssl and other libraries +ifneq ($(wildcard $(PYTHON_STAGING_PREFIX)),) +STAGING_INSTALL_PREFIX := $(PYTHON_STAGING_PREFIX) +endif + # Python module variables +ifeq ($(strip $(PYTHONPATH)),) PYTHONPATH = $(PYTHON_LIB_NATIVE):$(INSTALL_DIR)$(INSTALL_PREFIX)/$(PYTHON_LIB_DIR)/site-packages/ +endif ## python wheel specific configurations include ../../mk/spksrc.wheel-env.mk diff --git a/mk/spksrc.python.mk b/mk/spksrc.python.mk new file mode 100644 index 00000000000..da9bce6196b --- /dev/null +++ b/mk/spksrc.python.mk @@ -0,0 +1,61 @@ +### +### Reuse Python libraries +### +# Variables: +# PYTHON_PACKAGE Must be set to the python spk folder (python310, python311, ...) + +# set default spk/python* path to use +PYTHON_PACKAGE_ROOT = $(realpath $(shell pwd)/../$(PYTHON_PACKAGE)/work-$(ARCH)-$(TCVERSION)) + +ifneq ($(wildcard $(PYTHON_PACKAGE_ROOT)),) + +# set ld flags to rewrite for the library path used to access +# python libraries provided by the python package at destination +ifeq ($(strip $(PYTHON_STAGING_PREFIX)),) +export PYTHON_PREFIX = /var/packages/$(PYTHON_PACKAGE)/target +export PYTHON_STAGING_PREFIX = $(realpath $(PYTHON_PACKAGE_ROOT)/install/$(PYTHON_PREFIX)) +export ADDITIONAL_LDFLAGS += -Wl,--rpath-link,$(PYTHON_STAGING_PREFIX)/lib -Wl,--rpath,$(PYTHON_PREFIX)/lib +endif + +ifeq ($(strip $(OPENSSL_STAGING_PREFIX)),) +export OPENSSL_PREFIX = $(PYTHON_PREFIX) +export OPENSSL_STAGING_PREFIX = $(PYTHON_STAGING_PREFIX) +else +export ADDITIONAL_LDFLAGS += -Wl,--rpath-link,$(OPENSSL_STAGING_PREFIX)/lib -Wl,--rpath,$(OPENSSL_PREFIX)/lib +endif + +# get PYTHON_VERSION and other variables +-include $(PYTHON_PACKAGE_ROOT)/python-cc.mk + +# set PYTHONPATH for spksrc.python-module.mk +PYTHONPATH = $(PYTHON_SITE_PACKAGES_NATIVE):$(PYTHON_LIB_NATIVE):$(PYTHON_STAGING_PREFIX)/lib/python$(PYTHON_VERSION)/site-packages/ + +# Re-use all default python mandatory libraries +PYTHON_LIBS := $(wildcard $(PYTHON_STAGING_PREFIX)/lib/pkgconfig/*.pc) + +# Re-use all python dependencies and mark as already done +PYTHON_DEPENDS := $(foreach cross,$(foreach pkg_name,$(shell $(MAKE) dependency-list -C $(realpath $(PYTHON_PACKAGE_ROOT)/../) 2>/dev/null | grep ^$(PYTHON_PACKAGE) | cut -f2 -d:),$(shell sed -n 's/^PKG_NAME = \(.*\)/\1/p' $(realpath $(shell pwd)/../../$(pkg_name)/Makefile))),$(wildcard $(PYTHON_PACKAGE_ROOT)/.$(cross)-*_done)) + +# call-up pre-depend to prepare the shared python build environment +PRE_DEPEND_TARGET = python_pre_depend + +else +BUILD_DEPENDS += cross/$(PYTHON_PACKAGE) +endif + +include ../../mk/spksrc.spk.mk + +.PHONY: python_pre_depend +python_pre_depend: + @$(MSG) ***************************************************** + @$(MSG) *** Use existing shared objects from python $(PYTHON_VERSION) + @$(MSG) *** PATH: $(PYTHON_PACKAGE_ROOT) + @$(MSG) ***************************************************** + @mkdir -p $(STAGING_INSTALL_PREFIX)/lib/pkgconfig/ + @$(foreach lib,$(PYTHON_LIBS),ln -sf $(lib) $(STAGING_INSTALL_PREFIX)/lib/pkgconfig/ ;) + @ln -sf $(PYTHON_PACKAGE_ROOT)/crossenv $(WORK_DIR)/crossenv + @ln -sf $(PYTHON_PACKAGE_ROOT)/python-cc.mk $(WORK_DIR)/python-cc.mk + @$(foreach _done,$(PYTHON_DEPENDS), ln -sf $(_done) $(WORK_DIR) ;) + # EXCEPTIONS: Ensure zlib,bzip2 is always built locally + @rm -f $(STAGING_INSTALL_PREFIX)/lib/pkgconfig/zlib.pc $(WORK_DIR)/.zlib* + @rm -f $(WORK_DIR)/.bzip2* diff --git a/mk/spksrc.spk.mk b/mk/spksrc.spk.mk index 28a9668cfdc..f63a8a7f10a 100644 --- a/mk/spksrc.spk.mk +++ b/mk/spksrc.spk.mk @@ -513,6 +513,22 @@ wheelclean: spkclean rm -fr work-*/.wheel_done \ work-*/wheelhouse \ work-*/install/var/packages/**/target/share/wheelhouse + @make --no-print-directory dependency-flat | sort -u | grep -v spk/ | while read depend ; do \ + makefile="../../$${depend}/Makefile" ; \ + if grep -q spksrc.python-wheel.mk $${makefile} ; then \ + pkgstr=$$(grep ^PKG_NAME $${makefile}) ; \ + pkgname=$$(echo $${pkgstr#*=} | xargs) ; \ + echo "rm -fr work-*/$${pkgname}*\\n work-*/.$${pkgname}-*" ; \ + rm -fr work-*/$${pkgname}* \ + work-*/.$${pkgname}-* ; \ + fi ; \ + done + +wheelcleancache: wheelclean + rm -fr work-*/pip + +wheelcleanall: wheelcleancache + rm -fr ../../distrib/pip all: package ifneq ($(filter 1 on ON,$(PSTAT)),) diff --git a/mk/spksrc.wheel-env.mk b/mk/spksrc.wheel-env.mk index 76a07157f1a..c1dff9b7bf6 100644 --- a/mk/spksrc.wheel-env.mk +++ b/mk/spksrc.wheel-env.mk @@ -5,9 +5,34 @@ ##### rust specific configurations include ../../mk/spksrc.cross-rust-env.mk +# set PYTHON_*_PREFIX if unset +ifeq ($(strip $(PYTHON_STAGING_PREFIX)),) +PYTHON_STAGING_PREFIX = $(STAGING_INSTALL_PREFIX) +PYTHON_PREFIX = $(INSTALL_PREFIX) +endif + +# set OPENSSL_*_PREFIX if unset +ifeq ($(strip $(OPENSSL_STAGING_PREFIX)),) +OPENSSL_STAGING_PREFIX = $(STAGING_INSTALL_PREFIX) +OPENSSL_PREFIX = $(INSTALL_PREFIX) +endif + +# Mandatory for rustc wheel building +ENV += PYO3_CROSS_LIB_DIR=$(PYTHON_STAGING_PREFIX)/lib/ +ENV += PYO3_CROSS_INCLUDE_DIR=$(PYTHON_STAGING_PREFIX)/include/ + +# Mandatory of using OPENSSL_*_DIR starting with +# cryptography version >= 40 +# https://docs.rs/openssl/latest/openssl/#automatic +ENV += OPENSSL_LIB_DIR=$(OPENSSL_STAGING_PREFIX)/lib/ +ENV += OPENSSL_INCLUDE_DIR=$(OPENSSL_STAGING_PREFIX)/include/ + # Enable pure-python packaging ifeq ($(strip $(WHEELS_PURE_PYTHON_PACKAGING_ENABLE)),) WHEELS_PURE_PYTHON_PACKAGING_ENABLE = FALSE +WHEELS_2_DOWNLOAD = $(patsubst %$(WHEELS_PURE_PYTHON),,$(WHEELS)) +else +WHEELS_2_DOWNLOAD = $(WHEELS) endif ifeq ($(strip $(WHEELS_DEFAULT)),) diff --git a/mk/spksrc.wheel.mk b/mk/spksrc.wheel.mk index 103dba91f4a..5340d54f0bd 100644 --- a/mk/spksrc.wheel.mk +++ b/mk/spksrc.wheel.mk @@ -35,18 +35,69 @@ else $(POST_WHEEL_TARGET): $(WHEEL_TARGET) endif +wheeldownload: SHELL:=/bin/bash +wheeldownload: + @mkdir -p $(PIP_DISTRIB_DIR) + @if [ -n "$(WHEELS)" ] ; then \ + for wheel in $(WHEELS_2_DOWNLOAD) ; do \ + $(MSG) "Downloading wheels from $$wheel ..." ; \ + # BROKEN: https://github.com/pypa/pip/issues/1884 ; \ + # xargs -n 1 $(PIP_SYSTEM) $(PIP_DOWNLOAD_ARGS) 2>/dev/null < $$wheel || true ; \ + while IFS= read -r requirement ; do \ + if [ "$$(grep -s egg <<< $${requirement})" ] ; then \ + name=$$(echo $${requirement#*egg=} | cut -f1 -d=) ; \ + url=$${requirement} ; \ + else \ + name=$${requirement%%[<>=]=*} ; \ + url="" ; \ + fi ; \ + version=$$(echo $${requirement#*[<>=]=} | cut -f1 -d' ') ; \ + $(MSG) pip download [$${name}], version [$${version}]$$([ "$${url}" ] && echo ", URL: [$${url}] ") ; \ + if [ "$$(grep -s egg <<< $${requirement})" ] ; then \ + echo "WARNING: Skipping download URL - Downloaded at build time" ; \ + # Will be re-downloaded anyway at build time ; \ + # $(PIP) $(PIP_DOWNLOAD_ARGS) $${requirement} 2>/dev/null ; \ + else \ + query="curl -s https://pypi.org/pypi/$${name}/json" ; \ + query+=" | jq -r '.releases[][]" ; \ + query+=" | select(.packagetype==\"sdist\")" ; \ + query+=" | select((.filename|test(\"-$${version}.tar.gz\")) or (.filename|test(\"-$${version}.zip\"))) | .url'" ; \ + localFile=$$(basename $$(eval $${query} 2>/dev/null) 2here and here for more details.
Migrate to python 3.11" + +HOMEPAGE = https://www.bazarr.media/ +LICENSE = GPL-3.0 license STARTABLE = yes -CHANGELOG = "Update to version 1.2.1.
See corresponding changelogs here and here for more details." + +# [numpy] <= 1.21.6 (armv5) +# This version is now unsupported using py311 +UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) HOMEPAGE = https://www.bazarr.media LICENSE = GPLv3 @@ -41,25 +50,35 @@ SERVICE_PORT_TITLE = $(DISPLAY_NAME) # Admin link for in DSM UI ADMIN_PORT = $(SERVICE_PORT) -WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt - -# [numpy] -# gcc-4.6.4 failed with exit status 1 -# https://github.com/numpy/numpy/issues/20664 -UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) - # use alternate TMPDIR as /tmp might be too small and not accessible on DSM >= 7.1. USE_ALTERNATE_TMPDIR = 1 -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk -# [numpy] -# Fix wheel building with older compilers +# [greenlet] +ifeq ($(call version_ge, $(TC_GCC), 4.9),1) +WHEELS += src/requirements-crossenv-greenlet-v2.txt ifeq ($(call version_lt, $(TC_GCC), 5.0),1) -WHEELS_CPPFLAGS = [numpy] -std=c++0x +WHEELS_CPPFLAGS += [greenlet] -std=c++11 -fpermissive +endif +else +WHEELS += src/requirements-crossenv-greenlet-v1.txt +endif + +# [numpy] <= 1.22.4 (armv7l) +ifeq ($(findstring $(ARCH),$(ARMv7L_ARCHS)),$(ARCH)) +WHEELS += src/requirements-crossenv-numpy-armv7l.txt +# [numpy] <= 1.24.4 last working version with gcc-4.9 +else ifeq ($(call version_le, $(TC_GCC), 5.0),1) +WHEELS += src/requirements-crossenv-numpy-gcc4.txt +# [numpy] >= 1.25.0 requires c++17 +else ifeq ($(call version_gt, $(TC_GCC), 5.0),1) +WHEELS += src/requirements-crossenv-numpy.txt +endif # workaround for compiler bug: # https://github.com/numpy/numpy/issues/13622 +ifeq ($(call version_le, $(TC_GCC), 5.0),1) ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH)) -WHEELS_CFLAGS = [numpy] -O0 +WHEELS_CFLAGS += [numpy] -O0 endif endif diff --git a/spk/bazarr/src/requirements-crossenv-greenlet-v1.txt b/spk/bazarr/src/requirements-crossenv-greenlet-v1.txt new file mode 100644 index 00000000000..eab2e8a8b4f --- /dev/null +++ b/spk/bazarr/src/requirements-crossenv-greenlet-v1.txt @@ -0,0 +1,9 @@ +## +## All configurations below are optional and +## are provided to demonstrate how to build +## various wheels. Uncoment to enable. +## + +# [greenlet] +# - gcc < 5.0 (DSM6) Last known working version +greenlet==1.1.3 diff --git a/spk/bazarr/src/requirements-crossenv-greenlet-v2.txt b/spk/bazarr/src/requirements-crossenv-greenlet-v2.txt new file mode 100644 index 00000000000..47a0d61c465 --- /dev/null +++ b/spk/bazarr/src/requirements-crossenv-greenlet-v2.txt @@ -0,0 +1,9 @@ +## +## All configurations below are optional and +## are provided to demonstrate how to build +## various wheels. Uncoment to enable. +## + +# [greenlet] +# - Mandatory require full c++11 support +greenlet==2.0.2 diff --git a/spk/bazarr/src/requirements-crossenv-numpy-armv7l.txt b/spk/bazarr/src/requirements-crossenv-numpy-armv7l.txt new file mode 100644 index 00000000000..d794fd86565 --- /dev/null +++ b/spk/bazarr/src/requirements-crossenv-numpy-armv7l.txt @@ -0,0 +1,10 @@ +## +## All configurations below are optional and +## are provided to demonstrate how to build +## various wheels. Uncoment to enable. +## + +# [numpy] +# - armv7L (hi3535-6.1) Last known working version +# - Require Cython in cross/python311 crossenv +numpy==1.22.4 diff --git a/spk/bazarr/src/requirements-crossenv-numpy-gcc4.txt b/spk/bazarr/src/requirements-crossenv-numpy-gcc4.txt new file mode 100644 index 00000000000..f4cb4bea3c8 --- /dev/null +++ b/spk/bazarr/src/requirements-crossenv-numpy-gcc4.txt @@ -0,0 +1,11 @@ +## +## All configurations below are optional and +## are provided to demonstrate how to build +## various wheels. Uncoment to enable. +## + +# [numpy] +# - Require Cython in cross/python311 crossenv +# - aarch64-6.1 require workaround WHEELS_CFLAGS=-O0 +# ref: https://github.com/numpy/numpy/issues/13622 +numpy==1.24.4 diff --git a/spk/bazarr/src/requirements-crossenv-numpy.txt b/spk/bazarr/src/requirements-crossenv-numpy.txt new file mode 100644 index 00000000000..5d9f9574df8 --- /dev/null +++ b/spk/bazarr/src/requirements-crossenv-numpy.txt @@ -0,0 +1,10 @@ +## +## All configurations below are optional and +## are provided to demonstrate how to build +## various wheels. Uncoment to enable. +## + +# [numpy] +# - Require Cython in cross/python311 crossenv +# - Numpy 1.25.x require c++17 +numpy==1.25.1 diff --git a/spk/bazarr/src/requirements-crossenv.txt b/spk/bazarr/src/requirements-crossenv.txt index 69467173f70..8611c0cc52a 100644 --- a/spk/bazarr/src/requirements-crossenv.txt +++ b/spk/bazarr/src/requirements-crossenv.txt @@ -1,11 +1,8 @@ -greenlet==1.1.2 -numpy==1.22.0 - # [lxml] # Depends: libxml2, libxslt -lxml==4.8.0 +lxml==4.9.3 + +Pillow==9.5.0 # webrtcvad==2.0.10 # requires unreleased version at specific commit for qoriq arch git+https://github.com/wiseman/py-webrtcvad@3bd761332a9404f5c9276105070ee814c4428342#egg=webrtcvad==2.0.10 - -Pillow==9.3.0 diff --git a/spk/bazarr/src/requirements-pure.txt b/spk/bazarr/src/requirements-pure.txt index 51148d35a72..428a504f5cd 100644 --- a/spk/bazarr/src/requirements-pure.txt +++ b/spk/bazarr/src/requirements-pure.txt @@ -1 +1 @@ -zope.event==4.5.0 +zope.event==5.0 diff --git a/spk/bazarr/src/service-setup.sh b/spk/bazarr/src/service-setup.sh index 4ca84496134..9ada088681b 100644 --- a/spk/bazarr/src/service-setup.sh +++ b/spk/bazarr/src/service-setup.sh @@ -1,5 +1,5 @@ FFMPEG_DIR="/var/packages/ffmpeg/target/bin" -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${FFMPEG_DIR}:${PATH}" PYTHON="${SYNOPKG_PKGDEST}/env/bin/python3" LANGUAGE="env LANG=en_US.UTF-8 LC_ALL=en_US.utf8" diff --git a/spk/beets/Makefile b/spk/beets/Makefile index c1b06592d42..670e941782c 100644 --- a/spk/beets/Makefile +++ b/spk/beets/Makefile @@ -1,14 +1,18 @@ SPK_NAME = beets SPK_VERS = 1.6.0 -SPK_REV = 7 +SPK_REV = 9 SPK_ICON = src/beets.png -BUILD_DEPENDS = cross/python310 +PYTHON_PACKAGE = python311 WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt -SPK_DEPENDS = "python310>=3.10" +SPK_DEPENDS = "python311>=3.11.4-7" -# Required for PyYAML +# [lxml] +DEPENDS += cross/libxml2 +DEPENDS += cross/libxslt + +# [PyYAML] DEPENDS += cross/libyaml # [Pillow] @@ -24,7 +28,7 @@ MAINTAINER = ymartin59 DESCRIPTION = "Beets is the media library management system for obsessive-compulsive music geeks. The purpose of beets is to get your music collection right once and for all. It catalogs your collection, automatically improving its metadata as it goes. It then provides a bouquet of tools for manipulating and accessing your music. Plugins not available due to lacking dependencies: AcousticBrainz Submit, Gmusic, ReplayGain." DISPLAY_NAME = beets -CHANGELOG = "1. Upgraded to 1.6.0
2. Updated minimum version of python to 3.10" +CHANGELOG = "1. Migrate to python 3.11
2. Update to all wheels" HOMEPAGE = http://beets.io/ LICENSE = GPL @@ -35,4 +39,4 @@ STARTABLE = no SPK_COMMANDS = env/bin/beet -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk diff --git a/spk/beets/src/requirements-crossenv.txt b/spk/beets/src/requirements-crossenv.txt index b60b2690d8f..f528327da85 100644 --- a/spk/beets/src/requirements-crossenv.txt +++ b/spk/beets/src/requirements-crossenv.txt @@ -1,5 +1,8 @@ # Cross-compiled Dependencies -MarkupSafe==2.0.1 -PyYAML==6.0 -# Pillow ==> Makefile +charset_normalizer==3.2.0 +jellyfish==0.10.0 +lxml==4.9.3 +MarkupSafe==2.1.3 +Pillow==9.5.0 +PyYAML==6.0.1 diff --git a/spk/beets/src/requirements-pure.txt b/spk/beets/src/requirements-pure.txt index a0d0d02e20f..da4f374bb4d 100644 --- a/spk/beets/src/requirements-pure.txt +++ b/spk/beets/src/requirements-pure.txt @@ -3,44 +3,52 @@ beets==1.6.0 # Direct dependencies # automtically downloaded -confuse>=1.0.0 -jellyfish==0.8.9 -mediafile>=0.2.0 -munkres>=1.0.0 -musicbrainzngs>=0.4 -mutagen>=1.45 -six>=1.9 -Unidecode +confuse==2.0.1 +mediafile==0.12.0 +munkres==1.1.4 +musicbrainzngs==0.7.1 +mutagen==1.46.0 +# six ==> python311 +Unidecode==1.3.6 # Plugin dependencies -beautifulsoup4==4.10.0 -# certifi==2021.10.8 ==> python310 -chardet==4.0.0 +beautifulsoup4==4.12.2 +# certifi ==> python311 +chardet==5.1.0 discogs-client==2.3.0 langdetect==1.0.9 -oauthlib==3.1.1 +oauthlib==3.2.2 pyacoustid==1.2.2 -pylast==4.3.0 -python-mpd2==3.0.4 -pyxdg==0.27 +pylast==5.2.0 +python-mpd2==3.1.0 +pyxdg==0.28 rarfile==4.0 -requests==2.26.0 -requests-oauthlib==1.3.0 -soupsieve==2.2.1 -soco==0.24.1 -urllib3==1.26.7 -xmltodict==0.12.0 +requests==2.31.0 +requests-oauthlib==1.3.1 +soco==0.29.1 +soupsieve==2.4.1 +urllib3==2.0.4 +xmltodict==0.13.0 # For web plugin -Flask==2.0.2 -Flask-Cors==3.0.10 -itsdangerous==2.0.1 -Jinja2==3.0.2 -Werkzeug==2.0.2 +Flask==2.3.2 +Flask-Cors==4.0.0 +itsdangerous==2.1.2 +Jinja2==3.1.2 +Werkzeug==2.3.6 -# For gmusic plugin -# Despite installing following wheels 'google' is not found at runtime -# future==0.18.2 -# gmusicapi==12.1.1 -# decorator==4.4.2 -# google==2.0.3 +# Other indirect dependencies +anyio==3.7.1 +appdirs==1.4.4 +audioread==3.0.0 +blinker==1.6.2 +click==8.1.6 +h11==0.14.0 +httpcore==0.17.3 +httpx==0.24.1 +idna==3.4 +ifaddr==0.2.0 +sniffio==1.3.0 + +# The gmusic plugin interfaced beets to Google Play Music. +# It has been removed after the shutdown of this service. diff --git a/spk/beets/src/service-setup.sh b/spk/beets/src/service-setup.sh index 964e2b7f5be..9d26c867007 100644 --- a/spk/beets/src/service-setup.sh +++ b/spk/beets/src/service-setup.sh @@ -1,5 +1,5 @@ -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" service_postinst () diff --git a/spk/borgbackup/Makefile b/spk/borgbackup/Makefile index ce81509b537..52a8d11e88b 100644 --- a/spk/borgbackup/Makefile +++ b/spk/borgbackup/Makefile @@ -1,17 +1,17 @@ SPK_NAME = borgbackup -SPK_VERS = 1.2.2 -SPK_REV = 13 +SPK_VERS = 1.2.4 +SPK_REV = 14 SPK_ICON = src/$(SPK_NAME).png -BUILD_DEPENDS = cross/python310 -DEPENDS = cross/attr cross/acl cross/openssl cross/lz4 cross/zstd cross/libb2 cross/fuse +PYTHON_PACKAGE = python311 +SPK_DEPENDS = "python311>=3.11.4-7" -SPK_DEPENDS = "python310" +DEPENDS = cross/attr cross/acl cross/openssl3 cross/lz4 cross/zstd cross/libb2 cross/fuse # Requirements file generation # - first create borgbackup wheel defined in src/requirements-crossenv.txt # cd src -# /spksrc/native/python310/work-native/install/usr/local/bin/python3 -m venv borg-env +# /spksrc/native/python311/work-native/install/usr/local/bin/python3 -m venv borg-env # . borg-env/bin/activate # pip install ../work-x64-6.1/install/var/packages/borgbackup/target/share/wheelhouse/borgbackup*.whl borgmatic emborg llfuse # pip freeze > requirements.txt @@ -29,7 +29,7 @@ DESCRIPTION = Deduplicating backup program with compression and authenticated en DISPLAY_NAME = Borg STARTABLE = no -CHANGELOG = "1. Update borg to v1.2.2
2. Update borgmatic to v1.7.5.
/3. Include compiled version of msgpack for enhanced performance.
4. Update emborg to v1.34." +CHANGELOG = "1. Update borg to v1.2.4
2. Update borgmatic to v1.8.0.
3. Update emborg to v1.37.
Migrate to python 3.11" HOMEPAGE = https://borgbackup.readthedocs.io LICENSE = 3-Clause BSD @@ -38,9 +38,21 @@ SERVICE_SETUP = src/service-setup.sh SPK_USR_LOCAL_LINKS = bin:env/bin/borg bin:env/bin/borgmatic bin:env/bin/emborg -ENV += BORG_OPENSSL_PREFIX="$(STAGING_INSTALL_PREFIX)" +# Use OpenSSL path as defined by either +# spksrc.wheel-env.mk or spksrc.python.mk +ENV += BORG_OPENSSL_PREFIX="$(OPENSSL_STAGING_PREFIX)" ENV += BORG_LIBLZ4_PREFIX="$(STAGING_INSTALL_PREFIX)" ENV += BORG_LIBZSTD_PREFIX="$(STAGING_INSTALL_PREFIX)" ENV += BORG_LIBB2_PREFIX="$(STAGING_INSTALL_PREFIX)" -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.common.mk + +# [rpds-py] +# maturin canot be built as pre-requisite crossenv +ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH)) +WHEELS += src/requirements-crossenv-rpds-py.txt +# Requires path to maturin from crossenv +ENV += PATH=$(WORK_DIR)/crossenv/build/bin:$(PATH) +endif + +include ../../mk/spksrc.python.mk diff --git a/spk/borgbackup/src/requirements-crossenv-rpds-py.txt b/spk/borgbackup/src/requirements-crossenv-rpds-py.txt new file mode 100644 index 00000000000..08524639538 --- /dev/null +++ b/spk/borgbackup/src/requirements-crossenv-rpds-py.txt @@ -0,0 +1,13 @@ +## +## All configurations below are optional and +## are provided to demonstrate how to build +## various wheels. Uncoment to enable. +## + +# [rpds-py] +# Require environment variables +# PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ +# PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ +# Requires path to maturin from crossenv +# ENV += PATH=$(WORK_DIR)/crossenv/build/bin:$(PATH) +rpds-py==0.9.2 diff --git a/spk/borgbackup/src/requirements-crossenv.txt b/spk/borgbackup/src/requirements-crossenv.txt index 8fe17e8bd61..0000edcfd90 100644 --- a/spk/borgbackup/src/requirements-crossenv.txt +++ b/spk/borgbackup/src/requirements-crossenv.txt @@ -1,7 +1,9 @@ # requirements that need crossenv to build wheel for -borgbackup==1.2.2 +borgbackup==1.2.4 -msgpack==1.0.4 # used compiled verrsion for performance +charset-normalizer==3.2.0 +llfuse==1.4.4 +msgpack==1.0.5 # used compiled verrsion for performance +pyrsistent==0.19.3 ruamel.yaml.clib==0.2.7 -llfuse==1.4.2 diff --git a/spk/borgbackup/src/requirements-pure.txt b/spk/borgbackup/src/requirements-pure.txt index b66a2d4dbf1..ee3f9b4d71c 100644 --- a/spk/borgbackup/src/requirements-pure.txt +++ b/spk/borgbackup/src/requirements-pure.txt @@ -3,24 +3,29 @@ appdirs==1.4.4 arrow==1.2.3 -attrs==22.1.0 -borgmatic==1.7.5 -#certifi==2022.9.24 ==> python310:pure -charset-normalizer==2.1.1 +attrs==23.1.0 +borgmatic==1.8.0 +#certifi ==> python311:pure colorama==0.4.6 +#distlib ==> python311:pure docopt==0.6.2 -emborg==1.34 +emborg==1.37 +#filelock ==> python311:pure idna==3.4 -inform==1.27.0 -jsonschema==4.17.3 -#msgpack==1.0.4 ==> crossenv -packaging==21.3 -pyparsing==3.0.9 -pyrsistent==0.19.2 +inform==1.28 +jsonschema==4.18.4 +jsonschema-specifications==2023.7.1 +#msgpack ==> crossenv +nestedtext==3.6 +packaging==23.1 +#platformdirs ==> python311:pure +pyparsing==3.1.0 python-dateutil==2.8.2 -quantiphy==2.18.0 -requests==2.28.1 -ruamel.yaml==0.17.21 -#ruamel.yaml.clib==0.2.7 ==> crossenv -#six==1.16.0 ==> python310:pure -urllib3==1.26.13 +quantiphy==2.19 +referencing==0.30.0 +requests==2.31.0 +ruamel.yaml==0.17.32 +#ruamel.yaml.clib ==> crossenv +#six ==> python311:pure +urllib3==2.0.4 +#virtualenv ==> python311:pure diff --git a/spk/borgbackup/src/service-setup.sh b/spk/borgbackup/src/service-setup.sh index 03960544309..10b82130091 100644 --- a/spk/borgbackup/src/service-setup.sh +++ b/spk/borgbackup/src/service-setup.sh @@ -1,4 +1,4 @@ -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" service_postinst () diff --git a/spk/deluge/Makefile b/spk/deluge/Makefile index 828b221ebb6..a0c98b83e23 100644 --- a/spk/deluge/Makefile +++ b/spk/deluge/Makefile @@ -3,19 +3,19 @@ SPK_VERS = 2.1.1.61 SPK_REV = 21 SPK_ICON = src/deluge.png -BUILD_DEPENDS = cross/python311 +PYTHON_PACKAGE = python311 WHEELS = src/requirements-crossenv.txt WHEELS += src/requirements-pure.txt WHEELS += src/requirements-abi3.txt -SPK_DEPENDS = "python311" +SPK_DEPENDS = "python311>=3.11.4-7" MAINTAINER = SynoCommunity DESCRIPTION = Deluge is a cross platform BitTorrent client, based on libtorrent rasterbar. This package integrates both the deluge deamon \(deluged\), as well as its web counterpart \(deluge-web\), which serves the deluge web UI. DESCRIPTION_FRE = Deluge est un client BitTorrent multi-plateforme, basé sur libtorrent rasterbar. Ce paquet intègre à la fois le démon deluge \(deluged\) ainsi que son penchant web \(deluge-web\), desservant l\'interface utilisateur web deluge. STARTABLE = yes -CHANGELOG = "1. Update to latest github development commit
2. Update to libtorrent 2.0.9
3. Update to OpenSSL 3.1.1" +CHANGELOG = "1. Update to latest github development commit
2. Update to libtorrent 2.0.9
3. Update to OpenSSL 3.1.2" DISPLAY_NAME = Deluge HOMEPAGE = https://deluge-torrent.org @@ -45,7 +45,7 @@ DEPENDS += cross/cryptography # [rencode] PYTHON_LIMITED_API=cp36 -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk # [libtorrent] UNSUPPORTED_ARCHS += $(ARMv5_ARCHS) $(ARMv7L_ARCHS) $(OLD_PPC_ARCHS) diff --git a/spk/duplicity/Makefile b/spk/duplicity/Makefile index d0f2ff7baa9..356e2597084 100644 --- a/spk/duplicity/Makefile +++ b/spk/duplicity/Makefile @@ -1,18 +1,21 @@ SPK_NAME = duplicity -SPK_VERS = 1.0.1 -SPK_REV = 9 +SPK_VERS = 1.2.3 +SPK_REV = 10 SPK_ICON = src/duplicity.png -BUILD_DEPENDS = cross/python310 +PYTHON_PACKAGE = python311 +SPK_DEPENDS = "python311>=3.11.4-7:gnupg>=2.1.6" +WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt + DEPENDS = cross/librsync cross/duply +# protobuf: missing atomics support +# /upb/port/atomic.h:35:23: fatal error: stdatomic.h: No such file or directory +UNSUPPORTED_ARCHS = $(ARMv7L_ARCHS) $(ARMv5_ARCHS) $(OLD_PPC_ARCHS) + # [cryptography] DEPENDS += cross/cryptography -# [bcrypt] -ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ -ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ - # [lxml] DEPENDS += cross/libxml2 DEPENDS += cross/libxslt @@ -24,15 +27,14 @@ DEPENDS += cross/libyaml DEPENDS += cross/libsodium ENV += SODIUM_INSTALL=system -WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt - -SPK_DEPENDS = "python310:gnupg>=2.1.6" +# [protobuf] +WHEELS_CPPFLAGS = [protobuf] -std=c99 MAINTAINER = SynoCommunity DESCRIPTION = Encrypted bandwidth-efficient backup using the rsync algorithm. Also contains duply wrapper script (duply is supported only for DSM >= 6.0). STARTABLE = no DISPLAY_NAME = Duplicity -CHANGELOG = "1. Update duplicity to v1.0.1 and duply to v2.4.1" +CHANGELOG = "1. Update duplicity to v1.2.3 and duply to v2.4.3
2. Update to OpenSSL 3.1.2
3. Migrate to python 3.11.
4. Drop support for ARMv5 and ARMv7L archs." HOMEPAGE = https://duplicity.gitlab.io/duplicity-web/ LICENSE = GPLv2 @@ -47,4 +49,4 @@ SPK_COMMANDS = bin/duply bin/duplicity SPK_USR_LOCAL_LINKS = bin:env/bin/duplicity SPK_USR_LOCAL_LINKS += bin:bin/duply -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk diff --git a/spk/duplicity/src/requirements-crossenv.txt b/spk/duplicity/src/requirements-crossenv.txt index 9f378e2f662..80f980cc578 100644 --- a/spk/duplicity/src/requirements-crossenv.txt +++ b/spk/duplicity/src/requirements-crossenv.txt @@ -1,5 +1,4 @@ -# pypi source fails as versions either YANKED or uses -postX tag -duplicity==1.0.1 +duplicity==1.2.3 # gitlab source fails to generate $version # ref: https://gitlab.com/duplicity/duplicity/-/issues/109 @@ -10,17 +9,17 @@ duplicity==1.0.1 bcrypt==4.0.1 cffi==1.15.1 -coverage==6.5.0 -#cryptography==38.0.2 ==> cross/cryptography -lazy-object-proxy==1.7.1 -lxml==4.9.1 -MarkupSafe==2.1.1 -msgpack==1.0.4 +coverage==7.2.7 +#cryptography ==> cross/cryptography +lazy-object-proxy==1.9.0 +lxml==4.9.3 +MarkupSafe==2.1.3 +msgpack==1.0.5 msgpack-python==0.5.6 netifaces==0.11.0 -protobuf==4.21.7 -psutil==5.9.1 +protobuf==4.23.4 +psutil==5.9.5 PyNaCl==1.5.0 -PyYAML==6.0 -simplejson==3.17.6 -wrapt==1.14.1 +PyYAML==6.0.1 +simplejson==3.19.1 +wrapt==1.15.0 diff --git a/spk/duplicity/src/requirements-pure.txt b/spk/duplicity/src/requirements-pure.txt index 2b9e718a282..9b87ff1d24b 100644 --- a/spk/duplicity/src/requirements-pure.txt +++ b/spk/duplicity/src/requirements-pure.txt @@ -1,157 +1,159 @@ -# version 1.0.1 snapshot from Oct. 11th 2022 +# version 1.2.3 snapshot from Jul. 23rd 2023 2to3==1.0 -alabaster==0.7.12 +alabaster==0.7.13 args==0.1.0 arrow==1.2.3 -astroid==2.12.11 -attrs==22.1.0 -azure-core==1.26.0 -azure-storage-blob==12.14.0 -b2sdk==1.18.0 -Babel==2.10.3 -#bcrypt==4.0.1 ==> cross +astroid==2.15.6 +attrs==23.1.0 +azure-core==1.28.0 +azure-storage-blob==12.17.0 +b2sdk==1.22.0 +Babel==2.12.1 +#bcrypt ==> crossenv boto==2.49.0 -boto3==1.24.89 -botocore==1.27.89 -boxsdk==3.5.0 -cachetools==5.2.0 -#certifi==2022.9.24 ==> py310 -#cffi==1.15.1 ==> cross -chardet==3.0.4 -charset-normalizer==2.1.1 +boto3==1.28.9 +botocore==1.31.9 +boxsdk==3.7.3 +cachetools==5.3.1 +#certifi ==> py311 +#cffi ==> crossenv +charset-normalizer==3.2.0 clint==0.5.1 -#coverage==6.5.0 ==> cross -#cryptography==38.0.2 ==> cross +colorama==0.4.6 +#coverage ==> crossenv +#cryptography ==> cross/cryptography debtcollector==2.5.0 -dill==0.3.5.1 -#distlib==0.3.6 ==> py310 -docutils==0.17.1 -dropbox==11.35.0 -#duplicity==1.0.1 ==> cross +dill==0.3.7 +#distlib ==> py311 +docutils==0.18.1 +dropbox==11.36.2 +#duplicity ==> crossenv ecdsa==0.18.0 fasteners==0.18 -#filelock==3.8.0 ==> py310 -future==0.18.2 +#filelock ==> py311 +future==0.18.3 gdata-python3==3.0.1 gitchangelog==3.0.4 -google-api-core==2.10.2 -google-api-python-client==2.64.0 -google-auth==2.12.0 +google-api-core==2.11.1 +google-api-python-client==2.94.0 +googleapis-common-protos==1.59.1 +google-auth==2.22.0 google-auth-httplib2==0.1.0 -google-auth-oauthlib==0.5.3 -googleapis-common-protos==1.56.4 -httplib2==0.20.4 -humanize==4.4.0 +google-auth-oauthlib==1.0.0 +httplib2==0.22.0 +humanize==4.7.0 idna==3.4 imagesize==1.4.1 -iniconfig==1.1.1 +importlib-metadata==6.8.0 +iniconfig==2.0.0 ip-associations-python-novaclient-ext==0.2 -iso8601==1.1.0 +iso8601==2.0.0 isodate==0.6.1 -isort==5.10.1 -jaraco.classes==3.2.3 +isort==5.12.0 +jaraco.classes==3.3.0 jeepney==0.8.0 Jinja2==3.1.2 jmespath==1.0.1 jottalib==0.5.1 -keyring==23.9.3 +keyring==24.2.0 keystoneauth1==2.18.0 -#lazy-object-proxy==1.7.1 ==> cross +#lazy-object-proxy ==> crossenv logfury==1.0.1 -#lxml==4.9.1 ==> cross -markdown-it-py==2.1.0 -#MarkupSafe==2.1.1 ==> cross +#lxml ==> crossenv +markdown-it-py==3.0.0 +#MarkupSafe ==> crossenv mccabe==0.7.0 -mdit-py-plugins==0.3.1 +mdit-py-plugins==0.4.0 mdurl==0.1.2 -mediafire==0.5.2 +mediafire==0.6.1 megatools==0.0.4 -mock==4.0.3 +mock==5.1.0 monotonic==1.6 -more-itertools==8.14.0 -#msgpack==1.0.4 ==> cross -#msgpack-python==0.5.6 ==> cross +more-itertools==9.1.0 +#msgpack ==> crossenv +#msgpack-python ==> crossenv msrest==0.7.1 -myst-parser==0.18.1 +myst-parser==2.0.0 netaddr==0.8.0 -#netifaces==0.11.0 ==> cross -oauth2client==4.1.3 -oauthlib==3.2.1 +#netifaces ==> crossenv +oauthlib==3.2.2 os-diskconfig-python-novaclient-ext==0.1.3 -os-networksv2-python-novaclient-ext==0.26 -os-virtual-interfacesv2-python-novaclient-ext==0.20 oslo.config==4.12.0 oslo.i18n==3.12.0 oslo.serialization==2.16.1 oslo.utils==3.22.3 -packaging==21.3 -paramiko==2.11.0 +os-networksv2-python-novaclient-ext==0.26 +os-virtual-interfacesv2-python-novaclient-ext==0.20 +packaging==23.1 +paramiko==3.2.0 pbr==1.10.0 pexpect==4.8.0 -#platformdirs==2.5.2 ==> py310 -pluggy==1.0.0 +#platformdirs ==> py311 +pluggy==1.2.0 ply==3.11 positional==1.2.1 prettytable==0.7.2 -#protobuf==4.21.7 ==> cross -#psutil==5.9.2 ==> cross +#protobuf ==> crossenv +#psutil ==> crossenv ptyprocess==0.7.0 py==1.11.0 -pyasn1==0.4.8 -pyasn1-modules==0.2.8 -pycodestyle==2.9.1 +pyasn1==0.5.0 +pyasn1-modules==0.3.0 +pycodestyle==2.10.0 pycparser==2.21 -PyDrive2==1.14.0 -Pygments==2.13.0 -PyJWT==2.5.0 -pylint==2.15.4 -#PyNaCl==1.5.0 ==> cross -pyOpenSSL==22.1.0 -pyparsing==3.0.9 +PyDrive2==1.16.1 +Pygments==2.15.1 +PyJWT==2.8.0 +pylint==2.17.4 +#PyNaCl ==> crossenv +pyOpenSSL==23.2.0 +pyparsing==3.1.0 +pyproject-api==1.5.3 pyrax==1.10.0 pystache==0.6.0 -pytest==7.1.3 -pytest-cov==4.0.0 +pytest==7.4.0 +pytest-cov==4.1.0 pytest-runner==6.0.0 python-dateutil==2.8.2 -python-gettext==4.1 +python-gettext==5.0 python-keystoneclient==3.10.0 python-novaclient==2.27.0 -python-swiftclient==4.1.0 -pytz==2022.4 -#PyYAML==6.0 ==> cross -rackspace-auth-openstack==1.3 +python-swiftclient==4.3.0 +pytz==2023.3 +#PyYAML ==> crossenv rackspace-novaclient==2.1 rax-default-network-flags-python-novaclient-ext==0.4.0 rax-scheduled-images-python-novaclient-ext==0.3.1 -requests==2.28.1 +requests==2.31.0 requests-oauthlib==1.3.1 -requests-toolbelt==0.10.0 +requests-toolbelt==1.0.0 rfc3986==2.0.0 rsa==4.9 -s3transfer==0.6.0 +s3transfer==0.6.1 SecretStorage==3.3.3 -setuptools-scm==7.0.5 -#simplejson==3.17.6 ==> cross -#six==1.16.0 ==> py310 +setuptools-scm==7.1.0 +#simplejson ==> crossenv +#six ==> py311 snowballstemmer==2.2.0 -Sphinx==5.2.3 -sphinx-rtd-theme==1.0.0 -sphinxcontrib-applehelp==1.0.2 +Sphinx==6.2.1 +sphinxcontrib-applehelp==1.0.4 sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==2.0.0 +sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-jquery==4.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 +sphinx-rtd-theme==1.2.2 stevedore==1.20.1 stone==3.3.1 tlslite-ng==0.7.6 tomli==2.0.1 -tomlkit==0.11.5 -tox==3.26.0 -tqdm==4.64.1 -typing_extensions==4.4.0 +tomlkit==0.11.8 +tox==4.6.4 +tqdm==4.65.0 +typing_extensions==4.7.1 uritemplate==4.1.1 -urllib3==1.25.11 -#virtualenv==20.16.5 ==> py310 -#wrapt==1.14.1 ==> cross +urllib3==1.26.16 +#virtualenv ==> py311 +#wrapt ==> crossenv +zipp==3.16.2 diff --git a/spk/duplicity/src/service-setup.sh b/spk/duplicity/src/service-setup.sh index 1a641cbaee9..c22e2ce29e2 100644 --- a/spk/duplicity/src/service-setup.sh +++ b/spk/duplicity/src/service-setup.sh @@ -1,7 +1,7 @@ ### service-setup.sh -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" service_postinst () diff --git a/spk/flexget/Makefile b/spk/flexget/Makefile index 83bc1050f86..ee3ad0eb831 100644 --- a/spk/flexget/Makefile +++ b/spk/flexget/Makefile @@ -1,19 +1,16 @@ SPK_NAME = flexget -SPK_VERS = 3.3.4 -SPK_REV = 12 +SPK_VERS = 3.7.10 +SPK_REV = 13 SPK_ICON = src/${SPK_NAME}.png -BUILD_DEPENDS = cross/python310 -SPK_DEPENDS = "python310" +PYTHON_PACKAGE = python311 +SPK_DEPENDS = "python311>=3.11.4-7" WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt -# Required for PyYAML -DEPENDS += cross/libyaml - MAINTAINER = SynoCommunity DESCRIPTION = FlexGet is a multipurpose automation tool for content like torrents, nzbs, podcasts, comics, series, movies, etc. It can use different kinds of sources like RSS-feeds, html pages, csv files, search engines and there are even plugins for sites that do not provide any kind of useful feeds. DISPLAY_NAME = FlexGet -CHANGELOG = "1. Update FlexGet to version 3.3.4.
2. Update to python 3.10" +CHANGELOG = "1. Update FlexGet to version 3.7.10
2. Migrate to python 3.11" STARTABLE = yes HOMEPAGE = https://flexget.com/ @@ -33,7 +30,24 @@ ADMIN_PORT = $(SERVICE_PORT) USE_ALTERNATE_TMPDIR = 1 -include ../../mk/spksrc.spk.mk +SPK_USR_LOCAL_LINKS = bin:env/bin/flexget bin:env/bin/flexget-headless + +# [cryptography] +DEPENDS += cross/cryptography + +# [greenlet] == 2.0.1 +# gcc < 4.9 only supports greenlet v1.x +UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(ARMv7L_ARCHS) $(OLD_PPC_ARCHS) + +# [PyYAML] +DEPENDS += cross/libyaml + +include ../../mk/spksrc.python.mk + +# [greenlet] == 2.0.1 +ifeq ($(call version_lt, $(TC_GCC), 5.0),1) +WHEELS_CPPFLAGS += [greenlet] -std=c++11 -fpermissive +endif .PHONY: flexget_extra_install flexget_extra_install: diff --git a/spk/flexget/src/requirements-crossenv.txt b/spk/flexget/src/requirements-crossenv.txt index e0bcf4871d1..d1563e15891 100644 --- a/spk/flexget/src/requirements-crossenv.txt +++ b/spk/flexget/src/requirements-crossenv.txt @@ -1,15 +1,21 @@ -# This file is a copy of the https://raw.githubusercontent.com/Flexget/Flexget/v3.3.4/requirements.txt file -# including the https://raw.githubusercontent.com/Flexget/Flexget/v3.3.4/requirements.in -# Additionally added the flexget and the transmission-rpc packages. -# plumbum and rpyc packages are adjusted as the proposed versions are not accepted. +# Snapshot from Jul. 23rd 2023 aniso8601==9.0.1 Brotli==1.0.9 -cffi==1.15.0 -cryptography==3.3.2 -greenlet==1.1.2 -MarkupSafe==2.0.1 -psutil==5.8.0 -pyrsistent==0.18.0 -PyYAML==6.0 -SQLAlchemy==1.4.27 +cffi==1.15.1 +charset-normalizer==2.1.1 +#cryptography ==> cross/cryptography +dulwich==0.21.5 +greenlet==2.0.1 +MarkupSafe==2.1.1 +msgpack==1.0.5 +psutil==5.9.4 +pydantic==1.10.2 +pyrsistent==0.19.2 +PyYAML==6.0.1 +SQLAlchemy==2.0.15 + +# Building will generate a non-optimized build: py3-none-any +# At installation time it will pip download a c++17 compiled +# optimized build, in case of failure fall-back on this one. +rapidfuzz==2.15.1 diff --git a/spk/flexget/src/requirements-pure.txt b/spk/flexget/src/requirements-pure.txt index ce068d62804..9bee2066890 100644 --- a/spk/flexget/src/requirements-pure.txt +++ b/spk/flexget/src/requirements-pure.txt @@ -1,103 +1,109 @@ -# This file is a copy of the https://raw.githubusercontent.com/Flexget/Flexget/v3.3.4/requirements.txt file -# including the https://raw.githubusercontent.com/Flexget/Flexget/v3.3.4/requirements.in -# Additionally added the flexget and the transmission-rpc packages. -# plumbum and rpyc packages are adjusted as the proposed versions are not accepted. +# Snapshot from Jul. 23rd 2023 -#aniso8601==9.0.1 ==> crossenv -APScheduler==3.8.1 -attrs==21.2.0 +#aniso8601 ==> crossenv +APScheduler==3.10.1 +attrs==22.1.0 +autocommand==2.2.2 babelfish==0.6.0 -beautifulsoup4==4.10.0 -#Brotli==1.0.9 ==> crossenv -CacheControl==0.12.10 +beautifulsoup4==4.11.1 +#Brotli ==> crossenv +build==0.10.0 +CacheControl==0.12.14 cachy==0.3.0 -#certifi==2021.10.8 ==> python 3.10 -#cffi==1.15.0 ==> crossenv -chardet==4.0.0 -charset-normalizer==2.0.7 -cheroot==8.5.2 -CherryPy==18.6.1 -cleo==0.8.1 -click==8.0.3 -clikit==0.6.2 -colorama==0.4.4 +#certifi ==> py311 +#cffi ==> crossenv +chardet==5.1.0 +cheroot==9.0.0 +CherryPy==18.8.0 +cleo==2.0.1 +click==8.1.3 +clikit==0.5.1 +colorama==0.4.6 colorclass==2.2.2 commonmark==0.9.1 -crashtest==0.3.1 -#cryptography==3.3.2 ==> python310 -#distlib==0.3.4 ==> python310 -feedparser==6.0.8 -#filelock==3.6.0 ==> python310 -flask==2.0.2 -flask-compress==1.10.1 -flask-cors==3.0.10 -flask-login==0.5.0 -flask-restful==0.3.9 -flask-restx==0.5.1 -FlexGet==3.3.4 -#greenlet==1.1.2 ==> crossenv -guessit==3.4.3 +crashtest==0.4.1 +#cryptography ==> cross/cryptography +#distlib ==> py311 +feedparser==6.0.10 +#filelock ==> py311 +Flask==2.2.5 +Flask-Compress==1.13 +Flask-Cors==3.0.10 +Flask-Login==0.6.2 +Flask-RESTful==0.3.9 +flask-restx==1.0.3 +FlexGet==3.7.10 +#greenlet ==> crossenv +guessit==3.5.0 html5lib==1.1 -idna==3.3 -importlib-metadata==4.11.3 -itsdangerous==2.0.1 -jaraco.classes==3.2.1 -jaraco.collections==3.4.0 -jaraco.functools==3.3.0 -jaraco.text==3.5.1 -jeepney==0.7.1 -Jinja2==3.0.3 -jsonschema==3.2.0 -keyring==23.5.0 +idna==3.4 +importlib-metadata==6.8.0 +inflect==6.0.2 +installer==0.7.0 +itsdangerous==2.1.2 +jaraco.classes==3.2.3 +jaraco.collections==3.8.0 +jaraco.context==4.2.0 +jaraco.functools==3.5.2 +jaraco.text==3.11.0 +jeepney==0.8.0 +Jinja2==3.1.2 +jsonschema==4.17.3 +keyring==23.13.1 lockfile==0.12.2 -loguru==0.5.3 -#Markupsafe==2.0.1 ==> crossenv -more-itertools==8.12.0 -msgpack==1.0.3 -packaging==20.9 +loguru==0.6.0 +#Markupsafe ==> crossenv +more-itertools==9.0.0 +packaging==22.0 pastel==0.2.1 pexpect==4.8.0 -pkginfo==1.8.2 -platformdirs==2.5.1 -plumbum==1.7.0 -poetry==1.1.13 -poetry-core==1.0.8 -portend==3.0.0 +pkginfo==1.9.6 +platformdirs==3.9.1 +plumbum==1.8.0 +poetry==1.5.1 +poetry-core==1.6.1 +poetry-plugin-export==1.4.0 +portend==3.1.0 progressbar==2.5 -#psutil==5.8.0 ==> crossenv +#psutil ==> crossenv ptyprocess==0.7.0 pycparser==2.21 -pygments==2.10.0 +Pygments==2.13.0 pylev==1.4.0 pynzb==0.1.0 -pyparsing==2.4.7 -#pyrsistent==0.18.0 ==> crossenv +pyparsing==3.0.9 +pyproject_hooks==1.0.0 +#pyrsistent ==> crossenv PyRSS2Gen==1.1 python-dateutil==2.8.2 -pytz==2021.3 -#PyYAML==6.0 ==> crossenv +pytz==2022.6 +pytz-deprecation-shim==0.1.0.post0 +#PyYAML ==> crossenv rebulk==3.1.0 -requests==2.26.0 -requests-toolbelt==0.9.1 -rich==10.15.0 -rpyc==5.0.1 -#setuptools ==> python310 -SecretStorage==3.3.1 +requests==2.31.0 +requests-toolbelt==1.0.0 +rich==12.6.0 +rpyc==5.3.1 +SecretStorage==3.3.3 sgmllib3k==1.0.0 -shellingham==1.4.0 -#six==1.16.0 ==> python310 -soupsieve==2.2.1 -#SQLAlchemy==1.4.27 ==> crossenv -tempora==4.1.2 +shellingham==1.5.0.post1 +#six ==> py311 +soupsieve==2.3.2.post1 +#SQLAlchemy ==> crossenv +tempora==5.1.0 terminaltables==3.1.10 -tomlkit==0.10.0 -transmission-rpc==3.3.0 -typing-extensions==3.10.0.2 -tzlocal==2.1 -urllib3==1.26.7 -#virtualenv ==> python310 +tomlkit==0.11.8 +transmission-rpc==4.3.0 +trove-classifiers==2023.7.6 +typing_extensions==4.7.1 +tzdata==2022.7 +tzlocal==4.2 +urllib3==1.26.13 +#virtualenv ==> py311 webencodings==0.5.1 -Werkzeug==2.0.2 +Werkzeug==2.2.3 +woops==0.2.1 zc.lockfile==2.0 -zipp==3.7.0 +zipp==3.16.2 +zxcvbn==4.4.28 zxcvbn-python==4.4.24 diff --git a/spk/flexget/src/service-setup.sh b/spk/flexget/src/service-setup.sh index b2f069c1f7e..c46b6ba6ffa 100644 --- a/spk/flexget/src/service-setup.sh +++ b/spk/flexget/src/service-setup.sh @@ -1,4 +1,4 @@ -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" CONFIG_FILE="${SYNOPKG_PKGVAR}/config.yml" diff --git a/spk/headphones/Makefile b/spk/headphones/Makefile index e6452ff1136..a01d7da8a36 100644 --- a/spk/headphones/Makefile +++ b/spk/headphones/Makefile @@ -1,17 +1,17 @@ SPK_NAME = headphones SPK_VERS = $(shell date +%Y%m%d) -SPK_REV = 11 +SPK_REV = 12 SPK_ICON = src/headphones.png DEPENDS = -SPK_DEPENDS = "python310:git" +SPK_DEPENDS = "python311>=3.11.4-7:git" MAINTAINER = Diaoul DESCRIPTION = Headphones is an automatic NZB and torrent downloader for music. Mark albums as wanted and have them downloaded as soon as they are available. Different quality settings are possible, including lossless. With Headphones you can also manage your music library automatically: move, tag, rename and index for your DiskStation. DESCRIPTION_FRE = Headphones permet le téléchargement automatique de musique via NZB ou torrent. Indiquez les albums que vous désirez et ils seront téléchargés dès que possible. Pous pouvez choisir entre différentes qualités, dont le lossless. Avec Headphones, vous pouvez aussi gérer votre bibliothèque musicale automatiquement: déplacement, tag, renommage et indexation pour votre DiskStation. DESCRIPTION_SPN = Headphones permite descargar automáticamente música mediante NZB o torrent. Puedes marcar albumes y estos serán descargados en cuanto estén disponibles. Es posible utilizar diferentes calidades, incluido lossless \(sin pedida\). Con Headphones tambien puedes administrar tu libreria: mover, taguear, renombrar e indexar en el DiskStation DISPLAY_NAME = Headphones -CHANGELOG = "1. Update to Python 3.10.
2. Add DSM 7 compatibility." +CHANGELOG = "1. Migrate to Python 3.11
2. Using development branch containing apscheduler update to version 3.10.1" HOMEPAGE = https://github.com/rembo10/headphones LICENSE = GPLv3 @@ -40,6 +40,8 @@ headphones_extra_install: $(STAGING_DIR)/share/Headphones install -m 755 -d $(STAGING_DIR)/var install -m 600 src/config.ini $(STAGING_DIR)/var/config.ini +# Currently cloning 'develop' branch which contains a fix for python 3.11 +# https://github.com/rembo10/headphones/issues/3320#issuecomment-1583819587 $(STAGING_DIR)/share/Headphones: install -m 755 -d $(STAGING_DIR)/share - cd $(STAGING_DIR)/share && git clone --depth=1 https://github.com/rembo10/headphones.git Headphones + cd $(STAGING_DIR)/share && git clone --depth=1 --branch develop https://github.com/rembo10/headphones.git Headphones diff --git a/spk/headphones/src/service-setup.sh b/spk/headphones/src/service-setup.sh index 5b7d091cf38..0348caad4f4 100644 --- a/spk/headphones/src/service-setup.sh +++ b/spk/headphones/src/service-setup.sh @@ -1,4 +1,4 @@ -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" GIT_DIR="/var/packages/git/target/bin" PATH="${SYNOPKG_PKGDEST}/bin:${SYNOPKG_PKGDEST}/env/bin:${PYTHON_DIR}:${GIT_DIR}:${PATH}" PYTHON="${SYNOPKG_PKGDEST}/env/bin/python3" diff --git a/spk/homeassistant/Makefile b/spk/homeassistant/Makefile index 37666ef4cd6..aa4b89f9eb3 100644 --- a/spk/homeassistant/Makefile +++ b/spk/homeassistant/Makefile @@ -1,11 +1,11 @@ SPK_NAME = homeassistant SPK_VERS = 2023.1.7 -SPK_REV = 20 +SPK_REV = 21 SPK_ICON = src/homeassistant.png HACS_VERS = 1.31.0 -SPK_DEPENDS = "python310" +SPK_DEPENDS = "python310>=3.10.12-18" BUILD_DEPENDS = cross/python310 @@ -15,7 +15,7 @@ UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS) $(ARMv7L_ARCHS) MAINTAINER = hgy59 DESCRIPTION = "Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control." DISPLAY_NAME = Home Assistant Core -CHANGELOG = "1. Update homeassistant to 2023.1.7.
2. Update HACS integration to v1.31.0.

REMARKS: Only arch specific python modules are included in the package. Other modules are downloaded at installation time." +CHANGELOG = "1. Update homeassistant to 2023.1.7.
2. Update HACS integration to v1.31.0.

3. Update to openssl v3.1.1.

REMARKS: Only arch specific python modules are included in the package. Other modules are downloaded at installation time." STARTABLE = yes HOMEPAGE = https://www.home-assistant.io/ @@ -76,10 +76,16 @@ WHEELS_BUILD_ARGS += --enable-freetype WHEELS_BUILD_ARGS += --enable-jpeg WHEELS_BUILD_ARGS += --enable-zlib -# [cryptography] +# [bcrypt] ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ +# [cryptography] +DEPENDS += cross/cryptography_38 + +# [uamqp] +DEPENDS += cross/uamqp + # [gevent] DEPENDS += cross/libev cross/c-ares ENV += GEVENTSETUP_EMBED_CARES=FALSE diff --git a/spk/homeassistant/src/requirements-crossenv.txt b/spk/homeassistant/src/requirements-crossenv.txt index 3b5817d8a12..c62158e7497 100644 --- a/spk/homeassistant/src/requirements-crossenv.txt +++ b/spk/homeassistant/src/requirements-crossenv.txt @@ -24,7 +24,7 @@ ciso8601==2.3.0 # contourpy==1.0.7 => fails to build: ModuleNotFoundError: No module named 'pybind11' coverage==7.0.5 crc16==0.1.1 -cryptography==38.0.3 +# cryptography==38.0.3 => cross/cryptography_38 Cython==0.29.33 dbus_fast==1.82.0 debugpy==1.6.4 @@ -62,7 +62,7 @@ regex==2021.8.28 simplejson==3.18.0 SQLAlchemy==1.4.44 tornado==6.2 -uamqp==1.6.0 +# uamqp==1.6.0 => cross/uamqp websockets==10.4 wrapt==1.14.1 yarl==1.8.1 diff --git a/spk/mercurial/Makefile b/spk/mercurial/Makefile index 6fd57e32e02..cb14736bbd8 100644 --- a/spk/mercurial/Makefile +++ b/spk/mercurial/Makefile @@ -1,18 +1,18 @@ SPK_NAME = mercurial -SPK_VERS = 6.0 -SPK_REV = 8 +SPK_VERS = 6.5 +SPK_REV = 9 SPK_ICON = src/mercurial.png -BUILD_DEPENDS = cross/python310 +PYTHON_PACKAGE = python311 WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt -SPK_DEPENDS = "python310" +SPK_DEPENDS = "$(PYTHON_PACKAGE)>=3.11.4-7" MAINTAINER = SynoCommunity DESCRIPTION = Mercurial is a free, distributed source control management tool STARTABLE = no DISPLAY_NAME = Mercurial -CHANGELOG = "1. Update mercurial to 6.0
2. Update to Python 3.10" +CHANGELOG = "1. Update mercurial to 6.5
2. Update to Python 3.11" HOMEPAGE = https://www.mercurial-scm.org/ LICENSE = MPL1.1 @@ -21,4 +21,4 @@ SERVICE_SETUP = src/service-setup.sh SPK_USR_LOCAL_LINKS = bin:env/bin/hg -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk diff --git a/spk/mercurial/src/requirements-crossenv.txt b/spk/mercurial/src/requirements-crossenv.txt index e284a8c44c9..0d4af4f0fd6 100644 --- a/spk/mercurial/src/requirements-crossenv.txt +++ b/spk/mercurial/src/requirements-crossenv.txt @@ -1 +1 @@ -mercurial==6.0 +mercurial==6.5 diff --git a/spk/mercurial/src/requirements-pure.txt b/spk/mercurial/src/requirements-pure.txt index 1ffc5119fe2..7f3ba55d40c 100644 --- a/spk/mercurial/src/requirements-pure.txt +++ b/spk/mercurial/src/requirements-pure.txt @@ -1 +1 @@ -docutils==0.18.1 +docutils==0.20.1 diff --git a/spk/mercurial/src/service-setup.sh b/spk/mercurial/src/service-setup.sh index 03960544309..10b82130091 100644 --- a/spk/mercurial/src/service-setup.sh +++ b/spk/mercurial/src/service-setup.sh @@ -1,4 +1,4 @@ -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" service_postinst () diff --git a/spk/octoprint/Makefile b/spk/octoprint/Makefile index 3055e720f98..69eedde6812 100644 --- a/spk/octoprint/Makefile +++ b/spk/octoprint/Makefile @@ -1,17 +1,17 @@ SPK_NAME = octoprint -SPK_VERS = 1.8.7 -SPK_REV = 10 +SPK_VERS = 1.9.2 +SPK_REV = 11 SPK_ICON = src/octoprint.png DSM_UI_DIR = app -BUILD_DEPENDS = cross/python310 +PYTHON_PACKAGE = python311 # Required for PyYAML DEPENDS += cross/libyaml WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt -SPK_DEPENDS = "python310" +SPK_DEPENDS = "$(PYTHON_PACKAGE)>=3.11.4-7" MAINTAINER = SynoCommunity DESCRIPTION = The snappy web interface for your 3D printer. @@ -21,7 +21,7 @@ ADMIN_PORT = $(SERVICE_PORT) DISPLAY_NAME = OctoPrint HOMEPAGE = https://octoprint.org/ LICENSE = AGPLv3 -CHANGELOG = "Update OctoPrint to v1.8.7. Please have a look at the changes in 1.8.3 https://github.com/OctoPrint/OctoPrint/releases/tag/1.8.3 regarding the password hashing change." +CHANGELOG = "Update OctoPrint to v1.9.2 and Python dependency to 3.11." # SERVICE_COMMAND is in src/service-setup.sh STARTABLE = yes @@ -36,7 +36,7 @@ USE_ALTERNATE_TMPDIR = 1 # [frozendict] WHEELS_CFLAGS = [frozendict] --std=c99 -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk .PHONY: octoprint_extra_install octoprint_extra_install: diff --git a/spk/octoprint/src/requirements-crossenv.txt b/spk/octoprint/src/requirements-crossenv.txt index c10ee58704d..ffb3381cf4e 100644 --- a/spk/octoprint/src/requirements-crossenv.txt +++ b/spk/octoprint/src/requirements-crossenv.txt @@ -1,11 +1,12 @@ argon2_cffi_bindings==21.2.0 -# cffi==1.15.1 => python 3.10 package -charset_normalizer==3.1.0 +# cffi==1.15.1 => python 3.11 package +charset_normalizer==3.2.0 frozendict==2.3.8 -MarkupSafe==2.1.2 +MarkupSafe==2.1.3 netifaces==0.11.0 -psutil==5.9.4 -PyYAML==5.4.1 -regex==2023.3.23 -tornado==6.2 -wrapt==1.14.1 +psutil==5.9.5 +pydantic==1.10.11 +PyYAML==6.0.1 +regex==2023.6.3 +tornado==6.3.2 +wrapt==1.15.0 diff --git a/spk/octoprint/src/requirements-pure.txt b/spk/octoprint/src/requirements-pure.txt index 32acd18348e..53122b234f9 100644 --- a/spk/octoprint/src/requirements-pure.txt +++ b/spk/octoprint/src/requirements-pure.txt @@ -1,57 +1,63 @@ -OctoPrint==1.8.7 +OctoPrint==1.9.2 OctoPrint_FileCheck==2021.2.23 OctoPrint_FirmwareCheck==2021.10.11 -OctoPrint_PiSupport==2022.6.13 +OctoPrint_PiSupport==2023.5.24 argon2_cffi==21.3.0 +async_timeout==4.0.2 Babel==2.12.1 -blinker==1.6 -cachelib==0.2.0 -#certifi==2022.12.7 ==> python310 -click==8.1.3 +blinker==1.6.2 +cachelib==0.10.2 +#certifi==2023.7.22 ==> python311 +class_doc==0.2.6 +click==8.1.6 colorlog==6.7.0 -commonmark==0.9.1 -Deprecated==1.2.13 -emoji==1.7.0 +Deprecated==1.2.14 +emoji==2.6.0 feedparser==6.0.10 filetype==1.2.0 -Flask==2.1.3 +Flask==2.2.5 Flask_Assets==2.0 -Flask_Babel==2.0.0 -Flask_Limiter==2.9.2 -Flask_Login==0.5.0 +flask_babel==3.1.0 +Flask_Limiter==3.3.1 +Flask_Login==0.6.2 future==0.18.3 idna==3.4 ifaddr==0.2.0 -importlib_resources==5.12.0 +importlib_resources==6.0.0 itsdangerous==2.1.2 Jinja2==3.1.2 -limits==3.3.1 +limits==3.5.0 Markdown==3.4.3 +markdown_it_py==3.0.0 +mdurl==0.1.2 +more_itertools==9.1.0 netaddr==0.8.0 ordered_set==4.1.0 -packaging==23.0 +packaging==23.1 passlib==1.7.4 pathvalidate==2.5.2 -#pip==22.2.2 ==> python310 +#pip==23.1.2 ==> python311 pkginfo==1.9.6 pycparser==2.21 -Pygments==2.14.0 +Pygments==2.15.1 pylru==1.2.1 pyserial==3.5 pytz==2023.3 -requests==2.28.2 -rich==12.6.0 -sarge==0.1.6 +requests==2.31.0 +rich==13.4.2 +sarge==0.1.7.post1 semantic_version==2.10.0 -sentry_sdk==1.18.0 -#setuptools==63.2.0 ==> python310 -typing_extensions==4.5.0 +sentry_sdk==1.28.1 +#setuptools==65.5.0 ==> python311 +sgmllib3k==1.0.0 +typing_extensions==4.7.1 Unidecode==1.3.6 -urllib3==1.26.15 -watchdog==1.0.2 +urllib3==2.0.4 +watchdog==2.3.1 webassets==2.0 -websocket_client==1.5.1 -Werkzeug==2.0.3 -zeroconf==0.33.4 -zipstream_ng==1.5.0 +websocket_client==1.6.1 +Werkzeug==2.2.3 +wheel==0.41.0 +zeroconf==0.39.4 +zipstream_ng==1.6.0 diff --git a/spk/octoprint/src/service-setup.sh b/spk/octoprint/src/service-setup.sh index 691cd85631e..48221a0e35f 100644 --- a/spk/octoprint/src/service-setup.sh +++ b/spk/octoprint/src/service-setup.sh @@ -1,4 +1,4 @@ -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" PYTHON=${SYNOPKG_PKGDEST}/env/bin/python3 OCTOPRINT=${SYNOPKG_PKGDEST}/env/bin/octoprint diff --git a/spk/plexpy-custom/Makefile b/spk/plexpy-custom/Makefile index 2bb7878a473..89d8c256ce5 100644 --- a/spk/plexpy-custom/Makefile +++ b/spk/plexpy-custom/Makefile @@ -1,16 +1,16 @@ SPK_NAME = plexpy-custom SPK_VERS = $(shell date +%Y%m%d) -SPK_REV = 6 +SPK_REV = 7 SPK_ICON = src/plexpy-custom.png DEPENDS = -SPK_DEPENDS = "python310:git" +SPK_DEPENDS = "python311>=3.11.4-7:git" MAINTAINER = cytec DESCRIPTION = PlexPy Custom allows you to run the fork of your choice of PlexPy. You will be asked for the fork\'s git URL during install. DESCRIPTION_FRE = PlexPy Custom vous permet d\'exécuter la variante de PlexPy votre choix. Il vous sera demandé l\'URL git de la variante à l\'installation. DISPLAY_NAME = PlexPy Custom -CHANGELOG = "Update to Python3.10" +CHANGELOG = "1. Migrate to Python 3.11
2. Change download URL to use https" HOMEPAGE = https://tautulli.com LICENSE = GPL diff --git a/spk/plexpy-custom/src/service-setup.sh b/spk/plexpy-custom/src/service-setup.sh index bf3ca44c503..550442fbc22 100644 --- a/spk/plexpy-custom/src/service-setup.sh +++ b/spk/plexpy-custom/src/service-setup.sh @@ -1,8 +1,8 @@ -# Define python310 binary path -PYTHON_DIR="/var/packages/python310/target/bin" +# Define python311 binary path +PYTHON_DIR="/var/packages/python311/target/bin" # Define git binary path GIT_DIR="/var/packages/git/target/bin" -# Add local bin, virtualenv along with python310 and git to the default PATH +# Add local bin, virtualenv along with python311 and git to the default PATH PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${GIT_DIR}:${PATH}" PYTHON="${SYNOPKG_PKGDEST}/env/bin/python" GIT="${GIT_DIR}/git" @@ -17,7 +17,7 @@ LEGACY_GROUP="sc-media" validate_preinst () { # Check fork - if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ] && ! ${GIT} ls-remote --heads --exit-code ${wizard_fork_url:=git://github.com/Tautulli/Tautulli.git} ${wizard_fork_branch:=master} > /dev/null 2>&1; then + if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ] && ! ${GIT} ls-remote --heads --exit-code ${wizard_fork_url:=https://github.com/Tautulli/Tautulli.git} ${wizard_fork_branch:=master} > /dev/null 2>&1; then echo "Incorrect fork" exit 1 fi @@ -30,7 +30,7 @@ service_postinst () if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ]; then # Clone the repository - ${GIT} clone -q -b ${wizard_fork_branch:=master} ${wizard_fork_url:=git://github.com/Tautulli/Tautulli.git} ${SYNOPKG_PKGVAR}/plexpy + ${GIT} clone -q -b ${wizard_fork_branch:=master} ${wizard_fork_url:=https://github.com/Tautulli/Tautulli.git} ${SYNOPKG_PKGVAR}/plexpy fi } diff --git a/spk/plexpy-custom/src/wizard/install_uifile b/spk/plexpy-custom/src/wizard/install_uifile index 44c8f93d7b1..392bcfd494c 100644 --- a/spk/plexpy-custom/src/wizard/install_uifile +++ b/spk/plexpy-custom/src/wizard/install_uifile @@ -6,7 +6,7 @@ "subitems": [{ "key": "wizard_fork_url", "desc": "Fork URL", - "defaultValue": "git://github.com/Tautulli/Tautulli.git", + "defaultValue": "https://github.com/Tautulli/Tautulli.git", "validator": { "allowBlank": false } diff --git a/spk/plexpy-custom/src/wizard/install_uifile_fre b/spk/plexpy-custom/src/wizard/install_uifile_fre index 929edf1cab2..232a50f2f40 100644 --- a/spk/plexpy-custom/src/wizard/install_uifile_fre +++ b/spk/plexpy-custom/src/wizard/install_uifile_fre @@ -6,7 +6,7 @@ "subitems": [{ "key": "wizard_fork_url", "desc": "Adresse du dépôt Git", - "defaultValue": "git://github.com/Tautulli/Tautulli.git", + "defaultValue": "https://github.com/Tautulli/Tautulli.git", "validator": { "allowBlank": false } diff --git a/spk/python310/Makefile b/spk/python310/Makefile index 67571d262b9..d368e85c301 100644 --- a/spk/python310/Makefile +++ b/spk/python310/Makefile @@ -1,7 +1,7 @@ SPK_NAME = python310 SPK_VERS = 3.10.12 SPK_VERS_MAJOR_MINOR = $(word 1,$(subst ., ,$(SPK_VERS))).$(word 2,$(subst ., ,$(SPK_VERS))) -SPK_REV = 17 +SPK_REV = 18 SPK_ICON = src/python3.png DEPENDS = cross/$(SPK_NAME) @@ -13,7 +13,7 @@ DESCRIPTION_FRE = Language de programmation Python. DESCRIPTION_SPN = Lenguaje de programación Python. STARTABLE = no DISPLAY_NAME = Python 3.10 -CHANGELOG = "1. Update to Python 3.10.12
2. Update to OpenSSL 3.1.1
3. Re-include openssl 1.1 until all packages are migrated" +CHANGELOG = "1. Update to Python 3.10.12
2. Update all packages to OpenSSL 3.1.2" HOMEPAGE = https://www.python.org LICENSE = PSF @@ -44,19 +44,10 @@ ifeq ($(strip $(WHEELS_TEST_ALL)),1) WHEELS += src/requirements-crossenv.txt WHEELS += src/requirements-abi3.txt -# [bcrypt] and [cryptography] -# Mandatory for rustc wheel building -ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ -ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ - # [cryptography] # Use cross/cryptography to generate py36-abi3 limited API # NOTE: It's not possible to build py36-abi3 limited API using pip due to PEP517 # To generate py310-py310 regular build use src/requirements-crossenv.txt -# -# Mandatory mandatory of using OPENSSL_*_DIR starting with version >= 40 -ENV += OPENSSL_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ -ENV += OPENSSL_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ DEPENDS += cross/cryptography # [gevent] @@ -116,7 +107,7 @@ ifeq ($(strip $(WHEELS_TEST_ALL)),1) ifeq ($(call version_ge, $(TC_GCC), 4.9),1) WHEELS += src/requirements-crossenv-greenlet-v2.txt ifeq ($(call version_lt, $(TC_GCC), 5.0),1) -WHEELS_CPPFLAGS += [greenlet] -std=c++11 +WHEELS_CPPFLAGS += [greenlet] -std=c++11 -fpermissive endif else WHEELS += src/requirements-crossenv-greenlet-v1.txt diff --git a/spk/python311/Makefile b/spk/python311/Makefile index bf366133566..20d840a4a0a 100644 --- a/spk/python311/Makefile +++ b/spk/python311/Makefile @@ -1,9 +1,11 @@ SPK_NAME = python311 SPK_VERS = 3.11.4 SPK_VERS_MAJOR_MINOR = $(word 1,$(subst ., ,$(SPK_VERS))).$(word 2,$(subst ., ,$(SPK_VERS))) -SPK_REV = 6 +SPK_REV = 7 SPK_ICON = src/python3.png +UNSUPPORTED_ARCHS = $(OLD_PPC_ARCHS) + DEPENDS = cross/$(SPK_NAME) DEPENDS += cross/pip @@ -13,7 +15,7 @@ DESCRIPTION_FRE = Language de programmation Python. DESCRIPTION_SPN = Lenguaje de programación Python. STARTABLE = no DISPLAY_NAME = Python 3.11 -CHANGELOG = "1. Update to Python 3.11.4
2. Update to OpenSSL 3.1.1
3. Re-include openssl 1.1 until all packages are migrated" +CHANGELOG = "1. Update to Python 3.11.4
2. Update all packages to OpenSSL 3.1.2" HOMEPAGE = https://www.python.org LICENSE = PSF @@ -44,19 +46,10 @@ ifeq ($(strip $(WHEELS_TEST_ALL)),1) WHEELS += src/requirements-crossenv.txt WHEELS += src/requirements-abi3.txt -# [bcrypt] and [cryptography] -# Mandatory for rustc wheel building -ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ -ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ - # [cryptography] # Use cross/cryptography to generate py36-abi3 limited API # NOTE: It's not possible to build py36-abi3 limited API using pip due to PEP517 # To generate py311-py311 regular build use src/requirements-crossenv.txt -# -# Mandatory mandatory of using OPENSSL_*_DIR starting with version >= 40 -ENV += OPENSSL_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ -ENV += OPENSSL_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ DEPENDS += cross/cryptography # [gevent] @@ -107,6 +100,20 @@ include ../../mk/spksrc.common.mk # GCC_DEBUG_INFO := 1 # endif +## WHEELS_TEST_ALL: Force testing all wheel building +ifeq ($(strip $(WHEELS_TEST_ALL)),1) + +# [rpds-py] +# maturin canot be built as pre-requisite crossenv +ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH)) +WHEELS += src/requirements-crossenv-rpds-py.txt +# Requires path to maturin from crossenv +ENV += PATH=$(WORK_DIR)/crossenv/build/bin:$(PATH) +endif + +# WHEELS_TEST_ALL: Force testing all wheel building +endif + include ../../mk/spksrc.spk.mk ## WHEELS_TEST_ALL: Force testing all wheel building @@ -116,7 +123,7 @@ ifeq ($(strip $(WHEELS_TEST_ALL)),1) ifeq ($(call version_ge, $(TC_GCC), 4.9),1) WHEELS += src/requirements-crossenv-greenlet-v2.txt ifeq ($(call version_lt, $(TC_GCC), 5.0),1) -WHEELS_CPPFLAGS += [greenlet] -std=c++11 +WHEELS_CPPFLAGS += [greenlet] -std=c++11 -fpermissive endif else WHEELS += src/requirements-crossenv-greenlet-v1.txt @@ -128,6 +135,7 @@ ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH)) # [numpy] <= 1.22.4 (armv7l) ifeq ($(findstring $(ARCH),$(ARMv7L_ARCHS)),$(ARCH)) WHEELS += src/requirements-crossenv-numpy-armv7l.txt +# [numpy] <= 1.24.4 last working version with gcc-4.9 else ifeq ($(call version_le, $(TC_GCC), 5.0),1) WHEELS += src/requirements-crossenv-numpy-gcc4.txt # [numpy] >= 1.25.0 requires c++17 @@ -157,6 +165,15 @@ else WHEELS_CFLAGS += [pycryptodomex] -std=c99 endif +# [pydantic_core] +ifeq ($(call version_ge, $(TC_GCC), 4.9),1) +WHEELS_CFLAGS += [pydantic_core] -std=c11 +else +WHEELS_CFLAGS += [pydantic_core] -std=c99 +endif +# Requires path to maturin from crossenv +ENV += PATH=$(WORK_DIR)/crossenv/build/bin:$(PATH) + # WHEELS_TEST_ALL: Force testing all wheel building endif diff --git a/spk/python311/src/requirements-crossenv-numpy-gcc4.txt b/spk/python311/src/requirements-crossenv-numpy-gcc4.txt index f73dbffb458..f4cb4bea3c8 100644 --- a/spk/python311/src/requirements-crossenv-numpy-gcc4.txt +++ b/spk/python311/src/requirements-crossenv-numpy-gcc4.txt @@ -8,5 +8,4 @@ # - Require Cython in cross/python311 crossenv # - aarch64-6.1 require workaround WHEELS_CFLAGS=-O0 # ref: https://github.com/numpy/numpy/issues/13622 -numpy==1.23.5 numpy==1.24.4 diff --git a/spk/python311/src/requirements-crossenv-numpy.txt b/spk/python311/src/requirements-crossenv-numpy.txt index 38d08ba1f27..506858be48a 100644 --- a/spk/python311/src/requirements-crossenv-numpy.txt +++ b/spk/python311/src/requirements-crossenv-numpy.txt @@ -7,6 +7,4 @@ # [numpy] # - Require Cython in cross/python310 crossenv # - Numpy 1.25.x require c++17 -numpy==1.23.5 -numpy==1.24.4 -numpy==1.25.0 +numpy==1.25.1 diff --git a/spk/python311/src/requirements-crossenv-rpds-py.txt b/spk/python311/src/requirements-crossenv-rpds-py.txt new file mode 100644 index 00000000000..08524639538 --- /dev/null +++ b/spk/python311/src/requirements-crossenv-rpds-py.txt @@ -0,0 +1,13 @@ +## +## All configurations below are optional and +## are provided to demonstrate how to build +## various wheels. Uncoment to enable. +## + +# [rpds-py] +# Require environment variables +# PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ +# PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ +# Requires path to maturin from crossenv +# ENV += PATH=$(WORK_DIR)/crossenv/build/bin:$(PATH) +rpds-py==0.9.2 diff --git a/spk/python311/src/requirements-crossenv.txt b/spk/python311/src/requirements-crossenv.txt index 6fc6c06dcc9..ed31bfcec28 100644 --- a/spk/python311/src/requirements-crossenv.txt +++ b/spk/python311/src/requirements-crossenv.txt @@ -68,6 +68,15 @@ pycares==4.3.0 # PYCURL_CURL_CONFIG pycurl==7.45.2 +# [pydantic_core] +# Requires path to maturin from crossenv +# Requires WHEELS_CFLAGS = -std=c11 for = gcc-4.9 +# Requires WHEELS_CFLAGS = -std=c99 for < gcc-4.9 +# Require environment variables +# PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ +# PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ +pydantic_core==2.3.0 + # [PyNaCl] # Depends: cross/libsodium # Require environment variables diff --git a/spk/rdiff-backup/Makefile b/spk/rdiff-backup/Makefile index 4fb269e8391..7bc7f5c5407 100644 --- a/spk/rdiff-backup/Makefile +++ b/spk/rdiff-backup/Makefile @@ -1,23 +1,23 @@ SPK_NAME = rdiff-backup -SPK_VERS = 2.0.5 -SPK_REV = 4 +SPK_VERS = 2.2.5 +SPK_REV = 5 SPK_ICON = src/rdiff-backup.png -BUILD_DEPENDS = cross/python310 +PYTHON_PACKAGE = python311 + +WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt +SPK_DEPENDS = "python311>=3.11.4-7" + DEPENDS = cross/librsync cross/attr cross/acl # [PyYAML] DEPENDS += cross/libyaml -WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt - -SPK_DEPENDS = "python310" - MAINTAINER = SynoCommunity DESCRIPTION = Reverse differential backup tool, over a network or locally. STARTABLE = no DISPLAY_NAME = rdiff-backup -CHANGELOG = "Update to v2.0.5 and update dependencies for Python 3.10" +CHANGELOG = "1. Update to v2.2.5
2. Migrate to Python 3.11" HOMEPAGE = https://rdiff-backup.net/ LICENSE = GPLv2 @@ -26,4 +26,4 @@ SERVICE_SETUP = src/service-setup.sh SPK_USR_LOCAL_LINKS = bin:env/bin/rdiff-backup bin:env/bin/rdiff-backup-statistics -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk diff --git a/spk/rdiff-backup/PLIST b/spk/rdiff-backup/PLIST index d2c9c50272d..4cfaf73a12c 100644 --- a/spk/rdiff-backup/PLIST +++ b/spk/rdiff-backup/PLIST @@ -1,2 +1 @@ rsc:share/wheelhouse - diff --git a/spk/rdiff-backup/src/requirements-crossenv.txt b/spk/rdiff-backup/src/requirements-crossenv.txt index e076a37d5b0..500becc7c95 100644 --- a/spk/rdiff-backup/src/requirements-crossenv.txt +++ b/spk/rdiff-backup/src/requirements-crossenv.txt @@ -1,12 +1,13 @@ -rdiff-backup==2.0.5 +rdiff-backup==2.2.5 -aiohttp==3.8.3 -coverage==5.5 -frozenlist==1.3.1 -multidict==6.0.2 -pylibacl==0.6.0 -pyxattr==0.7.2 -yarl==1.8.1 +aiohttp==3.8.5 +charset-normalizer==3.2.0 +coverage==7.2.7 +frozenlist==1.4.0 +multidict==6.0.4 +pylibacl==0.7.0 +pyxattr==0.8.1 +yarl==1.9.2 # [psutil] # Last known version to build on armv5/ppc @@ -14,4 +15,4 @@ psutil==5.9.1 # [PyYAML] # Depends: libyaml -PyYAML==6.0 +PyYAML==6.0.1 diff --git a/spk/rdiff-backup/src/requirements-pure.txt b/spk/rdiff-backup/src/requirements-pure.txt index 67e660efc78..c9c50b4759c 100644 --- a/spk/rdiff-backup/src/requirements-pure.txt +++ b/spk/rdiff-backup/src/requirements-pure.txt @@ -1,37 +1,40 @@ -# Snapshot using python 3.10 on Oct 12th 2022 -#aiohttp==3.8.3 ==> crossenv -aiosignal==1.2.0 +# Snapshot using python 3.11 on Jul 22nd 2023 +#aiohttp ==> crossenv +aiosignal==1.3.1 async-timeout==4.0.2 -attrs==22.1.0 -#certifi==2022.9.24 ==> py310 -charset-normalizer==2.1.1 -#coverage==5.5 ==> crossenv -#distlib==0.3.6 ==> py310 -#filelock==3.8.0 ==> py310 -flake8==5.0.4 -#frozenlist==1.3.1 ==> crossenv +attrs==23.1.0 +cachetools==5.3.1 +#certifi ==> py311 +chardet==5.1.0 +colorama==0.4.6 +#coverage ==> crossenv +#distlib ==> py311 +#filelock ==> py311 +flake8==6.0.0 +#frozenlist ==> crossenv idna==3.4 mccabe==0.7.0 -#multidict==6.0.2 ==> crossenv -packaging==21.3 -#platformdirs==2.5.2 ==> py310 -pluggy==1.0.0 -#psutil==5.9.1 ==> crossenv +#multidict ==> crossenv +packaging==23.1 +#platformdirs ==> py311 +pluggy==1.2.0 +#psutil ==> crossenv py==1.11.0 -pycodestyle==2.9.1 -pyflakes==2.5.0 -#pylibacl==0.6.0 ==> crossenv -pyparsing==3.0.9 -#pyxattr==0.7.2 ==> crossenv -#PyYAML==6.0 ==> crossenv -#rdiff-backup==2.0.5 ==> crossenv -requests==2.28.1 -rqdb==1.0.10 -setuptools-scm==7.0.5 -#six==1.16.0 ==> py310 +pycodestyle==2.10.0 +pyflakes==3.0.1 +#pylibacl ==> crossenv +pyparsing==3.1.0 +pyproject-api==1.5.3 +#pyxattr ==> crossenv +#PyYAML ==> crossenv +#rdiff-backup ==> crossenv +requests==2.31.0 +rqdb==1.0.11 +setuptools-scm==7.1.0 +#six ==> py311 tomli==2.0.1 -tox==3.26.0 -typing_extensions==4.4.0 -urllib3==1.26.12 -#virtualenv==20.16.5 ==> py310 -#yarl==1.8.1 ==> crossenv +tox==4.6.4 +typing_extensions==4.7.1 +urllib3==2.0.4 +#virtualenv ==> py311 +#yarl ==> crossenv diff --git a/spk/rdiff-backup/src/service-setup.sh b/spk/rdiff-backup/src/service-setup.sh index a44f4b90b3b..62f99f8decb 100644 --- a/spk/rdiff-backup/src/service-setup.sh +++ b/spk/rdiff-backup/src/service-setup.sh @@ -1,4 +1,4 @@ -PYTHON_DIR="/var/packages/python310/target/bin" +PYTHON_DIR="/var/packages/python311/target/bin" PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" service_postinst () diff --git a/spk/rutorrent/Makefile b/spk/rutorrent/Makefile index 3a351ce17f1..bd593188eaa 100644 --- a/spk/rutorrent/Makefile +++ b/spk/rutorrent/Makefile @@ -1,6 +1,6 @@ SPK_NAME = rutorrent SPK_VERS = 4.1.5 -SPK_REV = 15 +SPK_REV = 16 SPK_ICON = src/rutorrent.png DSM_UI_DIR = app @@ -27,7 +27,7 @@ DESCRIPTION = ruTorrent is a front-end for the popular Bittorrent client rTorren ADMIN_URL = /rutorrent/ STARTABLE = yes DISPLAY_NAME = ruTorrent -CHANGELOG = "
  1. Upgrade rutorrent to 4.1.5
  2. Update to Python 3.11
  3. Update to PHP 7.4
  4. Remove tools from procps-ng
  5. Fix support of DSM 7.
  6. Fix torrent creation wizard (\#5288)
  7. Add service port declarations
" +CHANGELOG = "
  1. Upgrade rutorrent to 4.1.5
  2. Update to Python 3.11
  3. Update to PHP 7.4
  4. Remove tools from procps-ng
  5. Fix support of DSM 7.
  6. Fix torrent creation wizard (\#5288)
  7. Add service port declarations
  8. Migrate to OpenSSL 3.1.2
" HOMEPAGE = https://github.com/Novik/ruTorrent LICENSE = GPLv3 diff --git a/spk/sabnzbd/Makefile b/spk/sabnzbd/Makefile index 0e51f4196fe..ae165b7dba6 100644 --- a/spk/sabnzbd/Makefile +++ b/spk/sabnzbd/Makefile @@ -1,11 +1,11 @@ SPK_NAME = sabnzbd SPK_VERS = 4.0.3 -SPK_REV = 63 +SPK_REV = 64 SPK_ICON = src/sabnzbd.png -BUILD_DEPENDS = cross/python311 +PYTHON_PACKAGE = python311 DEPENDS = cross/busybox cross/par2cmdline cross/unrar cross/p7zip cross/$(SPK_NAME) -SPK_DEPENDS = "python311" +SPK_DEPENDS = "python311>=3.11.4-7" WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt @@ -15,7 +15,7 @@ DESCRIPTION_FRE = SABnzbd rend Usenet aussi simple et automatisé que possible. DESCRIPTION_SPN = SABnzbd hace que Usenet sea lo más simple posible, automatizando todo lo que se puede. Todo lo que tienes que hacer es agregar un archivo .nzb. SABnzbd empieza desde ahí. Tus archivos serán automáticamente descargados, verificados, reparados, descomprimidos y archivados. DISPLAY_NAME = SABnzbd STARTABLE = yes -CHANGELOG = "Update SABnzbd to 4.0.3." +CHANGELOG = "Update SABnzbd to 4.0.3
Update to OpenSSL 3.1.2" HOMEPAGE = https://sabnzbd.org LICENSE = GPL @@ -41,7 +41,10 @@ ENV += BUSYBOX_CONFIG="nice ionice" SPK_COMMANDS = bin/7za -include ../../mk/spksrc.spk.mk +# [cryptography] +DEPENDS += cross/cryptography + +include ../../mk/spksrc.python.mk .PHONY: sabnzbd_extra_install sabnzbd_extra_install: diff --git a/spk/sabnzbd/src/requirements-crossenv.txt b/spk/sabnzbd/src/requirements-crossenv.txt index 2541ff92b06..501a0211495 100644 --- a/spk/sabnzbd/src/requirements-crossenv.txt +++ b/spk/sabnzbd/src/requirements-crossenv.txt @@ -1,6 +1,5 @@ # cross-compiled wheels cffi==1.15.1 Cheetah3==3.2.6 -cryptography==3.3.2 sabctools==7.0.2 ujson==5.8.0 diff --git a/spk/salt-master/Makefile b/spk/salt-master/Makefile index 16bd8f9933e..94b7c655e43 100644 --- a/spk/salt-master/Makefile +++ b/spk/salt-master/Makefile @@ -1,27 +1,21 @@ SPK_NAME = salt-master -SPK_VERS = 3004 -SPK_REV = 11 +SPK_VERS = 3006.1 +SPK_REV = 12 SPK_ICON = src/salt-master.png -BUILD_DEPENDS = cross/python310 -SPK_DEPENDS = "python310" +PYTHON_PACKAGE = python311 +SPK_DEPENDS = "$(PYTHON_PACKAGE)>=3.11.4-7" +WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt + # TODO: Enable as website to provide salt-master status DEPENDS = cross/saltgui -UNSUPPORTED_ARCHS = $(PPC_ARCHS) $(ARMv5_ARCHS) - -# Requirements file generation -# /usr/local/python3/bin/python3 -mvirtualenv --python=python3 salt-env -# virtualenv --python=python3 salt-env -# source salt-env/bin/activate -# pip install salt -# pip freeze > requirements.txt -WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt +UNSUPPORTED_ARCHS = $(PPC_ARCHS) $(ARMv5_ARCHS) $(ARMv7L_ARCHS) MAINTAINER = SynoCommunity DESCRIPTION = Salt, a new approach to infrastructure management, is easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with those servers in seconds. DISPLAY_NAME = Salt Master -CHANGELOG = "1. Update to 3004
2. Migrate to Python 3.10" +CHANGELOG = "1. Update to 3006.1
2. Migrate to Python 3.11
3. Migrate to OpenSSL 3.1.2" HOMEPAGE = https://repo.saltproject.io/ LICENSE = Apache v2 @@ -46,7 +40,25 @@ SPK_USR_LOCAL_LINKS += bin:env/bin/salt-ssh USE_ALTERNATE_TMPDIR = 1 -include ../../mk/spksrc.spk.mk +# [PyYAML] +DEPENDS += cross/libyaml + +# [cryptography] +DEPENDS += cross/cryptography + +include ../../mk/spksrc.python.mk + +# [pycryptodomex] +ifeq ($(call version_ge, $(TC_GCC), 4.9),1) +WHEELS_CFLAGS += [pycryptodomex] -std=c11 +else +WHEELS_CFLAGS += [pycryptodomex] -std=c99 +endif + +# [pydantic_core] +WHEELS_CFLAGS += [pydantic_core] -std=c11 +# Requires path to maturin from crossenv +ENV += PATH=$(WORK_DIR)/crossenv/build/bin:$(PATH) .PHONY: salt-master_extra_install salt-master_extra_install: diff --git a/spk/salt-master/src/requirements-crossenv.txt b/spk/salt-master/src/requirements-crossenv.txt index 0abb6fe8457..e543d37cc51 100644 --- a/spk/salt-master/src/requirements-crossenv.txt +++ b/spk/salt-master/src/requirements-crossenv.txt @@ -1,12 +1,14 @@ -# https://github.com/saltstack/salt/blob/master/requirements/static/pkg/py3.10/linux.txt -cffi==1.14.6 -cryptography==3.3.2 -immutables==0.15 -MarkupSafe==1.1.1 -msgpack==1.0.2 -psutil==5.8.0 -pycryptodomex==3.9.8 -PyYAML==5.4.1 -pyzmq==20.0.0 -setproctitle==1.2.2 -timelib==0.2.5 +# https://github.com/saltstack/salt/blob/master/requirements/static/pkg/py3.11/linux.txt +cffi==1.15.1 +charset-normalizer==3.2.0 +#cryptography ==> cross/cryptography +immutables==0.19 +MarkupSafe==2.1.3 +msgpack==1.0.5 +psutil==5.9.5 +pycryptodomex==3.18.0 +pydantic_core==2.3.0 +PyYAML==6.0.1 +pyzmq==25.0.2 +setproctitle==1.3.2 +timelib==0.3.0 diff --git a/spk/salt-master/src/requirements-pure.txt b/spk/salt-master/src/requirements-pure.txt index fa80c9ddf92..5a826d4a949 100644 --- a/spk/salt-master/src/requirements-pure.txt +++ b/spk/salt-master/src/requirements-pure.txt @@ -1,32 +1,60 @@ -# https://github.com/saltstack/salt/blob/master/requirements/static/pkg/py3.10/linux.txt -#certifi==2020.6.20 ==> python310 -chardet==3.0.4 -cheroot==8.5.2 -CherryPy==18.6.1 +# https://github.com/saltstack/salt/blob/master/requirements/static/pkg/py3.11/linux.txt + +salt==3006.1 + +annotated-types==0.5.0 +autocommand==2.2.2 +#certifi ==> python311 +#cffi ==> crossenv +chardet==5.1.0 +#charset-normalizer ==> crossenv +cheroot==10.0.0 +CherryPy==18.8.0 contextvars==2.4 -distro==1.5.0 -idna==2.10 -importlib-metadata==4.8.3 -jaraco.classes==3.2.1 -jaraco.collections==3.4.0 -jaraco.functools==2.0 -jaraco.text==3.5.1 -Jinja2==2.11.3 -more-itertools==5.0.0 -portend==2.4 -pycparser==2.17 -pyOpenSSL==19.1.0 -python-dateutil==2.8.1 -python-gnupg==0.4.4 -pytz==2021.1 -requests==2.25.1 +#cryptography ==> cross +distlib==0.3.6 +distro==1.8.0 +filelock==3.12.2 +idna==3.4 +#immutables ==> crossenv +importlib-metadata==6.8.0 +inflect==7.0.0 +jaraco.classes==3.3.0 +jaraco.collections==4.3.0 +jaraco.context==4.3.0 +jaraco.functools==3.8.0 +jaraco.text==3.11.1 +Jinja2==3.1.2 +jmespath==1.0.1 +looseversion==1.3.0 +#MarkupSafe ==> crossenv +more-itertools==10.0.0 +#msgpack ==> crossenv +packaging==23.1 +platformdirs==3.8.0 +portend==3.2.0 +#psutil ==> crossenv +pycparser==2.21 +#pycryptodomex ==> crossenv +pydantic==2.0.3 +#pydantic_core ==> crossenv +pyOpenSSL==23.2.0 +python-dateutil==2.8.2 +python-gnupg==0.5.1 +pytz==2023.3 +#PyYAML ==> crossenv +#pyzmq ==> crossenv +requests==2.31.0 rpm-vercmp==0.1.2 -salt==3004 -six==1.16.0 -tempora==4.1.1 -urllib3==1.26.6 -zc.lockfile==1.4 -zipp==3.5.0 +#setproctitle ==> crossenv +#six ==> python311 +tempora==5.5.0 +#timelib ==> crossenv +typing_extensions==4.7.1 +urllib3==2.0.4 +virtualenv==20.23.1 +zc.lockfile==3.0.post1 +zipp==3.16.2 # To allow patching rsax931.py during service setup patch==1.16 diff --git a/spk/salt-master/src/service-setup.sh b/spk/salt-master/src/service-setup.sh index e65acfe906d..aae247d5754 100644 --- a/spk/salt-master/src/service-setup.sh +++ b/spk/salt-master/src/service-setup.sh @@ -1,6 +1,6 @@ -# Define python310 binary path -PYTHON_DIR="/var/packages/python310/target/bin" -# Add local bin, virtualenv along with python310 to the default PATH +# Define python311 binary path +PYTHON_DIR="/var/packages/python311/target/bin" +# Add local bin, virtualenv along with python311 to the default PATH PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" LANGUAGE="env LANG=en_US.UTF-8" SYNOPKG_PKGETC=/var/packages/${SYNOPKG_PKGNAME}/etc @@ -15,10 +15,10 @@ service_postinst () # Install wheels install_python_wheels - # patch rsax931.py file to find libcrypto lib provided by python310 + # patch rsax931.py file to find libcrypto lib provided by python311 # (rely on patch==1.16 included in requirements-pure.txt) - python ${SYNOPKG_PKGDEST}/env/lib/python3.10/site-packages/patch.py \ - --directory=${SYNOPKG_PKGDEST}/env/lib/python3.10/site-packages/salt/utils \ + python ${SYNOPKG_PKGDEST}/env/lib/python3.11/site-packages/patch.py \ + --directory=${SYNOPKG_PKGDEST}/env/lib/python3.11/site-packages/salt/utils \ ${SYNOPKG_PKGDEST}/share/rsax931.py.patch # Prepare salt-master config in /var/packages/salt-master/target/etc diff --git a/spk/salt-minion/Makefile b/spk/salt-minion/Makefile index c6dfd4f7bd7..6afa0cf18bd 100644 --- a/spk/salt-minion/Makefile +++ b/spk/salt-minion/Makefile @@ -1,25 +1,18 @@ SPK_NAME = salt-minion -SPK_VERS = 3004 -SPK_REV = 3 +SPK_VERS = 3006.1 +SPK_REV = 5 SPK_ICON = src/salt-minion.png -BUILD_DEPENDS = cross/python310 -SPK_DEPENDS = "python310" - -UNSUPPORTED_ARCHS = $(PPC_ARCHS) $(ARMv5_ARCHS) - -# Requirements file generation -# /usr/local/python3/bin/python3 -mvirtualenv --python=python3 salt-env -# virtualenv --python=python3 salt-env -# source salt-env/bin/activate -# pip install salt -# pip freeze > requirements.txt +PYTHON_PACKAGE = python311 +SPK_DEPENDS = "python311>=3.11.4-7" WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt +UNSUPPORTED_ARCHS = $(PPC_ARCHS) $(ARMv5_ARCHS) $(ARMv7L_ARCHS) + MAINTAINER = SynoCommunity DESCRIPTION = Salt, a new approach to infrastructure management, is easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with those servers in seconds. DISPLAY_NAME = Salt Minion -CHANGELOG = "1. Update to 3004
2. Migrate to Python 3.10" +CHANGELOG = "1. Update to 3006.1
2. Migrate to Python 3.11
3. Migrate to OpenSSL 3.1.2" HOMEPAGE = https://repo.saltproject.io/ LICENSE = Apache @@ -39,7 +32,25 @@ SPK_USR_LOCAL_LINKS += bin:env/bin/spm USE_ALTERNATE_TMPDIR = 1 -include ../../mk/spksrc.spk.mk +# [PyYAML] +DEPENDS += cross/libyaml + +# [cryptography] +DEPENDS += cross/cryptography + +include ../../mk/spksrc.python.mk + +# [pycryptodomex] +ifeq ($(call version_ge, $(TC_GCC), 4.9),1) +WHEELS_CFLAGS += [pycryptodomex] -std=c11 +else +WHEELS_CFLAGS += [pycryptodomex] -std=c99 +endif + +# [pydantic_core] +WHEELS_CFLAGS += [pydantic_core] -std=c11 +# Requires path to maturin from crossenv +ENV += PATH=$(WORK_DIR)/crossenv/build/bin:$(PATH) .PHONY: salt-minion_extra_install salt-minion_extra_install: diff --git a/spk/salt-minion/src/requirements-crossenv.txt b/spk/salt-minion/src/requirements-crossenv.txt index 0abb6fe8457..e543d37cc51 100644 --- a/spk/salt-minion/src/requirements-crossenv.txt +++ b/spk/salt-minion/src/requirements-crossenv.txt @@ -1,12 +1,14 @@ -# https://github.com/saltstack/salt/blob/master/requirements/static/pkg/py3.10/linux.txt -cffi==1.14.6 -cryptography==3.3.2 -immutables==0.15 -MarkupSafe==1.1.1 -msgpack==1.0.2 -psutil==5.8.0 -pycryptodomex==3.9.8 -PyYAML==5.4.1 -pyzmq==20.0.0 -setproctitle==1.2.2 -timelib==0.2.5 +# https://github.com/saltstack/salt/blob/master/requirements/static/pkg/py3.11/linux.txt +cffi==1.15.1 +charset-normalizer==3.2.0 +#cryptography ==> cross/cryptography +immutables==0.19 +MarkupSafe==2.1.3 +msgpack==1.0.5 +psutil==5.9.5 +pycryptodomex==3.18.0 +pydantic_core==2.3.0 +PyYAML==6.0.1 +pyzmq==25.0.2 +setproctitle==1.3.2 +timelib==0.3.0 diff --git a/spk/salt-minion/src/requirements-pure.txt b/spk/salt-minion/src/requirements-pure.txt index fa80c9ddf92..5a826d4a949 100644 --- a/spk/salt-minion/src/requirements-pure.txt +++ b/spk/salt-minion/src/requirements-pure.txt @@ -1,32 +1,60 @@ -# https://github.com/saltstack/salt/blob/master/requirements/static/pkg/py3.10/linux.txt -#certifi==2020.6.20 ==> python310 -chardet==3.0.4 -cheroot==8.5.2 -CherryPy==18.6.1 +# https://github.com/saltstack/salt/blob/master/requirements/static/pkg/py3.11/linux.txt + +salt==3006.1 + +annotated-types==0.5.0 +autocommand==2.2.2 +#certifi ==> python311 +#cffi ==> crossenv +chardet==5.1.0 +#charset-normalizer ==> crossenv +cheroot==10.0.0 +CherryPy==18.8.0 contextvars==2.4 -distro==1.5.0 -idna==2.10 -importlib-metadata==4.8.3 -jaraco.classes==3.2.1 -jaraco.collections==3.4.0 -jaraco.functools==2.0 -jaraco.text==3.5.1 -Jinja2==2.11.3 -more-itertools==5.0.0 -portend==2.4 -pycparser==2.17 -pyOpenSSL==19.1.0 -python-dateutil==2.8.1 -python-gnupg==0.4.4 -pytz==2021.1 -requests==2.25.1 +#cryptography ==> cross +distlib==0.3.6 +distro==1.8.0 +filelock==3.12.2 +idna==3.4 +#immutables ==> crossenv +importlib-metadata==6.8.0 +inflect==7.0.0 +jaraco.classes==3.3.0 +jaraco.collections==4.3.0 +jaraco.context==4.3.0 +jaraco.functools==3.8.0 +jaraco.text==3.11.1 +Jinja2==3.1.2 +jmespath==1.0.1 +looseversion==1.3.0 +#MarkupSafe ==> crossenv +more-itertools==10.0.0 +#msgpack ==> crossenv +packaging==23.1 +platformdirs==3.8.0 +portend==3.2.0 +#psutil ==> crossenv +pycparser==2.21 +#pycryptodomex ==> crossenv +pydantic==2.0.3 +#pydantic_core ==> crossenv +pyOpenSSL==23.2.0 +python-dateutil==2.8.2 +python-gnupg==0.5.1 +pytz==2023.3 +#PyYAML ==> crossenv +#pyzmq ==> crossenv +requests==2.31.0 rpm-vercmp==0.1.2 -salt==3004 -six==1.16.0 -tempora==4.1.1 -urllib3==1.26.6 -zc.lockfile==1.4 -zipp==3.5.0 +#setproctitle ==> crossenv +#six ==> python311 +tempora==5.5.0 +#timelib ==> crossenv +typing_extensions==4.7.1 +urllib3==2.0.4 +virtualenv==20.23.1 +zc.lockfile==3.0.post1 +zipp==3.16.2 # To allow patching rsax931.py during service setup patch==1.16 diff --git a/spk/salt-minion/src/service-setup.sh b/spk/salt-minion/src/service-setup.sh index 2f3d1190d99..bdd23a41608 100644 --- a/spk/salt-minion/src/service-setup.sh +++ b/spk/salt-minion/src/service-setup.sh @@ -1,6 +1,6 @@ -# Define python310 binary path -PYTHON_DIR="/var/packages/python310/target/bin" -# Add local bin, virtualenv along with python310 to the default PATH +# Define python311 binary path +PYTHON_DIR="/var/packages/python311/target/bin" +# Add local bin, virtualenv along with python311 to the default PATH PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}" LANGUAGE="env LANG=en_US.UTF-8" SYNOPKG_PKGETC=/var/packages/${SYNOPKG_PKGNAME}/etc @@ -15,10 +15,10 @@ service_postinst () # Install wheels install_python_wheels - # patch rsax931.py file to find libcrypto lib provided by python310 + # patch rsax931.py file to find libcrypto lib provided by python311 # (rely on patch==1.16 included in requirements-pure.txt) - python ${SYNOPKG_PKGDEST}/env/lib/python3.10/site-packages/patch.py \ - --directory=${SYNOPKG_PKGDEST}/env/lib/python3.10/site-packages/salt/utils \ + python ${SYNOPKG_PKGDEST}/env/lib/python3.11/site-packages/patch.py \ + --directory=${SYNOPKG_PKGDEST}/env/lib/python3.11/site-packages/salt/utils \ ${SYNOPKG_PKGDEST}/share/rsax931.py.patch # Prepare salt-minion config in /var/packages/salt-minion/target/etc diff --git a/spk/sickchill/Makefile b/spk/sickchill/Makefile index c217bdcba4c..444c182ba6c 100644 --- a/spk/sickchill/Makefile +++ b/spk/sickchill/Makefile @@ -1,11 +1,11 @@ SPK_NAME = sickchill SPK_VERS = 20230627 -SPK_REV = 8 +SPK_REV = 9 SPK_ICON = src/sickchill.png -BUILD_DEPENDS = cross/python311 +PYTHON_PACKAGE = python311 -SPK_DEPENDS = "python311" +SPK_DEPENDS = "python311>=3.11.4-7" # archs without C++11 support are not supported: UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS) @@ -19,17 +19,13 @@ DEPENDS += cross/libsodium ENV += SODIUM_INSTALL=system # [cryptography] -ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ -ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ -# fix for openssl-sys crate (for cryptography >= 40.0.0) -# https://docs.rs/openssl/latest/openssl/#manual -ENV += OPENSSL_DIR=$(STAGING_INSTALL_PREFIX) +DEPENDS += cross/cryptography include ../../mk/spksrc.common.mk # [greenlet] ifeq ($(call version_lt, ${TC_GCC}, 5.0),1) -WHEELS_CPPFLAGS = [greenlet] -std=c++11 +WHEELS_CPPFLAGS = [greenlet] -std=c++11 -fpermissive endif WHEELS = src/requirements-crossenv.txt src/requirements-pure.txt @@ -39,7 +35,7 @@ MAINTAINER = miigotu DESCRIPTION = Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. STARTABLE = yes DISPLAY_NAME = SickChill -CHANGELOG = "A wheel based install, git installs are not supported by upstream.
Python update to 3.11
Deprecated ARMv5 (88f628x) as no compiler support for updated dependencies." +CHANGELOG = "1. A wheel based install, git installs are not supported by upstream.
2. Python update to 3.11
3. Deprecated ARMv5 (88f628x) as no compiler support for updated dependencies
4. Migrate to OpenSSL 3.1.2" HOMEPAGE = https://sickchill.github.io/ LICENSE = GPLv3+ @@ -59,7 +55,8 @@ USE_ALTERNATE_TMPDIR = 1 POST_STRIP_TARGET = sickchill_extra_install -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk + # prefere native python tools (pip, maturin, ...) ENV += PATH=$(realpath $(WORK_DIR)/../../../native/python311/work-native/install/usr/local/bin):$(PATH) diff --git a/spk/sickchill/src/requirements-crossenv.txt b/spk/sickchill/src/requirements-crossenv.txt index 4aeabc4866e..a8acdb27ac1 100644 --- a/spk/sickchill/src/requirements-crossenv.txt +++ b/spk/sickchill/src/requirements-crossenv.txt @@ -1,5 +1,5 @@ cffi==1.15.1 -cryptography==40.0.2 +# cryptography ==> cross/cryptography greenlet==2.0.2 lxml==4.9.2 MarkupSafe==2.1.2 diff --git a/spk/sickchill/src/requirements-pure.txt b/spk/sickchill/src/requirements-pure.txt index c4b23b5d85e..09b2f03ad2c 100644 --- a/spk/sickchill/src/requirements-pure.txt +++ b/spk/sickchill/src/requirements-pure.txt @@ -8,14 +8,14 @@ beekeeper-alt==2022.9.3 bencode.py==4.0.0 CacheControl==0.12.11 cacheyou==23.2 -# certifi==2022.12.7 ==> python 3.10 -# cffi==1.15.1 ==> crossenv +# certifi ==> python 3.11 +# cffi ==> crossenv chardet==5.1.0 charset-normalizer==3.1.0 cinemagoer==2022.12.27 click==8.1.3 configobj==5.0.8 -# cryptography==40.0.2 ==> crossenv +# cryptography ==> cross/cryptography decorator==5.1.1 deluge-client==1.9.0 Deprecated==1.2.13 @@ -24,7 +24,7 @@ enzyme==0.4.1 Flask==2.2.3 future==0.18.3 gntp==1.0.3 -# greenlet==2.0.2 ==> crossenv +# greenlet ==> crossenv guessit==3.7.1 idna==3.4 ifaddr==0.2.0 @@ -33,12 +33,12 @@ IMDbPY==2022.7.9 ipaddress==1.0.23 jsonrpclib-pelix==0.4.3.2 kodipydent-alt==2022.9.3 -# lxml==4.9.2 ==> crossenv +# lxml ==> crossenv Mako==1.2.4 markdown2==2.4.8 -# MarkupSafe==2.1.2 ==> crossenv +# MarkupSafe ==> crossenv mock==5.0.1 -# msgpack==1.0.5 ==> crossenv +# msgpack ==> crossenv new-rtorrent-python==1.0.1a0 oauthlib==3.2.2 packaging==23.0 @@ -50,9 +50,9 @@ pycparser==2.21 PyGithub==1.58.1 PyJWT==2.6.0 pymediainfo==6.0.1 -# PyNaCl==1.5.0 ==> crossenv +# PyNaCl ==> crossenv PyNMA==1.0 -pyOpenSSL==23.1.1 +pyOpenSSL==23.2.0 pyparsing==3.0.9 pysrt==1.1.2 pytest==7.2.2 @@ -67,22 +67,22 @@ rebulk==3.2.0 requests==2.28.2 requests-oauthlib==1.3.1 Send2Trash==1.8.0 -# setuptool==67.7.2 ==> python 3.10 -#six==1.16.0 ==> python 3.10 +# setuptool ==> python 3.11 +# six ==> python 3.11 soupsieve==2.4 -# SQLAlchemy==2.0.7 ==> crossenv +# SQLAlchemy ==> crossenv stevedore==5.0.0 subliminal==2.1.0 text-unidecode==1.3 timeago==1.0.16 tmdbsimple==2.9.1 -# tornado==6.2 ==> crossenv +# tornado ==> crossenv tus.py==1.3.4 tvdbsimple==1.0.6 Unidecode==1.3.6 urllib3==1.26.15 validators==0.20.0 -# virtualenv==20.23.0 ==> python 3.10 +# virtualenv ==> python 3.11 win-inet-pton==1.1.0 -# wrapt==1.15.0 ==> crossenv +# wrapt ==> crossenv xmltodict==0.13.0 diff --git a/spk/tvheadend/Makefile b/spk/tvheadend/Makefile index e3b96b2d9ed..0c1e9c2cd05 100644 --- a/spk/tvheadend/Makefile +++ b/spk/tvheadend/Makefile @@ -4,7 +4,7 @@ SPK_GIT_HASH = f32c7c5 SPK_GIT_DATE = 20230408 SPK_VERS = $(SPK_SHORT_VERS).$(SPK_GIT_DATE) TVH_VERS = $(SPK_SHORT_VERS)~$(SPK_GIT_HASH) -SPK_REV = 36 +SPK_REV = 37 SPK_ICON = src/tvheadend.png DSM_UI_DIR = app @@ -13,7 +13,7 @@ DSM_UI_DIR = app # 000-fix-version.patch from cross/tvheadend export TVH_VERS -SPK_DEPENDS = "python310" +SPK_DEPENDS = "python311>=3.11.4-7" WHEELS = src/requirements-pure.txt @@ -26,7 +26,7 @@ DESCRIPTION = Tvheadend is a TV streaming server and recorder for Linux, FreeBSD DESCRIPTION_FRE = Tvheadend est un serveur de streaming et enregistreur TV pour Linux, FreeBSD et Android prenant en charge DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT IP et HDHomeRun comme sources d\'entrée. Tvheadend offre le streaming HTTP, HTSP et SAT IP. DISPLAY_NAME = Tvheadend STARTABLE = yes -CHANGELOG = "1. Update to latest git version f32c7c5 as of April 8th 2023
2. Update FFMPEG 5.1.2
3. Update libhdhomerun to version 20230323" +CHANGELOG = "1. Update to latest git version f32c7c5 as of April 8th 2023
2. Update FFMPEG 5.1.2
3. Update libhdhomerun to version 20230323
4. Migrate to using python 3.11" HOMEPAGE = https://tvheadend.org/ LICENSE = GPL v3 diff --git a/spk/tvheadend/src/service-setup.sh b/spk/tvheadend/src/service-setup.sh index 42a3da5f016..6b7421339a0 100644 --- a/spk/tvheadend/src/service-setup.sh +++ b/spk/tvheadend/src/service-setup.sh @@ -1,8 +1,8 @@ -# Define python310 binary path -PYTHON_DIR="/var/packages/python310/target/bin" +# Define python311 binary path +PYTHON_DIR="/var/packages/python311/target/bin" # Define ffmpeg binary path FFMPEG_DIR="/var/packages/ffmpeg/target/bin" -# Add local bin, virtualenv along with ffmpeg and python310 to the default PATH +# Add local bin, virtualenv along with ffmpeg and python311 to the default PATH PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${FFMPEG_DIR}:${PATH}" # Service configuration. Change http and htsp ports here and in conf/tvheadend.sc for non-standard ports diff --git a/spk/znc/Makefile b/spk/znc/Makefile index 855f01259b2..7010c45df6f 100644 --- a/spk/znc/Makefile +++ b/spk/znc/Makefile @@ -1,18 +1,19 @@ SPK_NAME = znc SPK_VERS = 1.8.2 -SPK_REV = 21 +SPK_REV = 22 SPK_ICON = src/znc.png DSM_UI_DIR = app DEPENDS = cross/$(SPK_NAME) -SPK_DEPENDS = "python310" +PYTHON_PACKAGE = python311 +SPK_DEPENDS = "python311>=3.11.4-7" MAINTAINER = worstje DESCRIPTION = Advanced IRC bouncer. An IRC bouncer is nothing more than an IRC proxy. ZNC will always be connected in your chat rooms, and will be the gateway between your clients, and your IRC servers. You can, for instance, consult messages while you were offline or hide your identity. DESCRIPTION_FRE = Bouncer IRC avancé. Un bouncer IRC n\’est en fait qu\’un proxy IRC. ZNC restera connecté en permanence à vos salons de discussions et fera office de passerelle entre vos clients et vos serveurs IRC. Vous pourrez, par exemple, consultez des messages diffusés en votre absence ou masquer votre identité. DESCRIPTION_SPN = IRC bouncer avanzado. Un IRC bouncer no es más que un proxy para IRC. ZNC estará siempre conectado a tus canales, y hará de puerta de enlace entre tus clientes y tus servidores IRC. Puedes, por ejemplo, consultar mensajes mientras estuviste desconectado o esconder tu identidad. DISPLAY_NAME = ZNC -CHANGELOG = "1. Update OpenSSL to v1.1.1m.
2. Now depends on Python 3.10
3. Fix DSM 7 installer to preserve configuration files on updates." +CHANGELOG = "1. Update OpenSSL 3.1.2.
2. Migrate to Python 3.11" STARTABLE = yes HOMEPAGE = https://wiki.znc.in/ @@ -45,7 +46,7 @@ ADMIN_PORT = ${SERVICE_PORT} POST_STRIP_TARGET = znc_extra_install -include ../../mk/spksrc.spk.mk +include ../../mk/spksrc.python.mk .PHONY: znc_extra_install znc_extra_install: diff --git a/spk/znc/src/service-setup.sh b/spk/znc/src/service-setup.sh index bc14c4b0e2a..7bea1a63cbf 100644 --- a/spk/znc/src/service-setup.sh +++ b/spk/znc/src/service-setup.sh @@ -6,7 +6,7 @@ PATH="${SYNOPKG_PKGDEST}/bin:${PATH}" ZNC="${SYNOPKG_PKGDEST}/bin/znc" CERT_FILE="${SYNOPKG_PKGVAR}/znc.pem" -PYTHON3_LIB_PATH="/var/packages/python310/target/lib" +PYTHON3_LIB_PATH="/var/packages/python311/target/lib" SERVICE_COMMAND="env LD_LIBRARY_PATH=${PYTHON3_LIB_PATH} ${ZNC} -d ${SYNOPKG_PKGVAR}" SVC_BACKGROUND=yes CONF_FILE=${SYNOPKG_PKGVAR}/configs/znc.conf