Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dynamic crossenv + python3*-wheels + python310-313 updates #6282

Merged
merged 130 commits into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
a9a5a5d
python311: Remove optional wheels (to be migrated to its own spk)
th0ma7 Oct 14, 2024
483bf8f
python313: Initial commit, fails to build on readline
th0ma7 Oct 14, 2024
d428660
python-wheels: First attempt, to be further developed
th0ma7 Oct 14, 2024
1a1b27a
py311: Re-enable lto
th0ma7 Oct 14, 2024
fc5208a
python313: First working build
th0ma7 Oct 14, 2024
30be5ae
python313: Remove pgo optimizations as non-functional in cross-builds
th0ma7 Oct 15, 2024
cd6446d
python-wheels: First integration of additional wheels for testing
th0ma7 Oct 15, 2024
a91b4f0
mariadb-connector-c: Update from version 3.3.5 to 3.3.11 and fix buil…
th0ma7 Oct 15, 2024
4d1da1d
python313: No longer support armv5 arch due to c++11 support needed
th0ma7 Oct 16, 2024
595ce43
spksrc.crossenv.mk: First iteration of on-demand crossenv creation
th0ma7 Oct 30, 2024
be25d31
spksrc.crossenv.mk: Print crossenv resulting package list
th0ma7 Oct 30, 2024
d2c26ca
py310-311-313: Remove crossenv creation
th0ma7 Nov 2, 2024
c413b53
mk/crossenv: Remove aiohttp example as obsolete
th0ma7 Nov 2, 2024
e05f834
mk/crossenv: disable meson and scikit-build-core temporarily
th0ma7 Nov 2, 2024
ee4e855
spksrc.crossenv.mk: Misc fixes
th0ma7 Nov 2, 2024
516d802
python-module.mk: Make compatible with spksrc.crossenv.mk
th0ma7 Nov 2, 2024
bc169a8
wheel.mk: Make compatible with spksrc.crossenv.mk
th0ma7 Nov 2, 2024
cef7287
crossenv.mk: Allow building from PYTHON_PACKAGE dependend spk
th0ma7 Nov 4, 2024
282e742
py310-311: Fix lto vs pgo optimizations
th0ma7 Nov 5, 2024
4fc8e5a
wheel.mk: Use $name-$version using - instead of == for crossenv
th0ma7 Nov 5, 2024
8bb28f9
python.mk: do not symlink crossenv and python-cc.mk
th0ma7 Nov 5, 2024
122e616
python.mk: Move mandatory PYO3_* variables for rust cross-compiling
th0ma7 Nov 11, 2024
91ab53b
crossenv.mk: Fix crossenv creation and pip tool calls
th0ma7 Nov 11, 2024
ce093fa
crossenv/requirements-default.txt: Update to latest wheel versions
th0ma7 Nov 13, 2024
94f85b1
spk.mk: Add a crossenvclean clean-up option
th0ma7 Nov 13, 2024
3d323f8
python.mk + crossenv.mk: Functional versions
th0ma7 Nov 14, 2024
7e6f9c0
python.mk: Further clean-up and removal of duplicate variables
th0ma7 Nov 14, 2024
7fd2f0b
py311-312-312: Update pure requirements to latest versions
th0ma7 Nov 14, 2024
7b7a376
py310-311-313: Further clean-up Makefile from unused variables
th0ma7 Nov 14, 2024
112b1ac
py310-311: No longer need to remove test folder
th0ma7 Nov 14, 2024
a7fcf7b
py313: Fix symlink creation
th0ma7 Nov 14, 2024
ff0671d
crossenv.mk: Include missing OPENSSL_*_DIR
th0ma7 Nov 14, 2024
fcc058d
spk.mk: Update crossenvclean and add crossenvcleanall
th0ma7 Nov 14, 2024
c41fc84
spk.mk: crossenvclean remove cookie file
th0ma7 Nov 15, 2024
cc5814e
crossenv: Fix python version and use status cookie
th0ma7 Nov 15, 2024
bf12e2a
crossenv-default: Enforce using msgpack==1.0.5 for py313 builds
th0ma7 Nov 15, 2024
3d3d695
fix crossenv installation by packages using prebuilt python
hgy59 Nov 16, 2024
44973f6
fix python311 for qoriq
hgy59 Nov 17, 2024
a1ebece
spksrc.python-wheel.mk: fix include of python-cc.mk
hgy59 Nov 18, 2024
0f2f55a
rdiff-backup: add crossenv for frozenlist
hgy59 Nov 18, 2024
25e02db
rdiff-backup: add crossenv for yarl
hgy59 Nov 18, 2024
6b642a5
fix for version less crossenv requirements
hgy59 Nov 18, 2024
1b48f94
python.mk: revert support for ADDITIONAL_CROSSENV_WHEELS
hgy59 Nov 20, 2024
b82eaa9
Revert "borgbackup: Package bump to force build"
hgy59 Nov 20, 2024
3eb24bc
use python -m build to create wheels with python-wheel.mk
hgy59 Nov 20, 2024
97b879f
ffsync: fix build of cross/cryptography
hgy59 Nov 23, 2024
1e4569e
spksrc.python-wheel.mk: Fix wheel building
th0ma7 Nov 24, 2024
cd5b56e
DTLSSocket: Update from 0.1.16 to 0.2.2
th0ma7 Nov 24, 2024
1b26305
homeassistant: Fix building bcrupt and cryptography
th0ma7 Nov 24, 2024
262e9ec
spksrc.crossenv.mk: Ensure Python=* has hostpython to avoid errors
th0ma7 Nov 24, 2024
bd779ed
crossenv/requirements-numpy-1.24.4.txt: Definition for numpy
th0ma7 Nov 24, 2024
55ed229
python.mk: Remove zlib at source to avoir re-building
th0ma7 Nov 24, 2024
7dbabc4
dtlssocket: Add -std=c99 for gcc < 5
th0ma7 Nov 24, 2024
c1823cd
python.mk: Erase only $(ARCH)-$(TCVERSION) related files
th0ma7 Nov 25, 2024
f6bcd5b
deluge: Update wheels and fix build
th0ma7 Nov 25, 2024
c3a30b5
boost_1.82: Allow builds from python.mk
th0ma7 Nov 25, 2024
c5a2f19
cross/cryptography: crossenv already has cffi and pycparser
th0ma7 Nov 25, 2024
985ffc0
crossenv.mk: Add debug traces to find issue on gh
th0ma7 Nov 25, 2024
1bfe6e7
crossenv.mk: Testing alternative method to get python version dir
th0ma7 Nov 25, 2024
77dccbd
crossenv.mk: Send msg to status file
th0ma7 Nov 25, 2024
d6b3e13
wheel.mk: Remove trailing # comment using $${wheel%% *}
th0ma7 Nov 26, 2024
71c35a9
crossenv.mk: Use $(WORK_DIR)/pip caching dir for crossenv creation
th0ma7 Nov 26, 2024
03663cd
python-wheels: include wheels in package
hgy59 Nov 26, 2024
4d8e8d2
update github build action
hgy59 Nov 26, 2024
1018d94
adjust variable GH_DEPENDENCY_FOLDERS
hgy59 Nov 26, 2024
819e915
real fix for #6284
hgy59 Nov 26, 2024
44311cd
fix github prepare script
hgy59 Nov 26, 2024
2c9d043
crossenv.mk: Miscelanious cleanups
th0ma7 Nov 26, 2024
0c200b8
mariadb-connector-c: Fix compilation for some archs
th0ma7 Nov 27, 2024
ebb30b6
fix package name substitution in prepare.sh
hgy59 Nov 27, 2024
f011798
Update mk/spksrc.crossenv.mk - typo
th0ma7 Nov 27, 2024
b1013f8
python311-wheels: Rename to reference exact matching python version
th0ma7 Nov 27, 2024
8b399f2
native/python313: Sync wheels with default crossenv versions
th0ma7 Nov 27, 2024
e6b1cd6
python312: Initial package
th0ma7 Nov 27, 2024
805cd0b
mariadb-connector-c: Fix build using spksrc.python.mk
th0ma7 Nov 27, 2024
12650eb
prepare.sh: keep python311-wheels to build
hgy59 Nov 27, 2024
7da051e
fix python312/PLIST
hgy59 Nov 27, 2024
c64ee5c
cleanup python
hgy59 Nov 28, 2024
77d0a72
fix INFO file generation
hgy59 Nov 29, 2024
4893a1c
python packages: further cleanup
hgy59 Nov 29, 2024
0d2b49e
wheel-env.mk: Bump default abi3 to match py311 with cp37
th0ma7 Dec 1, 2024
f0e3f0a
crossenv.mk: Reduce total amount of makefile variable definitions
th0ma7 Dec 1, 2024
69727da
crossenv.mk: Empty MAKEFLAGS= variable when calling crossenv recipe
th0ma7 Dec 1, 2024
71ce990
crossenv.mk: Fix missing variable definition
th0ma7 Dec 1, 2024
1e025a8
tc.mk: Enhance meson toolchain file declarations
th0ma7 Dec 2, 2024
b73a524
wheel.mk: Add meson wheel compiling ability
th0ma7 Dec 2, 2024
6be0ae9
python311-wheels: Add new compatible numpy versions
th0ma7 Dec 2, 2024
4962a9d
python312-wheels: Wheel testing package against py312
th0ma7 Dec 2, 2024
4cf67da
Update spk/python312-wheels/Makefile
th0ma7 Dec 2, 2024
c5093a3
numpy-1.25.1: Adding crossenv requirement file
th0ma7 Dec 2, 2024
8cb990f
crossenv.mk: Fix missing definitions for HOST and BUILD_ARCH
th0ma7 Dec 3, 2024
9c20b45
wheel.mk: sort wheelhouse requirement files to avoid duplicates
th0ma7 Dec 3, 2024
18613d2
python31*-wheels: various adjustments
th0ma7 Dec 3, 2024
b1e647e
restore python311-wheels/src/requirements-crossenv-greenlet-v3.txt
hgy59 Dec 3, 2024
4311e47
build.sh: add python312 and python313 to packages to keep
hgy59 Dec 3, 2024
661cf73
python.mk: Add xz (lzma) to the library exception list
th0ma7 Dec 3, 2024
190f583
python311-wheels: Sync greenlet requirement files with py312-wheels
th0ma7 Dec 3, 2024
141ac43
python.mk: Use *_EXCLUDE variables to simplify later additions
th0ma7 Dec 3, 2024
fa909d2
python310: Update from version 3.10.15 to 3.10.16
th0ma7 Dec 3, 2024
5c2a607
python311: Update from version 3.11.10 to 3.11.11
th0ma7 Dec 3, 2024
b08a7d6
python312-python313: Sync requirement files with py310-311
th0ma7 Dec 3, 2024
cf0fe6c
python312: Update from version 3.12.7 to 3.12.8
th0ma7 Dec 4, 2024
173b71b
python313: Update from version 3.13.0 to 3.13.1
th0ma7 Dec 4, 2024
482019d
py311-312-wheels: Fix greenlet 3.x support with gcc <= 8
th0ma7 Dec 4, 2024
6d98cb4
crossenv.mk: Move PATH and LD_LIBRARY_PATH to be crossenv specific
th0ma7 Dec 5, 2024
02e5cca
define build-python when not in path
hgy59 Dec 6, 2024
828912d
minimize specific crossenv for frozenlist and yarl
hgy59 Dec 6, 2024
07356c4
remove unsupported configure args
hgy59 Dec 6, 2024
e113674
revert fullpath for build-python for python310 and python311
hgy59 Dec 6, 2024
27e5b7f
python312-wheels: fix build
hgy59 Dec 6, 2024
7c491f3
revert unintended change
hgy59 Dec 6, 2024
d88bbea
spksrc.wheel.mk: add PATH for build of pure-python-wheels
hgy59 Dec 6, 2024
7955fc5
Revert move of crossenv files temporarely
th0ma7 Jan 4, 2025
5031b41
crossenv.mk: Fix PATH and LD_LIBRARY_PATH for native and crossenv
th0ma7 Jan 4, 2025
bca4c7b
py310-313: Fix --with-build-python using $(PYTHON_NATIVE)
th0ma7 Jan 4, 2025
7f16bbd
py310: re-revert fix --with-build-python only for py310
th0ma7 Jan 5, 2025
9cbf35d
crossenv.mk: Move crossenv definitions to spk/python3*
th0ma7 Jan 5, 2025
3ddf541
python311-wheels: Update numpy requirements
th0ma7 Jan 5, 2025
883f7de
python-wheels: Cleanups and comment regarding late WHEELS definitions
th0ma7 Jan 5, 2025
62600f1
python-wheels: Add pure python wheel serving as example
th0ma7 Jan 5, 2025
3f5f449
spksrc.wheel.mk: Numerous cleanups & reduced shell calls
th0ma7 Jan 5, 2025
fa2b1bf
python311-wheels: Fix numpy for x64 DSM-7.1
th0ma7 Jan 6, 2025
ad09255
python311: Add crossenv definition for numpy-1.25.1 for x64 DSM-7.1
th0ma7 Jan 6, 2025
bd4f26d
python311-wheels: Extend Pillows dependencies webp, tiff, imagequant
th0ma7 Jan 6, 2025
4e246e9
wheel.mk: Remove unused PATH and LD_LIBRARY_PATH to cross building
th0ma7 Jan 6, 2025
830fd46
deluge: Update to latest wheel versions
th0ma7 Jan 7, 2025
69a00e5
wheel.mk: pip build environment variable fixes + cleanups
th0ma7 Jan 7, 2025
cb680b4
boost*: Fix loading crossenv python-cc.mk
th0ma7 Jan 7, 2025
2d31802
wheel.mk: Additional fixes mainly around PATH handling
th0ma7 Jan 9, 2025
4bfb1cd
tc.mk: Remove sysroot from meson definition as breaking glib
th0ma7 Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ if [ -n "$API_KEY" ] && [ "$PUBLISH" == "true" ]; then
fi

# Build
PACKAGES_TO_KEEP="synocli-videodriver ffmpeg5 ffmpeg7 python310 python311"
PACKAGES_TO_KEEP="synocli-videodriver ffmpeg5 ffmpeg7 python310 python311 python312 python313"
for package in ${build_packages}
do
echo "::group:: ---- build ${package}"
Expand Down
35 changes: 16 additions & 19 deletions .github/actions/prepare.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
# Evaluate packages to build and referenced source files to download.
#
# Functions:
# - Evaluate all packages to build depending on files defined in ${GH_FILES}.
# - Build all packages defined by ${USER_SPK_TO_BUILD} and ${GH_SPK_PACKAGES}
# - Evaluate additional packages to build depending on changed folders defined in ${GH_DEPENDENT_PACKAGES}.
# - synocli-videodriver is moved to head of packages to build first if triggered by its ffmpeg5-7
# - python310-311 and ffmpeg5-7 are moved to head of remaining packages to build when triggered by its own or a dependent.
# - python310-313 and ffmpeg5-7 are moved to head of remaining packages to build when triggered by its own or a dependent.
# - Referenced native and cross packages of the packages to build are added to the download list.

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

# filter for changes made in the spk directories and take unique package name (without spk folder)
SPK_TO_BUILD+=" "
SPK_TO_BUILD+=$(echo "${GH_FILES}" | tr ' ' '\n' | grep -oP "^spk/\K[^\/]*" | sort -u | tr '\n' ' ')

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

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

# search for dependent spk packages
for package in ${DEPENDENT_PACKAGES}
for package in ${GH_DEPENDENCY_FOLDERS}
do
echo "===> Searching for dependent package: ${package}"
packages=$(echo "${DEPENDENCY_LIST}" | grep " ${package} " | grep -o ".*:" | tr ':' ' ' | sort -u | tr '\n' ' ')
echo "===> Found: ${packages}"
SPK_TO_BUILD+=${packages}
SPK_TO_BUILD+=" ${packages}"
done

# fix for packages with different names
if [ "$(echo ${SPK_TO_BUILD} | grep -ow nzbdrone)" != "" ]; then
SPK_TO_BUILD=$(echo "${SPK_TO_BUILD}" | tr ' ' '\n' | grep -vw "nzbdrone" | tr '\n' ' ')" sonarr3"
if [ "$(echo ${SPK_TO_BUILD} | grep -o ' nzbdrone ')" != "" ]; then
SPK_TO_BUILD=$(echo "${SPK_TO_BUILD}" | tr ' ' '\n' | grep -v "^nzbdrone$" | tr '\n' ' ')" sonarr3"
fi
if [ "$(echo ${SPK_TO_BUILD} | grep -ow python)" != "" ]; then
SPK_TO_BUILD=$(echo "${SPK_TO_BUILD}" | tr ' ' '\n' | grep -vw "python" | tr '\n' ' ')" python2"
if [ "$(echo ${SPK_TO_BUILD} | grep -o ' python ')" != "" ]; then
SPK_TO_BUILD=$(echo "${SPK_TO_BUILD}" | tr ' ' '\n' | grep -v "^python$" | tr '\n' ' ')" python2"
fi

# remove duplicate packages
Expand All @@ -65,7 +62,7 @@ for i in {5..7}; do
for package in ${packages}
do
if [ "$(echo ffmpeg${i} ${ffmpeg_dependent_packages} | grep -ow ${package})" != "" ]; then
packages_without_ffmpeg=$(echo "${packages}" | tr ' ' '\n' | grep -v "ffmpeg${i}" | tr '\n' ' ')
packages_without_ffmpeg=$(echo "${packages}" | tr ' ' '\n' | grep -v "^ffmpeg${i}\$" | tr '\n' ' ')
packages="ffmpeg${i} ${packages_without_ffmpeg}"
break
fi
Expand All @@ -80,22 +77,22 @@ videodrv_dependent_packages=$(find spk/ -maxdepth 2 -mindepth 2 -name "Makefile"
for package in ${packages}
do
if [ "$(echo synocli-videodriver ${videodrv_dependent_packages} | grep -ow ${package})" != "" ]; then
packages_without_videodrv=$(echo "${packages}" | tr ' ' '\n' | grep -v "synocli-videodriver" | tr '\n' ' ')
packages_without_videodrv=$(echo "${packages}" | tr ' ' '\n' | grep -v "^synocli-videodriver\$" | tr '\n' ' ')
packages="synocli-videodriver ${packages_without_videodrv}"
break
fi
done

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

# If packages contain a package that depends on python (or is python), then ensure
# relevant python spk is first in list
for package in ${packages}
do
if [ "$(echo ${py} ${python_dependent_packages} | grep -ow ${package})" != "" ]; then
packages_without_python=$(echo "${packages}" | tr ' ' '\n' | grep -v "${py}" | tr '\n' ' ')
packages_without_python=$(echo "${packages}" | tr ' ' '\n' | grep -v "^${py}\$" | tr '\n' ' ')
packages="${py} ${packages_without_python}"
break
fi
Expand Down
25 changes: 15 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,26 +84,31 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: Get changed files for pull request
- name: Get changed spk_packages and dependency_folders for pull request
if: github.event_name == 'pull_request'
id: getfile_pr
id: getchanges_pr
run: |
git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | xargs
echo "files=$(git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | xargs)" >> $GITHUB_OUTPUT
git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | grep -oP "^spk/\K[^\/]*" | sort -u | xargs
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
git diff --no-commit-id --name-only -r origin/master...${{github.event.pull_request.head.sha}} | grep -oP "(cross|native)/[^\/]*" | sort -u | xargs
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

- name: Get changed files for push
- name: Get changed spk_packages and dependency_folders of last commit for push
if: github.event_name == 'push'
id: getfile
id: getchanges_push
run: |
git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | xargs
echo "files=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | xargs)" >> $GITHUB_OUTPUT
git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -oP "^spk/\K[^\/]*" | sort -u | xargs
echo "spk_packages=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -oP "^spk/\K[^\/]*" | sort -u | xargs)" >> $GITHUB_OUTPUT
git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -oP "(cross|native)/[^\/]*" | sort -u | xargs
echo "dependency_folders=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -oP "(cross|native)/[^\/]*" | sort -u | xargs)" >> $GITHUB_OUTPUT

- name: Evaluate dependencies
id: dependencies
run: ./.github/actions/prepare.sh
env:
GH_FILES: ${{ steps.getfile.outputs.files }} ${{ steps.getfile_pr.outputs.files }}
SPK_TO_BUILD: ${{ github.event.inputs.package }}
GH_SPK_PACKAGES: ${{ steps.getchanges_push.outputs.spk_packages }} ${{ steps.getchanges_pr.outputs.spk_packages }}
GH_DEPENDENCY_FOLDERS: ${{ steps.getchanges_push.outputs.dependency_folders }} ${{ steps.getchanges_pr.outputs.dependency_folders }}
USER_SPK_TO_BUILD: ${{ github.event.inputs.package }}

- name: Cache downloaded files
uses: actions/cache@v4
Expand Down
2 changes: 1 addition & 1 deletion cross/boost/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ WITH_PYTHON_LIBRARY =
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
WITH_PYTHON_LIBRARY = 1
# The packages depending on boost with python, must build python before.
include $(WORK_DIR)/python-cc.mk
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
# exclude python library if "all" selected
Expand Down
2 changes: 1 addition & 1 deletion cross/boost_1.68/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ WITH_PYTHON_LIBRARY =
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
WITH_PYTHON_LIBRARY = 1
# The packages depending on boost with python, must build python before.
include $(WORK_DIR)/python-cc.mk
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
# exclude python library if "all" selected
Expand Down
2 changes: 1 addition & 1 deletion cross/boost_1.70/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ WITH_PYTHON_LIBRARY =
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
WITH_PYTHON_LIBRARY = 1
# The packages depending on boost with python, must build python before.
include $(WORK_DIR)/python-cc.mk
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
# exclude python library if "all" selected
Expand Down
2 changes: 1 addition & 1 deletion cross/boost_1.78/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ WITH_PYTHON_LIBRARY =
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
WITH_PYTHON_LIBRARY = 1
# The packages depending on boost with python, must build python before.
include $(WORK_DIR)/python-cc.mk
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
# exclude python library if "all" selected
Expand Down
6 changes: 3 additions & 3 deletions cross/boost_1.82/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ WITH_PYTHON_LIBRARY =
ifneq ($(findstring python,$(BOOST_LIBRARIES)),)
WITH_PYTHON_LIBRARY = 1
# The packages depending on boost with python, must build python before.
include $(WORK_DIR)/python-cc.mk
include $(or $(wildcard $(WORK_DIR)/crossenv/build/python-cc.mk), $(wildcard $(PYTHON_PACKAGE_WORK_DIR)/crossenv/build/python-cc.mk))
PYTHON_NAME = $(basename $(notdir $(PYTHON_INTERPRETER)))
else ifneq ($(findstring $(BOOST_LIBRARIES), all),)
# exclude python library if "all" selected
Expand All @@ -43,7 +43,7 @@ ADDITIONAL_CXXFLAGS = -Wno-deprecated-declarations

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

include ../../mk/spksrc.common.mk
Expand Down Expand Up @@ -75,7 +75,7 @@ boost_pre_compile:
@rm -rf $(WORK_DIR)/$(PKG_DIR)/user-config.jam
@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
ifneq ($(strip $(WITH_PYTHON_LIBRARY)),)
@echo "using python : $(PYTHON_VERSION) : : $(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) ;" >> $(WORK_DIR)/$(PKG_DIR)/user-config.jam
@echo "using python : $(PYTHON_VERSION) : : $(or $(PYTHON_STAGING_INSTALL_PREFIX),$(STAGING_INSTALL_PREFIX))/$(PYTHON_INC_DIR) ;" >> $(WORK_DIR)/$(PKG_DIR)/user-config.jam
endif
@echo "project : requirements <cxxflags>$(OFLAGS) ;" >> $(WORK_DIR)/$(PKG_DIR)/user-config.jam

Expand Down
11 changes: 2 additions & 9 deletions cross/cryptography/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,13 @@ PKG_NAME = cryptography
PKG_VERS = 41.0.3
PKG_EXT = tar.gz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://files.pythonhosted.org/packages/source/c/$(PKG_NAME)
PKG_DIST_SITE = https://files.pythonhosted.org/packages/source/c/cryptography
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

DEPENDS = cross/openssl3 cross/cffi
DEPENDS = cross/openssl3 cross/libffi

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

###
### 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)

include ../../mk/spksrc.python-wheel.mk
14 changes: 9 additions & 5 deletions cross/dtlssocket/Makefile
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
PKG_NAME = DTLSSocket
PKG_VERS = 0.1.16
PKG_NAME = dtlssocket
PKG_VERS = 0.2.2
PKG_EXT = tar.gz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://files.pythonhosted.org/packages/58/42/0a0442118096eb9fbc9dc70b45aee2957f7546b80545e2a05bd839380519
PKG_DIST_SITE = https://files.pythonhosted.org/packages/97/b6/702c4197c37c7036d0b7d67a2963c83a4b7098525959566dc6e2284c9f89
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

BUILD_DEPENDS = cross/cython

HOMEPAGE = https://git.fslab.de/jkonra2m/tinydtls-cython
COMMENT = DTLSSocket is a Cython wrapper for tinydtls with a Socket like interface.
LICENSE = Eclipse Public License 1.0

PRE_CONFIGURE_TARGET = dtlssocket_pre_configure

include ../../mk/spksrc.common.mk

ifeq ($(call version_le, $(TC_GCC), 5),1)
ADDITIONAL_CFLAGS = -std=c99
endif

include ../../mk/spksrc.python-wheel.mk

.PHONY: dtlssocket_pre_configure
Expand Down
6 changes: 3 additions & 3 deletions cross/dtlssocket/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
DTLSSocket-0.1.16.tar.gz SHA1 9b4eaa3e9a949f202844a27ba54b2f05d73aa410
DTLSSocket-0.1.16.tar.gz SHA256 30b108ae45fce1c033e3ef6c2ddd7e7418062ae374228e3a7fa969b254366a39
DTLSSocket-0.1.16.tar.gz MD5 15dfeca9678e381c7bb6e11e4c864fd5
dtlssocket-0.2.2.tar.gz SHA1 0be2a954ca56fe7cca3a9fbc5a9e65194f0ab5a5
dtlssocket-0.2.2.tar.gz SHA256 4e76d715726e0c46dc09e35da9b6717b063c2389b06c1723decc3ba38b7387f4
dtlssocket-0.2.2.tar.gz MD5 d1f686febd12e67ec7a2efe81bf1eaee
34 changes: 30 additions & 4 deletions cross/mariadb-connector-c/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
PKG_NAME = mariadb-connector-c
PKG_VERS = 3.3.5
# Version 3.3.11 is the last known version to work with aarch64-6.2.4
# Assembly error: Error: CFI instruction used without previous .cfi_startproc
PKG_VERS = 3.3.11
PKG_EXT = tar.gz
PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT)
PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
Expand All @@ -10,23 +12,47 @@ HOMEPAGE = https://mariadb.com/kb/en/mariadb-connector-c/
COMMENT = MariaDB C Connector
LICENSE = LGPL

#USE_NATIVE_CMAKE_LEGACY = 1
#CMAKE_USE_TOOLCHAIN_FILE = OFF
CMAKE_DISABLE_EXE_LINKER_FLAGS = 1

include ../../mk/spksrc.cross-cmake.mk

ifeq ($(call version_lt, $(TC_GCC), 5.0),1)
ifeq ($(call version_gt, $(TC_GCC), 4.9),1)
ADDITIONAL_CFLAGS += -Wno-error=maybe-uninitialized
# fails on evansport-6.2.4
ADDITIONAL_CFLAGS += -Wno-error=strict-aliasing
endif

ifeq ($(call version_lt, $(TC_GCC), 4.9),1)
ADDITIONAL_CFLAGS += -std=gnu99
# fails on 88f6281-6.2.4
ADDITIONAL_CFLAGS += -Wno-error=missing-field-initializers
ADDITIONAL_CFLAGS += -Wno-error=uninitialized
# fails on hi3535-6.2.4
ADDITIONAL_CFLAGS += -Wno-error=array-bounds
endif

# MySQL specific:
CMAKE_ARGS += -DWITH_UNIT_TESTS=OFF
CMAKE_ARGS += -DDEFAULT_CHARSET=utf8
CMAKE_ARGS += -DINSTALL_LIBDIR=lib

# Creates the following two synlinks:
# - libmysqlclient.so -> libmariadb.so.3
# - libmysqlclient_r.so -> libmariadb.so.3
# Which in turns conflict with mysql-connector-c
#CMAKE_ARGS += -DWITH_MYSQLCOMPAT=ON
hgy59 marked this conversation as resolved.
Show resolved Hide resolved

# Does not handle pkgconfig well and fails to
# find openssl3 include and libraries using
# spksrc.python.mk thus using OPENSSL_STAGING_PREFIX
DEPENDS += cross/openssl3
CMAKE_ARGS += -DWITH_SSL=ON
ifneq ($(wildcard $(OPENSSL_STAGING_PREFIX)),)
CMAKE_ARGS += -DOPENSSL_CRYPTO_LIBRARY:FILEPATH=$(OPENSSL_STAGING_PREFIX)/lib/libcrypto.so
CMAKE_ARGS += -DOPENSSL_SSL_LIBRARY:FILEPATH=$(OPENSSL_STAGING_PREFIX)/lib/libssl.so
CMAKE_ARGS += -DOPENSSL_INCLUDE_DIR:PATH=$(OPENSSL_STAGING_PREFIX)/include
endif

DEPENDS += cross/zlib
CMAKE_ARGS += -DWITH_EXTERNAL_ZLIB=ON
DEPENDS += cross/libiconv
Expand Down
6 changes: 3 additions & 3 deletions cross/mariadb-connector-c/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
mariadb-connector-c-3.3.5.tar.gz SHA1 29ad65e81a87e41a93e8984f2c3d1662dcec7c1c
mariadb-connector-c-3.3.5.tar.gz SHA256 c0fda1fa6e52dc85de27156cd847088a72d40d9de6514f7efa57c8d93134a54c
mariadb-connector-c-3.3.5.tar.gz MD5 b8967cf63d4fc5660f230762c0e39ee2
mariadb-connector-c-3.3.11.tar.gz SHA1 2fa1fe042bcc65297d6d22196685701faf3e96d1
mariadb-connector-c-3.3.11.tar.gz SHA256 6ecada1f3fc32ad95efcd2c982b319191f5e6479f3f521bc4b714e6158f5e415
mariadb-connector-c-3.3.11.tar.gz MD5 700afe8ebff69bdf66b3c37747d1d527
Loading
Loading