From 8a20f58420ff62cf2e9daeaf88d8ec1dfecb81b4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 11 Jul 2024 15:18:51 -0400 Subject: gnu: Boost: Fix a bug that breaks libetonyek. This fixes . * gnu/packages/patches/boost-fix-duplicate-definitions-bug.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/boost.scm (boost)[source]: Use it. (boost-for-source-highlight): New variable, not using the patch. * gnu/packages/pretty-print.scm (source-highlight)[inputs]: Replace BOOST with BOOST-FOR-SOURCE-HIGHLIGHT. Change-Id: I5fbc9eb5000aefd7d3a14cc7a0482741032b5400 --- gnu/local.mk | 1 + gnu/packages/boost.scm | 26 +++++++++++++-- .../boost-fix-duplicate-definitions-bug.patch | 38 ++++++++++++++++++++++ gnu/packages/pretty-print.scm | 2 +- 4 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/boost-fix-duplicate-definitions-bug.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 47110b0cec..d31a31884a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1022,6 +1022,7 @@ dist_patch_DATA = \ %D%/packages/patches/bloomberg-bde-cmake-module-path.patch \ %D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \ %D%/packages/patches/boolector-find-googletest.patch \ + %D%/packages/patches/boost-fix-duplicate-definitions-bug.patch \ %D%/packages/patches/breezy-fix-gio.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \ diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 70774617f0..2fdea80896 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -74,9 +74,11 @@ version "/source/boost_" (version-with-underscores version) ".tar.bz2")) (patches - (list (boost-patch - "0001-unordered-fix-copy-assign.patch" version - "09j61m5xh7099k5na9i43x5rra51znf7vm2nyh89yqpizcll9q66"))) + (append + (search-patches "boost-fix-duplicate-definitions-bug.patch") + (list (boost-patch + "0001-unordered-fix-copy-assign.patch" version + "09j61m5xh7099k5na9i43x5rra51znf7vm2nyh89yqpizcll9q66")))) (patch-flags '("-p2")) (sha256 (base32 @@ -204,6 +206,24 @@ across a broad spectrum of applications.") (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt" "Some components have other similar licences.")))) +(define-public boost-for-source-highlight + (hidden-package (package (inherit boost) + (name "boost") + (version "1.83.0") + (source (origin + (method url-fetch) + (uri (string-append "https://boostorg.jfrog.io/artifactory/main/release/" + version "/source/boost_" + (version-with-underscores version) ".tar.bz2")) + (patches + (list (boost-patch + "0001-unordered-fix-copy-assign.patch" version + "09j61m5xh7099k5na9i43x5rra51znf7vm2nyh89yqpizcll9q66"))) + (patch-flags '("-p2")) + (sha256 + (base32 + "13iviiwk1srpw9dmiwabkxv56v0pl0zggjp8zxy1419k5zzfsy34"))))))) + ;; Sadly, this is needed for irods. It won't link with 1.69 or later. (define-public boost-for-irods (package diff --git a/gnu/packages/patches/boost-fix-duplicate-definitions-bug.patch b/gnu/packages/patches/boost-fix-duplicate-definitions-bug.patch new file mode 100644 index 0000000000..f2e3decedb --- /dev/null +++ b/gnu/packages/patches/boost-fix-duplicate-definitions-bug.patch @@ -0,0 +1,38 @@ +Fix the build of libetonyek / libreoffice: + +https://issues.guix.gnu.org/72040 + +Patch copied from upstream source repository: + +https://github.com/boostorg/phoenix/commit/8913607a3788cb82d48ed461ea59c919b7bad3df + +From 8913607a3788cb82d48ed461ea59c919b7bad3df Mon Sep 17 00:00:00 2001 +From: djowel +Date: Tue, 29 Aug 2023 14:32:41 +0800 +Subject: [PATCH] Disabled this for now, due to ODR violations $$$ Fix Me $$$ + +--- + include/boost/phoenix/stl/tuple.hpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/boost/phoenix/stl/tuple.hpp b/include/boost/phoenix/stl/tuple.hpp +index fb9440d2..a2e42bec 100644 +--- a/include/boost/phoenix/stl/tuple.hpp ++++ b/include/boost/phoenix/stl/tuple.hpp +@@ -106,6 +106,7 @@ namespace boost { namespace phoenix { + tuple_detail::idx_wrap(), t); + } + ++#if 0 // Disabled this for now due to ODR viaolations $$$ Fix Me $$$ + // Make unpacked argument placeholders + namespace placeholders { + #define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT) +@@ -114,6 +115,8 @@ namespace boost { namespace phoenix { + boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1); + #include BOOST_PP_LOCAL_ITERATE() + } ++#endif ++ + }} // namespace boost::phoenix + + #endif // C++ 14 diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 220761fc07..d8ff1664b4 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -305,7 +305,7 @@ a fast alternative to @code{IOStreams}.") ;; The ctags that comes with emacs does not support the --excmd options, ;; so can't be used (inputs - (list boost)) + (list boost-for-source-highlight)) (native-inputs (list bison flex)) (arguments -- cgit v1.2.3