Closed mkoeppe closed 1 year ago
Description changed:
---
+++
@@ -7,6 +7,8 @@
The wheel declares dependencies (`install-requires`) to all Python packages in the Sage distribution that have extension modules. The dependencies are specific using `@` to URLs on
https://github.com/sagemath/sage-wheels/releases/download/9.3.rc1, where I have uploaded the binary wheels. Unfortunately, by PyPI policy, such `@` references are not allowed for packages on PyPI.
Hence, the pip invocation needs to use a URL.
+
+(See also https://twitter.com/mkoeppe_math/status/1378860285537054723)
**Instructions for testing:**
Branch pushed to git repo; I updated commit sha1. New commits:
cabb706 | src/pkgs/sage_conf-relocatable/setup.py: configure --without-system-boost... |
Branch pushed to git repo; I updated commit sha1. New commits:
1942363 | build/pkgs/pynac/spkg-install.in: Back to PYTHON=python3 |
9dcded5 | src/bin/sage: Only do the check for an incomplete installation when run from the source tree |
6e0c19e | sage.misc.package.installed_packages: After SAGE_SPKG_INST, also go through SAGE_VENV_SPKG_INST |
12d34ee | Merge #29013 |
5161d65 | build/pkgs/sage_conf/src/sage_conf.py.in: Move SAGE_ROOT, SAGE_LOCAL to beginning of file; only use substitution @prefix@ once |
986ca18 | build/pkgs/sage_conf/src/sage_conf.py.in: replace subst by replace |
6f05cc2 | sage_setup.setenv: New, use it in setup.py so that build works outside of sage-env |
e7ff393 | Merge #31338 |
2cb3814 | src/pkgs/sage_conf-relocatable/sage_conf.py.in: Update from src/pkgs/sage_conf/ |
Changed dependencies from #29039, #31409, #31521, #31552, #31562, #31567, #29013 to #29039, #31409, #31521, #31552, #31562, #31567, #29013, #31338
Branch pushed to git repo; I updated commit sha1. New commits:
c5dd7ba | Merge tag '9.3.rc2' into t/29013/public/29013-use-py3-venv |
f0fb082 | sage.misc.package.installed_packages: Refactor through new generator _spkg_inst_dirs |
d68e861 | sage.misc.package.package_manifest: Go through all _spkg_inst_dirs() |
54333e5 | Merge branch 't/29013/public/29013-use-py3-venv' into t/31396/relocatable_wheel_version_of_package_sage_conf |
a19f514 | src/pkgs/sage_conf*/README.rst: Unify the files |
Branch pushed to git repo; I updated commit sha1. New commits:
7484dda | build/pkgs/sagelib/src/README.rst: Link to sage-conf on pypi |
Changed dependencies from #29039, #31409, #31521, #31552, #31562, #31567, #29013, #31338 to #29039, #31562, #31567, #29013, #31338
Branch pushed to git repo; I updated commit sha1. New commits:
e523da7 | tox.ini (local-macos-nohomebrew): Add to Python3.framework/Headers to CPATH |
Description changed:
---
+++
@@ -27,11 +27,22 @@
$ SKIP_CONFIGURE=1 tox -e local-macos-10.15-nohomebrew-python3_xcode -- bash
(tox -e ...) $ (cd src/pkgs/sage_conf-relocatable/ && python3 setup.py bdist_wheel --plat-name macosx_10_15_x86_64)
+or
+
+ +tox -e local-macos-10.15-nohomebrew-python3_xcode -- sage-wheels +
This creates:
+Build for Linux:
+
+ +$ TARGETS_PRE=Makefile tox -e docker-manylinux-2_24-minimal-python3.9 -- sage-wheels + +
Follow-up steps:
manylinux
using tox -e docker-manylinux....
Changed dependencies from #29039, #31562, #31567, #29013, #31338 to #29039, #31562, #31567, #29013, #31338, #31427
Branch pushed to git repo; I updated commit sha1. New commits:
37c9fc0 | Makefile: New targets pypi-sdists, sage-wheels |
3a8406e | Fixup: Add missing symlinks src/pkgs/sage_conf-{pypi,relocatable}/README.rst |
82d9f14 | build/bin/write-dockerfile.sh: ADD some missing files in SAGE_ROOT |
7d10bd3 | tox.ini (docker), build/bin/write-dockerfile.sh: Handle EXTRA_SAGE_PACKAGES |
4a24bc5 | src/pkgs/sage_conf-relocatable/setup.py: Use configure --enable-build-as-root |
c92b335 | build/pkgs/pynac/spkg-install.in: Explicitly use python3 in SAGE_VENV |
32c069a | .gitignore: Integrate src/{doc,sage}/.gitignore here so that Docker ignores the listed files too |
c080bbc | Merge #31427 |
Description changed:
---
+++
@@ -46,6 +46,7 @@
**Follow-up steps:**
- build wheels for `manylinux` using `tox -e docker-manylinux....`
+ - auditwheel complains: `RuntimeError: Invalid binary wheel, found the following shared library/libraries in purelib folder:`; so we should replace our current abuse of package data (`install_data`) by platlib (`install_lib`)
- disable building the dependencies of the sphinx packages; remove unneeded static libraries; remove duplicated/triplicated shared libraries if possible;
- #31602: split out `sage_root` from `sage_conf` and use install-requires in the `sage_conf` sdist/wheel with @ links to GH releases to the `sage_root` wheel and the built non-`any` wheels.
Branch pushed to git repo; I updated commit sha1. New commits:
5ba62ae | .gitignore: Ignore spkg/pkgs/*/{build,dist} |
0808863 | src/pkgs/sage_conf-relocatable/setup.py: Move/copy/delete build trees more carefully |
79e2ef4 | tox.ini (manylinux-python3...): Add EXTRA_SAGE_PACKAGES so that system python is accepted |
Description changed:
---
+++
@@ -46,6 +46,7 @@
**Follow-up steps:**
- build wheels for `manylinux` using `tox -e docker-manylinux....`
+ - wheel is much too big: 2.3GB
- auditwheel complains: `RuntimeError: Invalid binary wheel, found the following shared library/libraries in purelib folder:`; so we should replace our current abuse of package data (`install_data`) by platlib (`install_lib`)
- disable building the dependencies of the sphinx packages; remove unneeded static libraries; remove duplicated/triplicated shared libraries if possible;
- #31602: split out `sage_root` from `sage_conf` and use install-requires in the `sage_conf` sdist/wheel with @ links to GH releases to the `sage_root` wheel and the built non-`any` wheels.
Branch pushed to git repo; I updated commit sha1. New commits:
9a3aa38 | build/bin/write-dockerfile.sh: ADD some missing files in SAGE_ROOT |
1b03fa9 | src/pkgs/sage_conf-pypi/setup.py: Change SETENV so that it works in shells with set -e |
b3b54b7 | Merge tag '9.3.rc2' into t/29039/pip_installable_package_sage_bootstrap |
ec10bc9 | src/pkgs/sage_conf-pypi/setup.py: Fix for shell behavior on fedora |
278c36c | src/pkgs/sage_conf-pypi/setup.py: Use 'configure --enable-build-as-root' so it works in containers too |
cc8297c | Merge #29039 |
Changed dependencies from #29039, #31562, #31567, #29013, #31338, #31427 to #29039, #31562, #31567, #29013, #31338, #31427, #28890
Branch pushed to git repo; I updated commit sha1. New commits:
3f4a8ef | Trac #28890: Pass --disable-static to autoconf packages by default. |
8a8efee | Trac #28890: Don't install PARI's static library. |
cd39c76 | Trac #28890: Don't use sdh_configure to configure zlib; it does not use |
9622d83 | build/pkgs/zlib/spkg-install.in: Fixup |
3d701f8 | build/pkgs/zlib/spkg-install.in: Handle errors from configure |
56178ab | build/bin/sage-dist-helpers (sdh_configure): On Cygwin, do not use --disable-static (until #30814 is done) |
4dcd135 | Merge #28890 |
Changed dependencies from #29039, #31562, #31567, #29013, #31338, #31427, #28890 to #29039, #31338, #28890
Changed dependencies from #29039, #31338, #28890 to #29039, #31338, #29617
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
133aab7 | Trac #29617: move MAXIMA_FAS to sage_conf. |
9b595c0 | Trac #29617: modify Kenzo interface to support system ECL. |
b4ae35e | Trac #29617: treat empty MAXIMA_FAS and KENZO_FAS as None. |
2d40f36 | Trac #29617: upgrade kenzo to v1.1.10. |
2078fa6 | Merge tag '9.4.beta0' into t/31593/configure__paths_within__sage_local___prefix__for_sage_conf |
5cbe423 | Merge #31593 |
be48dd8 | Merge #29617 |
b4b3ec8 | Merge tag '9.4.beta0' into t/29039/pip_installable_package_sage_bootstrap |
e1d2df0 | Merge tag '9.4.beta1' into t/29039/pip_installable_package_sage_bootstrap |
ce51048 | Merge #29039 |
Branch pushed to git repo; I updated commit sha1. New commits:
7e8a7a8 | Makefile (sage-wheels): Use SETUPTOOLS_USE_DISTUTILS=local |
801e792 | src/pkgs/sage_conf-relocatable/setup.py: Use wheel tags in build directory name too |
52d669d | src/pkgs/sage_conf-relocatable/setup.py: Do not use removed option --without-system-boost |
Branch pushed to git repo; I updated commit sha1. New commits:
55122f3 | build/pkgs/pynac/spkg-install.in: Work around Trac #31920 |
Branch pushed to git repo; I updated commit sha1. New commits:
ff58be3 | Makefile (sage-wheels): Fix wheel location in final message |
Installation with /usr/bin/python3 -m pip install -I --user https://github.com/sagemath/sage-wheels/releases/download/9.4.beta1/sage_conf-9.4b1-cp38-cp38-macosx_11_0_x86_64.whl https://github.com/sagemath/sage-wheels/releases/download/9.4.beta1/sagemath_standard-9.4b1-cp38-cp38-macosx_11_0_x86_64.whl
fails with:
Collecting argon2-cffi (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5.1->sagemath-standard==9.4b1)
Downloading https://files.pythonhosted.org/packages/74/fd/d78e003a79c453e8454197092fce9d1c6099445b7e7da0b04eb4fe1dbab7/argon2-cffi-20.1.0.tar.gz (1.8MB)
[...]
Failed to build argon2-cffi
No, that's correct
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
76023cc | .gitignore: Ignore spkg/pkgs/*/{build,dist} |
8591334 | src/pkgs/sage_conf-relocatable/setup.py: Move/copy/delete build trees more carefully |
adbbdc1 | tox.ini (manylinux-python3...): Add EXTRA_SAGE_PACKAGES so that system python is accepted |
6a6a66a | Makefile (sage-wheels): Use SETUPTOOLS_USE_DISTUTILS=local |
64ff2e7 | src/pkgs/sage_conf-relocatable/setup.py: Use wheel tags in build directory name too |
40050a2 | src/pkgs/sage_conf-relocatable/setup.py: Do not use removed option --without-system-boost |
a2aa592 | build/pkgs/pynac/spkg-install.in: Work around Trac #31920 |
52ecb27 | Makefile (sage-wheels): Fix wheel location in final message |
84637dd | Move sprc/pkgs/sage_conf-relocatable to pkgs/sage-conf_relocatable |
1c35e0f | Put pkgs/sage-conf in the root |
Changed dependencies from #29039, #31338, #29617 to #29039
This version of
sage_conf
is for making a wheel that packages the precompiled non-Python bits of the Sage distribution, makingSAGE_ROOT
(and thusSAGE_LOCAL=$SAGE_ROOT/local
) relocatable using Marc Culler's symbolic link surgery (the method proposed in #31076, usingSAGE_ROOT=/var/tmp/sage-...
and a symlink).The
sage
script invokessage-config
to determineSAGE_ROOT
andSAGE_LOCAL
. In the version ofsage-config
supplied by this version ofsage_conf
, we ensure that the symlink from/var/tmp/sage-....
to the actual install location is set.So far, a wheel has been built for XCode python 3.8 on macOS 10.15. The wheel is 670MB in size, an order of magnitude above the standard file size limit on PyPI; but a file size limit increase (requested in https://github.com/pypa/pypi-support/issues/985) has kindly been granted by the PyPI team.
The wheel declares dependencies (
install-requires
) to all Python packages in the Sage distribution that have extension modules. The dependencies are specific using@
to URLs on https://github.com/sagemath/sage-wheels/releases/tag/9.5.rc2, where I have uploaded the binary wheels. Unfortunately, by PyPI policy, such@
references are not allowed for packages on PyPI. Hence, the pip invocation needs to use a URL.(See also https://twitter.com/mkoeppe_math/status/1378860285537054723)
Instructions for testing:
bin
directory of the user installation scheme is inPATH
. For example, on macOS:Procedure for building the sage_conf wheel and compatible wheels:
For building wheels on macOS Catalina that uses XCode python 3.8:
or
This creates (uploaded to https://github.com/sagemath/sage-wheels/releases/tag/9.5.rc2)
Build for macOS Big Sur (requires a machine running Big Sur or Monterey) (uploaded to https://github.com/sagemath/sage-wheels/releases/tag/9.5.rc2)
Build for macOS Monterey (requires a machine running Monterey)
Build for Linux (does not work yet):
Follow-up steps:
manylinux
usingtox -e docker-manylinux....
RuntimeError: Invalid binary wheel, found the following shared library/libraries in purelib folder:
; so we should replace our current abuse of package data (install_data
) by platlib (install_lib
). https://github.com/pypa/packaging-problems/issues/542#issuecomment-912838470: subclassbuild_ext
instead ofbuild_py
sage_root.tar
(with symlinks) instead of including the sage root as a directory - https://docs.python.org/3/library/tarfile.html#tarfile.open31602: split out
sage_root
fromsage_conf
and use install-requires in thesage_conf
sdist/wheel with @ links to GH releases to thesage_root
wheel and the built non-any
wheels.Depends on #33817
CC: @culler @kliem @dimpase @jhpalmieri @slel @kiwifb
Component: relocation
Author: Matthias Koeppe
Branch/Commit: u/mkoeppe/relocatable_wheel_version_of_package_sage_conf @
1b2d4be
Reviewer: Julian Rüth
Issue created by migration from https://trac.sagemath.org/ticket/31396