Hello,

TL;TR: Packagers, how do you deal with Sage to package it for your Linux
distribution (or *BSD system)?

Details:

Sage has been ported to FreeBSD many years ago (4.8), but now the port
is lagging and no more packages are built; I'm trying to fix it.

Problem: on FreeBSD, packages are built (by a porter or in the
compilation farm) as a regular user, and installed in a staging
directory (DESTDIR); then the package is installed as root in the final
$PREFIX (ldconfig and so on are executed).

The naming may differ, but many packaging systems have a similar
mechanism.

But Sage cannot be built with this method: the global install target is
a no-op, and every sub-package is built and installed during the build
target, under $SAGE_LOCAL, and everything is built relatively to this
directory. If you try to move the resulting bits to another directory,
it becomes unusable.

$SAGE_DESTDIR is handled, but does not solve this problem.

A first way to deal with it is to use as many system packages as
possible (see #27330): Sage´s libraries built around a system package
are safe.

For example, with the stock sage-9.1.rc3, when setting SAGE_LOCAL to my
staging directory, these errors are emitted for cvxopt:

Error: 'lib/python3.7/site-packages/cvxopt/umfpack.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/cvxopt/base.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/cvxopt/amd.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/cvxopt/misc_solvers.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/cvxopt/blas.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/cvxopt/gsl.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/cvxopt/cholmod.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/cvxopt/glpk.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/cvxopt/lapack.so' is referring to 
/usr/ports/math/sage/work/stage
Error: 
'lib/python3.7/site-packages/sage/numerical/backends/cvxopt_sdp_backend.so' is 
referring to /usr/ports/math/sage/work/stage
Error: 'lib/python3.7/site-packages/sage/numerical/backends/cvxopt_backend.so' 
is referring to /usr/ports/math/sage/work/stage

When using cvxopt from a system package (see #29665), these errors are
resolved. Unfortunately, even if the proposed method seems OK from my
packager´s POV, it seems that this is not the way to go: see #29023.

Several interesting propositions exist in #29133 (#21566), and things
like #29653 are also helping, but these are middle or long term goals.

And so my initial question: how do you package the actual releases? (9.0
or 9.1)

Many thanks for reading and for your feedback!
-- 
Th. Thomas.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/20200510130219.GA64618%40graf.pompo.net.

Reply via email to