Skip to content

Commit 8aab04e

Browse files
th0ma7hgy59
andauthored
dynamic crossenv + python3*-wheels + python310-313 updates (#6282)
* python311: Remove optional wheels (to be migrated to its own spk) * python313: Initial commit, fails to build on readline * python-wheels: First attempt, to be further developed * py311: Re-enable lto * python313: First working build * python313: Remove pgo optimizations as non-functional in cross-builds * python-wheels: First integration of additional wheels for testing * mariadb-connector-c: Update from version 3.3.5 to 3.3.11 and fix build failure * python313: No longer support armv5 arch due to c++11 support needed * spksrc.crossenv.mk: First iteration of on-demand crossenv creation * spksrc.crossenv.mk: Print crossenv resulting package list * py310-311-313: Remove crossenv creation * mk/crossenv: Remove aiohttp example as obsolete * mk/crossenv: disable meson and scikit-build-core temporarily * spksrc.crossenv.mk: Misc fixes * python-module.mk: Make compatible with spksrc.crossenv.mk * wheel.mk: Make compatible with spksrc.crossenv.mk * crossenv.mk: Allow building from PYTHON_PACKAGE dependend spk * py310-311: Fix lto vs pgo optimizations * wheel.mk: Use $name-$version using - instead of == for crossenv * python.mk: do not symlink crossenv and python-cc.mk * python.mk: Move mandatory PYO3_* variables for rust cross-compiling * crossenv.mk: Fix crossenv creation and pip tool calls * crossenv/requirements-default.txt: Update to latest wheel versions * spk.mk: Add a crossenvclean clean-up option * python.mk + crossenv.mk: Functional versions * python.mk: Further clean-up and removal of duplicate variables * py311-312-312: Update pure requirements to latest versions * py310-311-313: Further clean-up Makefile from unused variables * py310-311: No longer need to remove test folder * py313: Fix symlink creation * crossenv.mk: Include missing OPENSSL_*_DIR * spk.mk: Update crossenvclean and add crossenvcleanall * spk.mk: crossenvclean remove cookie file * crossenv: Fix python version and use status cookie * crossenv-default: Enforce using msgpack==1.0.5 for py313 builds * fix crossenv installation by packages using prebuilt python - spksrc.crossenv.mk: SPK_NAME and PYTHON_PACKAGE_WORK_DIR must be defined when PYTHON_PACKAGE is used * fix python311 for qoriq * spksrc.python-wheel.mk: fix include of python-cc.mk * rdiff-backup: add crossenv for frozenlist * rdiff-backup: add crossenv for yarl * fix for version less crossenv requirements - use dash (-) as version separator - rdiff-backup: version less requirements for frozenlist and yarl - adjust logging * python.mk: revert support for ADDITIONAL_CROSSENV_WHEELS - obsolete with wheel specific crossenv * Revert "borgbackup: Package bump to force build" This reverts commit e95af06. * use python -m build to create wheels with python-wheel.mk - add build to default crossenv - fix python-wheel.mk (include spksrc.crossenv.mk) - use workaround to access crossenv to build wheels with python-wheel.mk for unknown reason the CROSSENV variable is empty, use $(CROSSENV_PATH)/bin/activate instead * ffsync: fix build of cross/cryptography - remove wrong definitions of OPENSSL_LIB_DIR and OPENSSL_INCLUDE_DIR; correct values are imported from spksrc.crossenv.mk * spksrc.python-wheel.mk: Fix wheel building * DTLSSocket: Update from 0.1.16 to 0.2.2 * homeassistant: Fix building bcrupt and cryptography * spksrc.crossenv.mk: Ensure Python=* has hostpython to avoid errors * crossenv/requirements-numpy-1.24.4.txt: Definition for numpy * python.mk: Remove zlib at source to avoir re-building * dtlssocket: Add -std=c99 for gcc < 5 * python.mk: Erase only $(ARCH)-$(TCVERSION) related files * deluge: Update wheels and fix build * boost_1.82: Allow builds from python.mk * cross/cryptography: crossenv already has cffi and pycparser * crossenv.mk: Add debug traces to find issue on gh * crossenv.mk: Testing alternative method to get python version dir * crossenv.mk: Send msg to status file * wheel.mk: Remove trailing # comment using $${wheel%% *} * crossenv.mk: Use $(WORK_DIR)/pip caching dir for crossenv creation * python-wheels: include wheels in package * update github build action - add evaluation of python313 dependent packages - evaluate packages to build and changed dependency folders in build.yml to avoid overflow of bash variables (limited to 1024 chars) (fixes #6284) * adjust variable GH_DEPENDENCY_FOLDERS * real fix for #6284 - python dependent packages with name sorted after python31* where removed from packages to build (in this context: python-wheels and rdiff-backup) * fix github prepare script - add space to separate packages * crossenv.mk: Miscelanious cleanups * mariadb-connector-c: Fix compilation for some archs * fix package name substitution in prepare.sh * Update mk/spksrc.crossenv.mk - typo Co-authored-by: hgy59 <hpgy59@gmail.com> * python311-wheels: Rename to reference exact matching python version * native/python313: Sync wheels with default crossenv versions * python312: Initial package * mariadb-connector-c: Fix build using spksrc.python.mk * prepare.sh: keep python311-wheels to build * fix python312/PLIST * cleanup python - python311-wheels for ARMv7L (crossenv for numpy-1.22.4) - didn't fix it - add PLIST files for python312 and python313 - remove lxml==4.9.3 in python311-wheels/src/requirements-crossenv.txt (build only lxml==5.3.0) * fix INFO file generation - use explicit /bin/sh to fix language specific description generation * python packages: further cleanup - update unsupported archs in cross Makefiles - python311-wheels: avoid multiple versions of greenlet * wheel-env.mk: Bump default abi3 to match py311 with cp37 * crossenv.mk: Reduce total amount of makefile variable definitions * crossenv.mk: Empty MAKEFLAGS= variable when calling crossenv recipe * crossenv.mk: Fix missing variable definition * tc.mk: Enhance meson toolchain file declarations * wheel.mk: Add meson wheel compiling ability * python311-wheels: Add new compatible numpy versions * python312-wheels: Wheel testing package against py312 * Update spk/python312-wheels/Makefile Co-authored-by: hgy59 <hpgy59@gmail.com> * numpy-1.25.1: Adding crossenv requirement file * crossenv.mk: Fix missing definitions for HOST and BUILD_ARCH * wheel.mk: sort wheelhouse requirement files to avoid duplicates * python31*-wheels: various adjustments * restore python311-wheels/src/requirements-crossenv-greenlet-v3.txt * build.sh: add python312 and python313 to packages to keep * python.mk: Add xz (lzma) to the library exception list * python311-wheels: Sync greenlet requirement files with py312-wheels * python.mk: Use *_EXCLUDE variables to simplify later additions * python310: Update from version 3.10.15 to 3.10.16 * python311: Update from version 3.11.10 to 3.11.11 * python312-python313: Sync requirement files with py310-311 * python312: Update from version 3.12.7 to 3.12.8 * python313: Update from version 3.13.0 to 3.13.1 * py311-312-wheels: Fix greenlet 3.x support with gcc <= 8 * crossenv.mk: Move PATH and LD_LIBRARY_PATH to be crossenv specific * define build-python when not in path * minimize specific crossenv for frozenlist and yarl * remove unsupported configure args - --with-system-ffi is not supported (python312, python313) - --with-system-ffi is "is ignored on this platform" (python311) * revert fullpath for build-python for python310 and python311 - python310 and python311 require the path to build python for "generate-posix-vars" * python312-wheels: fix build - add wheelhouse to package - many wheels need -std=c11 for gcc4 - llfuse wheel fails to build (temp. excluded) - remove ARMv5 specific handling - udpate rpds_py==0.20.0 and remove requirements-crossenv-rpds-py.txt (not referenced) - add specific crossenv for pydantic_core * revert unintended change * spksrc.wheel.mk: add PATH for build of pure-python-wheels * Revert move of crossenv files temporarely Created a patch from that reverted comit to first focus on other issues found then return on this. * crossenv.mk: Fix PATH and LD_LIBRARY_PATH for native and crossenv * py310-313: Fix --with-build-python using $(PYTHON_NATIVE) * py310: re-revert fix --with-build-python only for py310 * crossenv.mk: Move crossenv definitions to spk/python3* - Simplified shell calls to avoid defining SHELL = /bin/bash - Added at ifneq ($(wildcard file-wheel file-default)) as at early makefile variable asignation path will not have been determined just yet, thus blocking when trying to determine default version values extracted from variable within requirement files - Fixed CROSSENV_CONFIG_PATH so it always refer back to $(PYTHON_WORK_DIR) to ensure it works both from spk/python3* and from python related spk projects called using spksrc.python.mk Co-Author: hgy59 <hpgy59@gmail.com> * python311-wheels: Update numpy requirements Numpy fails to build starting with version >= 1.26. May require to be migrated to use cross/numpy with proper wheel building including meson toolchain file parameter passing. * python-wheels: Cleanups and comment regarding late WHEELS definitions * python-wheels: Add pure python wheel serving as example * spksrc.wheel.mk: Numerous cleanups & reduced shell calls * python311-wheels: Fix numpy for x64 DSM-7.1 Fails to build numpy 1.25.2 but ok with 1.25.1 * python311: Add crossenv definition for numpy-1.25.1 for x64 DSM-7.1 * python311-wheels: Extend Pillows dependencies webp, tiff, imagequant * wheel.mk: Remove unused PATH and LD_LIBRARY_PATH to cross building * deluge: Update to latest wheel versions * wheel.mk: pip build environment variable fixes + cleanups * boost*: Fix loading crossenv python-cc.mk * wheel.mk: Additional fixes mainly around PATH handling * tc.mk: Remove sysroot from meson definition as breaking glib --------- Co-authored-by: hgy59 <hpgy59@gmail.com>
1 parent b21182e commit 8aab04e

File tree

119 files changed

+4050
-706
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+4050
-706
lines changed

.github/actions/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ if [ -n "$API_KEY" ] && [ "$PUBLISH" == "true" ]; then
6161
fi
6262

6363
# Build
64-
PACKAGES_TO_KEEP="synocli-videodriver ffmpeg5 ffmpeg7 python310 python311"
64+
PACKAGES_TO_KEEP="synocli-videodriver ffmpeg5 ffmpeg7 python310 python311 python312 python313"
6565
for package in ${build_packages}
6666
do
6767
echo "::group:: ---- build ${package}"

.github/actions/prepare.sh

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
# Evaluate packages to build and referenced source files to download.
66
#
77
# Functions:
8-
# - Evaluate all packages to build depending on files defined in ${GH_FILES}.
8+
# - Build all packages defined by ${USER_SPK_TO_BUILD} and ${GH_SPK_PACKAGES}
9+
# - Evaluate additional packages to build depending on changed folders defined in ${GH_DEPENDENT_PACKAGES}.
910
# - synocli-videodriver is moved to head of packages to build first if triggered by its ffmpeg5-7
10-
# - python310-311 and ffmpeg5-7 are moved to head of remaining packages to build when triggered by its own or a dependent.
11+
# - python310-313 and ffmpeg5-7 are moved to head of remaining packages to build when triggered by its own or a dependent.
1112
# - Referenced native and cross packages of the packages to build are added to the download list.
1213

1314
set -o pipefail
@@ -18,12 +19,8 @@ echo "::group:: ---- find dependent packages"
1819
make setup-synocommunity
1920
DEFAULT_TC=$(grep DEFAULT_TC local.mk | cut -f2 -d= | xargs)
2021

21-
# filter for changes made in the spk directories and take unique package name (without spk folder)
22-
SPK_TO_BUILD+=" "
23-
SPK_TO_BUILD+=$(echo "${GH_FILES}" | tr ' ' '\n' | grep -oP "^spk/\K[^\/]*" | sort -u | tr '\n' ' ')
24-
25-
# filter for changes made in the cross and native directories and take unique package name (including cross or native folder)
26-
DEPENDENT_PACKAGES=$(echo "${GH_FILES}" | tr ' ' '\n' | grep -oP "(cross|native)/[^\/]*" | sort -u | tr '\n' ' ')
22+
# all packages to build from changes or manual definition
23+
SPK_TO_BUILD="${USER_SPK_TO_BUILD} ${GH_SPK_PACKAGES} "
2724

2825
# get dependency list
2926
# dependencies in this list include the cross or native folder (i.e. native/python cross/glib)
@@ -37,20 +34,20 @@ do
3734
done
3835

3936
# search for dependent spk packages
40-
for package in ${DEPENDENT_PACKAGES}
37+
for package in ${GH_DEPENDENCY_FOLDERS}
4138
do
4239
echo "===> Searching for dependent package: ${package}"
4340
packages=$(echo "${DEPENDENCY_LIST}" | grep " ${package} " | grep -o ".*:" | tr ':' ' ' | sort -u | tr '\n' ' ')
4441
echo "===> Found: ${packages}"
45-
SPK_TO_BUILD+=${packages}
42+
SPK_TO_BUILD+=" ${packages}"
4643
done
4744

4845
# fix for packages with different names
49-
if [ "$(echo ${SPK_TO_BUILD} | grep -ow nzbdrone)" != "" ]; then
50-
SPK_TO_BUILD=$(echo "${SPK_TO_BUILD}" | tr ' ' '\n' | grep -vw "nzbdrone" | tr '\n' ' ')" sonarr3"
46+
if [ "$(echo ${SPK_TO_BUILD} | grep -o ' nzbdrone ')" != "" ]; then
47+
SPK_TO_BUILD=$(echo "${SPK_TO_BUILD}" | tr ' ' '\n' | grep -v "^nzbdrone$" | tr '\n' ' ')" sonarr3"
5148
fi
52-
if [ "$(echo ${SPK_TO_BUILD} | grep -ow python)" != "" ]; then
53-
SPK_TO_BUILD=$(echo "${SPK_TO_BUILD}" | tr ' ' '\n' | grep -vw "python" | tr '\n' ' ')" python2"
49+
if [ "$(echo ${SPK_TO_BUILD} | grep -o ' python ')" != "" ]; then
50+
SPK_TO_BUILD=$(echo "${SPK_TO_BUILD}" | tr ' ' '\n' | grep -v "^python$" | tr '\n' ' ')" python2"
5451
fi
5552

5653
# remove duplicate packages
@@ -65,7 +62,7 @@ for i in {5..7}; do
6562
for package in ${packages}
6663
do
6764
if [ "$(echo ffmpeg${i} ${ffmpeg_dependent_packages} | grep -ow ${package})" != "" ]; then
68-
packages_without_ffmpeg=$(echo "${packages}" | tr ' ' '\n' | grep -v "ffmpeg${i}" | tr '\n' ' ')
65+
packages_without_ffmpeg=$(echo "${packages}" | tr ' ' '\n' | grep -v "^ffmpeg${i}\$" | tr '\n' ' ')
6966
packages="ffmpeg${i} ${packages_without_ffmpeg}"
7067
break
7168
fi
@@ -80,22 +77,22 @@ videodrv_dependent_packages=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile"
8077
for package in ${packages}
8178
do
8279
if [ "$(echo synocli-videodriver ${videodrv_dependent_packages} | grep -ow ${package})" != "" ]; then
83-
packages_without_videodrv=$(echo "${packages}" | tr ' ' '\n' | grep -v "synocli-videodriver" | tr '\n' ' ')
80+
packages_without_videodrv=$(echo "${packages}" | tr ' ' '\n' | grep -v "^synocli-videodriver\$" | tr '\n' ' ')
8481
packages="synocli-videodriver ${packages_without_videodrv}"
8582
break
8683
fi
8784
done
8885

89-
# for python (310, 311) find all packages that depend on them
90-
for py in python310 python311; do
86+
# for python (310, 311, 312, 313) find all packages that depend on them
87+
for py in python310 python311 python312 python313; do
9188
python_dependent_packages=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile" -exec grep -Ho "PYTHON_PACKAGE = ${py}" {} \; | grep -Po ".*spk/\K[^/]*" | sort | tr '\n' ' ')
9289

9390
# If packages contain a package that depends on python (or is python), then ensure
9491
# relevant python spk is first in list
9592
for package in ${packages}
9693
do
9794
if [ "$(echo ${py} ${python_dependent_packages} | grep -ow ${package})" != "" ]; then
98-
packages_without_python=$(echo "${packages}" | tr ' ' '\n' | grep -v "${py}" | tr '\n' ' ')
95+
packages_without_python=$(echo "${packages}" | tr ' ' '\n' | grep -v "^${py}\$" | tr '\n' ' ')
9996
packages="${py} ${packages_without_python}"
10097
break
10198
fi

.github/workflows/build.yml

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,26 +84,31 @@ jobs:
8484
fetch-depth: 0
8585
persist-credentials: false
8686

87-
- name: Get changed files for pull request
87+
- name: Get changed spk_packages and dependency_folders for pull request
8888
if: github.event_name == 'pull_request'
89-
id: getfile_pr
89+
id: getchanges_pr
9090
run: |
91-
git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | xargs
92-
echo "files=$(git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | xargs)" >> $GITHUB_OUTPUT
91+
git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | grep -oP "^spk/\K[^\/]*" | sort -u | xargs
92+
echo "spk_packages=$(git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | grep -oP "^spk/\K[^\/]*" | sort -u | xargs)" >> $GITHUB_OUTPUT
93+
git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | grep -oP "(cross|native)/[^\/]*" | sort -u | xargs
94+
echo "dependency_folders=$(git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | grep -oP "(cross|native)/[^\/]*" | sort -u | xargs)" >> $GITHUB_OUTPUT
9395
94-
- name: Get changed files for push
96+
- name: Get changed spk_packages and dependency_folders of last commit for push
9597
if: github.event_name == 'push'
96-
id: getfile
98+
id: getchanges_push
9799
run: |
98-
git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | xargs
99-
echo "files=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | xargs)" >> $GITHUB_OUTPUT
100+
git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -oP "^spk/\K[^\/]*" | sort -u | xargs
101+
echo "spk_packages=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -oP "^spk/\K[^\/]*" | sort -u | xargs)" >> $GITHUB_OUTPUT
102+
git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -oP "(cross|native)/[^\/]*" | sort -u | xargs
103+
echo "dependency_folders=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -oP "(cross|native)/[^\/]*" | sort -u | xargs)" >> $GITHUB_OUTPUT
100104
101105
- name: Evaluate dependencies
102106
id: dependencies
103107
run: ./.github/actions/prepare.sh
104108
env:
105-
GH_FILES: ${{ steps.getfile.outputs.files }} ${{ steps.getfile_pr.outputs.files }}
106-
SPK_TO_BUILD: ${{ github.event.inputs.package }}
109+
GH_SPK_PACKAGES: ${{ steps.getchanges_push.outputs.spk_packages }} ${{ steps.getchanges_pr.outputs.spk_packages }}
110+
GH_DEPENDENCY_FOLDERS: ${{ steps.getchanges_push.outputs.dependency_folders }} ${{ steps.getchanges_pr.outputs.dependency_folders }}
111+
USER_SPK_TO_BUILD: ${{ github.event.inputs.package }}
107112

108113
- name: Cache downloaded files
109114
uses: actions/cache@v4

cross/boost/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ WITH_PYTHON_LIBRARY =
2424
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
2525
WITH_PYTHON_LIBRARY = 1
2626
# The packages depending on boost with python, must build python before.
27-
include $(WORK_DIR)/python-cc.mk
27+
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
2828
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
2929
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
3030
# exclude python library if "all" selected

cross/boost_1.68/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ WITH_PYTHON_LIBRARY =
2626
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
2727
WITH_PYTHON_LIBRARY = 1
2828
# The packages depending on boost with python, must build python before.
29-
include $(WORK_DIR)/python-cc.mk
29+
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
3030
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
3131
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
3232
# exclude python library if "all" selected

cross/boost_1.70/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ WITH_PYTHON_LIBRARY =
2727
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
2828
WITH_PYTHON_LIBRARY = 1
2929
# The packages depending on boost with python, must build python before.
30-
include $(WORK_DIR)/python-cc.mk
30+
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
3131
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
3232
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
3333
# exclude python library if "all" selected

cross/boost_1.78/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ WITH_PYTHON_LIBRARY =
2424
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
2525
WITH_PYTHON_LIBRARY = 1
2626
# The packages depending on boost with python, must build python before.
27-
include $(WORK_DIR)/python-cc.mk
27+
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
2828
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
2929
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
3030
# exclude python library if "all" selected

cross/boost_1.82/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ WITH_PYTHON_LIBRARY =
2424
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
2525
WITH_PYTHON_LIBRARY = 1
2626
# The packages depending on boost with python, must build python before.
27-
include $(WORK_DIR)/python-cc.mk
27+
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
2828
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
2929
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
3030
# exclude python library if "all" selected
@@ -43,7 +43,7 @@ ADDITIONAL_CXXFLAGS = -Wno-deprecated-declarations
4343

4444
ifneq ($(strip $(WITH_PYTHON_LIBRARY)),)
4545
CONFIGURE_ARGS += --with-python=$(WORK_DIR)/../../../native/$(PYTHON_NAME)/work-native/install/usr/local/bin/$(PYTHON_NAME)
46-
ADDITIONAL_CXXFLAGS += -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) -fpermissive
46+
ADDITIONAL_CXXFLAGS += -I$(or $(PYTHON_STAGING_INSTALL_PREFIX),$(STAGING_INSTALL_PREFIX))/$(PYTHON_INC_DIR) -fpermissive
4747
endif
4848

4949
include ../../mk/spksrc.common.mk
@@ -75,7 +75,7 @@ boost_pre_compile:
7575
@rm -rf $(WORK_DIR)/$(PKG_DIR)/user-config.jam
7676
@echo "using gcc : ${TC_GCC} : ${CXX} : <address-model>\"$(ADDRESS_MODEL)\" <cflags>\"$(CFLAGS)\" <cxxflags>\"$(CXXFLAGS) $(ADDITIONAL_CXXFLAGS)\" <linkflags>\"$(LDFLAGS)\" <link>\"shared\" ; " > $(WORK_DIR)/$(PKG_DIR)/user-config.jam
7777
ifneq ($(strip $(WITH_PYTHON_LIBRARY)),)
78-
@echo "using python : $(PYTHON_VERSION) : : $(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) ;" >> $(WORK_DIR)/$(PKG_DIR)/user-config.jam
78+
@echo "using python : $(PYTHON_VERSION) : : $(or $(PYTHON_STAGING_INSTALL_PREFIX),$(STAGING_INSTALL_PREFIX))/$(PYTHON_INC_DIR) ;" >> $(WORK_DIR)/$(PKG_DIR)/user-config.jam
7979
endif
8080
@echo "project : requirements <cxxflags>$(OFLAGS) ;" >> $(WORK_DIR)/$(PKG_DIR)/user-config.jam
8181

cross/cryptography/Makefile

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,13 @@ PKG_NAME = cryptography
22
PKG_VERS = 41.0.3
33
PKG_EXT = tar.gz
44
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
5-
PKG_DIST_SITE = https://files.pythonhosted.org/packages/source/c/$(PKG_NAME)
5+
PKG_DIST_SITE = https://files.pythonhosted.org/packages/source/c/cryptography
66
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
77

8-
DEPENDS = cross/openssl3 cross/cffi
8+
DEPENDS = cross/openssl3 cross/libffi
99

1010
HOMEPAGE = https://github.com/pyca/cryptography
1111
COMMENT = Provide cryptographic recipes and primitives to Python developers
1212
LICENSE = BSD/ASL2
1313

14-
###
15-
### This cross/cryptography is needed to generate python-limited abi3 wheels
16-
### Ref: https://github.com/pyca/cryptography/issues/7671
17-
###
18-
19-
WHEELS_BUILD_ARGS = --py-limited-api=$(PYTHON_LIMITED_API)
20-
2114
include ../../mk/spksrc.python-wheel.mk

cross/dtlssocket/Makefile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
PKG_NAME = DTLSSocket
2-
PKG_VERS = 0.1.16
1+
PKG_NAME = dtlssocket
2+
PKG_VERS = 0.2.2
33
PKG_EXT = tar.gz
44
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
5-
PKG_DIST_SITE = https://files.pythonhosted.org/packages/58/42/0a0442118096eb9fbc9dc70b45aee2957f7546b80545e2a05bd839380519
5+
PKG_DIST_SITE = https://files.pythonhosted.org/packages/97/b6/702c4197c37c7036d0b7d67a2963c83a4b7098525959566dc6e2284c9f89
66
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
77

8-
BUILD_DEPENDS = cross/cython
9-
108
HOMEPAGE = https://git.fslab.de/jkonra2m/tinydtls-cython
119
COMMENT = DTLSSocket is a Cython wrapper for tinydtls with a Socket like interface.
1210
LICENSE = Eclipse Public License 1.0
1311

1412
PRE_CONFIGURE_TARGET = dtlssocket_pre_configure
1513

14+
include ../../mk/spksrc.common.mk
15+
16+
ifeq ($(call version_le, $(TC_GCC), 5),1)
17+
ADDITIONAL_CFLAGS = -std=c99
18+
endif
19+
1620
include ../../mk/spksrc.python-wheel.mk
1721

1822
.PHONY: dtlssocket_pre_configure

0 commit comments

Comments
 (0)