diff --git a/cross/cryptography-legacy/Makefile b/cross/cryptography-legacy/Makefile new file mode 100644 index 00000000000..7ccfe9e3057 --- /dev/null +++ b/cross/cryptography-legacy/Makefile @@ -0,0 +1,14 @@ +PKG_NAME = cryptography +PKG_VERS = 3.3.2 +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) +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) + +DEPENDS = cross/openssl cross/cffi + +HOMEPAGE = https://github.com/pyca/cryptography +COMMENT = Provide cryptographic recipes and primitives to Python developers +LICENSE = BSD/ASL2 + +include ../../mk/spksrc.python-module.mk diff --git a/cross/cryptography-legacy/PLIST b/cross/cryptography-legacy/PLIST new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cross/cryptography-legacy/digests b/cross/cryptography-legacy/digests new file mode 100644 index 00000000000..d34407fca84 --- /dev/null +++ b/cross/cryptography-legacy/digests @@ -0,0 +1,3 @@ +cryptography-3.3.2.tar.gz SHA1 eb8be696115458f9368432525e9cae11d0f6bebf +cryptography-3.3.2.tar.gz SHA256 5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed +cryptography-3.3.2.tar.gz MD5 e2ce2ec8a63965fad351f36ed70fde4b diff --git a/cross/cryptography/Makefile b/cross/cryptography/Makefile index 7ccfe9e3057..46f623b74eb 100644 --- a/cross/cryptography/Makefile +++ b/cross/cryptography/Makefile @@ -1,5 +1,5 @@ PKG_NAME = cryptography -PKG_VERS = 3.3.2 +PKG_VERS = 38.0.1 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) @@ -11,4 +11,14 @@ HOMEPAGE = https://github.com/pyca/cryptography COMMENT = Provide cryptographic recipes and primitives to Python developers LICENSE = BSD/ASL2 -include ../../mk/spksrc.python-module.mk +### +### This cross/cryptography is needed to generate python-limited abi3 wheels +### Ref: https://github.com/pyca/cryptography/issues/7671 +### + +WHEELS_BUILD_ARGS = --py-limited-api=$(PYTHON_LIMITED_API) + +ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ +ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ + +include ../../mk/spksrc.python-wheel.mk diff --git a/cross/cryptography/digests b/cross/cryptography/digests index d34407fca84..cb7cf50ff07 100644 --- a/cross/cryptography/digests +++ b/cross/cryptography/digests @@ -1,3 +1,3 @@ -cryptography-3.3.2.tar.gz SHA1 eb8be696115458f9368432525e9cae11d0f6bebf -cryptography-3.3.2.tar.gz SHA256 5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed -cryptography-3.3.2.tar.gz MD5 e2ce2ec8a63965fad351f36ed70fde4b +cryptography-38.0.1.tar.gz SHA1 1c8066340a44fc9aea9f96566c850e95f42930da +cryptography-38.0.1.tar.gz SHA256 1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7 +cryptography-38.0.1.tar.gz MD5 c47299bca4309cdda29626b0046d9229 diff --git a/cross/duply/Makefile b/cross/duply/Makefile index 226d5390c15..c762bb562c7 100644 --- a/cross/duply/Makefile +++ b/cross/duply/Makefile @@ -1,5 +1,5 @@ PKG_NAME = duply -PKG_VERS = 2.3.1 +PKG_VERS = 2.4.1 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 8ec496f1971..ba413abe611 100644 --- a/cross/duply/digests +++ b/cross/duply/digests @@ -1,3 +1,3 @@ -duply_2.3.1.tgz SHA1 fde26ede5b649457c8d12aed9423459d927a0a95 -duply_2.3.1.tgz SHA256 f044f9d4b81891785212f856ace2064e8a08da19330587d580a5c233575a3091 -duply_2.3.1.tgz MD5 6a1ed24829331d8cc064c94b8f6072d2 +duply_2.4.1.tgz SHA1 98790dafb92f8441045ce430f4ad9ed80bd895f6 +duply_2.4.1.tgz SHA256 03fd28b06206505edf0e0820d098208708842999f21b1d132461e34e2c0b6973 +duply_2.4.1.tgz MD5 7d579e5a922c21b59e059a2dd4d2383b diff --git a/cross/duply/patches/001-adjust-default-python-path.patch b/cross/duply/patches/001-adjust-default-python-path.patch index 1860ae267c0..57a5a538b4c 100644 --- a/cross/duply/patches/001-adjust-default-python-path.patch +++ b/cross/duply/patches/001-adjust-default-python-path.patch @@ -1,12 +1,11 @@ -# Adjust path of bash and python ---- duply.org 2020-02-24 11:53:51.000000000 +0000 -+++ duply 2020-04-28 23:39:36.695912643 +0000 -@@ -531,7 +531,7 @@ - DEFAULT_GPG='gpg' - DEFAULT_GPG_KEY='_KEY_ID_' - DEFAULT_GPG_PW='_GPG_PASSWORD_' --DEFAULT_PYTHON='python2' -+DEFAULT_PYTHON='/var/packages/duplicity/target/env/bin/python' +--- ../duply_2.4.1-orig/duply 2022-09-09 12:46:13.000000000 +0000 ++++ duply 2022-10-06 11:19:53.344470242 +0000 +@@ -951,7 +951,7 @@ SOURCE='${DEFAULT_SOURCE}' - # function definitions ########################## + # override the python interpreter to execute duplicity, unset by default + # e.g. "python3" or "/usr/bin/python3.8" +-#PYTHON="python" ++PYTHON="/var/packages/duplicity/target/env/bin/python" + # exclude folders containing exclusion file (since duplicity 0.5.14) + # Uncomment the following two lines to enable this setting. diff --git a/cross/mysql-connector-c/Makefile b/cross/mysql-connector-c/Makefile index 228cb2eb85c..e9f90a027a5 100644 --- a/cross/mysql-connector-c/Makefile +++ b/cross/mysql-connector-c/Makefile @@ -12,8 +12,13 @@ HOMEPAGE = https://downloads.mysql.com/archives/c-c COMMENT = MySQL C API (libmysqlclient) LICENSE = GNU GPLv2 +USE_NATIVE_CMAKE_LEGACY = 1 + include ../../mk/spksrc.cross-cmake.mk +# give access to comp_err binary on host +ENV += PATH=$(WORK_DIR)/../../../native/libmysqlclient/work-native/install/usr/local/bin/:$(CMAKE_PATH):$$PATH + # Mandatory for build CMAKE_ARGS += -DHAVE_LLVM_LIBCPP_EXITCODE=1 CMAKE_ARGS += -DHAVE_CXX_FLOATING_POINT_OPTIMIZATION_PROBLEMS_EXITCODE=1 @@ -41,6 +46,3 @@ CMAKE_ARGS += -DWITH_ZLIB=system ifneq ($(findstring $(ARCH),$(PPC_ARCHS)),) CMAKE_ARGS += -DHAVE_GCC_ATOMIC_BUILTINS=1 endif - -# give access to comp_err binary on host -ENV += PATH=$(WORK_DIR)/../../../native/libmysqlclient/work-native/install/usr/local/bin/:$$PATH diff --git a/cross/python310/Makefile b/cross/python310/Makefile index bad97e4f532..591309fcef6 100644 --- a/cross/python310/Makefile +++ b/cross/python310/Makefile @@ -1,5 +1,5 @@ PKG_NAME = python310 -PKG_VERS = 3.10.6 +PKG_VERS = 3.10.8 PKG_VERS_MAJOR_MINOR = $(word 1,$(subst ., ,$(PKG_VERS))).$(word 2,$(subst ., ,$(PKG_VERS))) PKG_EXT = tar.xz PKG_DIST_NAME = Python-$(PKG_VERS).$(PKG_EXT) @@ -66,6 +66,11 @@ CONFIGURE_ARGS += --with-system-expat DEPENDS += cross/libffi CONFIGURE_ARGS += --with-system-ffi +# PYO3 variable for cross-compiling +# cryptography through rustc +ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ +ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ + ADDITIONAL_CFLAGS = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -L $(STAGING_INSTALL_PREFIX)/lib -I $(STAGING_INSTALL_PREFIX)/include @@ -128,12 +133,14 @@ python310_install: 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) $(WORK_DIR)/crossenv/ + @$(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/ . $(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==22.2.2" --no-setuptools --no-wheel --disable-pip-version-check - . $(WORK_DIR)/crossenv/bin/activate && $(RUN) build-pip --disable-pip-version-check install "setuptools==63.4.3" "setuptools-rust==1.5.1" "setuptools-scm==7.0.5" "wheel==0.37.1" "cffi==1.15.1" "cryptography==3.3.2" "poetry==1.1.14" "Cython==0.29.32" "flit==3.7.1" . $(WORK_DIR)/crossenv/bin/activate && $(RUN) python get-pip.py "pip==22.2.2" --no-setuptools --no-wheel --disable-pip-version-check - . $(WORK_DIR)/crossenv/bin/activate && $(RUN) pip --disable-pip-version-check install "setuptools==63.4.3" "setuptools-rust==1.5.1" "setuptools-scm==7.0.5" "wheel==0.37.1" "cffi==1.15.1" "cryptography==3.3.2" "poetry==1.1.14" "Cython==0.29.32" "flit==3.7.1" + . $(WORK_DIR)/crossenv/bin/activate && $(RUN) build-pip --disable-pip-version-check install "setuptools==63.4.3" "setuptools-rust==1.5.2" "setuptools-scm==7.0.5" "wheel==0.37.1" + . $(WORK_DIR)/crossenv/bin/activate && $(RUN) pip --disable-pip-version-check install "setuptools==63.4.3" "setuptools-rust==1.5.2" "setuptools-scm==7.0.5" "wheel==0.37.1" + . $(WORK_DIR)/crossenv/bin/activate && $(RUN) build-pip --disable-pip-version-check install "cffi==1.15.1" "poetry==1.1.14" "Cython==0.29.32" "flit==3.7.1" "cryptography==38.0.1" + . $(WORK_DIR)/crossenv/bin/activate && $(RUN) pip --disable-pip-version-check install "cffi==1.15.1" "poetry==1.1.14" "Cython==0.29.32" "flit==3.7.1" "cryptography==38.0.1" ifneq ($(PYTHON_LIB_NATIVE),$(PYTHON_LIB_CROSS)) cp $(PYTHON_LIB_CROSS)/_sysconfigdata_*.py $(PYTHON_LIB_NATIVE)/_sysconfigdata.py endif diff --git a/cross/python310/digests b/cross/python310/digests index 66ae6ee1db2..ed11742a2cd 100644 --- a/cross/python310/digests +++ b/cross/python310/digests @@ -1,3 +1,3 @@ -Python-3.10.6.tar.xz SHA1 b5a3c74b281ab2e8e56779bbb9aeead1d92fed02 -Python-3.10.6.tar.xz SHA256 f795ff87d11d4b0c7c33bc8851b0c28648d8a4583aa2100a98c22b4326b6d3f3 -Python-3.10.6.tar.xz MD5 afc7e14f7118d10d1ba95ae8e2134bf0 +Python-3.10.8.tar.xz SHA1 49ca7a5be7f13375e863442fbd9ead893ace3238 +Python-3.10.8.tar.xz SHA256 6a30ecde59c47048013eb5a658c9b5dec277203d2793667f578df7671f7f03f3 +Python-3.10.8.tar.xz MD5 e92356b012ed4d0e09675131d39b1bde diff --git a/mk/spksrc.common.mk b/mk/spksrc.common.mk index 363a12c0b58..6ed9c61ab9d 100644 --- a/mk/spksrc.common.mk +++ b/mk/spksrc.common.mk @@ -13,6 +13,9 @@ MSG = echo "===> " # Launch command in the working dir of the package source and the right environment RUN = cd $(WORK_DIR)/$(PKG_DIR) && env $(ENV) +# Add cargo for rust compiler to default PATH +export PATH := /opt/cargo/bin:$(PATH) + # fallback by default to native/python* PIP ?= pip diff --git a/mk/spksrc.cross-cmake-env.mk b/mk/spksrc.cross-cmake-env.mk index 211bcb513f3..3f99e1a70ab 100644 --- a/mk/spksrc.cross-cmake-env.mk +++ b/mk/spksrc.cross-cmake-env.mk @@ -62,11 +62,20 @@ CMAKE_ARGS += -DCMAKE_BUILD_WITH_INSTALL_RPATH=$(CMAKE_BUILD_WITH_INSTALL_RPATH) CMAKE_ARGS += -DBUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS) endif -# Use native cmake +# Use native cmake (latest stable) ifeq ($(strip $(USE_NATIVE_CMAKE)),1) BUILD_DEPENDS += native/cmake CMAKE_PATH = $(realpath $(WORK_DIR)/../../../native/cmake/work-native/install/usr/local/bin) ENV += PATH=$(CMAKE_PATH):$$PATH + export PATH := $(CMAKE_PATH):$(PATH) +endif + +# Use native cmake (Debian 10 "Buster") +ifeq ($(strip $(USE_NATIVE_CMAKE_LEGACY)),1) + BUILD_DEPENDS += native/cmake-legacy + CMAKE_PATH = $(realpath $(WORK_DIR)/../../../native/cmake-legacy/work-native/install/usr/local/bin) + ENV += PATH=$(CMAKE_PATH):$$PATH + export PATH := $(CMAKE_PATH):$(PATH) endif # Use ninja to build @@ -82,9 +91,10 @@ endif # resulting in inability to set in toolchain file ifeq ($(strip $(CMAKE_USE_NASM)),1) DEPENDS += native/nasm - NASM_PATH = $(WORK_DIR)/../../../native/nasm/work-native/install/usr/local/bin + NASM_PATH = $(realpath $(WORK_DIR)/../../../native/nasm/work-native/install/usr/local/bin) ENV += PATH=$(NASM_PATH):$$PATH ENV += AS=$(NASM_PATH)/nasm + export PATH := $(NASM_PATH):$(PATH) ENABLE_ASSEMBLY = ON CMAKE_ASM_COMPILER = $(NASM_PATH)/nasm else diff --git a/mk/spksrc.cross-rust-env.mk b/mk/spksrc.cross-rust-env.mk new file mode 100644 index 00000000000..f33d1319c9e --- /dev/null +++ b/mk/spksrc.cross-rust-env.mk @@ -0,0 +1,32 @@ +# Configuration for rust compiler +# + +RUST_TOOLCHAIN ?= stable + +RUST_TARGET = +# map archs to rust targets +ifeq ($(findstring $(ARCH), $(x64_ARCHS)),$(ARCH)) +RUST_TARGET = x86_64-unknown-linux-gnu +endif +ifeq ($(findstring $(ARCH), $(i686_ARCHS)),$(ARCH)) +RUST_TARGET = i686-unknown-linux-gnu +endif +ifeq ($(findstring $(ARCH), $(ARMv5_ARCHS)),$(ARCH)) +# may be not supported for cargo +RUST_TARGET = armv5te-unknown-linux-gnueabi +endif +ifeq ($(findstring $(ARCH), $(ARMv7_ARCHS)),$(ARCH)) +RUST_TARGET = armv7-unknown-linux-gnueabihf +endif +ifeq ($(findstring $(ARCH), $(ARMv7L_ARCHS)),$(ARCH)) +RUST_TARGET = armv7-unknown-linux-gnueabi +endif +ifeq ($(findstring $(ARCH), $(ARMv8_ARCHS)),$(ARCH)) +RUST_TARGET = aarch64-unknown-linux-gnu +endif +ifeq ($(findstring $(ARCH), $(PPC_ARCHS)),$(ARCH)) +RUST_TARGET = powerpc-unknown-linux-gnu +endif +ifeq ($(RUST_TARGET),) +$(error Arch $(ARCH) not supported) +endif diff --git a/mk/spksrc.cross-rust.mk b/mk/spksrc.cross-rust.mk index 450488a3955..6a67978df92 100644 --- a/mk/spksrc.cross-rust.mk +++ b/mk/spksrc.cross-rust.mk @@ -31,93 +31,38 @@ TC = syno$(ARCH_SUFFIX) endif ##### rust specific configurations +include ../../mk/spksrc.cross-rust-env.mk # configure is used to install rust targets -CONFIGURE_TARGET = install_rust_target +CONFIGURE_TARGET = nop -# skip compile_target if not used by module ifeq ($(strip $(COMPILE_TARGET)),) -COMPILE_TARGET = nop +COMPILE_TARGET = rust_build_target endif -RUST_TOOLCHAIN ?= stable - -RUST_TARGET = -# map archs to rust targets -ifeq ($(findstring $(ARCH), $(x64_ARCHS)),$(ARCH)) -RUST_TARGET=x86_64-unknown-linux-gnu -endif -ifeq ($(findstring $(ARCH), $(i686_ARCHS)),$(ARCH)) -RUST_TARGET=i686-unknown-linux-gnu -endif -ifeq ($(findstring $(ARCH), $(ARMv5_ARCHS)),$(ARCH)) -# may be not supported for cargo -RUST_TARGET=armv5te-unknown-linux-gnueabi -endif -ifeq ($(findstring $(ARCH), $(ARMv7_ARCHS)),$(ARCH)) -RUST_TARGET=armv7-unknown-linux-gnueabihf -endif -ifeq ($(findstring $(ARCH), $(ARMv7L_ARCHS)),$(ARCH)) -RUST_TARGET=armv7-unknown-linux-gnueabi -endif -ifeq ($(findstring $(ARCH), $(ARMv8_ARCHS)),$(ARCH)) -RUST_TARGET=aarch64-unknown-linux-gnu -endif -ifeq ($(findstring $(ARCH), $(PPC_ARCHS)),$(ARCH)) -RUST_TARGET=powerpc-unknown-linux-gnu -endif -ifeq ($(RUST_TARGET),) -$(error Arch $(ARCH) not supported) -endif - -# Use distrib folder as cargo download cache -CARGO_HOME_PATH=/spksrc/distrib/cargo -ENV += CARGO_HOME=$(CARGO_HOME_PATH) -ENV += PATH=:$(CARGO_HOME_PATH)/bin/:$(PATH) - -ifeq (,$(shell $(ENV) which rustup)) -install_rustup: - @echo " ==> install rustup" ; \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ - CARGO_HOME=$(CARGO_HOME_PATH) sh -s -- -y -else -install_rustup: - @echo " ==> rustup already installed" ; +ifeq ($(strip $(INSTALL_TARGET)),) +INSTALL_TARGET = rust_install_target endif -install_rust_toolchain: install_rustup - @echo " ==> install rust toolchain [$(RUST_TOOLCHAIN)]" ; \ - env $(ENV) rustup toolchain install $(RUST_TOOLCHAIN) ; - env $(ENV) rustup default $(RUST_TOOLCHAIN) ; - -# Install rust target on demand: -install_rust_target: install_rust_toolchain - @echo " ==> install rust target [$(RUST_TARGET)]" ; \ - env $(ENV) rustup target install $(RUST_TARGET) ; - # Set default RUST_SRC_DIR ifeq ($(strip $(RUST_SRC_DIR)),) RUST_SRC_DIR = $(WORK_DIR)/$(PKG_DIR) endif -# Set linker environment variable -RUST_LINKER_ENV=CARGO_TARGET_$(shell echo $(RUST_TARGET) | tr - _ | tr a-z A-Z)_LINKER -CARGO_ENV=$(RUST_LINKER_ENV)=$(TC_PATH)$(TC_PREFIX)gcc - # Set the cargo parameters CARGO_BUILD_ARGS += --target=$(RUST_TARGET) CARGO_BUILD_ARGS += --path $(RUST_SRC_DIR) CARGO_BUILD_ARGS += --root $(STAGING_INSTALL_PREFIX) - -ifeq ($(strip $(INSTALL_TARGET)),) -INSTALL_TARGET = rust_build_and_install_target -endif +# Default rust build and installation with cargo +rust_build_target: + @echo " ==> Cargo build rust package $(PKG_NAME)" + $(ENV) cargo build $(CARGO_BUILD_ARGS) # Default rust build and installation with cargo -rust_build_and_install_target: +rust_install_target: @echo " ==> Cargo install rust package $(PKG_NAME)" - $(ENV) $(CARGO_ENV) cargo install $(CARGO_BUILD_ARGS) + $(ENV) cargo install $(CARGO_BUILD_ARGS) ##### @@ -157,7 +102,7 @@ smart-clean: rm -f $(WORK_DIR)/.$(COOKIE_PREFIX)* clean: - rm -fr work work-* + rm -fr work work-* build-*.log all: install plist diff --git a/mk/spksrc.native-cmake-env.mk b/mk/spksrc.native-cmake-env.mk index 348e902c172..4b4b71c5490 100644 --- a/mk/spksrc.native-cmake-env.mk +++ b/mk/spksrc.native-cmake-env.mk @@ -21,7 +21,7 @@ endif # set default ASM build environment ifeq ($(strip $(CMAKE_USE_NASM)),1) DEPENDS += native/nasm - NASM_PATH = $(WORK_DIR)/../../../native/nasm/work-native/install/usr/local/bin + NASM_PATH = $(realpath $(WORK_DIR)/../../../native/nasm/work-native/install/usr/local/bin) ENV += PATH=$(NASM_PATH):$$PATH ENV += AS=$(NASM_PATH)/nasm CMAKE_ARGS += -DENABLE_ASSEMBLY=ON diff --git a/mk/spksrc.python-wheel.mk b/mk/spksrc.python-wheel.mk index fff7b39560f..3d220decdc2 100644 --- a/mk/spksrc.python-wheel.mk +++ b/mk/spksrc.python-wheel.mk @@ -32,10 +32,10 @@ include ../../mk/spksrc.wheel-env.mk build_python_wheel_target: ifeq ($(strip $(CROSSENV)),) # Python 2 way - @$(RUN) PYTHONPATH=$(PYTHONPATH) $(HOSTPYTHON) -c "import setuptools;__file__='setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" $(BUILD_ARGS) bdist_wheel -d $(WHEELHOUSE) + @$(RUN) PYTHONPATH=$(PYTHONPATH) $(HOSTPYTHON) -c "import setuptools;__file__='setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" $(BUILD_ARGS) bdist_wheel $(WHEELS_BUILD_ARGS) -d $(WHEELHOUSE) else # Python 3 case: using crossenv helper - @. $(CROSSENV) && $(RUN) PYTHONPATH=$(PYTHONPATH) python -c "import setuptools;__file__='setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" $(BUILD_ARGS) bdist_wheel -d $(WHEELHOUSE) + @. $(CROSSENV) && $(RUN) _PYTHON_HOST_PLATFORM=$(TC_TARGET) python3 setup.py $(BUILD_ARGS) bdist_wheel $(WHEELS_BUILD_ARGS) -d $(WHEELHOUSE) endif @$(RUN) echo "$(PKG_NAME)==$(PKG_VERS)" >> $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) diff --git a/mk/spksrc.spk.mk b/mk/spksrc.spk.mk index 529aa7afccd..4044e559a8c 100644 --- a/mk/spksrc.spk.mk +++ b/mk/spksrc.spk.mk @@ -438,19 +438,22 @@ spkclean: work-*/.depend_done \ work-*/.icon_done \ work-*/.strip_done \ - work-*/.wheel_done \ work-*/conf \ work-*/scripts \ work-*/staging \ work-*/tc_vars.mk \ work-*/tc_vars.cmake \ - work-*/wheelhouse \ work-*/package.tgz \ work-*/INFO \ work-*/PLIST \ work-*/PACKAGE_ICON* \ work-*/WIZARD_UIFILES +wheelclean: spkclean + rm -fr work-*/.wheel_done \ + work-*/wheelhouse \ + work-*/install/var/packages/**/target/share/wheelhouse + all: package ifneq ($(filter 1 on ON,$(PSTAT)),) @$(MSG) MAKELEVEL: $(MAKELEVEL), PARALLEL_MAKE: $(PARALLEL_MAKE), ARCH: $(ARCH)-$(TCVERSION) >> $(PSTAT_LOG) diff --git a/mk/spksrc.tc.mk b/mk/spksrc.tc.mk index 219785e2967..61208bcd671 100644 --- a/mk/spksrc.tc.mk +++ b/mk/spksrc.tc.mk @@ -32,6 +32,8 @@ TC_LOCAL_VARS_CMAKE = $(WORK_DIR)/tc_vars.cmake RUN = cd $(WORK_DIR)/$(TC_TARGET) && env $(ENV) +include ../../mk/spksrc.cross-rust-env.mk + include ../../mk/spksrc.download.mk checksum: download @@ -108,6 +110,7 @@ endif .PHONY: tc_vars tc_vars: @echo TC_ENV := ; \ + echo TC_ENV += SYSROOT=\"$(WORK_DIR)/$(TC_TARGET)/$(TC_SYSROOT)\" ; \ for tool in $(TOOLS) ; \ do \ target=$$(echo $${tool} | sed 's/\(.*\):\(.*\)/\1/') ; \ @@ -121,6 +124,11 @@ tc_vars: echo TC_ENV += CPPFLAGS=\"$(CPPFLAGS) $$\(ADDITIONAL_CPPFLAGS\)\" ; \ echo TC_ENV += CXXFLAGS=\"$(CXXFLAGS) $$\(ADDITIONAL_CXXFLAGS\)\" ; \ echo TC_ENV += LDFLAGS=\"$(LDFLAGS) $$\(ADDITIONAL_LDFLAGS\)\" ; \ + echo TC_ENV += CARGO_HOME=\"/opt/cargo\" ; \ + echo TC_ENV += RUSTUP_HOME=\"/opt/rustup\" ; \ + echo TC_ENV += CARGO_BUILD_TARGET=\"$(RUST_TARGET)\" ; \ + echo TC_ENV += CARGO_TARGET_$(shell echo $(RUST_TARGET) | tr - _ | tr a-z A-Z)_AR=\"$(WORK_DIR)/$(TC_TARGET)/bin/$(TC_PREFIX)ar\" ; \ + echo TC_ENV += CARGO_TARGET_$(shell echo $(RUST_TARGET) | tr - _ | tr a-z A-Z)_LINKER=\"$(WORK_DIR)/$(TC_TARGET)/bin/$(TC_PREFIX)gcc\" ; \ echo TC_CONFIGURE_ARGS := --host=$(TC_TARGET) --build=i686-pc-linux ; \ echo TC_TYPE := $(TC_TYPE) ; \ echo TC_TARGET := $(TC_TARGET) ; \ @@ -130,8 +138,8 @@ tc_vars: echo CPPFLAGS := $(CPPFLAGS) $$\(ADDITIONAL_CPPFLAGS\) ; \ echo CXXFLAGS := $(CXXFLAGS) $$\(ADDITIONAL_CXXFLAGS\) ; \ echo LDFLAGS := $(LDFLAGS) $$\(ADDITIONAL_LDFLAGS\) ; \ - echo TC_LIBRARY := $(TC_LIBRARY) ; \ echo TC_INCLUDE := $(TC_INCLUDE) ; \ + echo TC_LIBRARY := $(TC_LIBRARY) ; \ echo TC_EXTRA_CFLAGS := $(TC_EXTRA_CFLAGS) ; \ echo TC_VERS := $(TC_VERS) ; \ echo TC_BUILD := $(TC_BUILD) ; \ diff --git a/mk/spksrc.wheel-env.mk b/mk/spksrc.wheel-env.mk index 012866dd50c..9a59b3488db 100644 --- a/mk/spksrc.wheel-env.mk +++ b/mk/spksrc.wheel-env.mk @@ -39,9 +39,9 @@ WHEELS_DEFAULT_REQUIREMENT = $(WHEELS_CROSSENV_COMPILE) endif # For generating abi3 wheels with limited -# python API (e.g cp35 = Python 3.5) +# python API (e.g cp36 = Python 3.6) ifeq ($(strip $(PYTHON_LIMITED_API)),) -PYTHON_LIMITED_API = cp35 +PYTHON_LIMITED_API = cp36 endif # diff --git a/native/cmake-legacy/Makefile b/native/cmake-legacy/Makefile new file mode 100644 index 00000000000..39af93844f9 --- /dev/null +++ b/native/cmake-legacy/Makefile @@ -0,0 +1,26 @@ +PKG_NAME = cmake +PKG_VERS = 3.13.4 +PKG_EXT = sh +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS)-linux-x86_64.$(PKG_EXT) +PKG_DIST_SITE = https://github.com/Kitware/CMake/releases/download/v$(PKG_VERS) +PKG_DIR = $(PKG_NAME)-installer + +HOMEPAGE = https://cmake.org/ +COMMENT = CMake is an open-source, cross-platform family of tools designed to build, test and package software. +LICENSE = OSI-approved BSD 3-Clause License + +# download and execute installer script +EXTRACT_TARGET = cmake_native_extract +INSTALL_TARGET = cmake_native_install + +include ../../mk/spksrc.native-install.mk + +.PHONY: cmake_native_extract +cmake_native_extract: + mkdir -p $(WORK_DIR)/$(PKG_DIR) + cp -f $(DIST_FILE) $(WORK_DIR)/$(PKG_DIR) + chmod +x $(WORK_DIR)/$(PKG_DIR)/$(PKG_DIST_NAME) + +.PHONY: cmake_native_install +cmake_native_install: + $(RUN) ./$(PKG_DIST_NAME) --skip-license --prefix=$(STAGING_INSTALL_PREFIX) diff --git a/native/cmake-legacy/digests b/native/cmake-legacy/digests new file mode 100644 index 00000000000..58e85920377 --- /dev/null +++ b/native/cmake-legacy/digests @@ -0,0 +1,3 @@ +cmake-3.13.4-linux-x86_64.sh SHA1 20f19adac58b67d14fa8c8d8941d6d15cf7af641 +cmake-3.13.4-linux-x86_64.sh SHA256 a3265957ef8784a89e2f71164273cce7cbbf3f1d4a98227bc31557ab889681c2 +cmake-3.13.4-linux-x86_64.sh MD5 1affd6214703c8768cf247ba0bf8b735 diff --git a/native/cmake/Makefile b/native/cmake/Makefile index a577a44ecac..37c7319a7d7 100644 --- a/native/cmake/Makefile +++ b/native/cmake/Makefile @@ -1,5 +1,5 @@ PKG_NAME = cmake -PKG_VERS = 3.20.5 +PKG_VERS = 3.23.4 PKG_EXT = sh PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS)-linux-x86_64.$(PKG_EXT) PKG_DIST_SITE = https://github.com/Kitware/CMake/releases/download/v$(PKG_VERS) diff --git a/native/cmake/digests b/native/cmake/digests index c9537d410b9..5ca5b88f8e1 100644 --- a/native/cmake/digests +++ b/native/cmake/digests @@ -1,3 +1,3 @@ -cmake-3.20.5-linux-x86_64.sh SHA1 9374c18fc7d838f159f87f9af8cc3de4555b8774 -cmake-3.20.5-linux-x86_64.sh SHA256 f582e02696ceee81818dc3378531804b2213ed41c2a8bc566253d16d894cefab -cmake-3.20.5-linux-x86_64.sh MD5 a1ecb8ef5f494d521dd5df44d1be1847 +cmake-3.23.4-linux-x86_64.sh SHA1 7f9850400c534556a03a0e0cad875e6a273e9920 +cmake-3.23.4-linux-x86_64.sh SHA256 97029141b61fc64d50076712669a83dbed9d7b6dd9b1957520d09f7b08ce063e +cmake-3.23.4-linux-x86_64.sh MD5 0643fc8d2a5db8928d8f0ad6838fece9 diff --git a/native/python310/Makefile b/native/python310/Makefile index 7cf46a72aff..c0abfe1a9c5 100644 --- a/native/python310/Makefile +++ b/native/python310/Makefile @@ -1,5 +1,5 @@ PKG_NAME = python310 -PKG_VERS = 3.10.6 +PKG_VERS = 3.10.8 PKG_EXT = tar.xz PKG_DIST_NAME = Python-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.python.org/ftp/python/$(PKG_VERS) @@ -16,6 +16,10 @@ CONFIGURE_ARGS += --without-static-libpython CONFIGURE_ARGS += --without-ensurepip # test modules are required for optimization only CONFIGURE_ARGS += --disable-test-modules +# Uses system default libffi-dev +CONFIGURE_ARGS += --with-system-ffi +# Uses system default libssl-dev +CONFIGURE_ARGS += --with-ssl-default-suites=openssl COMPILE_MAKE_OPTIONS += all @@ -33,7 +37,7 @@ python310_native_post_install: $(WORK_DIR)/python-native.mk @$(RUN) wget https://bootstrap.pypa.io/get-pip.py @$(RUN) $(PYTHON) get-pip.py "pip==22.2.2" --no-setuptools --no-wheel --disable-pip-version-check @$(MSG) Installing setuptools, wheel, cffi and cross env - @$(PIP) --disable-pip-version-check install "setuptools==63.4.3" "wheel==0.37.1" "cffi==1.15.1" "crossenv==1.3.0" + @$(PIP) --disable-pip-version-check install "setuptools==63.4.3" "setuptools-rust==1.5.2" "wheel==0.37.1" "cffi==1.15.1" "crossenv==1.3.0" $(WORK_DIR)/python-native.mk: @echo PIP=$(PIP_NATIVE) >> $@ diff --git a/native/python310/digests b/native/python310/digests index 66ae6ee1db2..ed11742a2cd 100644 --- a/native/python310/digests +++ b/native/python310/digests @@ -1,3 +1,3 @@ -Python-3.10.6.tar.xz SHA1 b5a3c74b281ab2e8e56779bbb9aeead1d92fed02 -Python-3.10.6.tar.xz SHA256 f795ff87d11d4b0c7c33bc8851b0c28648d8a4583aa2100a98c22b4326b6d3f3 -Python-3.10.6.tar.xz MD5 afc7e14f7118d10d1ba95ae8e2134bf0 +Python-3.10.8.tar.xz SHA1 49ca7a5be7f13375e863442fbd9ead893ace3238 +Python-3.10.8.tar.xz SHA256 6a30ecde59c47048013eb5a658c9b5dec277203d2793667f578df7671f7f03f3 +Python-3.10.8.tar.xz MD5 e92356b012ed4d0e09675131d39b1bde diff --git a/spk/duplicity/Makefile b/spk/duplicity/Makefile index 9c28c999213..d0f2ff7baa9 100644 --- a/spk/duplicity/Makefile +++ b/spk/duplicity/Makefile @@ -1,11 +1,18 @@ SPK_NAME = duplicity -SPK_VERS = 0.8.21 -SPK_REV = 8 +SPK_VERS = 1.0.1 +SPK_REV = 9 SPK_ICON = src/duplicity.png BUILD_DEPENDS = cross/python310 DEPENDS = cross/librsync cross/duply +# [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 @@ -25,7 +32,7 @@ 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 v0.8.21 and duply to v2.3.1
2. Update to Python 3.10
3. Update supported backend libraries" +CHANGELOG = "1. Update duplicity to v1.0.1 and duply to v2.4.1" HOMEPAGE = https://duplicity.gitlab.io/duplicity-web/ LICENSE = GPLv2 diff --git a/spk/duplicity/src/requirements-crossenv.txt b/spk/duplicity/src/requirements-crossenv.txt index 5c3c7243378..9f378e2f662 100644 --- a/spk/duplicity/src/requirements-crossenv.txt +++ b/spk/duplicity/src/requirements-crossenv.txt @@ -1,23 +1,26 @@ # pypi source fails as versions either YANKED or uses -postX tag -#duplicity==0.8.21 +duplicity==1.0.1 # gitlab source fails to generate $version # ref: https://gitlab.com/duplicity/duplicity/-/issues/109 -#git+https://gitlab.com/duplicity/duplicity.git@rel.0.8.21#egg=duplicity==0.8.21 +#git+https://gitlab.com/duplicity/duplicity.git@rel.0.8.23#egg=duplicity==0.8.23 -# Using launchpad source instead as functional -https://launchpad.net/duplicity/0.8-series/0.8.21/+download/duplicity-0.8.21.tar.gz#egg=duplicity==0.8.21 +# Using launchpad source as alternate +#https://launchpad.net/duplicity/0.8-series/0.8.23/+download/duplicity-0.8.23.tar.gz#egg=duplicity==0.8.23 -bcrypt==3.2.0 -cffi==1.15.0 -cryptography==3.3.2 -lxml==4.7.1 -msgpack==1.0.3 +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 msgpack-python==0.5.6 netifaces==0.11.0 -protobuf==3.19.1 -psutil==5.9.0 -PyNaCl==1.4.0 +protobuf==4.21.7 +psutil==5.9.1 +PyNaCl==1.5.0 PyYAML==6.0 simplejson==3.17.6 -wrapt==1.13.3 +wrapt==1.14.1 diff --git a/spk/duplicity/src/requirements-pure.txt b/spk/duplicity/src/requirements-pure.txt index da7201de474..2b9e718a282 100644 --- a/spk/duplicity/src/requirements-pure.txt +++ b/spk/duplicity/src/requirements-pure.txt @@ -1,130 +1,157 @@ -## -------------------- -## To update this file: -## -------------------- -## cd ./spksrc/cross/duplicity -## download current package: -## make digests (or make download) -## extract requirements.txt: -## tar -ztvf ../../distrib/duplicity.{PKG_VERS}.tar.gz --no-anchored requirements.txt -## copy and rename requirements.txt: -## cp duplicity-{PKG_VERS}/requirements.txt ./spksrc/spk/duplicity/src/requirements.original.txt -## create update requirements file for package: -## cd ./spksrc/spk/duplicity/src -## /spksrc/native/python38/work-native/install/usr/local/bin/python3 -m venv venv -## . venv/bin/activate -## pip install --upgrade pip -### make some modification in requirements.original.txt -### - remove testing dependencies -### - comment out packages included as cross compiled wheels -### - comment out unsupported dependencies -## pip install -r requirements.original.txt -## pip freeze > requirements-pure.txt -## deactivate -## -------------------- -## This content is generated following the instructions above, except -## that the base and backend requirements are updated separately and -## the results are merged together. -## -------------------- - +# version 1.0.1 snapshot from Oct. 11th 2022 +2to3==1.0 +alabaster==0.7.12 args==0.1.0 -arrow==1.2.1 -attrs==21.4.0 -azure-core==1.21.1 -azure-storage-blob==12.9.0 -b2sdk==1.14.0 -Babel==2.9.1 +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 boto==2.49.0 -boto3==1.20.28 -botocore==1.23.28 -boxsdk==2.14.0 -cachetools==4.2.4 -#certifi -chardet==4.0.0 -charset-normalizer==2.0.10 +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 clint==0.5.1 -debtcollector==2.3.0 -dropbox==11.25.0 -ecdsa==0.17.0 -fasteners==0.16.3 -funcsigs==1.0.2 +#coverage==6.5.0 ==> cross +#cryptography==38.0.2 ==> cross +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 +ecdsa==0.18.0 +fasteners==0.18 +#filelock==3.8.0 ==> py310 future==0.18.2 gdata-python3==3.0.1 -google-api-core==2.3.2 -google-api-python-client==2.33.0 -google-auth==2.3.3 +gitchangelog==3.0.4 +google-api-core==2.10.2 +google-api-python-client==2.64.0 +google-auth==2.12.0 google-auth-httplib2==0.1.0 -google-auth-oauthlib==0.4.6 -googleapis-common-protos==1.54.0 -httplib2==0.20.2 -humanize==3.13.1 -idna==3.3 -importlib-metadata==4.10.0 +google-auth-oauthlib==0.5.3 +googleapis-common-protos==1.56.4 +httplib2==0.20.4 +humanize==4.4.0 +idna==3.4 +imagesize==1.4.1 +iniconfig==1.1.1 ip-associations-python-novaclient-ext==0.2 -iso8601==1.0.2 +iso8601==1.1.0 isodate==0.6.1 -jeepney==0.7.1 -jmespath==0.10.0 +isort==5.10.1 +jaraco.classes==3.2.3 +jeepney==0.8.0 +Jinja2==3.1.2 +jmespath==1.0.1 jottalib==0.5.1 -keyring==23.5.0 -keystoneauth1==4.4.0 +keyring==23.9.3 +keystoneauth1==2.18.0 +#lazy-object-proxy==1.7.1 ==> cross logfury==1.0.1 -#mediafire ### Development Status 3 - Alpha: outdated (Nov 2016), not supported by Python >3.4 +#lxml==4.9.1 ==> cross +markdown-it-py==2.1.0 +#MarkupSafe==2.1.1 ==> cross +mccabe==0.7.0 +mdit-py-plugins==0.3.1 +mdurl==0.1.2 +mediafire==0.5.2 +megatools==0.0.4 mock==4.0.3 monotonic==1.6 -msrest==0.6.21 +more-itertools==8.14.0 +#msgpack==1.0.4 ==> cross +#msgpack-python==0.5.6 ==> cross +msrest==0.7.1 +myst-parser==0.18.1 netaddr==0.8.0 +#netifaces==0.11.0 ==> cross oauth2client==4.1.3 -oauthlib==3.1.1 +oauthlib==3.2.1 os-diskconfig-python-novaclient-ext==0.1.3 os-networksv2-python-novaclient-ext==0.26 -os-service-types==1.7.0 os-virtual-interfacesv2-python-novaclient-ext==0.20 -oslo.config==8.7.1 -oslo.i18n==5.1.0 -oslo.serialization==4.2.0 -oslo.utils==4.12.0 +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.9.1 +paramiko==2.11.0 +pbr==1.10.0 pexpect==4.8.0 -pbr==5.8.0 +#platformdirs==2.5.2 ==> py310 +pluggy==1.0.0 ply==3.11 positional==1.2.1 -prettytable==2.5.0 +prettytable==0.7.2 +#protobuf==4.21.7 ==> cross +#psutil==5.9.2 ==> cross ptyprocess==0.7.0 +py==1.11.0 pyasn1==0.4.8 pyasn1-modules==0.2.8 +pycodestyle==2.9.1 pycparser==2.21 -PyDrive==1.3.1 -PyDrive2==1.10.0 -PyJWT==2.3.0 -pyOpenSSL==21.0.0 -pyparsing==3.0.6 -pyrax==1.9.5 +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 +pyrax==1.10.0 +pystache==0.6.0 +pytest==7.1.3 +pytest-cov==4.0.0 +pytest-runner==6.0.0 python-dateutil==2.8.2 -python-gettext==4.0 -python-keystoneclient==4.3.0 -python-novaclient==17.6.0 -python-swiftclient==3.13.0 -pytz==2021.3 +python-gettext==4.1 +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 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.27.0 -requests-oauthlib==1.3.0 -requests-toolbelt==0.9.1 -rfc3986==1.5.0 -rsa==4.8 -s3transfer==0.5.0 -SecretStorage==3.3.1 -setuptools-scm==6.3.2 -six==1.16.0 -stevedore==3.5.0 -stone==3.2.1 +requests==2.28.1 +requests-oauthlib==1.3.1 +requests-toolbelt==0.10.0 +rfc3986==2.0.0 +rsa==4.9 +s3transfer==0.6.0 +SecretStorage==3.3.3 +setuptools-scm==7.0.5 +#simplejson==3.17.6 ==> cross +#six==1.16.0 ==> py310 +snowballstemmer==2.2.0 +Sphinx==5.2.3 +sphinx-rtd-theme==1.0.0 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==2.0.0 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.5 +stevedore==1.20.1 +stone==3.3.1 tlslite-ng==0.7.6 -tomli==2.0.0 -tqdm==4.62.3 +tomli==2.0.1 +tomlkit==0.11.5 +tox==3.26.0 +tqdm==4.64.1 +typing_extensions==4.4.0 uritemplate==4.1.1 -urllib3==1.26.7 -wcwidth==0.2.5 -zipp==3.7.0 +urllib3==1.25.11 +#virtualenv==20.16.5 ==> py310 +#wrapt==1.14.1 ==> cross diff --git a/spk/python2/Makefile b/spk/python2/Makefile index f30e588d1e0..0d9ec437941 100644 --- a/spk/python2/Makefile +++ b/spk/python2/Makefile @@ -9,7 +9,7 @@ DEPENDS = cross/busybox cross/python2 # Cross-compiled libraries and tools DEPENDS += cross/setuptools_py2 cross/wheel cross/pip_py2 -DEPENDS += cross/cryptography cross/cffi cross/bcrypt +DEPENDS += cross/cryptography-legacy cross/cffi cross/bcrypt # Cross-compiled wheels DEPENDS += cross/lxml cross/m2crypto cross/msgpack-python cross/pillow_py2 diff --git a/spk/python310/Makefile b/spk/python310/Makefile index c28160debe7..79adf0aaa6e 100644 --- a/spk/python310/Makefile +++ b/spk/python310/Makefile @@ -1,7 +1,7 @@ SPK_NAME = python310 -SPK_VERS = 3.10.6 +SPK_VERS = 3.10.8 SPK_VERS_MAJOR_MINOR = $(word 1,$(subst ., ,$(SPK_VERS))).$(word 2,$(subst ., ,$(SPK_VERS))) -SPK_REV = 11 +SPK_REV = 12 SPK_ICON = src/python3.png DEPENDS = cross/$(SPK_NAME) @@ -13,7 +13,7 @@ DESCRIPTION_FRE = Langage de programmation Python. DESCRIPTION_SPN = Lenguaje de programaciĆ³n Python. STARTABLE = no DISPLAY_NAME = Python 3.10 -CHANGELOG = "1. Update to Python 3.10.6
2. Update to OpenSSL 1.1.1q" +CHANGELOG = "1. Update to Python 3.10.8" HOMEPAGE = https://www.python.org LICENSE = PSF @@ -38,82 +38,33 @@ WHEELS_PURE_PYTHON_PACKAGING_ENABLE = 1 ## various wheels. Uncoment to enable. ## -include ../../mk/spksrc.common.mk +# # [bcrypt] +# ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ +# ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ + +# # [cryptography] +# # To generate py36-abi3 limited API: +# DEPENDS += cross/cryptography +# # To generate py310-py310 regular build using src/requirements-crossenv.txt: +# # NOTE: It's not possible to build py36-abi3 limited API using pip due to PEP517 +# ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ +# ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ -# [gevent] +# # [gevent] # DEPENDS += cross/libev cross/c-ares # ENV += GEVENTSETUP_EMBED_CARES=FALSE # ENV += GEVENTSETUP_EMBED_LIBEV=FALSE -# [libtorrent] 2.0.6 -# # archs lacking C++14 (and c++1y) compiler (88f6281, hi3535 and ppc archs except QorIQ) -# UNSUPPORTED_ARCHS += $(ARMv5_ARCHS) $(ARMv7L_ARCHS) $(OLD_PPC_ARCHS) -# DEPENDS += cross/openssl cross/boost_1.78 cross/geoip -# BOOST_LIBRARIES += system python chrono random -# BOOST_BUILD_PATH=$(WORK_DIR)/boost_1_78_0 -# ENV += BOOST_LIBRARIES="$(BOOST_LIBRARIES)" -# ENV += BOOST_BUILD_PATH="$(BOOST_BUILD_PATH)" -# ENV += PATH=$(BOOST_BUILD_PATH):$(PATH) -# WHEELS_BUILD_ARGS += [libtorrent] -# WHEELS_BUILD_ARGS += build_ext -# WHEELS_BUILD_ARGS += --b2-args=libtorrent-python-pic=on -# ifeq ($(findstring $(ARCH),$(32bit_ARCHS)),$(ARCH)) -# WHEELS_BUILD_ARGS += --b2-args=address-model=32 --no-autoconf=address-model -# endif -# # libtorrent > 2.x are DSM 7 only due to c++14 minimal requirement -# # Unless c++1y is fixed: https://github.com/arvidn/libtorrent/issues/6868 -# REQUIRED_MIN_DSM = 7.0 -# UNSUPPORTED_ARCHS += comcerto2k -# # ifeq ($(call version_lt, $(call version_gcc), 5.0),1) -# # WHEELS_BUILD_ARGS += --b2-args=cxxstd=1y -# # endif - -# [libtorrent] 1.2.16 -# # archs lacking C++11 compiler (88f6281, hi3535 and ppc archs except QorIQ) -# UNSUPPORTED_ARCHS += $(ARMv5_ARCHS) $(ARMv7L_ARCHS) $(OLD_PPC_ARCHS) -# DEPENDS += cross/openssl cross/boost_1.70 cross/geoip cross/libiconv -# BOOST_LIBRARIES += system python chrono random -# BOOST_BUILD_PATH=$(WORK_DIR)/boost_1_70_0 -# ENV += BOOST_LIBRARIES="$(BOOST_LIBRARIES)" -# ENV += BOOST_BUILD_PATH="$(BOOST_BUILD_PATH)" -# ENV += PATH=$(BOOST_BUILD_PATH):$(PATH) -# WHEELS_BUILD_ARGS += [libtorrent] -# WHEELS_BUILD_ARGS += build_ext -# WHEELS_BUILD_ARGS += --b2-args=libtorrent-python-pic=on -# ifeq ($(findstring $(ARCH),$(32bit_ARCHS)),$(ARCH)) -# WHEELS_BUILD_ARGS += --b2-args=address-model=32 --no-autoconf=address-model -# endif -# ifeq ($(call version_lt, $(call version_gcc), 5.0),1) -# WHEELS_BUILD_ARGS += --b2-args=cxxstd=11 -# endif - -# [lxml] +# # [lxml] # DEPENDS += cross/libxml2 # DEPENDS += cross/libxslt -# [mysqlclient] +# # [mysqlclient] # DEPENDS += cross/mysql-connector-c cross/mariadb-connector-c # ENV += MYSQLCLIENT_CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/include/mysql -I$(STAGING_INSTALL_PREFIX)/include/mariadb -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR)" # ENV += MYSQLCLIENT_LDFLAGS="$(LDFLAGS)" -# [numpy] -# # Last known working version: 1.21.5 -# # gcc-4.6.4 failed with exit status 1 -# # https://github.com/numpy/numpy/issues/20664 -# UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) - -# [numpy] -# # Fix wheel building with older compilers -# ifeq ($(call version_lt, $(TC_GCC), 5.0),1) -# WHEELS_CPPFLAGS = [numpy] -std=c++0x -# # workaround for compiler bug: -# # https://github.com/numpy/numpy/issues/13622 -# ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH)) -# WHEELS_CFLAGS = [numpy] -O0 -# endif -# endif - -# [Pillow] +# # [Pillow] # DEPENDS += cross/freetype cross/libjpeg cross/zlib # WHEELS_BUILD_ARGS += [Pillow] # WHEELS_BUILD_ARGS += build_ext @@ -122,23 +73,99 @@ include ../../mk/spksrc.common.mk # WHEELS_BUILD_ARGS += --enable-jpeg # WHEELS_BUILD_ARGS += --enable-zlib -# [pycares] +# # [pycares] # DEPENDS += cross/c-ares # ENV += PYCARES_USE_SYSTEM_LIB=1 -# [pycurl] +# # [pycurl] # DEPENDS += cross/curl # ENV += PYCURL_CURL_CONFIG=$(STAGING_INSTALL_PREFIX)/bin/curl-config -# [PyNaCl] +# # [PyNaCl] # DEPENDS += cross/libsodium # ENV += SODIUM_INSTALL=system -# [PyYAML] +# # [PyYAML] # DEPENDS += cross/libyaml +include ../../mk/spksrc.common.mk + +# # [libtorrent] - generic +# UNSUPPORTED_ARCHS += $(ARMv5_ARCHS) $(ARMv7L_ARCHS) $(OLD_PPC_ARCHS) +# DEPENDS += cross/openssl +# DEPENDS += cross/boost_1.78 +# DEPENDS += cross/geoip +# BOOST_LIBRARIES += system python chrono random +# BOOST_BUILD_PATH=$(WORK_DIR)/boost_1_78_0 +# ENV += BOOST_LIBRARIES="$(BOOST_LIBRARIES)" +# ENV += BOOST_BUILD_PATH="$(BOOST_BUILD_PATH)" +# ENV += PATH=$(BOOST_BUILD_PATH):$(PATH) +# WHEELS_BUILD_ARGS += [libtorrent] +# WHEELS_BUILD_ARGS += build_ext +# WHEELS_BUILD_ARGS += --b2-args=libtorrent-python-pic=on +# ifeq ($(findstring $(ARCH),$(32bit_ARCHS)),$(ARCH)) +# WHEELS_BUILD_ARGS += --b2-args=address-model=32 --no-autoconf=address-model +# endif + +# # [libtorrent] 2.0.7 +# # DSM7 only due to c++14 minimal requirement +# # Unless c++1y is fixed: https://github.com/arvidn/libtorrent/issues/6868 +# # archs lacking C++14 compiler (88f6281, hi3535, PPC and comcerto2k) +# UNSUPPORTED_ARCHS += comcerto2k + +# # [numpy] > 1.21.6 +# # Last known working version: 1.21.6 +# # gcc-4.6.4 failed with exit status 1 +# # https://github.com/numpy/numpy/issues/20664 +# UNSUPPORTED_ARCHS += $(ARMv5_ARCHS) + +# # [numpy] > 1.22.4 +# UNSUPPORTED_ARCHS += $(ARMv7L_ARCHS) + include ../../mk/spksrc.spk.mk +# # [libtorrent] +# ifeq ($(call version_ge, ${TC_GCC}, 7.5),1) +# # [libtorrent] 2.0.7 +# WHEELS += src/requirements-crossenv-DSM7.txt +# # Ensure build arguments matches boost_1.78 +# WHEELS_CXXFLAGS += [libtorrent] +# WHEELS_CXXFLAGS += -D_GLIBCXX_USE_C99_MATH +# WHEELS_CXXFLAGS += -D_GLIBCXX_HAVE_OBSOLETE_ISNAN +# WHEELS_CXXFLAGS += -D_GLIBCXX_HAVE_OBSOLETE_ISINF +# else +# # [libtorrent] 1.2.17 +# WHEELS += src/requirements-crossenv-DSM6.txt +# DEPENDS += cross/libiconv +# # Ensure build arguments matches boost +# WHEELS_BUILD_ARGS += --b2-args=cxxstd=11 +# endif + +# # [numpy] +# # Fix wheel building with older compilers +# ifeq ($(call version_le, ${TC_GCC}, 5.0),1) +# WHEELS_CPPFLAGS += [numpy] -std=c++0x +# # workaround for compiler bug: +# # https://github.com/numpy/numpy/issues/13622 +# ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH)) +# WHEELS_CFLAGS += [numpy] -O0 +# endif +# endif + +# # [pycryptodome] +# ifeq ($(call version_ge, ${TC_GCC}, 4.9),1) +# WHEELS_CFLAGS += [pycryptodome] -std=c11 +# else +# WHEELS_CFLAGS += [pycryptodome] -std=c99 +# endif + +# # [pycryptodomex] +# ifeq ($(call version_ge, ${TC_GCC}, 4.9),1) +# WHEELS_CFLAGS += [pycryptodomex] -std=c11 +# else +# WHEELS_CFLAGS += [pycryptodomex] -std=c99 +# endif + .PHONY: python310_extra_install python310_extra_install: @$(MSG) - Remove test folder diff --git a/spk/python310/src/requirements-abi3.txt b/spk/python310/src/requirements-abi3.txt index cc57aa61d1b..795bf32d016 100644 --- a/spk/python310/src/requirements-abi3.txt +++ b/spk/python310/src/requirements-abi3.txt @@ -4,5 +4,9 @@ ## various wheels. Uncoment to enable. ## -# pycryptodome==3.12.0 -# pycryptodomex==3.12.0 +# [pycryptodome] + [pycryptodomex] +# Require: +# - CFLAGS=-sdt=c99 < gcc-4.9 +# - CFLAGS=-sdt=c11 >= gcc-4.9 +# pycryptodome==3.15.0 +# pycryptodomex==3.15.0 diff --git a/spk/python310/src/requirements-crossenv-DSM6.txt b/spk/python310/src/requirements-crossenv-DSM6.txt new file mode 100644 index 00000000000..70f09b9f790 --- /dev/null +++ b/spk/python310/src/requirements-crossenv-DSM6.txt @@ -0,0 +1,6 @@ +# [libtorrent] 1.2.17 +# Depends: openssl, boost 1.78, geoip, libiconv +# Require environment variables +# BOOST_LIBRARIES +# BOOST_BUILD_PATH +git+https://github.com/arvidn/libtorrent.git@v1.2.17#egg=libtorrent==1.2.17 diff --git a/spk/python310/src/requirements-crossenv-DSM7.txt b/spk/python310/src/requirements-crossenv-DSM7.txt new file mode 100644 index 00000000000..c79010accdb --- /dev/null +++ b/spk/python310/src/requirements-crossenv-DSM7.txt @@ -0,0 +1,9 @@ +# [libtorrent] 2.0.7 +# Depends: openssl, boost 1.78, geoip +# Require environment variables +# BOOST_LIBRARIES +# BOOST_BUILD_PATH +# Only supported on DSM7 armv7, aarch64, x64 +git+https://github.com/arvidn/libtorrent.git@v2.0.7#egg=libtorrent==2.0.7 +# Use RC_2_0 for latest development snapshots +# git+https://github.com/arvidn/libtorrent.git@RC_2_0#egg=libtorrent==2.0.7 diff --git a/spk/python310/src/requirements-crossenv.txt b/spk/python310/src/requirements-crossenv.txt index 9a76a7b92de..cc51059919d 100644 --- a/spk/python310/src/requirements-crossenv.txt +++ b/spk/python310/src/requirements-crossenv.txt @@ -4,25 +4,27 @@ ## various wheels. Uncoment to enable. ## -# Next update will require rustc -# cryptography==3.3.2 +# [cryptography] +# Require environment variables +# PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/ +# PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/ +# cryptography==38.0.1 # Requirement for cryptography -# cffi==1.15.0 +# cffi==1.15.1 # commonly used cross-compiled wheels # All tested and can be enabled but may conflict # with local python apps requirements -# bcrypt==3.2.0 -# greenlet==1.1.2 -# immutables==0.16 +# bcrypt==4.0.0 +# greenlet==1.1.3 +# immutables==0.19 # MarkupSafe==2.1.1 # msgpack-python==0.5.6 # netifaces==0.11.0 -# psutil==5.9.0 -# regex==2022.3.15 -# SQLAlchemy==1.4.32 +# regex==2022.9.13 +# SQLAlchemy==1.4.41 # zope.interface==5.4.0 # [gevent] @@ -32,55 +34,46 @@ # GEVENTSETUP_EMBED_LIBEV=FALSE # gevent==21.12.0 -# [libtorrent] 1.2.16 -# Depends: openssl, boost 1.70, geoip, libiconv -# Require environment variables -# BOOST_LIBRARIES -# BOOST_BUILD_PATH -# git+https://github.com/arvidn/libtorrent.git@v1.2.16#egg=libtorrent==1.2.16 - -# [libtorrent] 2.0.6 -# Depends: openssl, boost 1.78, geoip -# Require environment variables -# BOOST_LIBRARIES -# BOOST_BUILD_PATH -# Only supported on DSM7 armv7, aarch64, x64 -# git+https://github.com/arvidn/libtorrent.git@v2.0.6#egg=libtorrent==2.0.6 -# Use RC_2_0 for latest development snapshots -# git+https://github.com/arvidn/libtorrent.git@RC_2_0#egg=libtorrent==2.0.6 - # [lxml] # Depends: libxml2, libxslt -# lxml==4.8.0 +# lxml==4.9.1 # [mysqlclient] # Depends: mysql-connector-c, mariadb-connector-c # Require environment variables # MYSQLCLIENT_CFLAGS # MYSQLCLIENT_LDFLAGS -# mysqlclient==2.1.0 +# mysqlclient==2.1.1 # [numpy] # - armv5 (88f6281-6.1) Last known working version -# numpy==1.21.5 +# numpy==1.21.6 + +# [numpy] +# - armv7L (hi3535-6.1) Last known working version +# numpy==1.22.4 # [numpy] # - Require Cython in cross/python310 crossenv # - DSM6 require WHEELS_CFLAGS=-std=c++0x # - aarch64-6.1 require workaround WHEELS_CFLAGS=-O0 # ref: https://github.com/numpy/numpy/issues/13622 -# numpy==1.22.3 +# numpy==1.23.3 # [Pillow] # Require --global-options arguments # WHEELS_BUILD_ARGS = [Pillow] build_ext --disable-platform-guessing -# Pillow==9.0.1 +# Pillow==9.2.0 + +# [psutil] +# Last known version to build on armv5/ppc +# psutil==5.9.1 # [pycares] # Depends: c-ares # Require environment variables # PYCARES_USE_SYSTEM_LIB=1 -# pycares==4.1.2 +# pycares==4.2.2 # [pycurl] # Depends: curl @@ -105,7 +98,7 @@ # [ujson] # - Require setuptools-scm in cross/python310 crossenv -# ujson==5.1.0 +# ujson==5.5.0 # [webrtcvad] # webrtcvad==2.0.10 # requires unreleased version at specific commit for qoriq arch diff --git a/spk/python310/src/requirements-pure.txt b/spk/python310/src/requirements-pure.txt index fd2a6a9a9d9..b8acf898ca0 100644 --- a/spk/python310/src/requirements-pure.txt +++ b/spk/python310/src/requirements-pure.txt @@ -1,24 +1,24 @@ # basic default wheels -#pip==22.0.4 ==> Always install latest version (service-setup.sh:install_python_virtualenv) +#pip==22.2.2 ==> Always install latest version (service-setup.sh:install_python_virtualenv) # Always match what's in cross/python310/Makefile setuptools==63.4.3 wheel==0.37.1 # Always use latest version available -# certifi==2021.10.8 +# certifi==2022.9.24 certifi # Mandatory for python application # to create their local virtualenv # in order to install wheels within # their running environment -virtualenv==20.16.3 +virtualenv==20.16.5 # Other mandatory wheels that # gets install by default as # basic dependencies of above -distlib==0.3.5 +distlib==0.3.6 filelock==3.8.0 platformdirs==2.5.2 six==1.16.0 diff --git a/spk/python38/Makefile b/spk/python38/Makefile index b5503846583..fcc7fc311c2 100644 --- a/spk/python38/Makefile +++ b/spk/python38/Makefile @@ -8,7 +8,7 @@ DEPENDS = cross/$(SPK_NAME) DEPENDS += cross/setuptools cross/pip cross/wheel # Cross-compiled wheels DEPENDS += cross/bcrypt cross/cffi -DEPENDS += cross/cryptography cross/greenlet cross/immutables +DEPENDS += cross/cryptography-legacy cross/greenlet cross/immutables DEPENDS += cross/lxml cross/msgpack-python DEPENDS += cross/pycrypto cross/pycurl DEPENDS += cross/pyyaml cross/ruamel.yaml cross/sqlite