Opened 4 months ago

Closed 2 months ago

Last modified 2 months ago

#31575 closed enhancement (fixed)

Remove full boost package

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-9.4
Component: packages: optional Keywords:
Cc: dimpase, vbraun, jhpalmieri, charpent, fbissey Merged in:
Authors: John Palmieri Reviewers: Matthias Koeppe
Report Upstream: N/A Work issues:
Branch: 3044c82 (Commits, GitHub, GitLab) Commit:
Dependencies: Stopgaps:

Status badges

Description

(from #29620)

We propose to remove the full boost package, which was added in 2016 (#20754, #20776) and updated once in 2018 (#26597), and only offer our cropped version of boost, which is enough for all of our packages.

We argue that it's not Sage's job to provide a full boost installation.

Change History (20)

comment:1 Changed 4 months ago by jhpalmieri

I don't see boost listed as a dependency for any other package or any doctests that depend on it. Can we just delete build/pkgs/boost?

comment:2 follow-up: Changed 4 months ago by fbissey

No doctests depend on it. It can be used instead of boost_cropped though. The point of it is that some people wanted the full boost rather than a little bit being available in sage. Either because they wanted to use it or install packages through pip that may need it.

Some optional packages could have undeclared dependency but chances are low.

As we move to use more and more system packages - including boost, I am OK with a move to remove it.

comment:3 in reply to: ↑ 2 ; follow-up: Changed 4 months ago by jhpalmieri

Replying to fbissey:

Some optional packages could have undeclared dependency but chances are low.

Especially since our boost package has been around so long as an optional package.

As we move to use more and more system packages - including boost, I am OK with a move to remove it.

Right, and boost_cropped will skip installation and use the system boost if it's present.

comment:4 in reply to: ↑ 3 Changed 4 months ago by fbissey

Replying to jhpalmieri:

Replying to fbissey:

As we move to use more and more system packages - including boost, I am OK with a move to remove it.

Right, and boost_cropped will skip installation and use the system boost if it's present.

Exactly. boost is a somewhat high demand maintenance package. There are regular releases and the build system is highly unusual. Working on it has shown some interesting quirks. I won't be sorry to see it go.

comment:5 Changed 4 months ago by jhpalmieri

I think that the boost options in ./configure should be kept (so that users can specify non-standard locations for a boost library), but I'm not sure.

comment:6 Changed 4 months ago by fbissey

The boost option in configure is provided from build/pkgs/boost_cropped/spkg-configure.m4 if I am not mistaken. The stuff in the boost folder makes sure that boost and boost_cropped are not installed at the same time I think.

comment:7 follow-up: Changed 4 months ago by jhpalmieri

There is also m4/ax_boost_base.m4.

comment:8 in reply to: ↑ 7 Changed 4 months ago by fbissey

Replying to jhpalmieri:

There is also m4/ax_boost_base.m4.

Yes, https://github.com/sagemath/sage/blob/develop/build/pkgs/boost_cropped/spkg-configure.m4's only job is to call it.

comment:9 Changed 4 months ago by jhpalmieri

  • Branch set to u/jhpalmieri/crop-boost

comment:10 Changed 4 months ago by jhpalmieri

  • Authors set to John Palmieri
  • Commit set to 0c0caa2c63903a3a3aed83001672b8dc32c02abb
  • Status changed from new to needs_review

Here's a branch to consider.


New commits:

0c0caa2trac 31575: remove the full boost package

comment:11 Changed 4 months ago by mkoeppe

Distros information for boost for nix and void should be moved to boost_cropped. I haven't checked whether the other distro files are identical

comment:12 Changed 4 months ago by git

  • Commit changed from 0c0caa2c63903a3a3aed83001672b8dc32c02abb to 3044c82996c64f9bbbe5822f34449b653f0bfba9

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

3044c82trac 31575: keep distro files nix.txt, void.txt for boost,

comment:13 Changed 4 months ago by jhpalmieri

The other distro files are all identical.

comment:14 Changed 4 months ago by mkoeppe

  • Reviewers set to Matthias Koeppe

LGTM.

This is for the Sage 9.4 series, right? Then I don't set it to positive review yet - Volker's merging scripts do not look at the Milestone field - https://groups.google.com/g/sage-devel/c/EN8IOtySC-w/m/l9dVq3_2CQAJ

comment:15 Changed 4 months ago by jhpalmieri

Okay, sounds good.

comment:16 Changed 3 months ago by mkoeppe

  • Status changed from needs_review to positive_review

comment:17 Changed 2 months ago by vbraun

  • Branch changed from u/jhpalmieri/crop-boost to 3044c82996c64f9bbbe5822f34449b653f0bfba9
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:18 Changed 2 months ago by dimpase

  • Commit 3044c82996c64f9bbbe5822f34449b653f0bfba9 deleted

with #30668 (autoconf 2.71), I see

$ ./bootstrap
...
configure.ac:43: installing 'config/missing'
m4/sage_spkg_configures.m4:498: warning: SAGE_SPKG_CONFIGURE_BOOST is m4_require'd but not m4_defun'd
m4/sage_spkg_configure.m4:159: SAGE_SPKG_DEPCHECK is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
m4/sage_spkg_collect.m4:69: SAGE_SPKG_COLLECT is expanded from...
m4/sage_spkg_configures.m4:498: the top level

and this is after make distclean bootstrap-clean.

comment:19 follow-up: Changed 2 months ago by dimpase

namely, the following is the fix:

  • build/pkgs/brial/spkg-configure.m4

    a b  
    11SAGE_SPKG_CONFIGURE([brial], [
    22  dnl Trac #31624: Avoid C++ ABI issues
    3   SAGE_SPKG_DEPCHECK([gcc boost m4ri], [
     3  SAGE_SPKG_DEPCHECK([gcc boost_cropped m4ri], [
    44    # If we're using the system m4ri and boost, ensure that we can
    55    # compile and run an executable linked against both libbrial and
    66    # libbrial_groebner (both are used by SageMath).

I'll open another ticket for this.

Last edited 2 months ago by dimpase (previous) (diff)

comment:20 in reply to: ↑ 19 Changed 2 months ago by dimpase

Replying to dimpase:

namely, the following is the fix:

  • build/pkgs/brial/spkg-configure.m4

    a b  
    11SAGE_SPKG_CONFIGURE([brial], [
    22  dnl Trac #31624: Avoid C++ ABI issues
    3   SAGE_SPKG_DEPCHECK([gcc boost m4ri], [
     3  SAGE_SPKG_DEPCHECK([gcc boost_cropped m4ri], [
    44    # If we're using the system m4ri and boost, ensure that we can
    55    # compile and run an executable linked against both libbrial and
    66    # libbrial_groebner (both are used by SageMath).

I'll open another ticket for this.

fixed by #31871

Note: See TracTickets for help on using tickets.