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