diff options
author | Mark H Weaver <mhw@netris.org> | 2018-04-08 14:40:00 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2018-04-10 00:46:22 -0400 |
commit | 713c975ac0aa01c224b215fcb96274b76920c90b (patch) | |
tree | 2af909bd45bf9ddef21d64024f4b5512f6b28f0c | |
parent | df17d508052d955bc9800a871f403cd3f2b07fce (diff) | |
download | guix-713c975ac0aa01c224b215fcb96274b76920c90b.tar guix-713c975ac0aa01c224b215fcb96274b76920c90b.tar.gz |
gnu: boost: Fix ICU support.
* gnu/packages/patches/boost-fix-icu-build.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/boost.scm (boost)[source]: Add the patch.
[arguments]: In the custom configure phase, pass --with-icu=[...]
to ./bootstrap.sh
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/boost.scm | 13 | ||||
-rw-r--r-- | gnu/packages/patches/boost-fix-icu-build.patch | 53 |
3 files changed, 63 insertions, 4 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index f0ee61b642..db093aecf3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -578,6 +578,7 @@ dist_patch_DATA = \ %D%/packages/patches/bcftools-regidx-unsigned-char.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blast+-fix-makefile.patch \ + %D%/packages/patches/boost-fix-icu-build.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 674877a887..6b17e30a8e 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington <jmd@gnu.org> -;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> @@ -52,7 +52,8 @@ ".tar.bz2")) (sha256 (base32 - "1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap")))) + "1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap")) + (patches (search-patches "boost-fix-icu-build.patch")))) (build-system gnu-build-system) (inputs `(("icu4c" ,icu4c) ("zlib" ,zlib))) @@ -81,8 +82,9 @@ (modify-phases %standard-phases (delete 'bootstrap) (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((icu (assoc-ref inputs "icu4c")) + (out (assoc-ref outputs "out"))) (substitute* '("libs/config/configure" "libs/spirit/classic/phoenix/test/runtest.sh" "tools/build/doc/bjam.qbk" @@ -96,6 +98,9 @@ (invoke "./bootstrap.sh" (string-append "--prefix=" out) + ;; Auto-detection looks for ICU only in traditional + ;; install locations. + (string-append "--with-icu=" icu) "--with-toolset=gcc")))) (replace 'build (lambda* (#:key make-flags #:allow-other-keys) diff --git a/gnu/packages/patches/boost-fix-icu-build.patch b/gnu/packages/patches/boost-fix-icu-build.patch new file mode 100644 index 0000000000..556f91b8f7 --- /dev/null +++ b/gnu/packages/patches/boost-fix-icu-build.patch @@ -0,0 +1,53 @@ +Pass -std=c++11 when compiling files that include the ICU headers. Without +this flag, compilation fails and causes Boost's build system to remove ICU +support. Note that $(pkg-config --variable=CXXFLAGS icu-uc) includes +"-std=c++11", but Boost's build system does not use 'pkg-config'. + +--- boost_1_66_0/libs/locale/build/Jamfile.v2.orig 2017-12-13 18:56:44.000000000 -0500 ++++ boost_1_66_0/libs/locale/build/Jamfile.v2 2018-04-08 15:18:58.673025760 -0400 +@@ -65,8 +65,8 @@ + + if $(ICU_LINK) + { +- ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <runtime-link>shared ; +- ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin64 <runtime-link>shared ; ++ ICU_OPTS = <include>$(ICU_PATH)/include <cxxflags>-std=c++11 <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <runtime-link>shared ; ++ ICU64_OPTS = <include>$(ICU_PATH)/include <cxxflags>-std=c++11 <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin64 <runtime-link>shared ; + } + else + { +@@ -121,6 +121,7 @@ + explicit icuuc icudt icuin ; + + ICU_OPTS = <include>$(ICU_PATH)/include ++ <cxxflags>-std=c++11 + <library>icuuc/<link>shared/<runtime-link>shared + <library>icudt/<link>shared/<runtime-link>shared + <library>icuin/<link>shared/<runtime-link>shared +@@ -180,6 +181,7 @@ + explicit icuuc_64 icudt_64 icuin_64 ; + + ICU64_OPTS = <include>$(ICU_PATH)/include ++ <cxxflags>-std=c++11 + <library>icuuc_64/<link>shared/<runtime-link>shared + <library>icudt_64/<link>shared/<runtime-link>shared + <library>icuin_64/<link>shared/<runtime-link>shared +--- boost_1_66_0/libs/regex/build/Jamfile.v2.orig 2017-12-13 18:56:48.000000000 -0500 ++++ boost_1_66_0/libs/regex/build/Jamfile.v2 2018-04-08 15:20:40.865532505 -0400 +@@ -44,7 +44,7 @@ + + if $(ICU_LINK) + { +- ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <define>BOOST_HAS_ICU=1 <runtime-link>shared ; ++ ICU_OPTS = <include>$(ICU_PATH)/include <cxxflags>-std=c++11 <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <define>BOOST_HAS_ICU=1 <runtime-link>shared ; + } + else + { +@@ -78,6 +78,7 @@ + + ICU_OPTS = + <include>$(ICU_PATH)/include ++ <cxxflags>-std=c++11 + <runtime-link>shared:<library>icuuc/<link>shared + <runtime-link>shared:<library>icudt/<link>shared + <runtime-link>shared:<library>icuin/<link>shared |