unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support.
@ 2018-04-08 12:06 Pierre Neidhardt
  2018-04-08 16:05 ` Mark H Weaver
  0 siblings, 1 reply; 8+ messages in thread
From: Pierre Neidhardt @ 2018-04-08 12:06 UTC (permalink / raw)
  To: 31095

[-- Attachment #1: Type: text/plain, Size: 654 bytes --]


I can't build aegisub:

	> guix package --install aegisub
  [...]
	checking whether boost ICU support works... no
	configure: error: in `/tmp/guix-build-aegisub-3.2.2.drv-0/aegisub-3.2.2':
	configure: error: Aegisub requires that boost be built with ICU support.
	See `config.log' for more details
	phase `configure' failed after 7.4 seconds
	builder for `/gnu/store/97g8fxipy942yzs0zp5hbvsj90hw1xc6-aegisub-3.2.2.drv' failed with exit code 1
	guix package: error: build failed: build of `/gnu/store/97g8fxipy942yzs0zp5hbvsj90hw1xc6-aegisub-3.2.2.drv' failed

It seems that the boost input is missing ICU support.

-- 
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support.
  2018-04-08 12:06 bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support Pierre Neidhardt
@ 2018-04-08 16:05 ` Mark H Weaver
  2018-04-08 16:15   ` Pierre Neidhardt
  0 siblings, 1 reply; 8+ messages in thread
From: Mark H Weaver @ 2018-04-08 16:05 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 31095

Hi Pierre,

Pierre Neidhardt <ambrevar@gmail.com> writes:

> I can't build aegisub:
>
> 	> guix package --install aegisub
>   [...]
> 	checking whether boost ICU support works... no
> 	configure: error: in `/tmp/guix-build-aegisub-3.2.2.drv-0/aegisub-3.2.2':
> 	configure: error: Aegisub requires that boost be built with ICU support.
> 	See `config.log' for more details
> 	phase `configure' failed after 7.4 seconds
> 	builder for `/gnu/store/97g8fxipy942yzs0zp5hbvsj90hw1xc6-aegisub-3.2.2.drv' failed with exit code 1
> 	guix package: error: build failed: build of `/gnu/store/97g8fxipy942yzs0zp5hbvsj90hw1xc6-aegisub-3.2.2.drv' failed
>
> It seems that the boost input is missing ICU support.

Indeed.  Although our 'boost' package includes 'icu4c' as an input, the
build log contains the following lines in the 'configure' phase and the
start of the 'build' phase:

  Unicode/ICU support for Boost.Regex?... not found.
  [...]
      - has_icu builds           : no
  [...]
      - icu                      : no
      - icu (lib64)              : no

These are from local build logs on my GuixSD based on 'core-updates',
but based on your report, I assume that the same problem exists on
'master'.

Our main Boost package has too many dependencies to fix in 'master', but
we could still fix it in 'core-updates'.  On master, we could create a
'boost/fixed' package that inherits from the main one but with this
problem fixed, for use by aegisub.

However, the first step is to figure out why 'boost' is failing to find
icu4c.  Would you like to investigate?

      Mark

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support.
  2018-04-08 16:05 ` Mark H Weaver
@ 2018-04-08 16:15   ` Pierre Neidhardt
  2018-04-08 19:13     ` Mark H Weaver
  0 siblings, 1 reply; 8+ messages in thread
From: Pierre Neidhardt @ 2018-04-08 16:15 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: 31095

[-- Attachment #1: Type: text/plain, Size: 377 bytes --]


Thanks for the feedback!

> However, the first step is to figure out why 'boost' is failing to find
> icu4c.  Would you like to investigate?

I usually happily answer "yes" to those questions, but this time I'll
pass: aegisub is not really a priority for me at the moment and I don't
have a great opinion of boost, so...

Anyone else? :p


-- 
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support.
  2018-04-08 16:15   ` Pierre Neidhardt
@ 2018-04-08 19:13     ` Mark H Weaver
  2018-04-10  6:32       ` Mark H Weaver
  0 siblings, 1 reply; 8+ messages in thread
From: Mark H Weaver @ 2018-04-08 19:13 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 31095

[-- Attachment #1: Type: text/plain, Size: 867 bytes --]

Pierre Neidhardt <ambrevar@gmail.com> writes:

> Thanks for the feedback!
>
>> However, the first step is to figure out why 'boost' is failing to find
>> icu4c.  Would you like to investigate?
>
> I usually happily answer "yes" to those questions, but this time I'll
> pass: aegisub is not really a priority for me at the moment and I don't
> have a great opinion of boost, so...
>
> Anyone else? :p

That's okay, I appreciate the bug report nonetheless.

I worked on it, and the following preliminary patch seems to fix the
problem for me on 'core-updates'.  I didn't try building aegisub, but
boost builds with messages suggesting that ICU support is now included.

If someone's motivated to do so, they could fix 'aegisub' on master by
adding a 'boost/fixed' package that inherits from 'boost' but includes
the fixes included in the following patch.

      Mark



[-- Attachment #2: [PATCH] gnu: boost: Fix ICU support --]
[-- Type: text/x-patch, Size: 6447 bytes --]

From 62a9ef1337010771c9f79c64e7b84a855c45df1f Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Sun, 8 Apr 2018 14:40:00 -0400
Subject: [PATCH] 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
---
 gnu/local.mk                                   |  1 +
 gnu/packages/boost.scm                         | 13 ++++--
 gnu/packages/patches/boost-fix-icu-build.patch | 59 ++++++++++++++++++++++++++
 3 files changed, 69 insertions(+), 4 deletions(-)
 create mode 100644 gnu/packages/patches/boost-fix-icu-build.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 6cf49ad07..5888d32f5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -577,6 +577,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/btrfs-progs-e-value-block.patch		\
   %D%/packages/patches/byobu-writable-status.patch		\
   %D%/packages/patches/cairo-CVE-2016-9082.patch			\
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 674877a88..6b17e30a8 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 000000000..389f60e30
--- /dev/null
+++ b/gnu/packages/patches/boost-fix-icu-build.patch
@@ -0,0 +1,59 @@
+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 14:13:17.953484787 -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
+ {
+@@ -120,7 +120,8 @@
+ 
+     explicit icuuc icudt icuin ;
+ 
+-    ICU_OPTS =   <include>$(ICU_PATH)/include 
++    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
+@@ -179,7 +180,8 @@
+ 
+     explicit icuuc_64 icudt_64 icuin_64 ;
+ 
+-    ICU64_OPTS =   <include>$(ICU_PATH)/include 
++    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 14:11:56.405080410 -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
+    {
+@@ -77,7 +77,8 @@
+       lib icuin : : <name>this_is_an_invalid_library_name ;
+ 
+       ICU_OPTS = 
+-         <include>$(ICU_PATH)/include 
++         <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
-- 
2.16.3


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support.
  2018-04-08 19:13     ` Mark H Weaver
@ 2018-04-10  6:32       ` Mark H Weaver
  2018-11-02  5:19         ` Leo Famulari
  0 siblings, 1 reply; 8+ messages in thread
From: Mark H Weaver @ 2018-04-10  6:32 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 31095

On core-updates I pushed commit 713c975ac0aa01c224b215fcb96274b76920c90b
which hopefully will fix this problem with the aegisub build.  We'll see
when Hydra builds it out.

       Mark

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support.
  2018-04-10  6:32       ` Mark H Weaver
@ 2018-11-02  5:19         ` Leo Famulari
  2018-11-25 17:58           ` Björn Höfling
  0 siblings, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2018-11-02  5:19 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: 31095-done, Pierre Neidhardt

[-- Attachment #1: Type: text/plain, Size: 275 bytes --]

On Tue, Apr 10, 2018 at 02:32:05AM -0400, Mark H Weaver wrote:
> On core-updates I pushed commit 713c975ac0aa01c224b215fcb96274b76920c90b
> which hopefully will fix this problem with the aegisub build.  We'll see
> when Hydra builds it out.

It seems to have worked, thanks!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support.
  2018-11-02  5:19         ` Leo Famulari
@ 2018-11-25 17:58           ` Björn Höfling
  2018-11-25 19:44             ` Björn Höfling
  0 siblings, 1 reply; 8+ messages in thread
From: Björn Höfling @ 2018-11-25 17:58 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 31095, Pierre Neidhardt

[-- Attachment #1: Type: text/plain, Size: 1405 bytes --]

On Fri, 2 Nov 2018 01:19:42 -0400
Leo Famulari <leo@famulari.name> wrote:

> On Tue, Apr 10, 2018 at 02:32:05AM -0400, Mark H Weaver wrote:
> > On core-updates I pushed commit
> > 713c975ac0aa01c224b215fcb96274b76920c90b which hopefully will fix
> > this problem with the aegisub build.  We'll see when Hydra builds
> > it out.  
> 
> It seems to have worked, thanks!

Hi Leo,

I don't understand that: When looking at the core-updates page of
aegisub, I see no success:

https://hydra.gnu.org/job/gnu/core-updates/aegisub-3.2.2.x86_64-linux/all

When building locally, I see this failure:

/tmp/guix-build-aegisub-3.2.2.drv-0/aegisub-3.2.2/src/search_replace_engine.cpp:
 In member function ?bool SearchReplaceEngine::ReplaceAll()?:
/tmp/guix-build-aegisub-3.2.2.drv-0/aegisub-3.2.2/src/search_replace_engine.cpp:317:61: error: call of overloaded ?distance(boost::u32regex_iterator<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >, boost::u32regex_iterator<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >)? is ambiguous
      boost::u32regex_iterator<std::string::const_iterator>());

I found a patch here:
 
https://git.archlinux.org/svntogit/community.git/plain/trunk/boost-1.68.patch?h=packages/aegisub

When I apply it, aegisub works on core-updates.

I will send out a proper guix-patch later.

Björn


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support.
  2018-11-25 17:58           ` Björn Höfling
@ 2018-11-25 19:44             ` Björn Höfling
  0 siblings, 0 replies; 8+ messages in thread
From: Björn Höfling @ 2018-11-25 19:44 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 31095, Pierre Neidhardt

[-- Attachment #1: Type: text/plain, Size: 432 bytes --]

On Sun, 25 Nov 2018 18:58:49 +0100
Björn Höfling <bjoern.hoefling@bjoernhoefling.de> wrote:

> I found a patch here:
>  
> https://git.archlinux.org/svntogit/community.git/plain/trunk/boost-1.68.patch?h=packages/aegisub
> 
> When I apply it, aegisub works on core-updates.
> 
> I will send out a proper guix-patch later.
> 
> Björn
> 

Sent out as:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33505

Björn

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-11-25 19:45 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-08 12:06 bug#31095: [aegisub] error: Aegisub requires that boost be built with ICU support Pierre Neidhardt
2018-04-08 16:05 ` Mark H Weaver
2018-04-08 16:15   ` Pierre Neidhardt
2018-04-08 19:13     ` Mark H Weaver
2018-04-10  6:32       ` Mark H Weaver
2018-11-02  5:19         ` Leo Famulari
2018-11-25 17:58           ` Björn Höfling
2018-11-25 19:44             ` Björn Höfling

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).