#20901 closed defect (fixed)
Upgrade bliss package to 0.73 with Debian patches; install header files in location expected by polymake
Reported by:  mkoeppe  Owned by:  

Priority:  major  Milestone:  sage7.3 
Component:  packages: optional  Keywords:  
Cc:  azi, jdemeyer, vdelecroix, kcrisman, dimpase, chapoton, stumpc5, moritz, vbraun  Merged in:  
Authors:  Matthias Koeppe  Reviewers:  Dima Pasechnik 
Report Upstream:  Reported upstream. No feedback yet.  Work issues:  
Branch:  c0c0427 (Commits)  Commit:  
Dependencies:  Stopgaps: 
Description (last modified by )
New upstream archive: http://www.tcs.hut.fi/Software/bliss/bliss0.73.zip (we have 0.72)
Upstream bliss does not have a proper build system (in particular no 'make install'). "spkginstall" 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 spkgsrc
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%2Bdebian1%2Bsage20160802/bliss0.73.debian1.sage20160802.tar.gz (rename to bliss0.73+debian1+sage20160802.tar.gz
)
Change History (35)
comment:1 Changed 3 years ago by
 Dependencies set to #20692
comment:2 Changed 3 years ago by
 Cc kcrisman added; crisman removed
comment:3 Changed 3 years ago by
 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 3 years ago by
 Cc dimpase chapoton stumpc5 moritz added
 Commit set to 3837a489fff9a294566061755664e240a7a5a1ff
 Dependencies #20692 deleted
 Description modified (diff)
 Status changed from new to needs_review
comment:5 Changed 3 years ago by
Needs review. Prerequisite for polymake (#20892).
comment:6 followup: ↓ 7 Changed 3 years ago by
what are the new goodies? a shared library?
comment:7 in reply to: ↑ 6 Changed 3 years ago by
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 3 years ago by
 Commit changed from 3837a489fff9a294566061755664e240a7a5a1ff to 225755e087890955539c2ee70f838b6631f0ee57
Branch pushed to git repo; I updated commit sha1. New commits:
225755e  bliss: Add more info in SPKG.txt

comment:9 followup: ↓ 11 Changed 3 years ago by
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 3 years ago by
 Commit changed from 225755e087890955539c2ee70f838b6631f0ee57 to 4b222118c057b1f870121951b44f6f851029ec63
Branch pushed to git repo; I updated commit sha1. New commits:
4b22211  bliss: Use upstream tarball and patches

comment:11 in reply to: ↑ 9 Changed 3 years ago by
 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 followup: ↓ 21 Changed 3 years ago by
Learn to write a spkgsrc
file like for ecl
https://github.com/sagemath/sage/blob/master/build/pkgs/ecl/spkgsrc
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 3 years ago by
yeah, spkgsrc
is important, as you don't want to become the only one in state to perform an update...
comment:14 Changed 3 years ago by
 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/sitepackages/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/sitepackages/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 followup: ↓ 16 Changed 3 years ago by
Well known problem. Disable gmp
in bliss
that's the culprit.
comment:16 in reply to: ↑ 15 Changed 3 years ago by
comment:17 Changed 3 years ago by
Why would bliss
need gmp
? Looks strange to me.
comment:18 Changed 3 years ago by
It's a build option, ask the author.
comment:19 Changed 3 years ago by
 Description modified (diff)
comment:20 Changed 3 years ago by
 Commit changed from 4b222118c057b1f870121951b44f6f851029ec63 to 1d2707cf0db6eb015ba93d224e6760dd219a5e7d
Branch pushed to git repo; I updated commit sha1. New commits:
3111091  Merge tag '7.3.beta9' into t/20901/upgrade_bliss_package_to_0_73_with_debian_patches__install_header_files_in_location_expected_by_polymake

1c398a3  Merge tag '7.3.rc0' into t/20901/upgrade_bliss_package_to_0_73_with_debian_patches__install_header_files_in_location_expected_by_polymake

1d2707c  Use repackaged archive instead of huge patch

comment:21 in reply to: ↑ 12 Changed 3 years ago by
 Status changed from needs_work to needs_review
comment:22 followup: ↓ 23 Changed 3 years ago by
there is something funny with tarball name: if I do sage i bliss it looks for bliss0.73+debian1+sage20160802.tar.gz
, while wget with your URL gives bliss0.73.debian1.sage20160802.tar.gz
.
OK, I renamed the tarball, and was able to run sage i bliss
, but the following make fails:
[sagelib7.3.rc0] building 'sage.graphs.bliss' extension [sagelib7.3.rc0] Executing 1 command (using 1 thread) [sagelib7.3.rc0] [1/1] gcc fnostrictaliasing g O2 DNDEBUG g fwrapv O3 Wall Wnounused fPIC I/home/scratch/dimpase/sage/sage/local/include I/home/scratch/dimpase/sage/sage/local/include/python2.7 I/home/scratch/dimpase/sage/sage/local/lib/python2.7/sitepackages/numpy/core/include I/home/scratch/dimpase/sage/sage/src I/home/scratch/dimpase/sage/sage/src/sage/ext I/home/scratch/dimpase/sage/sage/src/build/cythonized I/home/scratch/dimpase/sage/sage/src/build/cythonized/sage/ext I/home/scratch/dimpase/sage/sage/local/include/python2.7 c /home/scratch/dimpase/sage/sage/src/build/cythonized/sage/graphs/bliss.cpp o build/temp.linuxx86_642.7/home/scratch/dimpase/sage/sage/src/build/cythonized/sage/graphs/bliss.o fnostrictaliasing [sagelib7.3.rc0] /home/scratch/dimpase/sage/sage/src/build/cythonized/sage/graphs/bliss.cpp:317:20: fatal error: graph.hh: No such file or directory [sagelib7.3.rc0] compilation terminated. [sagelib7.3.rc0] error: command 'gcc' failed with exit status 1
This is on Fedora23, Sage 7.3.rc0, with gcc version 5.3.1 20160406 (Red Hat 5.3.16) (GCC).
comment:23 in reply to: ↑ 22 Changed 3 years ago by
Replying to dimpase:
there is something funny with tarball name: if I do sage i bliss it looks for
bliss0.73+debian1+sage20160802.tar.gz
, while wget with your URL givesbliss0.73.debian1.sage20160802.tar.gz
.
It's a limitation of github, it renames +
to .
OK, I renamed the tarball, and was able to run
sage i bliss
, but the following make fails:[sagelib7.3.rc0] building 'sage.graphs.bliss' extension [sagelib7.3.rc0] Executing 1 command (using 1 thread) [sagelib7.3.rc0] [1/1] gcc fnostrictaliasing g O2 DNDEBUG g fwrapv O3 Wall Wnounused fPIC I/home/scratch/dimpase/sage/sage/local/include I/home/scratch/dimpase/sage/sage/local/include/python2.7 I/home/scratch/dimpase/sage/sage/local/lib/python2.7/sitepackages/numpy/core/include I/home/scratch/dimpase/sage/sage/src I/home/scratch/dimpase/sage/sage/src/sage/ext I/home/scratch/dimpase/sage/sage/src/build/cythonized I/home/scratch/dimpase/sage/sage/src/build/cythonized/sage/ext I/home/scratch/dimpase/sage/sage/local/include/python2.7 c /home/scratch/dimpase/sage/sage/src/build/cythonized/sage/graphs/bliss.cpp o build/temp.linuxx86_642.7/home/scratch/dimpase/sage/sage/src/build/cythonized/sage/graphs/bliss.o fnostrictaliasing [sagelib7.3.rc0] /home/scratch/dimpase/sage/sage/src/build/cythonized/sage/graphs/bliss.cpp:317:20: fatal error: graph.hh: No such file or directory [sagelib7.3.rc0] compilation terminated. [sagelib7.3.rc0] error: command 'gcc' failed with exit status 1This is on Fedora23, Sage 7.3.rc0, with gcc version 5.3.1 20160406 (Red Hat 5.3.16) (GCC).
Thanks for catching this. Fix coming shortly.
comment:24 Changed 3 years ago by
 Commit changed from 1d2707cf0db6eb015ba93d224e6760dd219a5e7d to c0c0427e4e4f728380b5b23d9fbbd870a0ba30fa
Branch pushed to git repo; I updated commit sha1. New commits:
c0c0427  Adjust to changed bliss header file locations

comment:25 Changed 3 years ago by
Fixed.
comment:26 Changed 3 years ago by
 Description modified (diff)
comment:27 Changed 3 years ago by
OK, this works. In order to keep the release manager happy, I suggest that you put the tarball somewhere where it can be wget'ed without renaming hassle...
comment:28 Changed 3 years ago by
Is this a "positive_review"?
comment:29 Changed 3 years ago by
 Reviewers set to Dima Pasechnik
 Status changed from needs_review to positive_review
I trust you are able to put the tarball somewhere where the name mangling does not happen. :)
comment:30 Changed 3 years ago by
 Cc vbraun added
Thanks, Dima.
Volker  does the upload location of the tarball work for you?
comment:31 Changed 3 years ago by
 Branch changed from u/mkoeppe/upgrade_bliss_package_to_0_73_with_debian_patches__install_header_files_in_location_expected_by_polymake to c0c0427e4e4f728380b5b23d9fbbd870a0ba30fa
 Resolution set to fixed
 Status changed from positive_review to closed
comment:32 Changed 3 years ago by
 Commit c0c0427e4e4f728380b5b23d9fbbd870a0ba30fa deleted
 Report Upstream changed from N/A to Reported upstream. No feedback yet.
comment:33 Changed 3 years ago by
some patchbots meet compilation problems:
[sagelib7.4.beta1] /home/worker/sagepatchbot/src/build/cythonized/sage/graphs/bliss.cpp:317:26: fatal error: bliss/graph.hh: No such file or directory [sagelib7.4.beta1] #include "bliss/graph.hh" [sagelib7.4.beta1] ^ [sagelib7.4.beta1] compilation terminated.
comment:34 Changed 3 years ago by
Well, the install location of this header file changed with this upgrade, so the patchbots will have to reinstall the package.
comment:35 Changed 3 years ago by
I hope that #21288 will fix this.
New commits:
bliss: Use autotoolized package from Debian