Opened 5 years ago

Last modified 5 years ago

#20901 closed defect

Upgrade bliss package to 0.73 with Debian patches; install header files in location expected by polymake — at Version 19

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-7.3
Component: packages: optional Keywords:
Cc: azi, jdemeyer, vdelecroix, kcrisman, dimpase, chapoton, stumpc5, moritz, vbraun Merged in:
Authors: Matthias Koeppe Reviewers:
Report Upstream: Reported upstream. No feedback yet. Work issues:
Branch: u/mkoeppe/upgrade_bliss_package_to_0_73_with_debian_patches__install_header_files_in_location_expected_by_polymake (Commits, GitHub, GitLab) Commit: 4b222118c057b1f870121951b44f6f851029ec63
Dependencies: Stopgaps:

Status badges

Description (last modified by mkoeppe)

New upstream archive: http://www.tcs.hut.fi/Software/bliss/bliss-0.73.zip (we have 0.72)

Upstream bliss does not have a proper build system (in particular no 'make install'). "spkg-install" installs header files with generic names such as "graph.hh" flat into $SAGE_LOCAL/include/

Debian has https://packages.debian.org/sid/math/bliss which autotoolizes the package and adjust the include file location. This matches where Polymake (#20892) expects the header files.

On https://github.com/mkoeppe/bliss in branch sage_package I have applied the Debian patches and a few more patches for Sage. The spkg-src script clones from there and builds a distribution. The result is available here:

tarball: https://github.com/mkoeppe/bliss/releases/download/sage_package%2F0.73%2Bdebian-1%2Bsage-2016-08-02/bliss-0.73.debian-1.sage-2016-08-02.tar.gz

Change History (19)

comment:1 Changed 5 years ago by mkoeppe

  • Dependencies set to #20692

comment:2 Changed 5 years ago by kcrisman

  • Cc kcrisman added; crisman removed

comment:3 Changed 5 years ago by mkoeppe

  • Branch set to u/mkoeppe/upgrade_bliss_package_to_0_73_with_debian_patches__install_header_files_in_location_expected_by_polymake

comment:4 Changed 5 years ago by mkoeppe

  • Authors set to Matthias Koeppe
  • Cc dimpase chapoton stumpc5 moritz added
  • Commit set to 3837a489fff9a294566061755664e240a7a5a1ff
  • Dependencies #20692 deleted
  • Description modified (diff)
  • Status changed from new to needs_review

New commits:

3837a48bliss: Use autotoolized package from Debian

comment:5 Changed 5 years ago by mkoeppe

Needs review. Prerequisite for polymake (#20892).

comment:6 follow-up: Changed 5 years ago by dimpase

what are the new goodies? a shared library?

comment:7 in reply to: ↑ 6 Changed 5 years ago by mkoeppe

Replying to dimpase:

what are the new goodies? a shared library?

A shared library, proper include files location, and as a result works as a prerequisite for polymake. New upstream version -- but upstream is silent about what has changed compared to 0.72.

comment:8 Changed 5 years ago by git

  • Commit changed from 3837a489fff9a294566061755664e240a7a5a1ff to 225755e087890955539c2ee70f838b6631f0ee57

Branch pushed to git repo; I updated commit sha1. New commits:

225755ebliss: Add more info in SPKG.txt

comment:9 follow-up: Changed 5 years ago by jdemeyer

The usual way to ship packages in Sage is to start from the original unmodified sources and then apply patches (either at packaging time or at build time). Here, you are instead forking upstream for no clear reason.

comment:10 Changed 5 years ago by git

  • Commit changed from 225755e087890955539c2ee70f838b6631f0ee57 to 4b222118c057b1f870121951b44f6f851029ec63

Branch pushed to git repo; I updated commit sha1. New commits:

4b22211bliss: Use upstream tarball and patches

comment:11 in reply to: ↑ 9 Changed 5 years ago by mkoeppe

  • Description modified (diff)

Replying to jdemeyer:

The usual way to ship packages in Sage is to start from the original unmodified sources and then apply patches (either at packaging time or at build time). Here, you are instead forking upstream for no clear reason.

OK, I've changed it to using upstream + a patch. Unfortunately our patches cannot be as elegant as Debian's because we cannot rely on the availability of autotools. So my patch has to ship the whole autogenerated build system.

comment:12 Changed 5 years ago by fbissey

Learn to write a spkg-src file like for ecl https://github.com/sagemath/sage/blob/master/build/pkgs/ecl/spkg-src or glpk at #20710. It will require you to produce a new tarball and host it somewhere until the ticket is merged.

comment:13 Changed 5 years ago by dimpase

yeah, spkg-src is important, as you don't want to become the only one in state to perform an update...

comment:14 Changed 5 years ago by mkoeppe

  • Status changed from needs_review to needs_work

Unfortunately this update causes some tests to fail with segfault.

age:             sage: g3 = polytopes.hypercube(3).vertex_graph(); g3
Graph on 8 vertices
sage:             sage: g3.automorphism_group().cardinality()
python(2197,0x7fff7b8f9000) malloc: *** error for object 0x1001d3fff: pointer being realloc'd was not allocated
*** set a breakpoint in malloc_error_break to debug

Program received signal SIGABRT, Aborted.
0x00007fff8b2cff06 in __pthread_kill () from /usr/lib/system/libsystem_kernel.dylib
(gdb) where
#0  0x00007fff8b2cff06 in __pthread_kill () from /usr/lib/system/libsystem_kernel.dylib
#1  0x00007fff92ea14ec in pthread_kill () from /usr/lib/system/libsystem_pthread.dylib
#2  0x00007fff8ec5c6e7 in abort () from /usr/lib/system/libsystem_c.dylib
#3  0x00007fff933d879d in realloc () from /usr/lib/system/libsystem_malloc.dylib
#4  0x0000000107284ddd in __pyx_f_4sage_3ext_6memory_sage_sig_realloc () from /Users/mkoeppe/cvs/sage/local/lib/python2.7/site-packages/sage/ext/memory.so
#5  0x0000000106afca01 in __gmpz_realloc () from /Users/mkoeppe/cvs/sage/local/lib/libgmp.16.dylib
#6  0x0000000106af8c0e in __gmpz_mul_si () from /Users/mkoeppe/cvs/sage/local/lib/libgmp.16.dylib
#7  0x00000001aefad6f0 in ?? () from /Users/mkoeppe/cvs/sage/local/lib/libbliss.2.dylib
#8  0x00000001aefaf43c in ?? () from /Users/mkoeppe/cvs/sage/local/lib/libbliss.2.dylib
#9  0x00000001aef96e13 in __pyx_pw_4sage_6graphs_5bliss_1automorphism_group(_object*, _object*, _object*) ()
   from /Users/mkoeppe/cvs/sage/local/lib/python2.7/site-packages/sage/graphs/bliss.so
#10 0x00000001000e92a4 in PyEval_EvalFrameEx () from /Users/mkoeppe/cvs/sage/local/lib/libpython2.7.dylib
#

I could use some help here.

comment:15 follow-up: Changed 5 years ago by fbissey

Well known problem. Disable gmp in bliss that's the culprit.

comment:16 in reply to: ↑ 15 Changed 5 years ago by mkoeppe

Replying to fbissey:

Well known problem. Disable gmp in bliss that's the culprit.

Thanks!

comment:17 Changed 5 years ago by dimpase

Why would bliss need gmp? Looks strange to me.

comment:18 Changed 5 years ago by fbissey

It's a build option, ask the author.

comment:19 Changed 5 years ago by mkoeppe

  • Description modified (diff)
Note: See TracTickets for help on using tickets.