#8059: update Singular SPKG to newest upstream release
-------------------------------+--------------------------------------------
   Reporter:  malb             |       Owner:                                   
         
       Type:  enhancement      |      Status:  needs_work                       
         
   Priority:  major            |   Milestone:  sage-4.5                         
         
  Component:  packages         |    Keywords:                                   
         
     Author:  Martin Albrecht  |    Upstream:  Fixed upstream, in a later 
stable release.
   Reviewer:                   |      Merged:                                   
         
Work_issues:                   |  
-------------------------------+--------------------------------------------
Changes (by drkirkby):

 * cc: fbissey (added)


Old description:

> The Singular team accepted most of our patches upstream. They are in the
> 3-1-0-9 release, which also is a first step to make things easier for
> library developers.

New description:

 The Singular team accepted most of our patches upstream. They are in the
 3-1-0-9 release, which also is a first step to make things easier for
 library developers.

--

Comment:

 Replying to [comment:53 malb]:
 > I've updated the Singular SPKG to 3-1-1-3 which fixes the genus issue.
 However, this release segfaults a lot! I'm in the process of resolving
 this (cf. [libsingular-devel])
 >
 > http://sage.math.washington.edu/home/malb/spkgs/singular-3-1-1-3.p0.spkg

 Hi Martin Albrecht ,
 A few comments.

  * Is it possible you could request the upstream developers distribute the
 source code so the files generated by tools like autoconf, flex, actually
 have later modification times of the generated file newer than the file
 they are generated from?

 Currently libparse.cc, which is the output from 'flex' has exactly the
 same modification time (to the ns) as the file it was supposedly generated
 from (libparse.l). I doubt 'flex' actually run in < 1 ns!

 {{{
 -rw-r-----   1 drkirkby staff     109422 2010-02-03 13:58:03.000000000
 +0000 src/Singular/libparse.cc
 -rw-r-----   1 drkirkby staff      30875 2010-02-03 13:58:03.000000000
 +0000 src/Singular/libparse.l
 }}}
 Likewise for these files. Clearly autoconf did not run in under a ns.
 {{{
 -rwxr-x---   1 drkirkby staff      85614 2010-03-03 11:36:23.000000000
 +0000 src/factory/configure
 -rw-r-----   1 drkirkby staff      13992 2010-03-03 11:36:23.000000000
 +0000 src/factory/configure.in
 }}}

 This will save us having to 'touch' the files.

  * There's a problem with the {{{build()}}} part of spkg-install.

 The script author probably assumes that if any one of the items in
 {{{build()}}} fail, then {{{build()}}} will fail and so the error will be
 reported. However, that is not the case. As long as the last item in
 {{{build()}}}, which is ({{{install_docs}}}), does not fail, the return
 code from {{{build()}}} will be 0. So if for example I modify the
 {{{build()}}} section to:

 {{{
 build()
 {
     clean_headers
     # This SHOULD break the build
     rm /non-existant-file

     patch

     distclean

     config

     build_singular

     build_libsingular

     build_factory

     build_libfac

     create_singular_script

     install_docs
 }

 build

 if [ $? -ne 0 ]; then
     echo "Error somewhere building Singular."
     exit 1
 fi

 }}}

 then when I build Singular, I see:

 {{{
 Building a 64-bit version of Singular
 rm: /non-existant-file: No such file or directory
 make: *** No rule to make target `distclean'.  Stop.
 creating cache ./config.cache
 checking uname for singular... ix86-SunOS
 checking for gcc... gcc -m64
 ...
 Successfully installed singular-3-1-1-3.p1
 }}}

 In other words, the error of trying to delete  /non-existant-file does not
 cause the build to fail, as it should do. That means if the library fails
 to build, but the docuemtation installs ok, then the script will not show
 the error. Each part should be checked individually.

 I've not checked this, but believe the following would work:

 {{{
 build()
 {
    for i in clean_headers patch distclean config build_singular
 build_libsingular build_factory build_libfac create_singular_script
 install_docs ; do
    $i
    if [ $? -ne 0 ]; then
      echo "Error building Singular when running '$i'."
      exit 1
    fi
    done
 }
 }}}

  * There are in fact a lot of parts in spkg-install which are not checked
 for errors.

  * François Bissey has said the previous version of Singular built some
 unnecessary targets, which adds to the build time of Singular. Given this
 is the longest package to build (taking almost 6 minutes on my PC), it
 would be worth reducing them if you have not already done so. I've cc'ed
 François on the ticket, as he knows a lot more about this package than me.

  * It does built on !OpenSolaris, though I've not checked it on anything
 else. I'll wait until you have sorted out the segfaults first!

 PS, The first 3-1-1-3 to go into Sage should be called
 singular-3-1-1-3.spkg and not have a '.p0' in the name.

 Dave

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8059#comment:54>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to