cschwan / sage-on-gentoo

(Unofficial) Gentoo Overlay for Sage- and Sage-related ebuilds
84 stars 26 forks source link

How to install SageManifolds #407

Closed carlosggarcia closed 8 years ago

carlosggarcia commented 8 years ago

I tried to install SageManifolds modifying the sage-7.0.ebuild not exactly as in #321. I tried to reproduce the behaviour of the installation script they give but, as I hadn't done this before, it hasn't worked.

Their webpage: http://sagemanifolds.obspm.fr/download.html

Here, the modified parts of the ebuild:


DESCRIPTION="Math software for abstract and numerical computations"
HOMEPAGE="http://www.sagemath.org"
SRC_URI="${SRC_URI}
    mirror://sagemath/patches/sage-icon.tar.bz2
    http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/3-1-6/Singular-3-1-6-share.tar.gz
    http://sagemanifolds.obspm.fr/spkg/manifolds-0.9.tar.gz" ###Added

python_prepare() {
    #########################################
    #
    # SageManifolds
    #
    #########################################
    if [[ -z $(grep "sage.manifolds.all" src/sage/all.py) ]]; then
       echo "Copying SageManifold sources to "${P}"  src folder"
       cp -r ${WORKDIR}/src ${WORKDIR}/${P}
       rm -r ${WORKDIR}/src

       touch ${S}/sage/manifolds/*.py
       touch ${S}/sage/manifolds/differentiable/*.py
       touch ${S}/sage/tensor/modules/*.py
       touch ${S}/sage/parallel/*.py
       echo "$(tput setaf 4)Adding manifolds import to all.py...$(tput sgr 0)"
       echo '"from sage.manifolds.all import *" >>' "${S}/sage/all.py"
       echo "from sage.manifolds.all import *" >> ${S}/sage/all.py
    fi

    #########################################
    #
    # scripts under src/bin and miscellanous files
    #
    #########################################

Any ideas?

Thanks in advance.

kiwifb commented 8 years ago

I'll have a look later today.

kiwifb commented 8 years ago

It look like I may be able to offer it as a build option. I will make a new ebuild including this but I will commit it masked so you will have to add it to package.unmask to get it. If it works well I may add it as a standard option.

kiwifb commented 8 years ago

OK so sage-7.0-r1 is ready for testing. You will have to add it to package.unmask and add manifolds to your USE flags. Please report on success failures and results of the testsuite if you run it.

carlosggarcia commented 8 years ago

Installed and running. It seems to work. Here is the result of the testsuite

sage -tp 4 --all
sage -t /usr/share/doc/sage/en/prep/Calculus.rst  # 1 doctest failed
sage -t /usr/share/doc/sage/en/prep/Quickstarts/Differential-Equations.rst  # 1 doctest failed
sage -t /usr/share/doc/sage/en/prep/Advanced-2DPlotting.rst  # 1 doctest failed
sage -t /usr/share/doc/sage/en/constructions/algebraic_geometry.rst  # 1 doctest failed
sage -t /usr/share/doc/sage/en/developer/coding_in_other.rst  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/calculus/calculus.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/categories/manifolds.py  # 3 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/ext/memory.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/expect.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/interface.py  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/qepcad.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/quit.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/sagespawn.pyx  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/tests.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/libs/ecl.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/maxima_abstract.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/libs/libecm.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/manifolds/differentiable/manifold_homset.py  # 5 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/manifolds/manifold_homset.py  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/misc/cython.py  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/manifolds/differentiable/tensorfield.py  # Timed out
sage -t /usr/lib64/python2.7/site-packages/sage/misc/gperftools.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/misc/lazy_import_cache.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/modules/free_module_element.pyx  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/numerical/mip.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/rings/integer.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/tests/french_book/integration_doctest.py  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/tests/cmdline.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sagenb/notebook/misc.py  # 2 doctests failed

I run a long test for the tensorfield.py and it passed

sage -t --long /usr/lib64/python2.7/site-packages/sage/manifolds/differentiable/tensorfield.py
    [852 tests, 620.35 s]
----------------------------------------------------------------------
All tests passed!
----------------------------------------------------------------------

Thanks again, if you need me to test something else, just say it.

kiwifb commented 8 years ago

Hum a bit too many failed tests. What is your version of pexpect and can you paste the output of sage -t /usr/share/doc/sage/en/prep/Calculus.rst?

carlosggarcia commented 8 years ago

My pexpect

[I] dev-python/pexpect
     Available versions:  3.3 ~3.3-r1[1] ~4.0.1 (~)4.0.1-r2[1] {doc examples test PYTHON_TARGETS="pypy pypy3 python2_7 python3_3 python3_4 python3_5"}
     Installed versions:  4.0.1-r2[1](04:25:53 PM 03/13/2016)(-doc -examples -test PYTHON_TARGETS="python2_7 python3_4 -pypy -pypy3 -python3_3 -python3_5")
     Homepage:            http://pexpect.sourceforge.net/ https://pypi.python.org/pypi/pexpect/ https://github.com/pexpect/pexpect/
     Description:         Python module to spawn child applications and responding to expected patterns

sage -t /usr/share/doc/sage/en/prep/Calculus.rst
    [56 tests, 9.42 s]
This is wierd, isn't it? Should I test the others?
kiwifb commented 8 years ago

Can happen for a number of reasons. I am expecting some failures

----------------------------------------------------------------------
sage -t --long /usr/lib64/python2.7/site-packages/sage/tests/cmdline.py  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/interfaces/maxima_abstract.py  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/misc/cython.py  # 2 doctests failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/rings/integer.pyx  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/modules/free_module_element.pyx  # 2 doctests failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/calculus/calculus.py  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/tests/french_book/integration_doctest.py  # 2 doctests failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/interfaces/expect.py  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/interfaces/tests.py  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/matrix/matrix_double_dense.pyx  # 2 doctests failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/numerical/mip.pyx  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/interfaces/interface.py  # 2 doctests failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/interfaces/quit.py  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/libs/libecm.pyx  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/misc/gperftools.py  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/interfaces/qepcad.py  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sagenb/notebook/misc.py  # 2 doctests failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/ext/memory.pyx  # 1 doctest failed
sage -t --long /usr/lib64/python2.7/site-packages/sage/misc/lazy_import_cache.py  # 1 doctest failed
----------------------------------------------------------------------

but yes it would be good to test a few others. I asked about pexpect because sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/sagespawn.pyx shouldn't fail... Hum what the version of ptyprocess?

carlosggarcia commented 8 years ago

I've rerun all of them and here is the result

sage -t /usr/share/doc/sage/en/prep/Quickstarts/Differential-Equations.rst  # 1 doctest failed
sage -t /usr/share/doc/sage/en/constructions/algebraic_geometry.rst  # 1 doctest failed
sage -t /usr/share/doc/sage/en/developer/coding_in_other.rst  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/calculus/calculus.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/categories/manifolds.py  # 3 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/ext/memory.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/expect.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/interface.py  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/qepcad.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/quit.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/tests.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/libs/ecl.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/maxima_abstract.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/libs/libecm.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/manifolds/differentiable/manifold_homset.py  # 5 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/manifolds/manifold_homset.py  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/misc/cython.py  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/misc/gperftools.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/misc/lazy_import_cache.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/modules/free_module_element.pyx  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/numerical/mip.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/rings/integer.pyx  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sage/tests/french_book/integration_doctest.py  # 2 doctests failed
sage -t /usr/lib64/python2.7/site-packages/sage/tests/cmdline.py  # 1 doctest failed
sage -t /usr/lib64/python2.7/site-packages/sagenb/notebook/misc.py  # 2 doctests failed

Now sage -t /usr/lib64/python2.7/site-packages/sage/interfaces/sagespawn.pyx doesn't fail.

My version of ptyprocces

[I] dev-python/ptyprocess
     Available versions:  0.5 (~)0.5.1 **9999[1] {test PYTHON_TARGETS="pypy pypy3 python2_7python3_5"}
     Installed versions:  0.5.1(04:24:56 PM 03/13/2016)(-test PYTHON_TARGETS="python2_7 pytpython3_3 -python3_5")
     Homepage:            https://github.com/pexpect/ptyprocess
     Description:         Run a subprocess in a pseudo terminal

[1] "science" /var/lib/layman/science
Do you want me to install and retry with the version from science?
kiwifb commented 8 years ago

No need, but I am curious about the first two failures, could you paste their result in?

carlosggarcia commented 8 years ago
sage -t /usr/share/doc/sage/en/prep/Quickstarts/Differential-Equations.rst
**********************************************************************
File "/usr/share/doc/sage/en/prep/Quickstarts/Differential-Equations.rst", line 66, in Differential-Equations
Failed example:
    Plot1+Plot2
Expected:
    Graphics object consisting of 2 graphics primitives
Got:
    doctest:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
    Graphics object consisting of 2 graphics primitives
**********************************************************************
1 item had failures:
   1 of  24 in Differential-Equations
    [23 tests, 1 failure, 10.24 s]
sage -t /usr/share/doc/sage/en/constructions/algebraic_geometry.rst
**********************************************************************
File "/usr/share/doc/sage/en/constructions/algebraic_geometry.rst", line 145, in algebraic_geometry
Failed example:
    print L
Expected:
    [1]:
       _[1]=y    
       _[2]=x    
    ...
Got:
    [1]:
       _[1]=y^2+y+1
       _[2]=x+1
    [2]:
       _[1]=y^2+y+1
       _[2]=x+y+1
    [3]:
       _[1]=y^2+y+1
       _[2]=x+y
    [4]:
       _[1]=y^2+y+1
       _[2]=x
    [5]:
       _[1]=y+1
       _[2]=x^2+x+1
    [6]:
       _[1]=y+1
       _[2]=x+1
    [7]:
       _[1]=y+1
       _[2]=x
    [8]:
       _[1]=y
       _[2]=x^2+x+1
    [9]:
       _[1]=y
       _[2]=x+1
    [10]:
       _[1]=y
       _[2]=x
**********************************************************************
1 item had failures:
   1 of  61 in algebraic_geometry
    [52 tests, 1 failure, 1.11 s]
kiwifb commented 8 years ago

Are you running the doctests as root? The second is a repeat of sage -t /usr/share/doc/sage/en/developer/coding_in_other.rst which is caused by singular that one occurs a bit randomly depending on your build of {lib}singular. It is all Ok so I will be able to unmask it in the near future.

kiwifb commented 8 years ago

I haven't made a version of 7.1 with that options. It looks like some of it is already merged? Or do we we need to use a new tarball?

carlosggarcia commented 8 years ago

I wrote to the mailing list of SageManifold and here is their answer https://sympa.obspm.fr/wws/arc/sagemanifolds.list/2016-03/msg00003.html. Some parts are already merged but they continue using the same tarball.

Unless they'd changed the installation script (it seems not), the installation procedure is the same so it should be possible to make the option for the 7.1 version. What do you think?

kiwifb commented 8 years ago

OK I will provide you with a similar ebuild for 7.1.

kiwifb commented 8 years ago

Done, same deal as with 7.0-r1.

carlosggarcia commented 8 years ago

May you add manifolds as an standard build option for sage or make another 7.2-r1 ebuild, at least? Thanks in advance.

kiwifb commented 8 years ago

I will see to that. It is one of those weeks were everything goes funny and you're in for a ride and you just try not to crash into anything.

kiwifb commented 8 years ago

Same deal as for 7.0-r1 and 7.1-r1. How far are we from total inclusion?

carlosggarcia commented 8 years ago

It seems it is not far, but i can't tell exactly when. Yesterday, in the mail list of the project Eric Gourgoulhon wrote:

Btw more and more parts of SageManifolds are being integrated in main SageMath (cf. the green parts in the http://trac.sagemath.org/ticket/18528), so that soon it will be no longer necessary to install SageManifolds by hand: it will be shipped with SageMath.