diff mbox series

[bug#54337,1/2] gnu: Add boost-1.77/fixed.

Message ID 20220311061925.11865-1-mail@brendan.scot
State Accepted
Headers show
Series gnu: cryfs: Update to 0.11.2. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Brendan Tildesley March 11, 2022, 6:19 a.m. UTC
* gnu/packages/boost.scm (boost-1.77/fixed): New variable. Since
updating boost would resulting in building 1000s of rebuilds, add a
temporary variant to fixing a missing import resulting in "error:
'transform' is not a member of 'std'" when building cryfs. See:
https://github.com/boostorg/process/commit/e08374ed95ac33865bda40602c94909e7cd9607f

* gnu/packages/patches/boost-wchar-include-algorithm.patch: New
file.
* gnu/local.mk: Reference patch.
---
 gnu/local.mk                                          |  1 +
 gnu/packages/boost.scm                                | 11 +++++++++++
 .../patches/boost-wchar-include-algorithm.patch       | 11 +++++++++++
 3 files changed, 23 insertions(+)
 create mode 100644 gnu/packages/patches/boost-wchar-include-algorithm.patch

Comments

M March 11, 2022, 10:03 p.m. UTC | #1
Brendan Tildesley schreef op vr 11-03-2022 om 17:19 [+1100]:
> +(define-public boost-1.77/fixed

foo/fixed is conventionally used for graft-style security fixes, I
would prefer using a different variable name (unfortunately I'm not
feeling particularly inspired with names currently ...).

Greetings,
Maxime.
diff mbox series

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 60ee713508..ce3f529a7a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -915,6 +915,7 @@  dist_patch_DATA =						\
   %D%/packages/patches/binutils-CVE-2021-45078.patch		\
   %D%/packages/patches/bloomberg-bde-cmake-module-path.patch	\
   %D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch	\
+  %D%/packages/patches/boost-wchar-include-algorithm.patch      \
   %D%/packages/patches/bpftrace-disable-bfd-disasm.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 b53b1f4257..d49449a72a 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -19,6 +19,7 @@ 
 ;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
 ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -68,6 +69,7 @@  (define (boost-patch name version hash)
 (define-public boost
   (package
     (name "boost")
+    ;; Note: consider removing boost-1.77/fixed when updating boost to 1.78 or newer.
     (version "1.77.0")
     (source (origin
               (method url-fetch)
@@ -193,6 +195,15 @@  (define-public boost
     (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
                                 "Some components have other similar licences."))))
 
+(define-public boost-1.77/fixed
+  ;; This patch applies for boost 1.77. Should not be needed in later releases.
+  ;; See:  https://github.com/boostorg/process/commit/e08374ed95ac33865bda40602c94909e7cd9607f
+  (package/inherit boost
+    (name "boost-fixed")
+    (source (origin
+              (inherit (package-source boost))
+              (patches (search-patches "boost-wchar-include-algorithm.patch"))))))
+
 ;; 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-wchar-include-algorithm.patch b/gnu/packages/patches/boost-wchar-include-algorithm.patch
new file mode 100644
index 0000000000..c174dc5cd2
--- /dev/null
+++ b/gnu/packages/patches/boost-wchar-include-algorithm.patch
@@ -0,0 +1,11 @@ 
+--- a/boost/process/detail/traits/wchar_t.hpp
++++ b/boost/process/detail/traits/wchar_t.hpp
+@@ -12,6 +12,8 @@
+ #include <boost/process/detail/traits/env.hpp>
+ #include <boost/process/locale.hpp>
+ 
++#include <algorithm>
++
+ namespace boost { namespace process { namespace detail {
+ 
+ //template