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

Provide a fuller "dev" version that can compile #6

Open
slel opened this issue May 29, 2021 · 6 comments
Open

Provide a fuller "dev" version that can compile #6

slel opened this issue May 29, 2021 · 6 comments
Labels
enhancement New feature or request

Comments

@slel
Copy link

slel commented May 29, 2021

Would it be possible to provide a fuller "dev" version that can compile?

That would allow installing certain extra packages that require build tools.

Some reports from users who want to install extra packages:

@slel
Copy link
Author

slel commented May 29, 2021

Alternatively, document how to make the Sage macOS app
use another Sage installation (like Gap-dot-app does).

Users who need build capability could build Sage from source,
or install fuller binaries from the Sage download site, and then
point the Sage macOS app to that more capable installation.

@NathanDunfield
Copy link
Member

I believe no current SageMath binary distribution supports sage -i, see the discussion here. So that situation would need to be rectified "upstream" first.

@culler
Copy link
Member

culler commented May 30, 2021

The target user for this binary distribution is a person who does not want to or does not know how to build sage from source. A user who is happy building sage from source has no need for the app and can build any additional packages that might be desired.

To keep the size of the release manageable, the SageMath app removes most of
the build environment that is created when building sage, or included in the "expert" binary distribution. Also, to avoid invalidating the code signature, the current app does not install anything, not even byte code, within the app bundle. Packages installed with pip and byte code files get written into the user's ~/.sage directory.

Installation of packages with pip does work fine, however. For example it is easy to install SnapPy within the SageMath app by running the magic command %pip install snappy.

My suggestion, for something like the gap kbmag package would be to bundle that package as a wheel that can be installed with pip. Is there some reason why the sage process does not want to make additional packages like that available as wheels?

@NathanDunfield
Copy link
Member

My suggestion, for something like the gap kbmag package would be to bundle that package as a wheel that can be installed with pip. Is there some reason why the sage process does not want to make additional packages like that available as wheels?

Not sure about providing wheels, but my understanding is that a current Sage goal is to replace as many of the optional Sage packages with pip installable ones as possible. How that would work with kbmag I don't know (since presumably it installs things into $SAGE_LOCAL/share/gap) but regardless that's beyond the scope of the Sage_macOS project. Until sage -i blah works in some context other than a completely-built-from-source Sage, it's premature to consider supporting it here.

@slel
Copy link
Author

slel commented May 30, 2021

Today I helped someone install SageMath 9.3 using macOS binaries
(on a Mac with Apple's command-line tools for developers installed)
and running sage -i gap_packages worked.

I thought it worked for Sage from Linux binaries too, and was
only a problem for Sage installed via package managers
such as Arch Linux, Conda, Debian, Fedora, Gentoo, etc.

But the discussion Nathan links to does mention problems with
Sage installed via Linux binaries or the Sage-Windows installer.

Thanks for the discussion and suggestions.

@NathanDunfield
Copy link
Member

It's possible that 9.3 is an improvement over other recent versions. Out of curiosity, I got the current binary for Ubuntu 20.04 and tried sage -i gap_packages. It seemed to build the gap_packages OK, but then started rebuilding openssl, python, etc. Compile failed for python for reasons I didn't investigate. That's another common issue with sage -i: it effectively triggers a complete rebuild of some large portion of Sage itself, taking a hour or more. Another reason for the indented move to more pip-based packages.

@culler culler added the enhancement New feature or request label Jun 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants