boost-for-mysql fails to build

  • Done
  • quality assurance status badge
Details
3 participants
  • Efraim Flashner
  • Jonathan Brielmaier
  • Marius Bakke
Owner
unassigned
Submitted by
Jonathan Brielmaier
Severity
normal
J
J
Jonathan Brielmaier wrote on 12 May 2020 18:22
(name . bug-guix)(address . bug-guix@gnu.org)
dd33e1b3-f381-cad6-7a9a-ab4fb657fee9@web.de
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 boost@1.72 in the
configure phase. boost-for-mysql inherits from.

I don't know how to properly fix that...
J
J
Jonathan Brielmaier wrote on 20 May 2020 01:46
(address . 41213@debbugs.gnu.org)
a625efcb-6675-f302-8ab4-a09af9291f6b@web.de
`tools/build/src/engine/execunix.cpp` was named
`tools/build/src/engine/execunix.c` before. So the following patch
allows to build boost@1.59 again.

```
Toggle diff (40 lines)
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"))
```

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"
```
M
M
Marius Bakke wrote on 20 May 2020 22:31
87367ubb6j.fsf@devup.no
Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:

Toggle quote (46 lines)
> `tools/build/src/engine/execunix.cpp` was named
> `tools/build/src/engine/execunix.c` before. So the following patch
> allows to build boost@1.59 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"))
> ```
>
> 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?
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl7Fk6QACgkQoqBt8qM6
VPrF/Af+K2H/C5sTTL5edfAyCjEj2irSZKjE0sR95Yr4VxsyzYRYEWxHuMkgV1Eu
ej6BjdCj7PfV6ia9q7McfoTdAsnP7Zz6E7dgVO1m7OD/OaoEJzaJEf+oojcjApDf
nNYTROhw8nD6GROz+DhAPASzEXmWdq1sqasOJdPGONHRZ5/4KogGIQeqPkjIaRcg
3RWDrlgNf5K8XHLR8yLXjUEZVSkO572gKg7RAI7u2F6hTHFkYT9HgwqQl0JwTqBQ
DSAyQEPloMetcHApCrFpYQyI4ZG+RJAZ5ZZ9pCj3s7ep3QxDRlZ85GTQelO9Ne+z
Vs4HIp9HdujkJVv7T/Q37AuKqaLYCA==
=y20J
-----END PGP SIGNATURE-----

J
J
Jonathan Brielmaier wrote on 20 May 2020 22:40
105a5f33-ffc0-bf76-d3f5-adf8a2b7f26b@web.de
On 20.05.20 22:31, Marius Bakke wrote:
Toggle quote (2 lines)
> Do you use any packages that depend on this?

I somehow had mysql in my package list, but replacing it with mariadb is
sufficent.
E
E
Efraim Flashner wrote on 21 May 2020 10:36
(name . Marius Bakke)(address . mbakke@fastmail.com)
20200521083614.GA958@E5400
On Wed, May 20, 2020 at 10:31:32PM +0200, Marius Bakke wrote:
Toggle quote (31 lines)
> Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:
>
> > `tools/build/src/engine/execunix.cpp` was named
> > `tools/build/src/engine/execunix.c` before. So the following patch
> > allows to build boost@1.59 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.

Toggle quote (25 lines)
> >
> > 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 <efraim@flashner.co.il> ????? ?????
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl7GPX4ACgkQQarn3Mo9
g1H0NQ//bJBhbY9+7Jj62DtlCA6hEnuzPfw2Zgfm2OvNqJoIW9DGb29PqKkAWpQM
+7QapGKY3nZPzEX/x2qf3UId8wEGCZITSI2f5R705AkjRqaCEViBjaI4BLfv84sg
rPamdZ+P3eWyeHKOwsllzzabj5uD8qSukY/ZcBrs0NK/w1kU+jXngNhMrbt9Bavd
md9iCxn0oFdwWr5sLb/YxhX/kmiaqv5b26moz8PkFXsxyevzKFoTyWp2tpxVhPmK
eKeUTxlq3ZG5jyGF9Rl5q5Vxk8QyOOInF5HVzOOnKzOQ4MncKs4ypTxr5YBEhSXP
7IQKkPk2S5HOz2Gp/ZroF6ePQdbMv9xlSp4aDccUkeEeGYw4HaqJjfelOXsk3xdD
TA0wcfHdQhyg0/rX0qcFtEUA6yQUWtk6LS/A8K7new36iWUipdvsgUG7NdBVC46/
d1lr9v+9g3CJmM19YlKKKkMZpxnrZ3fKVD8f/ElDoSmbWEUTa3K7v78KL2c/XCaD
HXqC6pgnvj46btmvfSw9jl0HY2b6T9gpwmF9oPCRm3mcRl+rJnZflpPQmNT9hWeR
KX/RYb8vHmfijKk9Y0JRaH7OorrTj8TkI7AXCkumA3iq+2LxV96ilz0ZHhgkM9Ja
lLFH4Vf4zsB/FHFbsrYloigd2tJ73tSY5u2ZGCG6zw8lFe44Ed4=
=Rl7w
-----END PGP SIGNATURE-----


Closed
?