Skip to content
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

Remove unneeded dependencies of the Sage library #12329

Closed
jdemeyer opened this issue Jan 20, 2012 · 15 comments
Closed

Remove unneeded dependencies of the Sage library #12329

jdemeyer opened this issue Jan 20, 2012 · 15 comments

Comments

@jdemeyer
Copy link

According to spkg/standard/deps, the sage library depends on:

$(INST)/$(SAGE): $(BASE) \
         $(INST)/$(SAGE_SCRIPTS) \
         $(INST)/$(ATLAS) \
         $(INST)/$(CEPHES) \
         $(INST)/$(CLIQUER) \
         $(INST)/$(CONWAY) \
         $(INST)/$(CYTHON) \
         $(INST)/$(DOCUTILS) \
         $(INST)/$(ECL) \
         $(INST)/$(ECLIB) \
         $(INST)/$(ECM) \
         $(INST)/$(ELLIPTIC_CURVES) \
         $(INST)/$(EXTCODE) \
         $(INST)/$(FLINT) \
         $(INST)/$(FPLLL) \
         $(INST)/$(GDMODULE) \
         $(INST)/$(GRAPHS) \
         $(INST)/$(GIVARO) \
         $(INST)/$(GLPK) \
         $(INST)/$(GSL) \
         $(INST)/$(IML) \
         $(INST)/$(IPYTHON) \
         $(INST)/$(LCALC) \
         $(INST)/$(LIBM4RI) \
         $(INST)/$(LIBM4RIE) \
         $(INST)/$(LINBOX) \
         $(INST)/$(MATPLOTLIB) \
         $(INST)/$(MERCURIAL) \
         $(INST)/$(MPFI) \
         $(INST)/$(MPFR) \
         $(INST)/$(MPIR) \
         $(INST)/$(MPMATH) \
         $(INST)/$(NETWORKX) \
         $(INST)/$(NTL) \
         $(INST)/$(NUMPY) \
         $(INST)/$(PARI) \
         $(INST)/$(PEXPECT) \
         $(INST)/$(POLYBORI) \
         $(INST)/$(PPL) \
         $(INST)/$(PYCRYPTO) \
         $(INST)/$(PYNAC) \
         $(INST)/$(PYTHON) \
         $(INST)/$(R) \
         $(INST)/$(RATPOINTS) \
         $(INST)/$(RUBIKS) \
         $(INST)/$(SAGENB) \
         $(INST)/$(SCONS) \
         $(INST)/$(SETUPTOOLS) \
         $(INST)/$(SINGULAR) \
         $(INST)/$(SYMMETRICA) \
         $(INST)/$(SYMPY) \
         $(INST)/$(ZNPOLY)

However, only components which are needed at build-time should be listed here.

Apply attachment: 12329_prune_deps.patch to the sage root repository.

With this patch, building just the Sage library using

cd spkg
./install installed/sage-4.8   # put the correct version here

works fine, also using a parallel build.

Just for information: using "make -j", this is the critical path to build the Sage library (every packge in this list depends on the one just above it):

(base)
patch
iconv
libgpg_error
libgcrypt
opencdk
gnutls
python
fortran
lapack
atlas
linbox
sage

Component: build

Author: Jeroen Demeyer

Reviewer: François Bissey

Merged: sage-5.0.beta2

Issue created by migration from https://trac.sagemath.org/ticket/12329

@jdemeyer

This comment has been minimized.

@jdemeyer
Copy link
Author

Author: Jeroen Demeyer

@jdemeyer

This comment has been minimized.

@jdemeyer jdemeyer changed the title Removed unneeded dependencies of the Sage library Remove unneeded dependencies of the Sage library Jan 20, 2012
@jdemeyer

This comment has been minimized.

@ohanar
Copy link
Member

ohanar commented Jan 27, 2012

comment:4

I'm fairly certain the sage library does not need $(INST)/$(ELLIPTIC_CURVES) either (all that package does is install a couple of databases to SAGE_DATA).

@jdemeyer
Copy link
Author

comment:5

You are right, I confused with ECLIB (which certainly is needed). New patch, needs review.

@kiwifb
Copy link
Member

kiwifb commented Jan 27, 2012

comment:6

Coming from sage-on-gentoo, I am not sure at all that GRAPHS needs to be there. We very much build sage without needing mercurial but we do things a bit differently so that one needs caution. I don't think mpmath is needed to build either if it is we have a bug in sage-on-gentoo.

@kiwifb
Copy link
Member

kiwifb commented Jan 27, 2012

comment:7

While gdmodule is not needed gd actually is and so is png.

    Extension('sage.matrix.matrix_mod2_dense',
              sources = ['sage/matrix/matrix_mod2_dense.pyx'],
              libraries = ['gmp','m4ri', 'gd', 'png12', 'z'],
              depends = [SAGE_ROOT + "/local/include/png.h", SAGE_ROOT + "/local/include/m4ri/m4ri.h"]),

for example from module_list.py. Of course these two are needed for polybori so you are probably covered. readline is also there but other dependencies may include it. I cannot check right now.

@jdemeyer
Copy link
Author

comment:8

Okay, added GD, LIBPNG, READLINE. Removed GRAPHS, MPMATH. Testing now.

@jdemeyer
Copy link
Author

comment:9

Mercurial is needed in the spkg-install (at least for upgrades), so we cannot remove that.

@jdemeyer
Copy link
Author

comment:10

The new patch works! Needs review.

@kiwifb
Copy link
Member

kiwifb commented Jan 30, 2012

comment:11

Looks good to me, I fully agree with that list and cannot see it failing.

@kiwifb
Copy link
Member

kiwifb commented Jan 30, 2012

Reviewer: François Bissey

@jdemeyer
Copy link
Author

comment:12

Attachment: 12329_prune_deps.patch.gz

I replaced the "sageruntime" target by a "$(SAGERUNTIME)" variable, similar to the "$(BASE)" variable.

@jdemeyer
Copy link
Author

jdemeyer commented Feb 2, 2012

Merged: sage-5.0.beta2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants