-
-
Notifications
You must be signed in to change notification settings - Fork 480
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
relocatable wheel version of package sage_conf #31396
Comments
Commit: |
This comment has been minimized.
This comment has been minimized.
Author: Matthias Koeppe |
comment:4
On macOS, some shared libraries from homebrew still leak into the build:
Definitely should disable the R build (#30383). Also check whether setting CC= Also need to add
the tox test should include the test with |
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:6
Using -isysroot helps but giac configuration needs more work - #31403 |
comment:7
Replying to @mkoeppe:
Does not work because sage resolves symlinks when it determines SAGE_ROOT. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
|
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. New commits:
|
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:179
There's an isolated
Is a comment missing there? |
comment:180
I don't understand the |
comment:181
Is the plan to eventually make these wheels available on PyPI? |
Reviewer: Julian Rüth |
comment:182
Note to self. I don't really understand what |
comment:183
/var/tmp is a sticky directory, meaning every user can create a new subdirectory, which then securely belongs to them. The README of https://pypi.org/project/sage-conf/ (section "sage_conf wheels") explains more |
comment:184
Replying to @saraedum:
Ticket description explains why they can't go to PyPI. |
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:189
Sorry for not having a look at this ticket for a while. There are merge conflicts now btw. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Replaced by #36366. |
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 pypi/support#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 onhttps://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
). pypa/build on Linux - extension / binary modules in purelib pypa/packaging-problems#542 (comment): 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.opensage_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
The text was updated successfully, but these errors were encountered: