Subject: Re: bug#45727: [PATCH] gnu: folly: Update to 2021.01.04.00.

From: Greg Hogan <[email-masked]>
Date: Tue, 26 Jan 2021 16:57:13 -0500

For core-updates.

>From 03030191d82469532048f7a900291713e8208106 Mon Sep 17 00:00:00 2001
From: Greg Hogan <[email-masked]>
Date: Mon, 25 Jan 2021 17:35:27 +0000
Subject: [PATCH] gnu: boost: Patch transitive linking bug.

* gnu/packages/patches/boost-fix-transitive-linking.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/boost.scm (boost)[source]: Use it.
---
 gnu/local.mk                                     |  2 ++
 gnu/packages/boost.scm                           |  3 +++
 .../patches/boost-fix-transitive-linking.patch   | 16 ++++++++++++++++
 3 files changed, 21 insertions(+)
 create mode 100644 gnu/packages/patches/boost-fix-transitive-linking.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f84f859bdf..0e8e9c37b9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -40,6 +40,7 @@
 # Copyright © 2020 Malte Frank Gerdes <[email-masked]>
 # Copyright © 2020 Vinicius Monego <[email-masked]>
 # Copyright © 2021 Björn Höfling <[email-masked]>
+# Copyright © 2021 Greg Hogan <[email-masked]>
 #
 # This file is part of GNU Guix.
 #
@@ -866,6 +867,7 @@ dist_patch_DATA = \
   %D%/packages/patches/blender-2.79-oiio2.patch \
   %D%/packages/patches/blender-2.79-python-3.7-fix.patch \
   %D%/packages/patches/blender-2.79-python-3.8-fix.patch \
+  %D%/packages/patches/boost-fix-transitive-linking.patch \
   %D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
   %D%/packages/patches/byobu-writable-status.patch \
   %D%/packages/patches/calibre-no-updates-dialog.patch \
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 1db173bd16..bc0e95b1ba 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2020 Marius Bakke <[email-masked]>
 ;;; Copyright © 2020 Jonathan Brielmaier <[email-masked]>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email-masked]>
+;;; Copyright © 2021 Greg Hogan <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -68,6 +69,8 @@
               (uri (string-append "https://dl.bintray.com/boostorg/release/
"
                                   version "/source/boost_"
                                   (version-with-underscores version)
".tar.bz2"))
+              ; Should be included in next Boost update
+              (patches (search-patches
"boost-fix-transitive-linking.patch"))
               (sha256
                (base32
                 "1js9zpij58l60kx46s3lxdp5207igppjnhqigwhbpdvd04gb6gcm"))))
diff --git a/gnu/packages/patches/boost-fix-transitive-linking.patch
b/gnu/packages/patches/boost-fix-transitive-linking.patch
new file mode 100644
index 0000000000..a42feab109
--- /dev/null
+++ b/gnu/packages/patches/boost-fix-transitive-linking.patch
@@ -0,0 +1,16 @@
+Patch from https://github.com/boostorg/boost_install/issues/47
+which should be included in the Boost 1.76 release.
+
+This patch prevents CMake from explicitly linking against Boost
dependencies
+when building against the shared Boost libraries.
+--- a/tools/boost_install/boost-install.jam
++++ b/tools/boost_install/boost-install.jam
+@@ -483,7 +483,7 @@ rule generate-cmake-variant- ( target : sources * :
properties * )
+
+     .info "  deps3=" $(deps3) ;
+
+-    if $(deps3)
++    if $(deps3) && $(link) = static
+     {
+         print.text
+
-- 
2.30.0

On Tue, Jan 19, 2021 at 9:59 AM Ludovic Courtès <[email-masked]> wrote:

> Hi Greg,
>
> Greg Hogan <[email-masked]> skribis:
>
> > I went to build folly against core-updates and the link failed due to
> > missing dependencies on libicu*. This patch also updates the folly
> version.
> >
> >
> >>From e710c98a2f5beef9d8640bf3618ae20bd12c12f7 Mon Sep 17 00:00:00 2001
> > From: Greg Hogan <[email-masked]>
> > Date: Thu, 7 Jan 2021 21:54:37 +0000
> > Subject: [PATCH] gnu: folly: Update to 2021.01.04.00.
> >
> > * gnu/packages/cpp.scm (folly): Update to 2021.01.04.00.
> > [propagated-inputs]: Add icu4c.
>
> If there’s a reason to propagate ICU4C, could you state it in a comment?
> Otherwise, can we just move it to ‘inputs’?
>
> Apart from that it LGTM, and it’s applicable to ‘master’.
>
> Could you send an updated patch?
>
> Thanks,
> Ludo’.
>