Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
241416a
.github/workflows/dist.yml: Also build wheels for sagemath-bliss etc.
mkoeppe Oct 23, 2023
384ac66
build/pkgs/sirocco/dependencies: Add mpfr
mkoeppe Oct 24, 2023
fc76bf5
.github/workflows/dist.yml: Also build wheels for sagemath-bliss etc.…
mkoeppe Oct 24, 2023
6326377
.github/workflows/dist.yml: Build gmp, mpfr, mpc from SPKG
mkoeppe Mar 20, 2024
927a4be
.github/workflows/dist.yml: Update CIBW_PROJECT_REQUIRES_PYTHON
mkoeppe Mar 20, 2024
e7f19ef
.github/workflows/dist.yml: Fix 'make -j'
mkoeppe Mar 20, 2024
f86d2cf
.github/workflows/dist.yml (build_wheels): Use PIP_CONSTRAINT for sag…
mkoeppe May 12, 2024
0e0b0fd
dist.yml (Build platform wheels): Relax filename pattern
mkoeppe May 12, 2024
3180327
dist.yml (Build platform wheels): Build x86_64 using macos-13 image
mkoeppe May 14, 2024
518e24c
dist.yml (Build platform wheels): Quoting fix in CIBW_BEFORE_ALL
mkoeppe May 14, 2024
c403931
pkgs/sagemath-coxeter3/pyproject.toml.m4: Add build requirement sagem…
mkoeppe May 14, 2024
7c54971
dist.yml (Build platform wheels Linux): Use --prefix in /host
mkoeppe May 14, 2024
975b414
dist.yml (Build platform wheels Linux): Use --prefix in /host (fixup)
mkoeppe May 14, 2024
7ef357f
pkgs/sagemath-meataxe/pyproject.toml.m4: Add build requirement sagema…
mkoeppe May 15, 2024
c6f25f0
dist.yml (Build platform wheels Linux): Run bootstrap outside of the …
mkoeppe May 15, 2024
1681086
dist.yml (Build platform wheels Linux): Set LD_LIBRARY_PATH for audit…
mkoeppe May 15, 2024
d086b9b
dist.yml (Build platform wheels): Omit sagemath-meataxe
mkoeppe May 15, 2024
946cc59
dist.yml (Build platform wheels): Omit sagemath-sirocco
mkoeppe May 15, 2024
8f025b6
build/pkgs/sagemath_tdlib/dependencies: Add boost_cropped
mkoeppe May 15, 2024
6cbb700
dist.yml (Build platform wheels): Add boost_cropped for sagemath-tdlib
mkoeppe May 15, 2024
2b2bbb2
dist.yml (Build platform wheels) [i686]: Skip sagemath-tdlib
mkoeppe May 15, 2024
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
29 changes: 21 additions & 8 deletions .github/workflows/dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ jobs:
arch: x86_64
- os: ubuntu-latest
arch: i686
- os: macos-latest
- os: macos-13
arch: x86_64
- os: macos-14
arch: arm64
Expand All @@ -175,16 +175,16 @@ jobs:
# SPKGs to install as system packages
SPKGS: _bootstrap _prereq
# Non-Python packages to install as spkgs
TARGETS_PRE: gmpy2-build-deps
TARGETS_PRE: gmp mpfr mpc bliss coxeter3 mcqd meataxe sirocco boost_cropped tdlib
# Disable building PyPy wheels on all platforms
# Disable musllinux until #33083 provides alpine package information
CIBW_SKIP: "pp* *-musllinux*"
#
CIBW_ARCHS: ${{ matrix.arch }}
# https://cibuildwheel.readthedocs.io/en/stable/options/#requires-python
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9, <3.12"
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9, <3.13"
# Environment during wheel build
CIBW_ENVIRONMENT: "PATH=$(pwd)/local/bin:$PATH CPATH=$(pwd)/local/include:$CPATH LIBRARY_PATH=$(pwd)/local/lib:$LIBRARY_PATH PKG_CONFIG_PATH=$(pwd)/local/share/pkgconfig:$PKG_CONFIG_PATH ACLOCAL_PATH=/usr/share/aclocal"
CIBW_ENVIRONMENT: "PATH=$(pwd)/prefix/bin:$PATH CPATH=$(pwd)/prefix/include:$CPATH LIBRARY_PATH=$(pwd)/prefix/lib:$LIBRARY_PATH LD_LIBRARY_PATH=$(pwd)/prefix/lib:$LD_LIBRARY_PATH PKG_CONFIG_PATH=$(pwd)/prefix/share/pkgconfig:$PKG_CONFIG_PATH ACLOCAL_PATH=/usr/share/aclocal PIP_CONSTRAINT=$(pwd)/constraints.txt"
# Use 'build', not 'pip wheel'
CIBW_BUILD_FRONTEND: build
steps:
Expand All @@ -203,23 +203,36 @@ jobs:
python-version: "3.8 - 3.12"
update-environment: false

- name: Bootstrap
run: |
export PATH=$(pwd)/build/bin:$PATH
eval $(sage-print-system-package-command auto --sudo --yes --no-install-recommends --spkg install _bootstrap)
./bootstrap

- name: Build platform wheels
# We build the wheels from the sdists so that MANIFEST filtering becomes effective.
# But we must run cibuildwheel with the unpacked source directory, not a tarball,
# so that SAGE_ROOT is copied into the build containers.
#
# In the CIBW_BEFORE_ALL phase, we install libraries using the Sage distribution.
# https://cibuildwheel.readthedocs.io/en/stable/options/#before-all
# This is unfortunately repeated for each of the packages that we build wheels for
# For Linux, this is repeated for each of the packages that we build wheels for
# because CIBW starts with a fresh container on each invocation.
# Therefore we cache it in a directory mounted from the host: /host
# https://cibuildwheel.pypa.io/en/stable/faq/#linux-builds-in-containers
#
# omit sagemath-{meataxe,sirocco} for now -- needs sagemath-modules
run: |
"${{ steps.python.outputs.python-path }}" -m pip install pipx
export PATH=build/bin:$PATH
export CIBW_BEFORE_ALL="( $(sage-print-system-package-command debian --yes --no-install-recommends install $(sage-get-system-packages debian $SPKGS)) || $(sage-print-system-package-command fedora --yes --no-install-recommends install $(sage-get-system-packages fedora $SPKGS | sed s/pkg-config/pkgconfig/)) || ( $(sage-print-system-package-command homebrew --yes --no-install-recommends install $(sage-get-system-packages homebrew $SPKGS)) || echo error ignored) ) && ./bootstrap && ./configure --enable-build-as-root && make -j4 V=0 $TARGETS_PRE"
export CIBW_BEFORE_ALL="( $(sage-print-system-package-command debian --yes --no-install-recommends install $(sage-get-system-packages debian $SPKGS)) || $(sage-print-system-package-command fedora --yes --no-install-recommends install $(sage-get-system-packages fedora $SPKGS | sed s/pkg-config/pkgconfig/)) || ( $(sage-print-system-package-command homebrew --yes --no-install-recommends install $(sage-get-system-packages homebrew $SPKGS)) || echo error ignored) ) && if cp /host/sage-\$AUDITWHEEL_PLAT/config.status . 2>/dev/null; then chmod +x config.status; fi && if [ -x ./config.status ]; then ./config.status; else ./configure --enable-build-as-root ${{ startsWith(matrix.os, 'ubuntu') && '--prefix=/host/sage-\$AUDITWHEEL_PLAT' || '' }} && cp config.status prefix/; fi && MAKE=\"make -j6\" make V=0 $TARGETS_PRE && (echo \"sage_conf @ file://\$(pwd)/pkgs/sage-conf\" && echo \"sage_setup @ file://\$(pwd)/pkgs/sage-setup\") > constraints.txt"
mkdir -p unpacked
for pkg in sagemath-objects sagemath-categories; do
for pkg in sagemath*objects sagemath*categories sagemath*bliss sagemath*coxeter3 sagemath*mcqd sagemath*tdlib; do
case "$pkg:${{ matrix.arch }}" in
sagemath*tdlib:i686) continue;; # broken - boost-related
esac
(cd unpacked && tar xfz - ) < dist/$pkg*.tar.gz
"${{ steps.python.outputs.python-path }}" -m pipx run cibuildwheel==2.17.0 unpacked/$pkg*
"${{ steps.python.outputs.python-path }}" -m pipx run cibuildwheel==2.18.0 unpacked/$pkg*
done

- uses: actions/upload-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion build/pkgs/sagemath_tdlib/dependencies
Original file line number Diff line number Diff line change
@@ -1 +1 @@
tdlib cysignals | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig $(PYTHON)
tdlib cysignals boost_cropped | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig $(PYTHON)
1 change: 1 addition & 0 deletions build/pkgs/sirocco/dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mpfr
1 change: 1 addition & 0 deletions pkgs/sagemath-coxeter3/pyproject.toml.m4
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ requires = [
SPKG_INSTALL_REQUIRES_setuptools
SPKG_INSTALL_REQUIRES_sage_setup
SPKG_INSTALL_REQUIRES_sagemath_environment
SPKG_INSTALL_REQUIRES_sagemath_objects
SPKG_INSTALL_REQUIRES_cython
SPKG_INSTALL_REQUIRES_cysignals
SPKG_INSTALL_REQUIRES_pkgconfig
Expand Down
1 change: 1 addition & 0 deletions pkgs/sagemath-meataxe/pyproject.toml.m4
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ requires = [
SPKG_INSTALL_REQUIRES_setuptools
SPKG_INSTALL_REQUIRES_sage_setup
SPKG_INSTALL_REQUIRES_sagemath_environment
SPKG_INSTALL_REQUIRES_sagemath_objects
SPKG_INSTALL_REQUIRES_cython
SPKG_INSTALL_REQUIRES_cysignals
SPKG_INSTALL_REQUIRES_pkgconfig
Expand Down