Subject: bug#41213: closed (Re: bug#41213: boost-for-mysql fails to build)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 21 May 2020 08:37:02 +0000

Your bug report

#41213: boost-for-mysql fails to build

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
41213: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=41213
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#41213: boost-for-mysql fails to build
From: Efraim Flashner <[email-masked]>
To: Marius Bakke <[email-masked]>
Cc: [email-masked], Jonathan Brielmaier <[email-masked]>
Date: Thu, 21 May 2020 11:36:14 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

On Wed, May 20, 2020 at 10:31:32PM +0200, Marius Bakke wrote:
> Jonathan Brielmaier <[email-masked]> writes:
> 
> > `tools/build/src/engine/execunix.cpp` was named
> > `tools/build/src/engine/execunix.c` before. So the following patch
> > allows to build [email-masked] again.
> >
> > ```
> > diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
> > index 2f2ca289ab..d44b534939 100644
> > --- a/gnu/packages/boost.scm
> > +++ b/gnu/packages/boost.scm
> > @@ -120,10 +120,11 @@
> >               (let ((icu (assoc-ref inputs "icu4c"))
> >                     (python (assoc-ref inputs "python"))
> >                     (out (assoc-ref outputs "out")))
> > -               (substitute* '("libs/config/configure"
> > -                              "libs/spirit/classic/phoenix/test/runtest.sh"
> > -                              "tools/build/src/engine/execunix.cpp"
> > -                              "tools/build/src/engine/Jambase")
> > +               (substitute* (append
> > +                             (find-files "tools/build/src/engine/"
> > "execunix\\.c.*")
> > +                             '("libs/config/configure"
> > +
> > "libs/spirit/classic/phoenix/test/runtest.sh"
> > +                               "tools/build/src/engine/Jambase"))
> >                   (("/bin/sh") (which "sh")))
> >
> >                 (setenv "SHELL" (which "sh"))
> > ```

We can't straight-up patch boost because it has too many dependants, but
I copied the configure phase to boost-for-mysql and applied the changes
there.

> >
> > Although it fails with
> > ```
> > libs/python/src/converter/builtin_converters.cpp: In function ‘void*
> > boost::python::converter::{anonymous}::convert_to_cstring(PyObject*)’:
> > libs/python/src/converter/builtin_converters.cpp:51:35: error: invalid
> > conversion from ‘const void*’ to ‘void*’ [-fpermissive]
> >        return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0;
> >
> >     "g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall
> > -pthread -fPIC -m64  -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -DNDEBUG
> >  -I"."
> > -I"/gnu/store/q9rm8h9imazsq2c4qiv2yjpvlvliywqb-python-3.8.2/include/python3.8"
> > -c -o
> > "bin.v2/libs/python/build/gcc-7.5.0/release/threading-multi/converter/builtin_converters.o"
> > "libs/python/src/converter/builtin_converters.cpp"
> > ```
> 
> I think our efforts are better spent on updating the packages that use
> this ancient Boost instead of hacking it to work with Python 3.8.
> 
> Though disabling Python support might work around the issue for now...
> 
> Do you use any packages that depend on this?

It built with no problems with python2 instead of python3 but of course
I'd rather not add more dependencies on python2. Luckily it will build
without any python binaries so I've just gone ahead and removed python
from native-inputs.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

Subject: boost-for-mysql fails to build
From: Jonathan Brielmaier <[email-masked]>
To: bug-guix <[email-masked]>
Date: Tue, 12 May 2020 18:22:28 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

boost-for-mysql fails to build on current master with following error.

```
starting phase `configure'
Backtrace:
          10 (primitive-load "/gnu/store/bsfksp6c63zj3ynx46ck87sip7a…")
In ice-9/eval.scm:
   191:35  9 (_ _)
In guix/build/gnu-build-system.scm:
    838:2  8 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
  1736:10  7 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
   857:16  6 (every1 #<procedure 7ffff4b99040 at guix/build/gnu-bui…> …)
In guix/build/gnu-build-system.scm:
   847:30  5 (_ _)
In ice-9/eval.scm:
    619:8  4 (_ #(#(#(#<directory (guile-user) 7ffff5bb9f00>) # #) …))
In srfi/srfi-1.scm:
    634:9  3 (for-each #<procedure substitute-one-file (a)> _)
In guix/build/utils.scm:
   736:30  2 (with-atomic-file-replacement "tools/build/src/engine/…" …)
In unknown file:
           1 (stat "tools/build/src/engine/execunix.cpp" #<undefined>)
In ice-9/boot-9.scm:
  1669:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
In procedure stat: No such file or directory:
"tools/build/src/engine/execunix.cpp"
builder for
`/gnu/store/sk133zc1fbs5352a3k9lzmfg2930rjjx-boost-1.59.0.drv' failed
with exit code 1
build of /gnu/store/sk133zc1fbs5352a3k9lzmfg2930rjjx-boost-1.59.0.drv failed
View build log at
'/var/log/guix/drvs/sk/133zc1fbs5352a3k9lzmfg2930rjjx-boost-1.59.0.drv.bz2'.
cannot build derivation
`/gnu/store/bjn6im95g4669731sfzd8vlyj5742ir3-mysql-5.7.27.drv': 1
dependencies couldn't be built
guix build: error: build of
`/gnu/store/bjn6im95g4669731sfzd8vlyj5742ir3-mysql-5.7.27.drv' failed
```

"tools/build/src/engine/execunix.cpp" is required for [email-masked] in the
configure phase. boost-for-mysql inherits from.

I don't know how to properly fix that...