Open FilipLaurentiu opened 8 months ago
This isn't for us, we don't do packaging for distros
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.
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).
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.
Are you saying that Fedora 39 doesn't carry Python 3.11? Python 3.12.0 is quite buggy. Here is my favourite: https://github.com/python/cpython/issues/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.
Please also note that while Sage's build-in python is quite old, Sage does support Python 3.12, see #36407
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?
This path doesn't exist for me
$SAGE_VENV/share/jupyter/kernels/sagemath
please open a new issue, this one is about Fedora 39
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.
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)
With 10.2 in Fedora 39
./configure --with-system-python3=force
ends withGiven --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?
Yes
please post top-level config.log
Sorry, could you please apply by hand or otherwise the very small patch in https://github.com/sagemath/sage/pull/36407#issuecomment-1852664647 (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.
This change is not enough, venv remains 3.11; I changed some more files with no success
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.
For the roadmap to 3.12, see the list of PRs in:
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.
For people interested in packaging sagemath in Fedora, it is possible to compile it with system python 3.12, see https://github.com/sagemath/sage/pull/36869#issuecomment-1875089797 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.
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
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 tobuild/pkgs/libbraiding/distros/fedora.txt.
Thanks, done in #36181 (00e492de2c9, 3f1d890aa6f).
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:
@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?
@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
@saraedum The label "disputed" marks PRs and Issues that have been affected by abusive conduct.
@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.
@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
@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 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 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.
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.
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
Checklist