Opened 6 months ago

Closed 6 months ago

Last modified 6 months ago

#21964 closed enhancement (fixed)

boost-1.89.0

Reported by: Bruce Dubbs Owned by: Bruce Dubbs
Priority: elevated Milestone: 12.4
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New minor version.

Change History (12)

comment:1 by martyj19, 6 months ago

This has stopped shipping libboost_system.so. The Boost.System module is header only.

One result is that libreoffice will not build because the embedded liborcus references it. The boost.m4 will need adjustment. It could be as simple as hacking out the part that looks for libboost_system.so. I am on --without-system-boost temporarily. It is always fun remembering the incantation to patch external tarballs after they are unpacked.

The internet suggests that some other packages will fall victim to this.

comment:2 by Xi Ruoyao, 6 months ago

May we create an empty libboost_system.a if the header is enough?

Last edited 6 months ago by Xi Ruoyao (previous) (diff)

comment:3 by martyj19, 6 months ago

Libreoffice 25.8.0 is expected next week and I will revisit the situation then.

in reply to:  2 comment:4 by Joe Locash, 6 months ago

Replying to Xi Ruoyao:

May we create an empty libboost_system.a if the header is enough?

That will work but I think it's easier to

export boost_cv_lib_system=yes

No need to create a temp file and then remove it. Tested with 25.2.5.2 and 25.8.0.4.

comment:5 by martyj19, 6 months ago

I confirm that

boost_cv_lib_system=yes make build

is all that is needed.

comment:6 by thomas, 6 months ago

Also Kea FTBFS with boost-1.89. The meson log (build/meson-logs/meson-log.txt) says

...
    - <LIB: -M ------ ??? ? 1_89 boost_thread                     /usr/lib/libboost_thread.so.1.89.0>
    - <LIB: -M ------ ??? ? 1_89 boost_timer                      /usr/lib/libboost_timer.so.1.89.0>
    - <LIB: -M ------ ??? ? 1_89 boost_type_erasure               /usr/lib/libboost_type_erasure.so.1.89.0>
    - <LIB: -M ------ ??? ? 1_89 boost_unit_test_framework        /usr/lib/libboost_unit_test_framework.so.1.89.0>
    - <LIB: -M ------ ??? ? 1_89 boost_url                        /usr/lib/libboost_url.so.1.89.0>
    - <LIB: -M ------ ??? ? 1_89 boost_wave                       /usr/lib/libboost_wave.so.1.89.0>
    - <LIB: -M ------ ??? ? 1_89 boost_wserialization             /usr/lib/libboost_wserialization.so.1.89.0>
  - found:
  - NOT found:
    - boost_system
Run-time dependency Boost (missing: system) found: NO (tried system)

../meson.build:192:12: ERROR: Dependency "boost" not found, tried system

Looks to me as meson itself checks for /usr/lib/libboost_system.so... and fails as it is not there. the export boost_cv_lib_system=yesfrom above does not help in this case. Solutions:

  1. touch /usr/lib/libboost_system.a - but that is kind of pollution in our OS
  2. Patch Meson and probably other build tools - do we really want to do that?
  3. Postpone upgrade of boost to after release of 12.4 and wait for patches either in meson, boost, ... Ok, thats not really a 'solution' but it would take out pressure on fixing stuff upfront to a {B,}LFS release
Last edited 6 months ago by thomas (previous) (diff)

comment:7 by thomas, 6 months ago

Priority: normalelevated

comment:8 by Joe Locash, 6 months ago

For kea:

sed -e "s/, modules: \['system'\]//" -i meson.build

also add

#include <boost/asio/deadline_timer.hpp>

to src/lib/asiolink/interval_timer.cc and src/lib/asiodns/io_fetch.cc

comment:9 by Bruce Dubbs, 6 months ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:10 by Bruce Dubbs, 6 months ago

I'll go ahead and add boost tomorrow and then address packages as they come up. These are the packages that reference boost:

general/genlib/clucene.xml
general/genlib/exempi.xml
general/genlib/libsigc++.xml
general/genlib/libsigc++3.xml
general/genutils/highlight.xml
general/graphlib/poppler.xml
general/prog/subversion.xml
general/prog/swig.xml
kde/kf-apps/plasma-activities.xml
kde/plasma/plasma-all.xml
networking/netlibs/nghttp2.xml
pst/typesetting/asymptote.xml
server/databases/mariadb.xml
server/major/kea.xml
x/lib/cairomm-1.0.xml
x/lib/cairomm-1.16.xml
xsoft/office/libreoffice.xml
xsoft/other/inkscape.xml

subversion and swig are already tagged but boost is optional for both.

comment:11 by Bruce Dubbs, 6 months ago

Resolution: fixed
Status: assignedclosed

Fixed at commits

e8b7ff86d9 Update to abseil-cpp-20250814.0.
af9635e809 Update to boost-1.89.0.
39964031d0 Update to highway-1.3.0.

comment:12 by Douglas R. Reno, 6 months ago

MariaDB does have some detection problems with Boost as it's attempting to look for libboost_system in a component:

CMake Warning (dev) at storage/columnstore/columnstore/cmake/boost.cmake:1 (find_package):
  Policy CMP0167 is not set: The FindBoost module is removed.  Run "cmake
  --help-policy CMP0167" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

Call Stack (most recent call first):
  storage/columnstore/columnstore/CMakeLists.txt:40 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find Boost: missing: system (found /usr/lib/cmake/Boost-1.89.0/
BoostConfig.cmake (found suitable version "1.89.0", minimum required is "1.88.0"))

Some portions of MariaDB will use the new boost version though, but the columnstore module needs to be adjusted.

To work around this, we'll need to use: sed -i 's/regex system/regex/' storage/columnstore/columnstore/cmake/boost.cmake

After that I was able to get it to successfully use Boost 1.89.0 and was able to run the test suite for MariaDB and created a database.

Note: See TracTickets for help on using tickets.