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

sagemath is not available in Fedora 39 #36860

Open
2 tasks done
FilipLaurentiu opened this issue Dec 11, 2023 · 33 comments
Open
2 tasks done

sagemath is not available in Fedora 39 #36860

FilipLaurentiu opened this issue Dec 11, 2023 · 33 comments

Comments

@FilipLaurentiu
Copy link

Steps To Reproduce

sudo yum install sagemath

Expected Behavior

Install sagemath

Actual Behavior

Sagemath is not available in Fedora 39 repository

Last metadata expiration check: 0:07:16 ago on Mon 11 Dec 2023 01:01:27 PM EET. No match for argument: sagemath Error: Unable to find a match: sagemath

Additional Information

No response

Environment

➜  ~ lsb_release -a
LSB Version:	
Distributor ID:	Fedora
Description:	Fedora release 39 (Thirty Nine)
Release:	39
Codename:	ThirtyNine
➜  ~ uname -r
6.6.4-200.fc39.x86_64
➜  ~ sudo yum install sagemath 
Last metadata expiration check: 0:07:16 ago on Mon 11 Dec 2023 01:01:27 PM EET.
No match for argument: sagemath
Error: Unable to find a match: sagemath

Checklist

  • I have searched the existing issues for a bug report that matches the one I want to file, without success.
  • I have read the documentation and troubleshoot guide
@dimpase
Copy link
Member

dimpase commented Dec 11, 2023

This isn't for us, we don't do packaging for distros

@enriqueartal
Copy link
Contributor

When I told fedora developers that there was a problem with their nauty package, they pointed out that sagemath packager had abandoned the project, they wanted to know if some sagemath developer would be interested. I do not know rpm techniques, and actually it is simpler to compile it.

@vincentmacri
Copy link
Contributor

A couple people (including myself) are considering taking over as package maintainers for Sagemath on Fedora (https://discussion.fedoraproject.org/t/will-sagemath-return-to-the-fedora-39-repository/95662/17), but we're currently blocked by Sagemath not supporting Python 3.12, which is what ships with Fedora 39 (and Fedora doesn't allow packages to depend on older versions of Python than what ships with the OS by default).

@vincentmacri
Copy link
Contributor

I think #36023 and #36181 (as well as all the people interested in taking over maintaining it being new to package maintenance) are the main blockers.

@dimpase
Copy link
Member

dimpase commented Dec 12, 2023

Are you saying that Fedora 39 doesn't carry Python 3.11? Python 3.12.0 is quite buggy. Here is my favourite: python/cpython#112215

OTOH #36023 should not be a big problem - there is a new polymake release which does support newer perl.
https://github.com/polymake/polymake/releases/tag/V4.11
Although polymake is an optional package of Sage, it need not be there for Sage to function otherwise.

@dimpase
Copy link
Member

dimpase commented Dec 12, 2023

Please also note that while Sage's build-in python is quite old, Sage does support Python 3.12, see #36407

@FilipLaurentiu
Copy link
Author

I understand the problem. You can close the issue if you decide.
I tried to install it using nix. Everything ok but install it with nix I don't have SAGE_ENV variable set and I can't use sage as a kernel for the jupyter notebook

This path doesn't exist for me $SAGE_VENV/share/jupyter/kernels/sagemath
Can you help me with this problem?

@dimpase
Copy link
Member

dimpase commented Dec 12, 2023

This path doesn't exist for me $SAGE_VENV/share/jupyter/kernels/sagemath

please open a new issue, this one is about Fedora 39

@vincentmacri
Copy link
Contributor

Are you saying that Fedora 39 doesn't carry Python 3.11? Python 3.12.0 is quite buggy. Here is my favourite: python/cpython#112215

OTOH #36023 should not be a big problem - there is a new polymake release which does support newer perl. https://github.com/polymake/polymake/releases/tag/V4.11 Although polymake is an optional package of Sage, it need not be there for Sage to function otherwise.

I wasn't aware Sage supported system Python 3.12, that will help build it, but any bugs would be a problem. Do you know what impacts any of those Python 3.12 bugs would have on building and running Sagemath?

Fedora does technically carry Python 3.11, but the Fedora packaging guidelines don't allow packages to depend on Python 3.11 (with exceptions only for some developer tools like pip or tox). Fedora carries Python 3.11 only for users to directly install and use for development work. So for the purposes of packaging Sagemath, it needs to work with Python 3.12.

"Fedora packages MUST NOT depend on other versions of the CPython interpreter than the current python3." https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_python_version_support

In Fedora 39, the current python3 is Python 3.12.

@enriqueartal
Copy link
Contributor

With 10.2 in Fedora 39 ./configure --with-system-python3=force ends with

Given --with-system-python3=force, but no system package could be used.
That's an error.  Please install the indicated package to continue.
(To override this error, use ./configure --without-system-python3)

@dimpase
Copy link
Member

dimpase commented Dec 12, 2023

With 10.2 in Fedora 39 ./configure --with-system-python3=force ends with

Given --with-system-python3=force, but no system package could be used.
That's an error.  Please install the indicated package to continue.
(To override this error, use ./configure --without-system-python3)

Do you have python3-devel installed?

@enriqueartal
Copy link
Contributor

Yes

@dimpase
Copy link
Member

dimpase commented Dec 12, 2023

please post top-level config.log

@enriqueartal
Copy link
Contributor

config.log

@dimpase
Copy link
Member

dimpase commented Dec 12, 2023

Sorry, could you please apply by hand or otherwise the very small patch in #36407 (comment)
(replace 12->13 in two places) ?

Our QA obviously failed there on #36407 😢

Then you'd need to run ./bootstrap to regenerate ./configure with this change. Sorry again.

@enriqueartal
Copy link
Contributor

This change is not enough, venv remains 3.11; I changed some more files with no success

@dimpase
Copy link
Member

dimpase commented Dec 13, 2023

I am sorry, the PR #36407 which meant to allow Sage to use system-wide Python 3.12 to be used wasn't complete, as it turns out.
Thanks to efforts of @mkoeppe, only he now knows what exactly went wrong, so I have to leave him to help you further.

@mkoeppe
Copy link
Contributor

mkoeppe commented Dec 13, 2023

For the roadmap to 3.12, see the list of PRs in:

@tornaria
Copy link
Contributor

A couple people (including myself) are considering taking over as package maintainers for Sagemath on Fedora (https://discussion.fedoraproject.org/t/will-sagemath-return-to-the-fedora-39-repository/95662/17), but we're currently blocked by Sagemath not supporting Python 3.12, which is what ships with Fedora 39 (and Fedora doesn't allow packages to depend on older versions of Python than what ships with the OS by default).

If all the dependencies are available on fedora (or if you are willing to package all missing dependencies) you can build a package just for sage-the-library which does support python 3.12.

You can see how other distros do, for example:

Roughly speaking, you cd into pkgs/sagemath-standard and build using setuptools, but you need to setup some things before and adjust some things after.

Doing this will not check anything in your system; it's your responsibility as a packager to make sure dependencies are right.

@mkoeppe mkoeppe added the disputed PR is waiting for community vote, see https://groups.google.com/g/sage-devel/c/IgBYUJl33SQ label Dec 23, 2023
@enriqueartal
Copy link
Contributor

For people interested in packaging sagemath in Fedora, it is possible to compile it with system python 3.12, see #36869 (comment) for details and issues.

In order to recognized the system package, I needed to change python-setuptools -> python3-setuptools in build/pkgs/python3/distros/fedora.txt. In order to use the ecm system package, I linked /usr/bin/gmp-ecm to /usr/bin/ecm, I do not know how to do it inside the configure. Finally, to use libbraiding system package, it was necessary to install libbraiding-devel, may be it should be added to build/pkgs/libbraiding/distros/fedora.txt.

@dimpase
Copy link
Member

dimpase commented Jan 3, 2024

For people interested in packaging sagemath in Fedora, it is possible to compile it with system python 3.12, see #36869 (comment) for details and issues.

In order to recognized the system package, I needed to change python-setuptools -> python3-setuptools in build/pkgs/python3/distros/fedora.txt.

this is a minor issue, as build/pkgs/*/distros/* are just hints for package installations.

In order to use the ecm system package, I linked /usr/bin/gmp-ecm to /usr/bin/ecm, I do not know how to do it inside the configure.

this is something we should looks at - there are more systems where ecm is called gmp-ecm

Finally, to use libbraiding system package, it was necessary to install libbraiding-devel, may be it should be added to build/pkgs/libbraiding/distros/fedora.txt.

sure

@mkoeppe
Copy link
Contributor

mkoeppe commented Jan 3, 2024

I needed to change python-setuptools -> python3-setuptools in build/pkgs/python3/distros/fedora.txt. [...] to use libbraiding system package, it was necessary to install libbraiding-devel, may be it should be added to build/pkgs/libbraiding/distros/fedora.txt.

Thanks, done in #36181 (00e492d, 3f1d890).

@mkoeppe
Copy link
Contributor

mkoeppe commented Jan 3, 2024

In order to use the ecm system package, I linked /usr/bin/gmp-ecm to /usr/bin/ecm, I do not know how to do it inside the configure.

this is something we should looks at - there are more systems where ecm is called gmp-ecm

See also:

@dimpase
Copy link
Member

dimpase commented Mar 11, 2024

#37011 is ready for review

@saraedum
Copy link
Member

@mkoeppe I don't understand what is "disputed" about this issue. (Also, I don't know what this label means on an issue actually.) Could you explain?

@dimpase
Copy link
Member

dimpase commented Mar 21, 2024

@mkoeppe I don't understand what is "disputed" about this issue. (Also, I don't know what this label means on an issue actually.) Could you explain?

I think that was due to me complaining here about #36407 being misnamed

@mkoeppe
Copy link
Contributor

mkoeppe commented Mar 21, 2024

@saraedum The label "disputed" marks PRs and Issues that have been affected by abusive conduct.

@saraedum
Copy link
Member

@mkoeppe that's a surprising definition of "disputed" to me. We'll discuss what this label should be good for in the sage-conduct meeting. Since we have the voting process on PRs that are "disputed" I find it confusing to put this label on issues.

@mkoeppe
Copy link
Contributor

mkoeppe commented Mar 21, 2024

@saraedum People can filter on issues being a PR and even on the status label. I have shared a suitable search link in my post https://groups.google.com/g/sage-devel/c/9dvroyGGlsw

@mkoeppe
Copy link
Contributor

mkoeppe commented Mar 21, 2024

@saraedum The search for the "disputed" label, including for open Issues and Issues/PRs that are closed already, provides our community with the necessary broader context: That the crisis is one of toxicity (to the degree of manipulative and abusive conduct); and the cost and damage of this crisis.

@saraedum
Copy link
Member

@saraedum People can filter on issues being a PR and even on the status label. I have shared a suitable search link in my post https://groups.google.com/g/sage-devel/c/9dvroyGGlsw

Sure. I clicked on the disputed label and was suprised that there's also disputed issues. I was expecting that the "dispute" was about whether there is an issue (or whether the issue is invalid) but it seems to be used as a marker about perceived abusive language. That's simply not what I expected this label to be about.

@saraedum
Copy link
Member

saraedum commented Mar 21, 2024

@saraedum The search for the "disputed" label, including for open Issues and Issues/PRs that are closed already, provides our community with the necessary broader context: That the crisis is one of toxicity (to the degree of manipulative and abusive conduct); and the cost and damage of this crisis.

Since there are four "disputed" issues I don't think that these are relevant if it's about conveying that picture. But anyway, this issue should be about Fedora 39 and not about a meta discussion about the merits of the disputed label. So let's not go any deeper here maybe. I understand now why the disputed label is here and that no vote is needed. That's what I wanted to understand.

@saraedum
Copy link
Member

I am removing the disputed label here since there is nothing that requires a vote. Also, as discussed by the sage-conduct committee, we changed the disputed label to make it clear that it is now about PRs looking for a vote.

If you want to point out comments that you think violate our Code of Conduct, then such violations should be reported to the committee. We will then decide whether to hide/delete these comments.

@saraedum saraedum removed the disputed PR is waiting for community vote, see https://groups.google.com/g/sage-devel/c/IgBYUJl33SQ label Mar 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants