Fixes for the conda-for-Sage-developers installation method, add GH Actions workflow
mkoeppe opened this issue · 375 comments
Add github action workflow that checks the build of sage in a conda environment, completely bypassing the installation of any sage package. This is based on the steps outlined at https://wiki.sagemath.org/Conda.
This also tests that the generated src/environment*.yml files work correctly. (See documentation added in #28745)
Run: https://github.com/sagemath/sagetrac-mirror/actions/workflows/ci-conda.yml
Fixes:
- #33330: primecountpy is not installed in the conda env because its not listed in
environment.yml - environment-optional: lcalc 1 is installed and then not recognized / leads to error
building 'sage.libs.lcalc.lcalc_Lfunction' extension
cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
In file included from sage/libs/lcalc/lcalc_Lfunction.cpp:740:
sage/libs/lcalc/lcalc_sage.h:1:10: fatal error: lcalc/L.h: No such file or directory
1 | #include "lcalc/L.h"
| ^~~~~~~~~~~
compilation terminated.
- environment-optional: probably related, pari 2.11.4 is installed by conda instead of the newest 2.13.2. This version is then rejected by
configureas being too old. - Disable conda distro information for
gdbbecause it is broken on macOS. - Add conda distro information for
lrcalc_python - Filter out conda-specific
ldwarnings in doctests - In the feature test for
sage_spkg, check whether any Sage packages are actually installed - Include an upper version bound for
ptyprocessin sagemath-standard's install-requires
Follow-ups: See Meta-ticket #33331
Depends on #33358
Depends on #33330
Depends on #33361
Depends on #33141
CC: @isuruf @tobiasdiez @dimpase @saraedum
Component: build
Keywords: sd111
Author: Tobias Diez, Matthias Koeppe
Branch/Commit: 93fce5a
Reviewer: Matthias Koeppe, Dima Pasechnik, Tobias Diez
Issue created by migration from https://trac.sagemath.org/ticket/30845
Description changed:
---
+++
@@ -1 +1,2 @@
+This would also test that the generated `environment*.yml` files work correctly.
Hoping we can make progress on this ticket this week - https://wiki.sagemath.org/days111
Changed keywords from none to sd111
Description changed:
---
+++
@@ -1,2 +1 @@
-This would also test that the generated `environment*.yml` files work correctly.
-
+This would also test that the generated `environment*.yml` files work correctly. (See documentation added in #28745 and https://wiki.sagemath.org/Conda)Something like https://github.com/tobiasdiez/sage/blob/public/build/conda_gh/.github/workflows/ci-conda.yml?
This currently fails with
configure: creating ./config.status
config.status: creating build/make/Makefile-auto
config.status: creating build/make/Makefile
config.status: creating src/bin/sage-env-config
config.status: creating src/bin/sage-src-env-config
config.status: creating build/bin/sage-build-env-config
config.status: creating build/pkgs/sage_conf/src/sage_conf.py
config.status: creating build/pkgs/sage_conf/src/setup.cfg
config.status: executing depfiles commands
config.status: executing mkdirs commands
config.status: creating directory /home/runner/work/sage/sage/logs/pkgs
config.status: creating directory
mkdir: cannot create directory '': No such file or directory
config.status: error: could not create
Error: Process completed with exit code 1.
https://github.com/tobiasdiez/sage/runs/1594237745?check_suite_focus=true
Any idea what could be the reason and how to fix it?
Commit: 9af4614
Author: Tobias Diez
Branch: public/build/conda_gh
Managed to fix the above error, just to be stuck two lines further down:
configure: creating ./config.status
config.status: creating build/make/Makefile-auto
config.status: creating build/make/Makefile
config.status: creating src/bin/sage-env-config
config.status: creating src/bin/sage-src-env-config
config.status: creating build/bin/sage-build-env-config
config.status: creating build/pkgs/sage_conf/src/sage_conf.py
config.status: creating build/pkgs/sage_conf/src/setup.cfg
config.status: executing depfiles commands
config.status: executing broken-gcc commands
config.status: executing mkdirs commands
config.status: creating directory /home/runner/work/sage/sage/logs/pkgs
config.status: creating directory /usr/share/miniconda/envs/sage-build
config.status: creating directory /usr/share/miniconda/envs/sage-build/bin
config.status: creating directory /usr/share/miniconda/envs/sage-build/etc
config.status: creating directory /usr/share/miniconda/envs/sage-build/include
config.status: creating directory /usr/share/miniconda/envs/sage-build/lib
config.status: creating directory /usr/share/miniconda/envs/sage-build/lib/pkgconfig
config.status: creating directory /usr/share/miniconda/envs/sage-build/share
config.status: creating directory /usr/share/miniconda/envs/sage-build/var/lib/sage/installed
config.status: error: Cannot perform incremental update, run "make distclean && make"
config.status: /usr/share/miniconda/envs/sage-build/lib64 is not a symlink, see Trac #19782
Error: Process completed with exit code 1.
https://github.com/tobiasdiez/sage/runs/1594601374?check_suite_focus=true
Found a hack that fixed it by removing the lib64 folder. It only contained libcc1.so (not sure where/how this is needed).
Made a bit more progress, but it currently errors while compiling gcc. Moreover, there is a problem in the detection of the conda/system gcc because "sage-env-config" doesn't exist.
https://github.com/tobiasdiez/sage/runs/1594867631?check_suite_focus=true
The direct variant should use src/environment.yml - which installs the Python packages of Sage in addition to what is listed in environment.yml
The lib64 looks like a conda packaging bug to me - @isuruf, can you help?
environment.yml already includes compilers -- I don't think adding cxx-compiler should be necessary
Replying to @tobiasdiez:
Made a bit more progress, but it currently errors while compiling gcc. Moreover, there is a problem in the detection of the conda/system gcc because "sage-env-config" doesn't exist.
https://github.com/tobiasdiez/sage/runs/1594867631?check_suite_focus=true
This is now #31097.
Description changed:
---
+++
@@ -1 +1 @@
-This would also test that the generated `environment*.yml` files work correctly. (See documentation added in #28745 and https://wiki.sagemath.org/Conda)
+This would also test that the generated `environment*.yml` and `src/environment*.yml` files work correctly. (See documentation added in #28745 and https://wiki.sagemath.org/Conda)I don't see a lib64 folder. Which package is that coming from?
It contains libcc1.so so I guess gcc, g++ or some other compiler package.
Branch pushed to git repo; I updated commit sha1. New commits:
d853f14 | Ok, then install setup.py relative to src |
cb5e284 | Add tests |
1cf3de4 | build/pkgs/gcc/spkg-configure.m4: Fix SAGE_BROKEN_GCC test |
1bc9c29 | Merge branch 'u/mkoeppe/build_pkgs_gcc_spkg_configure_m4__fix_sage_broken_gcc_test' of git://trac.sagemath.org/sage into public/build/conda_gh |
c57d615 | Correct bootstrap command |
e85f1ba | Fix venv config |
e29a9ab | Correct test command |
483de62 | Install autotools |
8237b2c | Install gettext |
e9cb77b | Force configure to not install gcc |
Current status:
- Building sage using
makeon top of conda fails, since gcc is not found and the custom build of gcc fails. - Installing sagelib on top of a conda works, but many doctests fail.
I let somebody else with more experience in conda/the intricacies of sage's build system take over from here.
Thanks for getting this started!
Unfortunately the runs do not give the config.log
Now I finally realize that for on-top-of-spkg you were trying to do ./configure --prefix=$CONDA_PREFIX -- that can't work.
Branch pushed to git repo; I updated commit sha1. New commits:
9857e36 | Without the prefix |
Branch pushed to git repo; I updated commit sha1. New commits:
b50ae6a | Remove conda gcc distro again |
Branch pushed to git repo; I updated commit sha1. New commits:
68080fa | Cleanup workflow |
Replying to @mkoeppe:
Now I finally realize that for
on-top-of-spkgyou were trying to do./configure --prefix=$CONDA_PREFIX-- that can't work.
Thanks! Removing the prefix part indeed fixed the gcc issue. Now we are further in the build, and find this beautiful error:
2020-12-22T21:44:17.7966259Z [cvxopt-1.2.5] x86_64-conda_cos6-linux-gnu-gcc -pthread -shared -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/usr/share/miniconda/envs/sage-build/lib -L/usr/share/miniconda/envs/sage-build/lib -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/usr/share/miniconda/envs/sage-build/lib -L/usr/share/miniconda/envs/sage-build/lib -Wl,-rpath-link,/home/runner/work/sagetrac-mirror/sagetrac-mirror/local/lib -L/home/runner/work/sagetrac-mirror/sagetrac-mirror/local/lib -Wl,-rpath,/home/runner/work/sagetrac-mirror/sagetrac-mirror/local/lib -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,/usr/share/miniconda/envs/sage-build/lib -Wl,-rpath-link,/usr/share/miniconda/envs/sage-build/lib -L/usr/share/miniconda/envs/sage-build/lib -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /usr/share/miniconda/envs/sage-build/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /usr/share/miniconda/envs/sage-build/include build/temp.linux-x86_64-3.8/src/C/lapack.o -L/usr/share/miniconda/envs/sage-build/lib -lopenblas -lopenblas -o build/lib.linux-x86_64-3.8/cvxopt/lapack.cpython-38-x86_64-linux-gnu.so
2020-12-22T21:44:17.7974135Z [cvxopt-1.2.5] building 'umfpack' extension
2020-12-22T21:44:17.7979362Z [cvxopt-1.2.5] /usr/share/miniconda/envs/sage-build/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /usr/share/miniconda/envs/sage-build/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /usr/share/miniconda/envs/sage-build/include -fPIC -I/usr/include -I/home/runner/work/sagetrac-mirror/sagetrac-mirror/local/include -I/usr/share/miniconda/envs/sage-build/include/python3.8 -c src/C/umfpack.c -o build/temp.linux-x86_64-3.8/src/C/umfpack.o
2020-12-22T21:44:17.7990748Z [cvxopt-1.2.5] In file included from /usr/share/miniconda/envs/sage-build/include/python3.8/Python.h:11:0,
2020-12-22T21:44:17.7991831Z [cvxopt-1.2.5] from src/C/cvxopt.h:22,
2020-12-22T21:44:17.7992613Z [cvxopt-1.2.5] from src/C/umfpack.c:22:
2020-12-22T21:44:17.7993750Z [cvxopt-1.2.5] /usr/include/limits.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory
2020-12-22T21:44:17.7994924Z [cvxopt-1.2.5] #include <bits/libc-header-start.h>
2020-12-22T21:44:17.7995741Z [cvxopt-1.2.5] ^~~~~~~~~~~~~~~~~~~~~~~~~~
2020-12-22T21:44:17.7996470Z [cvxopt-1.2.5] compilation terminated.
2020-12-22T21:44:17.7997728Z [cvxopt-1.2.5] error: command '/usr/share/miniconda/envs/sage-build/bin/x86_64-conda-linux-gnu-cc' failed with exit status 1
2020-12-22T21:44:17.7999070Z [cvxopt-1.2.5] Building wheel for cvxopt (setup.py): finished with status 'error'
Could this be related to the fact that libcc1 is installed in lib64?
Ah thx for the pointer!
I guess the main objective of this ticket was to add a workflow verifying that sagelib installed on top of conda works. Since this is accomplished, I'll put it as ready for review.
Fixing the doctests and the build using make can be done later (e.g by resolving #30710).
As on-top-of-spkg turns out to be a variant of local-conda-forge-ubuntu-standard, I think I would want to implement this variant using tox.
Replying to @mkoeppe:
As
on-top-of-spkgturns out to be a variant oflocal-conda-forge-ubuntu-standard, I think I would want to implement this variant using tox.
I thought about using tox as well, but there are
a) problems setting up conda on github actions (this is why the workflow uses a special action for the conda setup)
b) difficulties with conda and tox environment interactions (which I guess are handled by the tox-conda plugin, but I didn't wanted to dive into this)
c) I still think tox is not the right tool for managing the user's environment beyond the Python environment.
local-conda-forge-ubuntu-standard has been running for months on GH Actions, see for example https://github.com/sagemath/sage/runs/1553907433 for 9.3.beta4.
#31099 is just a matter of creating a variant that uses conda env create -f environment.yml instead of conda install ....
red branch => needs work
Moving this ticket to 9.4, as it seems unlikely that it will be merged in 9.3, which is in the release candidate stage
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
103f78b | .github/workflows/ci-conda.yml: New |
I have reduced the branch to one of the jobs, direct, to remove the duplication with the existing workflows.
Changed reviewer from https://github.com/sagemath/sagetrac-mirror/actions?query=workflow%3A%22Build+%26+Test+using+conda%22 to none
Still needs updating to follow the steps of "Conda for Sage Developers" - https://wiki.sagemath.org/Conda - help welcome
Description changed:
---
+++
@@ -1 +1 @@
-This would also test that the generated `environment*.yml` and `src/environment*.yml` files work correctly. (See documentation added in #28745 and https://wiki.sagemath.org/Conda)
+This would also test that the generated `src/environment*.yml` files work correctly. (See documentation added in #28745 and https://wiki.sagemath.org/Conda)Changed branch from public/build/conda_gh to public/build/conda-runci
Last 10 new commits:
65e1b49 | Fix workflow syntax |
85c31c3 | Make workflow at least try to compile sage |
fd484d8 | Github needs sudo |
909cd9e | Add a few missing python packages |
a91da81 | Run in parallel |
d4945e5 | Install gap manually |
3171f82 | Split in more jobs |
b87f2bc | Reuse existing bootstrap |
eec7abc | Delete env-python from gitignore again |
68e8330 | Try with prefix instead of building ecl and gap |
Description changed:
---
+++
@@ -1 +1,7 @@
This would also test that the generated `src/environment*.yml` files work correctly. (See documentation added in #28745 and https://wiki.sagemath.org/Conda)
+
+Run: https://github.com/sagemath/sagetrac-mirror/runs/5146995129?check_suite_focus=true
+
+Issues:
+- rpy2 is not installed in the conda env
+- exits without error message during or after compilation of sage/symbolic/ginac/ptr.hOkay, this is now ready for review.
Any pointers to the two open issues are welcome. I looked for open tickets in these directions, but couldn't find one.
Description changed:
---
+++
@@ -1,7 +1,16 @@
-This would also test that the generated `src/environment*.yml` files work correctly. (See documentation added in #28745 and https://wiki.sagemath.org/Conda)
+Add github action workflow that checks the build of sage in a conda environment, completely bypassing the installation of any sage package. This follows the steps outlined at https://wiki.sagemath.org/Conda.
-Run: https://github.com/sagemath/sagetrac-mirror/runs/5146995129?check_suite_focus=true
+This also tests that the generated `src/environment*.yml` files work correctly. (See documentation added in #28745)
-Issues:
+Run: https://github.com/sagemath/sagetrac-mirror/actions/workflows/ci-conda.yml
+
+The build of sage currently fails with the following issues:
- rpy2 is not installed in the conda env
-- exits without error message during or after compilation of sage/symbolic/ginac/ptr.h
+- exits without error message during or after compilation of sage/symbolic/ginac/ptr.h after complaining multiple times that `other.p` in
+
+```
+ ptr(const ptr & other) throw() : p(other.p) { p->add_reference(); }
+```
+is used uninitialized in this function
+
+Fixing these problems will be addressed in a follow-up ticket.Branch pushed to git repo; I updated commit sha1. New commits:
b408f9e | Cleanup workflow |
In https://github.com/sagemath/sagetrac-mirror/runs/5146995129?check_suite_focus=true I see
I see
building 'sage.libs.lcalc.lcalc_Lfunction' extension
cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
In file included from sage/libs/lcalc/lcalc_Lfunction.cpp:740:
sage/libs/lcalc/lcalc_sage.h:1:10: fatal error: lcalc/L.h: No such file or directory
1 | #include "lcalc/L.h"
| ^~~~~~~~~~~
compilation terminated.
building 'sage.libs.libecm' extension
Description changed:
---
+++
@@ -12,5 +12,17 @@
ptr(const ptr & other) throw() : p(other.p) { p->add_reference(); }
```
is used uninitialized in this function
+- lcalc is not recognized although installed in conda
+
+```
+building 'sage.libs.lcalc.lcalc_Lfunction' extension
+ cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
+ In file included from sage/libs/lcalc/lcalc_Lfunction.cpp:740:
+ sage/libs/lcalc/lcalc_sage.h:1:10: fatal error: lcalc/L.h: No such file or directory
+ 1 | #include "lcalc/L.h"
+ | ^~~~~~~~~~~
+ compilation terminated.
+```
+- maybe related, pari 2.11.4 is installed by conda instead of the newest 2.13.2. This version is then rejected by `configure` as being too old.
Fixing these problems will be addressed in a follow-up ticket.Good observation. I think, however, this is not the reason why the build terminates as this error occurs somewhere in the middle (and I had similar error messages with gap before).
I've added it to the list of "issues" in the ticket description.
This is the reason for the failure. There's no mystery there.
Do you get lcalc>=2 with conda?
Replying to @mkoeppe:
This is the reason for the failure. There's no mystery there.
Could be. But the point of this ticket is to add the github action, so that one can fix these issues in follow-up tickets and have a direct verification. It might take quite some time until this workflow is green, especially since there are probably quite a few tests that fail.
So except if you think that there is something fundamentally flawed with the current steps which result in the lcalc error, this should be ready for review.
Replying to @isuruf:
Do you get
lcalc>=2with conda?
Nope, its installing lcalc 1.23 h0d16fac_1004 conda-forge. That's probably the reason why its not working.
So build/pkgs/lcalc/distros/conda.txt should be changed
Replying to @tobiasdiez:
the point of this ticket is to add the github action
Well, it fails early, so we cannot see whether the later steps work.
Replying to @mkoeppe:
So
build/pkgs/lcalc/distros/conda.txtshould be changed
I don't think it will be that easy to solve:
mamba install lcalc=2.0.5 -n sage-dev
> package libeantic-1.0.2-hf1f868f_1 requires antic >=0.2.4,<0.3.0a0, but none of the providers can be installed
mamba install libeantic=1.1.0 -n sage-dev
> package libeantic-1.1.0-h52e3b27_0 requires arb >=2.21.1,<2.22.0a0, but none of the providers can be installed
mamba install arb=2.21.1 -n sage-dev
> package e-antic-1.0.2-hf1f868f_0 requires arb >=2.19.0,<2.20.0a0, but none of the providers can be installed
I appears that there is a funny cyclic dependency thing going on.
Replying to @mkoeppe:
Replying to @tobiasdiez:
the point of this ticket is to add the github action
Well, it fails early, so we cannot see whether the later steps work.
Should I un-comment the last test step for now?
Try switching from src/environment-optional.yml to src/environment.yml.
e_antic is an optional package for Sage. Let's try without optional packages first.
Branch pushed to git repo; I updated commit sha1. New commits:
051b7b5 | Don't use -optional env |
That should indeed work to get loalc 2.0.5. Good suggestion.
For the record: first installing environment.yml and then updating the env to environment-optional.yml yields the following downgrade of packgages:
Downgrade:
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
- arb 2.22.1 hbbd85db_0 installed
+ arb 2.19.0 h7e34412_0 conda-forge/linux-64 7MB
- boost-cpp 1.77.0 h359cf19_1 installed
+ boost-cpp 1.74.0 h312852a_4 conda-forge/linux-64 Cached
- cvxopt 1.2.7 py310h9fd565e_1 installed
+ cvxopt 1.2.6 py38h55e5319_0 conda-forge/linux-64 Cached
- cysignals 1.11.2 py310h15010d2_0 installed
+ cysignals 1.10.3 py38hd3cf888_0 conda-forge/linux-64 Cached
- eclib 20210625 h52f5ea4_4 installed
+ eclib 20190909 h5b7fb09_3 conda-forge/linux-64 36MB
- gap-core 4.11.1 h1725ef4_2 installed
+ gap-core 4.11.0 h1725ef4_7 conda-forge/linux-64 67MB
- gap-defaults 4.11.1 ha770c72_2 installed
+ gap-defaults 4.11.0 ha770c72_7 conda-forge/linux-64 88MB
- gsl 2.7 he838d99_0 installed
+ gsl 2.6 he838d99_2 conda-forge/linux-64 Cached
- harfbuzz 3.3.1 hb4a5f5f_0 installed
+ harfbuzz 3.1.1 h83ec7ef_0 conda-forge/linux-64 Cached
- icu 69.1 h9c3ff4c_0 installed
+ icu 68.2 h9c3ff4c_0 conda-forge/linux-64 Cached
- lcalc 2.0.5 h8cd7e2e_0 installed
+ lcalc 1.23 h0d16fac_1004 conda-forge/linux-64 Cached
- libclang 13.0.1 default_hc23dcda_0 installed
+ libclang 11.1.0 default_ha53f305_1 conda-forge/linux-64 Cached
- libflint 2.8.4 hd3cd37b_ntl_100 installed
+ libflint 2.6.3 h6b702e8_0 conda-forge/linux-64 11MB
- libpq 14.2 hd57d9b9_0 installed
+ libpq 13.5 hd57d9b9_1 conda-forge/linux-64 Cached
- libuv 1.43.0 h7f98852_0 installed
+ libuv 1.42.0 h7f98852_0 conda-forge/linux-64 Cached
- pari 2.13.3 h82e6b41_1_pthread installed
+ pari 2.11.4 hddaffa3_2 conda-forge/linux-64 Cached
- python 3.10.2 h85951f9_3_cpython installed
+ python 3.8.12 ha38a3c6_3_cpython conda-forge/linux-64 Cached
- python_abi 3.10 2_cp310 installed
+ python_abi 3.8 2_cp38 conda-forge/linux-64 Cached
- r-base 4.1.2 hde4fec0_0 installed
+ r-base 4.1.1 hb67fd72_0 conda-forge/linux-64 Cached
- singular 4.2.1.p3 haca423c_0 installed
+ singular 4.1.1.p2 ha188dad_4 conda-forge/linux-64 22MB
There must be some outdated pins / version constraints in the conda-forge packaging. Likely related to the fact that the Sage distribution has fallen behind upstream regarding e_antic/normaliz (see #31588).
Replying to @mkoeppe:
So
build/pkgs/lcalc/distros/conda.txtshould be changed
... to say "lcalc >=2"
Description changed:
---
+++
@@ -5,7 +5,7 @@
Run: https://github.com/sagemath/sagetrac-mirror/actions/workflows/ci-conda.yml
The build of sage currently fails with the following issues:
-- rpy2 is not installed in the conda env
+- The correct version of rpy2, scipy, sphinx among other packages is not installed in the conda env
- exits without error message during or after compilation of sage/symbolic/ginac/ptr.h after complaining multiple times that `other.p` in
```Regarding the pari issue mentioned in the ticket description, we should probably use configure --with-system-pari=force so the error is signalled earlier
Let's also keep the instructions in https://wiki.sagemath.org/Conda updated.
Oh, and configure --with-system-lcalc=force too...
Description changed:
---
+++
@@ -12,7 +12,7 @@
ptr(const ptr & other) throw() : p(other.p) { p->add_reference(); }
```
is used uninitialized in this function
-- lcalc is not recognized although installed in conda
+- environment-optional: lcalc 1 is installed and then not recognized / leads to error
```
building 'sage.libs.lcalc.lcalc_Lfunction' extension
@@ -23,6 +23,6 @@
| ^~~~~~~~~~~
compilation terminated.
```
-- maybe related, pari 2.11.4 is installed by conda instead of the newest 2.13.2. This version is then rejected by `configure` as being too old.
+- environment-optional: probably related, pari 2.11.4 is installed by conda instead of the newest 2.13.2. This version is then rejected by `configure` as being too old.
Fixing these problems will be addressed in a follow-up ticket.Replying to @mkoeppe:
Regarding the
pariissue mentioned in the ticket description, we should probably useconfigure --with-system-pari=forceso the error is signalled earlierLet's also keep the instructions in https://wiki.sagemath.org/Conda updated.
With the basic env, its now also using pari 2.13.3.
I guess some of the optional packages is lagging behind a bit and still requiring some older version of some package. This then leads to these various downgrades of arb, ecl, pari, lcalc etc
Yes, and we are missing many of the version constraints that are in https://github.com/conda-forge/sage-feedstock/blob/master/recipe/meta.yaml
Many of these should be added to the conda.txt files, so that they will be included in our src/environment*.yml.
Branch pushed to git repo; I updated commit sha1. New commits:
bd65274 | Fix test command |
Okay, after using environment.yml the build now succeeds. The tests fail almost immediately at the import of sage.all, because primecountpy is not installed in the conda env (it is also in neither environment file).
I propose to get this ticket in and then work on the improvements to fix the various issues.
Description changed:
---
+++
@@ -6,7 +6,8 @@
The build of sage currently fails with the following issues:
- The correct version of rpy2, scipy, sphinx among other packages is not installed in the conda env
-- exits without error message during or after compilation of sage/symbolic/ginac/ptr.h after complaining multiple times that `other.p` in
+- primecountpy is not installed in the conda env because its not listed in `environment.yml`
+- environment-optional: exits without error message during or after compilation of sage/symbolic/ginac/ptr.h after complaining multiple times that `other.p` in
```
ptr(const ptr & other) throw() : p(other.p) { p->add_reference(); }Description changed:
---
+++
@@ -4,7 +4,7 @@
Run: https://github.com/sagemath/sagetrac-mirror/actions/workflows/ci-conda.yml
-The build of sage currently fails with the following issues:
+During the work on this issue the following issues have been detected:
- The correct version of rpy2, scipy, sphinx among other packages is not installed in the conda env
- primecountpy is not installed in the conda env because its not listed in `environment.yml`
- environment-optional: exits without error message during or after compilation of sage/symbolic/ginac/ptr.h after complaining multiple times that `other.p` in Description changed:
---
+++
@@ -7,12 +7,6 @@
During the work on this issue the following issues have been detected:
- The correct version of rpy2, scipy, sphinx among other packages is not installed in the conda env
- primecountpy is not installed in the conda env because its not listed in `environment.yml`
-- environment-optional: exits without error message during or after compilation of sage/symbolic/ginac/ptr.h after complaining multiple times that `other.p` in
-
-```
- ptr(const ptr & other) throw() : p(other.p) { p->add_reference(); }
-```
-is used uninitialized in this function
- environment-optional: lcalc 1 is installed and then not recognized / leads to error
```Just add build/pkgs/primecountpy/distros/conda.txt
At the current pace, it will take months before this ticket is merged. Little point in waiting for that to happen. There's a momentum now to fix it.
comment:70, comment:71, comment:76, comment:82 are actionable