Skip to content

Meson: build on recent Fedora #40038

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

Merged
merged 16 commits into from
May 11, 2025

Conversation

tobiasdiez
Copy link
Contributor

@tobiasdiez tobiasdiez commented May 2, 2025

  • Add devcontainer based on meson for fedora, and remove old outdated ones
  • Add CI for building with meson on fedora using system packages
  • For this to work, rankwidth and ecl had to make optional since they are currently not available
  • The system package manager for fedora has been changed to use dnf instead of yum
  • And minor corrections to the package info

Currently encountering

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

Copy link

github-actions bot commented May 2, 2025

Documentation preview for this PR (built with commit f375432; changes) is ready! 🎉
This preview will update shortly after each push to this PR.


- name: Install dependencies
run: |
# Install dnf5
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is necessary, as far as I can tell since Fedora 41 dnf is symlinked to dnf5, and Fedora 40 is supposed to be EOL in a couple weeks. Can we simplify this script by just using dnf everywhere?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestion. I'll remove fedora 40 then and use dnf everywhere.

@tobiasdiez
Copy link
Contributor Author

tobiasdiez commented May 4, 2025

It now at least compiles on Fedora 42. There are still some unresolved errors due to upstream limitations with meson (see linked issues in the PR description).

But I guess it's good enough for now, so ready for review.

The biggest issue for the meson build currently is that Fedora no longer ships ecl (and maxima-ecl). Does someone know if this could be fixed easily?

@tobiasdiez tobiasdiez marked this pull request as ready for review May 4, 2025 16:38
@tobiasdiez tobiasdiez requested a review from dimpase May 4, 2025 16:40
@dimpase
Copy link
Member

dimpase commented May 5, 2025

The biggest issue for the meson build currently is that Fedora no longer ships ecl (and maxima-ecl). Does someone know if this could be fixed easily?

ecl folks fixed build with gcc-15, but it's not yet released.

@dimpase
Copy link
Member

dimpase commented May 5, 2025

I presume the CI test errors with new fedora 41/42 are expected?

@loqs
Copy link

loqs commented May 5, 2025

ecl folks fixed build with gcc-15, but it's not yet released.

The ecl fix https://gitlab.com/embeddable-common-lisp/ecl/-/commit/1aec8f741f69fd736f020b7fe4d3afc33e60ae6a was included in 6d7fe91 by moving the ecl subproject to develop. That required dropping the function bint_numberp due to a now conflicting definition.

Copy link
Member

@dimpase dimpase left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, thanks!

@grhkm21
Copy link
Contributor

grhkm21 commented May 7, 2025

Changing tag on behalf of dima. Thanks for the work! (from a Fedora user)

@tobiasdiez
Copy link
Contributor Author

tobiasdiez commented May 7, 2025

ecl folks fixed build with gcc-15, but it's not yet released.

The ecl fix https://gitlab.com/embeddable-common-lisp/ecl/-/commit/1aec8f741f69fd736f020b7fe4d3afc33e60ae6a was included in 6d7fe91 by moving the ecl subproject to develop. That required dropping the function bint_numberp due to a now conflicting definition.

Exactly!

Changing tag on behalf of dima. Thanks for the work! (from a Fedora user)

Thanks!

Note that it compiles now fine, but maxima is still missing (so you will get a lot of runtime errors if you try to do anything with symbolics). This will be resolved with #40058.

Edit: After a minor cleanup, setting it back to positive review.

@vbraun vbraun merged commit 44c37fd into sagemath:develop May 11, 2025
25 of 27 checks passed
vbraun pushed a commit to vbraun/sage that referenced this pull request Jul 18, 2025
sagemathgh-40071: Meson: make it compile on recent ubuntu
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Successfully install sage with meson on recent ubuntu (like 25.04), only
with system packages pre-installed.

Ubuntu is missing maxima (with ecl), so we have to add maxima as a
subproject that is build on-the-fly.
Also make the python dep lrcalc an optional dependency, since it fails
to build (due to missing lrcalc).
The other changes are mostly minor updates to the dependency installing
and handling in meson.

Fixes sagemath#31347.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#40038

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40071
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jul 26, 2025
sagemathgh-40071: Meson: make it compile on recent ubuntu
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Successfully install sage with meson on recent ubuntu (like 25.04), only
with system packages pre-installed.

Ubuntu is missing maxima (with ecl), so we have to add maxima as a
subproject that is build on-the-fly.
Also make the python dep lrcalc an optional dependency, since it fails
to build (due to missing lrcalc).
The other changes are mostly minor updates to the dependency installing
and handling in meson.

Fixes sagemath#31347.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#40038

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40071
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jul 27, 2025
sagemathgh-40071: Meson: make it compile on recent ubuntu
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Successfully install sage with meson on recent ubuntu (like 25.04), only
with system packages pre-installed.

Ubuntu is missing maxima (with ecl), so we have to add maxima as a
subproject that is build on-the-fly.
Also make the python dep lrcalc an optional dependency, since it fails
to build (due to missing lrcalc).
The other changes are mostly minor updates to the dependency installing
and handling in meson.

Fixes sagemath#31347.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#40038

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40071
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jul 28, 2025
sagemathgh-40071: Meson: make it compile on recent ubuntu
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Successfully install sage with meson on recent ubuntu (like 25.04), only
with system packages pre-installed.

Ubuntu is missing maxima (with ecl), so we have to add maxima as a
subproject that is build on-the-fly.
Also make the python dep lrcalc an optional dependency, since it fails
to build (due to missing lrcalc).
The other changes are mostly minor updates to the dependency installing
and handling in meson.

Fixes sagemath#31347.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#40038

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40071
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Jul 29, 2025
sagemathgh-40071: Meson: make it compile on recent ubuntu
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Successfully install sage with meson on recent ubuntu (like 25.04), only
with system packages pre-installed.

Ubuntu is missing maxima (with ecl), so we have to add maxima as a
subproject that is build on-the-fly.
Also make the python dep lrcalc an optional dependency, since it fails
to build (due to missing lrcalc).
The other changes are mostly minor updates to the dependency installing
and handling in meson.

Fixes sagemath#31347.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#40038

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40071
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Aug 1, 2025
sagemathgh-40071: Meson: make it compile on recent ubuntu
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Successfully install sage with meson on recent ubuntu (like 25.04), only
with system packages pre-installed.

Ubuntu is missing maxima (with ecl), so we have to add maxima as a
subproject that is build on-the-fly.
Also make the python dep lrcalc an optional dependency, since it fails
to build (due to missing lrcalc).
The other changes are mostly minor updates to the dependency installing
and handling in meson.

Fixes sagemath#31347.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#40038

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40071
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Aug 12, 2025
sagemathgh-40089: Meson: test void linux on CI and add devcontainer for it
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Add a CI test for Void Linux building sage with meson (similar to sagemath#40038
for Fedora). A few minor bugs in the system package installation are
fixed: a missing `--yes` for the package index update, and adding a few
missing void packages.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40089
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Aug 13, 2025
sagemathgh-40089: Meson: test void linux on CI and add devcontainer for it
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Add a CI test for Void Linux building sage with meson (similar to sagemath#40038
for Fedora). A few minor bugs in the system package installation are
fixed: a missing `--yes` for the package index update, and adding a few
missing void packages.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40089
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Aug 14, 2025
sagemathgh-40089: Meson: test void linux on CI and add devcontainer for it
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Add a CI test for Void Linux building sage with meson (similar to sagemath#40038
for Fedora). A few minor bugs in the system package installation are
fixed: a missing `--yes` for the package index update, and adding a few
missing void packages.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40089
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
vbraun pushed a commit to vbraun/sage that referenced this pull request Aug 15, 2025
sagemathgh-40089: Meson: test void linux on CI and add devcontainer for it
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Add a CI test for Void Linux building sage with meson (similar to sagemath#40038
for Fedora). A few minor bugs in the system package installation are
fixed: a missing `--yes` for the package index update, and adding a few
missing void packages.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40089
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Tobias Diez
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants