sage
sage copied to clipboard
Meson: make it compile on recent ubuntu
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.
:memo: 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.
:hourglass: Dependencies
- https://github.com/sagemath/sage/pull/40038
Documentation preview for this PR (built with commit 7b1307f50dde20b0b02178f65f6923f7e52aa3e2; changes) is ready! :tada: This preview will update shortly after each push to this PR.
@dimpase I need some help with ecl/maxima (not sure who else to tag here)
The problem I have is that the call load(to_poly_solve) in the maxima initialization fails.
First, it would be nice to have some debug / complete stdout of the error. Currently, the sage error simply prints:
$ python -c "from sage.interfaces.maxima_lib import MaximaLib"
RuntimeError: ECL says: THROW: The catch MACSYMA-QUIT is undefined.
while evaluating #$load(to_poly_solve)$
Second, I tried to debug/fix it in a direct ecl shell:
> (require 'maxima "/workspaces/sage/build/build-debian/subprojects/maxima-5.47.0/build/src/binary-ecl/maxima.fas")
;;; Loading #P"/workspaces/sage/build/build-debian/subprojects/maxima-5.47.0/build/src/binary-ecl/maxima.fas"
;;; Loading #P"/usr/lib/x86_64-linux-gnu/ecl-24.5.10/sb-bsd-sockets.fas"
;;; Loading #P"/usr/lib/x86_64-linux-gnu/ecl-24.5.10/sockets.fas"
("SB-BSD-SOCKETS" "SOCKETS" "MAXIMA")
> (in-package :maxima)
#<"MAXIMA" package>
MAXIMA> (initialize-runtime-globals)
;;; Warning: Maxima is unable to set up the help system.
(Details: CL-INFO::LOAD-PRIMARY-INDEX: Cannot open #P"/usr/local/share/info/maxima-index.lisp".
C library error: No such file or directory)
;;; Warning: Maxima is unable to set up the help system.
(Details: CL-INFO::LOAD-PRIMARY-INDEX: Cannot open #P"/usr/local/share/info/maxima-index-html.lisp".
C library error: No such file or directory)
MAXIMA> #$file_search_maxima: append(file_search_maxima, ["/workspaces/sage/build/build-debian/subprojects/maxima-5.47.0/dist/usr/local/share/maxima/5.47.0/share/to_poly_solve/to_poly_solve.mac"])$
((MLIST SIMP) "/root/.maxima/$$$.{mac,mc,wxm}"
"/usr/local/share/maxima/5.47.0/share/$$$.{mac,mc,wxm}"
"/usr/local/share/maxima/5.47.0/share/{affine,algebra,algebra/charsets,algebra/solver,amatrix,bernstein,calculus,cobyla,cobyla/ex,cobyla/lisp,colnew,colnew/ex1,colnew/ex2,colnew/ex3,colnew/ex4,colnew/lisp,combinatorics,contrib,contrib/Eulix,contrib/Grobner,contrib/Zeilberger,contrib/alt-display,contrib/altsimp,contrib/binsplit,contrib/bitwise,contrib/boolsimp,contrib/coma,contrib/diffequations,contrib/diffequations/tests,contrib/elliptic_curves,contrib/elliptic_curves/figures,contrib/format,contrib/fresnel,contrib/gentran,contrib/gentran/man,contrib/gentran/test,contrib/gf,contrib/integration,contrib/levin,contrib/lurkmathml,contrib/maxima-odesolve,contrib/maximaMathML,contrib/mcclim,contrib/noninteractive,contrib/odes,contrib/operatingsystem,contrib/prim,contrib/rand,contrib/rkf45,contrib/sarag,contrib/smath,contrib/state,contrib/symplectic_ode,contrib/trigtools,contrib/unicodedata,contrib/unit,contrib/vector3d,descriptive,diff_form,diff_form/tests,diffequations,distrib,draw,dynamics,ezunits,fftpack5,fftpack5/lisp,finance,fourier_elim,fractals,graphs,hompack,hompack/lisp,hypergeometric,integequations,integer_sequence,integration,lapack,lapack/blas,lapack/lapack,lbfgs,linearalgebra,logic,lsquares,macro,matrix,minpack,minpack/lisp,misc,mnewton,multiadditive,nelder_mead,numeric,numericalio,odepack,odepack/src,orthopoly,pdiff,physics,pslq,pytranslate,quantum,simplex,simplex/Tests,simplification,solve_rat_ineq,solve_rec,sound,stats,stringproc,sym,tensor,tensor/tracefree-code,test_batch_encodings,to_poly_solve,translators,translators/m2mj,trigonometry,utils,vector,z_transform}/$$$.{mac,mc,wxm}"
"/usr/local/share/maxima/5.47.0/$$$.{mac,mc,wxm}"
"/workspaces/sage/build/build-debian/subprojects/maxima-5.47.0/dist/usr/local/share/maxima/5.47.0/share/to_poly_solve/to_poly_solve.mac")
MAXIMA> #$load(to_poly_solve)$
file_search1: to_poly not found in file_search_maxima,file_search_lisp.
-- an error. To debug this try: debugmode(true);
Maxima encountered a Lisp error:
THROW: The catch MACSYMA-QUIT is undefined.
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
Condition of type: SIMPLE-CONTROL-ERROR
THROW: The catch MAXIMA::RETURN-FROM-DEBUGGER is undefined.
Available restarts:
1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SI:BYTECODES. [Evaluation of: (MAXIMA::MEVAL* (QUOTE ((MAXIMA::$LOAD) MAXIMA::$TO_POLY_SOLVE)))] In: #<process TOP-LEVEL 0x7f85e4102f00>.
>>
I guess the problem is that the maxima subproject installs the mac files in a folder (/workspaces/sage/build/build-debian/subprojects/maxima-5.47.0/dist/usr/local/share/maxima/5.47.0/share) where maxima normally doesn't search. I tried to fix/confirm this by adding the path to file_search_maxima (see above) but this is not working (perhaps I'm specifying it however in the wrong way).
Any idea?
the grand scheme of things is that Maxima is 2 things - a standalone executable, and a loadable ECL Lisp library. The latter must be installed into a directory known to ECL. I guess the latter does not happen here?
EDIT - no, my guess is not correct, yours probably is. @nbruin might say more on this
Building maxima.fas so that (require 'maxima) works is indeed something maxima didn't use to do. That bit got patched into maxima's build procedure as part of sage's maxima.spkg. I don't know if maxima has upstreamed that edit. Note that maxima-on-ecl is not the main deployment of maxima by itself, so it would be understandable if maxima would not adopt that change.
However, that doesn't seem to be the issue here: the maxima.fas does load. However it does seem that a bunch of other files aren't found: it looks for stuff in /usr/local/share/maxima/5.47.0/share/ and usr/local/share/info/. It would be straightforward to check if the required files are indeed not there. You could then look at where they are instead (if at all) and then comes the detective job of finding out if those files SHOULD be places where they are searched for and/or whether maxima/ecl needs to be reconfigured to look for those files in another location.
Thanks a lot @dimpase and @nbruin. I was now able to solve it. Essentially the problem was that I've only changed the maxima search path, but also the lisp search path had to be adapted as well.
It's working relatively well now. A few things still have to be cleaned up, I'll do this in a few days.
This is now ready for review. The CI test (https://github.com/sagemath/sage/actions/runs/15668419639/job/44135603978?pr=40071) is passing, but with quite a few doctest failures (mostly because maxima cannot find it's help and due to missing features annotations). Fixing these issues will be subject of a follow-up.
The failing CI are unrelated.
Would be nice to get this in as soon as possible to fix the failing fedora runs on other PRs (due to the setuptools typo).
The failing tests seem to be unreleated.
Could we please get this in?
This attempts to download maxima as part of installing sagelib, which the buildbot prohibits:
[sagelib-10.7.beta8] Setting up build directory /Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/var/tmp/sage/build/sagelib-10.7.beta8
[sagelib-10.7.beta8] Host system: Darwin Mini-M2.fritz.box 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:54:26 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T8112 arm64
[sagelib-10.7.beta8] C compiler: gcc, Apple clang version 17.0.0 (clang-1700.0.13.5), Target: arm64-apple-darwin24.5.0, Thread model: posix, InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
[sagelib-10.7.beta8] No stamp file for package 'sagelib' in /Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/var/lib/sage/installed
[sagelib-10.7.beta8] No spkg-legacy-uninstall script; nothing to do
[sagelib-10.7.beta8] [spkg-install] Installing sagelib-10.7.beta8 (editable mode)
[sagelib-10.7.beta8] [spkg-install] Using pip 24.2 from /Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/lib/python3.12/site-packages/pip (python 3.12)
[sagelib-10.7.beta8] [spkg-install] Obtaining file:///Users/buildbot-sage/worker/sage_git/build
[sagelib-10.7.beta8] [spkg-install] Checking if build backend supports build_editable: started
[sagelib-10.7.beta8] [spkg-install] Running command Checking if build backend supports build_editable
[sagelib-10.7.beta8] [spkg-install] Checking if build backend supports build_editable: finished with status 'done'
[sagelib-10.7.beta8] [spkg-install] Preparing editable metadata (pyproject.toml): started
[sagelib-10.7.beta8] [spkg-install] Running command Preparing editable metadata (pyproject.toml)
[sagelib-10.7.beta8] [spkg-install] + meson setup /Users/buildbot-sage/worker/sage_git/build /Users/buildbot-sage/worker/sage_git/build/build/sage-distro -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --default-library=static --native-file=/Users/buildbot-sage/worker/sage_git/build/build/sage-distro/meson-python-native-file.ini
[sagelib-10.7.beta8] [spkg-install] The Meson build system
[sagelib-10.7.beta8] [spkg-install] Version: 1.7.0
[sagelib-10.7.beta8] [spkg-install] Source dir: /Users/buildbot-sage/worker/sage_git/build
[sagelib-10.7.beta8] [spkg-install] Build dir: /Users/buildbot-sage/worker/sage_git/build/build/sage-distro
[sagelib-10.7.beta8] [spkg-install] Build type: native build
[sagelib-10.7.beta8] [spkg-install] Project name: SageMath
[sagelib-10.7.beta8] [spkg-install] Project version: 10.7.beta8
[sagelib-10.7.beta8] [spkg-install] C compiler for the host machine: gcc (clang 17.0.0 "Apple clang version 17.0.0 (clang-1700.0.13.5)")
[sagelib-10.7.beta8] [spkg-install] C linker for the host machine: gcc ld64 1167.5
[sagelib-10.7.beta8] [spkg-install] C++ compiler for the host machine: g++ -std=gnu++11 (clang 17.0.0 "Apple clang version 17.0.0 (clang-1700.0.13.5)")
[sagelib-10.7.beta8] [spkg-install] C++ linker for the host machine: g++ -std=gnu++11 ld64 1167.5
[sagelib-10.7.beta8] [spkg-install] Cython compiler for the host machine: cython (cython 3.0.11)
[sagelib-10.7.beta8] [spkg-install] Host machine cpu family: aarch64
[sagelib-10.7.beta8] [spkg-install] Host machine cpu: aarch64
[sagelib-10.7.beta8] [spkg-install] Program python found: YES (/Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/bin/python3)
[sagelib-10.7.beta8] [spkg-install] Found pkg-config: YES (/usr/local/bin/pkg-config) 0.29.2
[sagelib-10.7.beta8] [spkg-install] Run-time dependency python found: YES 3.12
[sagelib-10.7.beta8] [spkg-install] Program python (pytest) found: YES (/Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/bin/python3) modules: pytest
[sagelib-10.7.beta8] [spkg-install] numpy-config found: YES (/Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/bin/numpy-config) 2.2.4
[sagelib-10.7.beta8] [spkg-install] Run-time dependency numpy found: YES 2.2.4
[sagelib-10.7.beta8] [spkg-install] Run-time dependency gmp found: YES 6.3.0
[sagelib-10.7.beta8] [spkg-install] Library pari found: YES
[sagelib-10.7.beta8] [spkg-install] Run-time dependency mpfr found: YES 4.2.1
[sagelib-10.7.beta8] [spkg-install] Run-time dependency flint found: YES 3.2.2
[sagelib-10.7.beta8] [spkg-install] Found CMake: /Users/buildbot-sage/worker/sage_git/build/local/bin/cmake (3.31.2)
[sagelib-10.7.beta8] [spkg-install] WARNING: CMake Toolchain: Failed to determine CMake compilers state
[sagelib-10.7.beta8] [spkg-install] Run-time dependency accelerate found: NO (tried pkgconfig, framework and cmake)
[sagelib-10.7.beta8] [spkg-install] Run-time dependency cblas found: YES 0.3.28
[sagelib-10.7.beta8] [spkg-install] Run-time dependency gsl found: YES 2.7.1
[sagelib-10.7.beta8] [spkg-install] Run-time dependency gdlib found: YES 2.3.3
[sagelib-10.7.beta8] [spkg-install] Library m found: YES
[sagelib-10.7.beta8] [spkg-install] Run-time dependency m4ri found: YES 20250128
[sagelib-10.7.beta8] [spkg-install] Run-time dependency m4rie found: YES 20250128
[sagelib-10.7.beta8] [spkg-install] Has header "meataxe.h" : NO
[sagelib-10.7.beta8] [spkg-install] Run-time dependency libpng found: YES 1.6.43
[sagelib-10.7.beta8] [spkg-install] Run-time dependency zlib found: YES 1.3.1
[sagelib-10.7.beta8] [spkg-install] Run-time dependency eclib found: YES 20250122
[sagelib-10.7.beta8] [spkg-install] Library ecm found: YES
[sagelib-10.7.beta8] [spkg-install] Run-time dependency gmpxx found: YES 6.3.0
[sagelib-10.7.beta8] [spkg-install] Run-time dependency fflas-ffpack found: YES 2.5.0
[sagelib-10.7.beta8] [spkg-install] Run-time dependency givaro found: YES 4.2.1
[sagelib-10.7.beta8] [spkg-install] Run-time dependency linbox found: YES 1.7.0
[sagelib-10.7.beta8] [spkg-install] Library mpc found: YES
[sagelib-10.7.beta8] [spkg-install] Library mpfi found: YES
[sagelib-10.7.beta8] [spkg-install] Run-time dependency libgap found: YES 4.14.0
[sagelib-10.7.beta8] [spkg-install] Run-time dependency singular found: YES 4.4.1
[sagelib-10.7.beta8] [spkg-install] Library ntl found: YES
[sagelib-10.7.beta8] [spkg-install] Message: Warning: The specified datadir does not contain the necessary Cremona database. Either specify a different datadir or specify a correct the correct path via the environment variable SAGE_SHARE during runtime.
[sagelib-10.7.beta8] [spkg-install] Program ecl-config found: YES (/Users/buildbot-sage/worker/sage_git/build/local/bin/ecl-config)
[sagelib-10.7.beta8] [spkg-install] WARNING: OpenMP support not available because: Couldn't find libomp
[sagelib-10.7.beta8] [spkg-install] Run-time dependency OpenMP found: NO (tried system)
[sagelib-10.7.beta8] [spkg-install] Program gap found: YES (/Users/buildbot-sage/worker/sage_git/build/local/bin/gap)
[sagelib-10.7.beta8] [spkg-install] Program ecm found: YES (/Users/buildbot-sage/worker/sage_git/build/local/bin/ecm)
[sagelib-10.7.beta8] [spkg-install] Library sirocco found: NO
[sagelib-10.7.beta8] [spkg-install] Library ecl found: YES
[sagelib-10.7.beta8] [spkg-install] Program ecl found: YES (/Users/buildbot-sage/worker/sage_git/build/local/bin/ecl)
[sagelib-10.7.beta8] [spkg-install] Program maxima found: YES (/Users/buildbot-sage/worker/sage_git/build/local/bin/maxima)
[sagelib-10.7.beta8] [spkg-install] Downloading maxima source from https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download
[sagelib-10.7.beta8] [spkg-install] <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
[sagelib-10.7.beta8] [spkg-install] WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
[sagelib-10.7.beta8] [spkg-install] <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
[sagelib-10.7.beta8] [spkg-install] WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
[sagelib-10.7.beta8] [spkg-install] <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
[sagelib-10.7.beta8] [spkg-install] WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
[sagelib-10.7.beta8] [spkg-install] <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
[sagelib-10.7.beta8] [spkg-install] WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
[sagelib-10.7.beta8] [spkg-install] <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
[sagelib-10.7.beta8] [spkg-install] WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
[sagelib-10.7.beta8] [spkg-install] <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
[sagelib-10.7.beta8] [spkg-install] A fallback URL could be specified using source_fallback_url key in the wrap file
[sagelib-10.7.beta8] [spkg-install]
[sagelib-10.7.beta8] [spkg-install] ../../src/sage/libs/meson.build:29:18: ERROR: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?
[sagelib-10.7.beta8] [spkg-install]
[sagelib-10.7.beta8] [spkg-install] A full log can be found at /Users/buildbot-sage/worker/sage_git/build/build/sage-distro/meson-logs/meson-log.txt
[sagelib-10.7.beta8] [spkg-install] error: subprocess-exited-with-error
[sagelib-10.7.beta8] [spkg-install]
[sagelib-10.7.beta8] [spkg-install] × Preparing editable metadata (pyproject.toml) did not run successfully.
[sagelib-10.7.beta8] [spkg-install] │ exit code: 1
[sagelib-10.7.beta8] [spkg-install] ╰─> See above for output.
[sagelib-10.7.beta8] [spkg-install]
[sagelib-10.7.beta8] [spkg-install] note: This error originates from a subprocess, and is likely not a problem with pip.
[sagelib-10.7.beta8] [spkg-install] full command: /Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/bin/python3 /Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.12.5/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py prepare_metadata_for_build_editable /var/folders/7s/txp5jffj73sb5h6gp25s7lym0000gp/T/tmp6lpso2k2
[sagelib-10.7.beta8] [spkg-install] cwd: /Users/buildbot-sage/worker/sage_git/build
[sagelib-10.7.beta8] [spkg-install] Preparing editable metadata (pyproject.toml): finished with status 'error'
[sagelib-10.7.beta8] [spkg-install] error: metadata-generation-failed
[sagelib-10.7.beta8] [spkg-install]
[sagelib-10.7.beta8] [spkg-install] × Encountered error while generating package metadata.
[sagelib-10.7.beta8] [spkg-install] ╰─> See above for output.
[sagelib-10.7.beta8] [spkg-install]
[sagelib-10.7.beta8] [spkg-install] note: This is an issue with the package mentioned above, not pip.
[sagelib-10.7.beta8] [spkg-install] hint: See above for details.
[sagelib-10.7.beta8] [spkg-install] ********************************************************************************
[sagelib-10.7.beta8] [spkg-install] Error installing sagelib-10.7.beta8
[sagelib-10.7.beta8] [spkg-install] ********************************************************************************
@vbraun Thanks for testing this PR. A couple of questions/comments:
- The buildbot do have internet access, right? Why is it forbidden to download stuff? This constraint will not work with meson's subprojects (that will replace at least some of the spkgs) because meson will download the sources during the build of sagelib.
- There seems to be something wrong with the detection of the sage-the-distro build maxima. Could you please post the full log of /Users/buildbot-sage/worker/sage_git/build/build/sage-distro/meson-logs/meson-log.txt?
- Could you please set the CI variable to true in the build bots, then meson will print more helpful, detailed logs.
@dimpase we could already remove the sage-the-distro maxima and replace it by the meson subproject in this PR, instead of trying to fix the detection of maxima build by sage-the-distro. What do you think?
@tobiasdiez @vbraun current Sage convention is that all the standard packages are supplied along in a source form. It looks as if meson dist is a way to deal with this, so a meson-understood complete tarball, along with separate tarballs for subprojects, are created.
According to https://mesonbuild.com/Creating-releases.html#include-subprojects-in-your-release
it's possible to build subprojects while offline, given such a tarball. They say "This is useful to distribute self contained tarball that can be built offline (i.e. --wrap-mode=nodownload)."
One way or another, the buildbot in question has to get the sources from somewhere before the build itself starts, and without knowing more details on this it's hard to give a meaningful advice.
Actually buildbot only prohibits internet access when running tests, but it should work at build time (i.e. when running make start)
Something is wrong with the sourceforge cert? Either way
- please don't rely solely on sourceforge urls, those not super reliable
- please don't download tarballs from third-party pages without verifying checksums
-----------
Command line: `gcc -L/Users/buildbot-sage/worker/sage_git/build/local/lib /Users/buildbot-sage/worker/sage_git/build/build/sage-distro/meson-private/tmpd4z06vu6/testfile.c -o /Users/buildbot-sage/worker/sage_git/build/build/sage-distro/meson-private/tmpd4z06vu6/output.exe -g -O2 -O0 -Werror=implicit-function-declaration -lecl -Wl,-undefined,dynamic_lookup` -> 0
Library ecl found: YES
Program ecl found: YES (/Users/buildbot-sage/worker/sage_git/build/local/bin/ecl)
Running command: /Users/buildbot-sage/worker/sage_git/build/local/bin/ecl --eval '(require '"'"'maxima)' --eval '(quit)'
--- stdout ---
--- stderr ---
An error occurred during initialization:
Module error: Don't know how to REQUIRE MAXIMA..
Program maxima found: YES (/Users/buildbot-sage/worker/sage_git/build/local/bin/maxima)
Downloading maxima source from https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
WARNING: failed to download with error: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?. Trying after a delay...
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)>
A fallback URL could be specified using source_fallback_url key in the wrap file
../../src/sage/libs/meson.build:29:18: ERROR: could not get https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download is the internet available?
for me,
wget https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download
works fine.
--2025-07-20 14:44:17-- https://sourceforge.net/projects/maxima/files/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz/download
Resolving sourceforge.net... 2606:4700::6812:d95, 2606:4700::6812:c95, 104.18.12.149, ...
Connecting to sourceforge.net|2606:4700::6812:d95|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://downloads.sourceforge.net/project/maxima/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz?ts=gAAAAABofUccuxaGMnymW30kvzPZLZUQ3hSfipggXb4Uu8IVJ2o_NO3ZR5oT1vAdQlAPuMamF2ASkNR7FXMHnb7NpXB4Nc8sgQ%3D%3D&use_mirror=pilotfiber&r= [following]
--2025-07-20 14:44:18-- https://downloads.sourceforge.net/project/maxima/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz?ts=gAAAAABofUccuxaGMnymW30kvzPZLZUQ3hSfipggXb4Uu8IVJ2o_NO3ZR5oT1vAdQlAPuMamF2ASkNR7FXMHnb7NpXB4Nc8sgQ%3D%3D&use_mirror=pilotfiber&r=
Resolving downloads.sourceforge.net... 2606:4700::6812:c95, 2606:4700::6812:d95, 104.18.13.149, ...
Connecting to downloads.sourceforge.net|2606:4700::6812:c95|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://pilotfiber.dl.sourceforge.net/project/maxima/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz?viasf=1 [following]
--2025-07-20 14:44:18-- https://pilotfiber.dl.sourceforge.net/project/maxima/Maxima-source/5.47.0-source/maxima-5.47.0.tar.gz?viasf=1
Resolving pilotfiber.dl.sourceforge.net... 216.158.133.250
Connecting to pilotfiber.dl.sourceforge.net|216.158.133.250|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 47939891 (46M) [application/x-gzip]
Saving to: ‘download’
download 100%[=========================================>] 45.72M 29.8MB/s in 1.5s
2025-07-20 14:44:20 (29.8 MB/s) - ‘download’ saved [47939891/47939891]
Actually buildbot only prohibits internet access when running tests, but it should work at build time (i.e. when running
make start)Something is wrong with the sourceforge cert? Either way
* please don't rely solely on sourceforge urls, those not super reliable
Is there a better source for the maxima tarball? The maxima spkg also specifies sourceforge as source.
* please don't download tarballs from third-party pages without verifying checksums
They are actually verified.
Program ecl found: YES (/Users/buildbot-sage/worker/sage_git/build/local/bin/ecl) Running command: /Users/buildbot-sage/worker/sage_git/build/local/bin/ecl --eval '(require '"'"'maxima)' --eval '(quit)' --- stdout --- --- stderr --- An error occurred during initialization: Module error: Don't know how to REQUIRE MAXIMA..
Thanks. Not sure what's wrong here. The cmd encoding looks a bit strange, but then it does try to load maxima... Is this happening on all buildbots? Could you run the above command manually?
I also tried to change the command a bit, so maybe now the encoding works better?
Is there a better source for the maxima tarball? The maxima spkg also specifies sourceforge as source.
yes, our mirrors have the maxima tarball
Is there a better source for the maxima tarball? The maxima spkg also specifies sourceforge as source.
yes, our mirrors have the maxima tarball
That sadly doesn't work as the meson parts should stay independent of sage-the-distro (which is used to populate the mirrors). For example, there is no guarantee that the spkg version is the same as the one used by meson.
I've now improved the maxima discovery to also query the sage-the-distro path. I currently don't have means to try it if its really working (but will test it in about 2 weeks). Nonetheless, this should be ready to go, since only it only conflicts with #39030. So setting it back to positive review once the tests are green unless someone protests.
That sounds a lot like you are reinventing the distro wheel. I don't particularly care.
But relying solely on sourceforge download urls is going to be super painful.
one can add a Sage mirror as source_fallback_url for Maxima, no?