-
-
Notifications
You must be signed in to change notification settings - Fork 491
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
port Sage to FreeBSD 12 #26249
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Author: Dima Pasechnik, Li-Wen Hsu |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:11
This scipy problem is still there. |
comment:12
I'm currently overextended as always and don't have any deep personal motivation to work on FreeBSD support, but I would definitely like to have it if we can so if there's anything I can help with here I'll make a FreeBSD 12 VM so I can have it to play around on. |
comment:13
Replying to @embray:
I can give you access to the FreeBSD 12.0 VM I am running on GCE, this would be easier, I guess. (12.0 is still in beta/RC cycle, so installation is not straightforward, you basically need to build it from source). |
comment:14
currently testing what we have here (with Sage 8.6) on the released FreeBSD 12.0 |
comment:15
the next issue we hit is Python3 on Sage 8.7.beta3: https://bugs.python.org/issue6299 |
Dependencies: #27254 |
comment:16
Replying to @dimpase:
for the time being, working around this by not installing setuptools and pip for py3 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:38
Some news: after #29502 for suitesparse and #29024 for singular, only 13 libraries (+ of course the modules built around them!) cause problems with staging: libbraiding libbrial_groebner libbrial libecl libfflas libffpack libgap libgc libhomfly liblinbox libppl libpynac libzn_poly-0. Among them, all are listed in #27330 (with or without a ticket), but libpynac. We do not even have pynac in the FreeBSD ports tree (but we have math/GiNaC) => it will be my next target. |
comment:39
After giac (#29541) and pynac (#29542), I tried to use a system package for ECL (lang/ecl) and Maxima (math/maxima), but without success for the moment: see #29617. To be tried again when ECL will be upgraded (#22191)! Meanwhile, our ports must be patched:
They are not submitted yet, but if someone want to work on #29617 the patches are available at |
comment:40
Replying to @thierry-FreeBSD:
there are many free Common Lisp implementations, I suppose there can be lang/cl as a "main" package with a number of slaves, perhaps SBCL as a standard one. |
comment:41
I'd recommend to add system package information for FreeBSD. See #29354 where this is done for Slackware (except for the bits that use docker) |
comment:42
Well, every package listed in #27330 have a corresponding package from the FreeBSD ports tree and a spkg-configure.m4 to use it! Next step: try to solve the problem with bad staging (non-respect of $DESTDIR) for the libraries built by Sage. |
comment:43
Replying to @thierry-FreeBSD:
Yes, and the trick is to put the names of these packages in a freebsd.txt file to record the correspondence of spkg to FreeBSD port. |
comment:44
OK, I'll do it! |
comment:45
Replying to @thierry-FreeBSD:
Done in #29653. |
comment:46
Next, if you're serious about FreeBSD support, I would recommend setting up testing infrastructure with our tox.ini and virtualbox (https://www.freebsd.org/doc/handbook/virtualization-guest-virtualbox.html) or a similar solution so that Sage developers and our CI infrastructure have a chance of testing on that platform. |
comment:47
Replying to @mkoeppe:
Thanks, this is interesting - but at this point a bit premature: there is no compilation error, but Sage is not yet ready for FreeBSD, even if we are making progress. |
comment:48
Well, we are almost done! It is not yet committable in the FreeBSD ports tree, because there are some pre-requisites (isl to be upgraded, and two possible forks for ECL and Maxima if no better solution is found). See https://reviews.freebsd.org/D24195 for details. |
comment:49
for ecl I suggest to use a not yet merged which looks good on Linux and OpenBSD. also a new release of Flint is coming. |
comment:50
Thanks! I'm just in discussion with the maintainers of these two ports (ECL and Maxima). Let's check this version. |
comment:51
ecl obviously must be upgraded to the latest release (maxima currently packaged with Sage works well with it, too). which bugs of maxima one prefers, is another question. :-) our experience with updating maxima is that each new release has serious regressions. |
comment:52
here is Flint update ticket it is awaiting upstream putting in |
comment:53
I guess that it is safer to get Sage 9.1 into our ports tree with the current dependencies. We'll look to upgrade these afterwards! |
comment:54
We are done, 9.1 is in the tree: and we are working on the upgrade of ECL to 20.4.24: |
comment:55
Replying to @thierry-FreeBSD:
This is great! I guess we should make the Sagemath source FreeBSD-friendly, so that one can build
|
comment:57
The most important patch concerns configure.ac: without it, you cannot even run configure! I submitted it with the system package information in #29653, but it has been rejected. The other patches are mostly specific and related to the ports system, caused by differences in directories, but shouldn't be necessary for those trying to build Sage by themselves with the bundled packages. mkoeppe asked me to set up a testing infrastructure. I'm not familiar at all with that, but I'll try to do it (any pointers appreciated!). |
comment:58
I will look at #29653 - it needs a rebase over the latest 9.2.beta1 regarding testing - is docker ported to FreeBSD? Anyway, one can set a patchbot, for this one just needs a FreeBSD host that will pull branches and build/test them. |
comment:59
There exists a port of docker: https://www.freshports.org/sysutils/docker (but I never used it!). |
comment:60
I don't think docker port is production ready at the moment. I suggest the faster way would be having a github mirror and use hosted CI service: https://wiki.freebsd.org/HostedCI |
comment:61
Replying to @thierry-FreeBSD:
I've revived a VM with FreeBSD, it's running 12.1-RELEASE-p6 How do I get the new port in there? Do I need a system update (if yes, to what?)? |
comment:62
You did the right thing!
|
comment:63
Replying to @dimpase:
I guess there are two possibilities, one is portsnap is not updated yet (unlikely, IIRC it updates hourly), the other is it's tracking quarterly branch, and 9.1 is only in latest branch now. I haven't used portsnap for a while so I might also be wrong. To get the latest ports tree in real-time, you can try to use svn to checkout from: https://svn.freebsd.org/ports/head or git from |
comment:64
Replying to @thierry-FreeBSD:
OK, thanks, seems to be in progress now, after I did lwhsu - did you see my email about CI? (just checking) |
comment:65
Replying to @dimpase:
Yes there are two steps. One if for fetching the content and the other one is for actually updating the ports tree. See portsnap(8)
Yes, please forgive me for needing longer to response. |
In FreeBSD 12 the long-standing incompleteness of its libm has been helped. This simplifies a lot, compared to #22679.
We will not try to work around the toolchain problem related to gfortran/libgcc_s. Instead, we just add a line at the end of
/etc/libmap.conf
asfollows:
Also, we create the following symbolic links:
and use the standard shell,
/bin/sh
. In~/.profile
we putto account for clang not looking into
/usr/local
by default.Things to fix:
sagelib
to libs from /usr/local/lib)There is some hope that the
libgcc_s.so.1
problem will finally be [fixed in FreeBSD https://lists.freebsd.org/pipermail/freebsd-ports/2019-April/115972.html]The strategy which would pay off to make Sage an "easy" FreeBSD port is to add/enhance as many needed by Sage external libraries as separate ports into FreeBSD, so that Sage does not need to vendor this. To this end, #27330 is very relevant ticket.
A first foray into this is enhancing FreeBSD's port of flint2 to be linkable with NTL (something that is a requirement for flint2 in Sage), see here. The necessary work on the flint2 side has been done in the meantime, see flintlib/flint#543 - so now it's only the FreeBSD part that needs to be done.
Few obvious other candidates for a port in FreeBSD are gf2x and ecm.
Depends on #26253
Depends on #27764
CC: @mkoeppe
Component: porting: BSD
Author: Dima Pasechnik, Li-Wen Hsu
Issue created by migration from https://trac.sagemath.org/ticket/26249
The text was updated successfully, but these errors were encountered: