unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#53325: povray: Fails to build (_Pragma errors)
@ 2022-01-17 19:58 Ivan Vilata i Balaguer
  2022-01-26 21:57 ` Ivan Vilata i Balaguer
  0 siblings, 1 reply; 4+ messages in thread
From: Ivan Vilata i Balaguer @ 2022-01-17 19:58 UTC (permalink / raw)
  To: 53325


[-- Attachment #1.1: Type: text/plain, Size: 4127 bytes --]

Hi!  When trying to upgrade package `povray 3.7.0.8` from Guix commit
`404f6953` to that of commit `4a943cfd`, the build fails showing errors like
these:

```
[…]
depbase=`echo backend/scene/view.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I..  -I.. -I../source/backend -I../source/base -I../source/frontend -I../unix -I../vfe -I../vfe/unix -I/gnu/store/l4k60q5jm9g2f3jslnhjsldls0l4vf9q-sdl-1.2.15/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -pthread -I/gnu/store/1wcfmirwkc5lvng6hlqg15v4278fyr96-openexr-2.5.7/include/OpenEXR -I/gnu/store/s6868fjm48yac4vf2kfdzx7z0kd2ny28-ilmbase-2.5.7/include/OpenEXR  -pthread   -I/usr/include  -pipe -Wno-multichar -Wno-write-strings -fno-enforce-eh-specs -Wno-non-template-friend -s -O3 -ffast-math -pthread -MT backend/scene/view.o -MD -MP -MF $depbase.Tpo -c -o backend/scene/view.o backend/scene/view.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from /gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor.hpp:14,
                 from backend/scene/view.cpp:34:
/gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor_ct.hpp:17:68: error: _Pragma takes a parenthesized string literal
   17 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_ct.hpp>");
      |                                                                    ^
In file included from /gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor.hpp:15,
                 from backend/scene/view.cpp:34:
/gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor_rt.hpp:14:68: error: _Pragma takes a parenthesized string literal
   14 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_rt.hpp>");
      |                                                                    ^
In file included from backend/scene/view.cpp:34:
/gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor.hpp:18:65: error: _Pragma takes a parenthesized string literal
   18 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor.hpp>");
      |                                                                 ^
[…]
In file included from /gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor_ct.hpp:15,
                 from /gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor.hpp:14,
                 from backend/scene/view.cpp:34:
/gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor_ct.hpp:17:1: error: ‘_Pragma’ does not name a type
   17 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_ct.hpp>");
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor_rt.hpp:14:1: error: ‘_Pragma’ does not name a type
   14 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_rt.hpp>");
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/gnu/store/rwv6khi7hg3hrhij9kimxh53mvg8ksd9-boost-1.77.0/include/boost/math/common_factor.hpp:18:1: error: ‘_Pragma’ does not name a type
   18 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor.hpp>");
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[…]
make[2]: Leaving directory '/tmp/guix-build-povray-3.7.0.8.drv-0/source/source'
make[1]: *** [Makefile:664: all-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-povray-3.7.0.8.drv-0/source'
make: *** [Makefile:457: all] Error 2
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "4") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `build' failed after 168.1 seconds
command "make" "-j" "4" failed with status 2
```

Not completely sure, but the new commit may be using a compiler which isn't
compatible with the version of Boost used by POV-Ray?

Attaching the whole `/var/log/guix/drvs/ih/kyhpfcn84sg0qbavgaw5rcwxh7cr9w-povray-3.7.0.8.drv.bz2`.

Thanks!

-- 
Ivan Vilata i Balaguer -- https://elvil.net/

[-- Attachment #1.2: kyhpfcn84sg0qbavgaw5rcwxh7cr9w-povray-3.7.0.8.drv.bz2 --]
[-- Type: application/octet-stream, Size: 55416 bytes --]

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

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

* bug#53325: povray: Fails to build (_Pragma errors)
  2022-01-17 19:58 bug#53325: povray: Fails to build (_Pragma errors) Ivan Vilata i Balaguer
@ 2022-01-26 21:57 ` Ivan Vilata i Balaguer
  2022-02-07 22:43   ` Ivan Vilata i Balaguer
  0 siblings, 1 reply; 4+ messages in thread
From: Ivan Vilata i Balaguer @ 2022-01-26 21:57 UTC (permalink / raw)
  To: Ivan Vilata i Balaguer, 53325

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

Ivan Vilata i Balaguer (2022-01-17 20:58:40 +0100) wrote:

> Hi!  When trying to upgrade package `povray 3.7.0.8` from Guix commit
> `404f6953` to that of commit `4a943cfd`, the build fails showing errors like
> these: […]

I found what looks like the same issue reported in
<https://github.com/POV-Ray/povray/issues/438>.

As a commenter suggested, I succeeded to build the package using Boost 1.78,
not in the most orthodox way as Guix ships 1.77 and I don't have much
knowledge about Guix packaging, following the package definition:

    $ guix build --source povray
    /gnu/store/xc4l18mwxzxfvrqmymvkr7yirw1sc6ff-povray-3.7.0.8-checkout
    $ guix build boost \
      --with-source=boost@1.78.0=https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2
    /gnu/store/yiiqd3c7h4f6z0zia5br7wis3wpisgnr-boost-1.78.0
    $ cp -r /gnu/store/xc4l18mwxzxfvrqmymvkr7yirw1sc6ff-povray-3.7.0.8-checkout povray-3.7.0.8-checkout
    $ chmod -R u+w povray-3.7.0.8-checkout; cd povray-3.7.0.8-checkout
    $ guix environment -C --expose=/gnu/store/yiiqd3c7h4f6z0zia5br7wis3wpisgnr-boost-1.78.0 povray
    env$ cd unix/
    env$ sh prebuild.sh
    env$ cd ..
    env$ env COMPILED_BY=Guix ./configure \
      --with-boost=/gnu/store/yiiqd3c7h4f6z0zia5br7wis3wpisgnr-boost-1.78.0 \
      --with-boost-lib=/gnu/store/yiiqd3c7h4f6z0zia5br7wis3wpisgnr-boost-1.78.0/lib \
      --disable-optimiz-arch
    env$ make  # succeeds

So one solution would be to upgrade Boost to 1.78, though that may affect many
packages.  However, given the nature of the error, other packages may
eventually get bitten by it.  BTW, this is where I think they fixed the Boost
issue for 1.78: <https://github.com/boostorg/math/pull/676/files>

Cheers!

-- 
Ivan Vilata i Balaguer -- https://elvil.net/

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

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

* bug#53325: povray: Fails to build (_Pragma errors)
  2022-01-26 21:57 ` Ivan Vilata i Balaguer
@ 2022-02-07 22:43   ` Ivan Vilata i Balaguer
  2023-06-10 15:27     ` bug#53325: povray: Fails to build (_Pragma errors) [FIXED] Ivan Vilata i Balaguer
  0 siblings, 1 reply; 4+ messages in thread
From: Ivan Vilata i Balaguer @ 2022-02-07 22:43 UTC (permalink / raw)
  To: Ivan Vilata i Balaguer; +Cc: 53325


[-- Attachment #1.1: Type: text/plain, Size: 1356 bytes --]

Ivan Vilata i Balaguer (2022-01-26 22:57:18 +0100) wrote:

> Ivan Vilata i Balaguer (2022-01-17 20:58:40 +0100) wrote:
> 
> > Hi!  When trying to upgrade package `povray 3.7.0.8` from Guix commit
> > `404f6953` to that of commit `4a943cfd`, the build fails showing errors like
> > these: […]
> 
> I found what looks like the same issue reported in
> <https://github.com/POV-Ray/povray/issues/438>.
> 
> As a commenter suggested, I succeeded to build the package using Boost 1.78,
> […]  BTW, this is where I think they fixed the Boost issue for 1.78:
> <https://github.com/boostorg/math/pull/676/files>

So I tried to create a patch (attached) which just drops the fixed version of
`header_deprecated.hpp` from Boost 1.78 [1] in Povray's `source` directory,
since that include path has priority over the profile's Boost one during
build.  I tried building with:

    $ guix build povray --with-patch=povray=./povray-fix-boost-1.77-math-tools-pragma.patch
    […]
    /gnu/store/mp687jry3rb96ff3jbaijibz4klhjicd-povray-3.7.0.8

So it built successfully.

[1]: https://github.com/boostorg/math/blob/boost-1.78.0/include/boost/math/tools/header_deprecated.hpp

Thus, the patch may be applied until Boost is upgraded to 1.78, at which point
it can be removed.

Thanks!

-- 
Ivan Vilata i Balaguer -- https://elvil.net/

[-- Attachment #1.2: povray-fix-boost-1.77-math-tools-pragma.patch --]
[-- Type: text/plain, Size: 1510 bytes --]

diff -Nur povray-3.7.0.8-checkout.orig/source/boost/math/tools/header_deprecated.hpp povray-3.7.0.8-checkout.new/source/boost/math/tools/header_deprecated.hpp
--- povray-3.7.0.8-checkout.orig/source/boost/math/tools/header_deprecated.hpp	1970-01-01 01:00:00.000000000 +0100
+++ povray-3.7.0.8-checkout.new/source/boost/math/tools/header_deprecated.hpp	2022-02-07 21:13:43.531100547 +0100
@@ -0,0 +1,27 @@
+//  (C) Copyright Matt Borland 2021.
+//  Use, modification and distribution are subject to the
+//  Boost Software License, Version 1.0. (See accompanying file
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_MATH_TOOLS_HEADER_DEPRECATED
+#define BOOST_MATH_TOOLS_HEADER_DEPRECATED
+
+#ifndef BOOST_MATH_STANDALONE
+
+#   include <boost/config/header_deprecated.hpp>
+#   define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_HEADER_DEPRECATED(expr)
+
+#else
+
+#   ifdef _MSC_VER
+// Expands to "This header is deprecated; use expr instead."
+#       define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.")
+#   else // GNU, Clang, Intel, IBM, etc.
+// Expands to "This header is deprecated use expr instead"
+#       define BOOST_MATH_HEADER_DEPRECATED_MESSAGE(expr) _Pragma(#expr)
+#       define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_MATH_HEADER_DEPRECATED_MESSAGE(message "This header is deprecated use " expr " instead")
+#   endif
+
+#endif // BOOST_MATH_STANDALONE
+
+#endif // BOOST_MATH_TOOLS_HEADER_DEPRECATED

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

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

* bug#53325: povray: Fails to build (_Pragma errors) [FIXED]
  2022-02-07 22:43   ` Ivan Vilata i Balaguer
@ 2023-06-10 15:27     ` Ivan Vilata i Balaguer
  0 siblings, 0 replies; 4+ messages in thread
From: Ivan Vilata i Balaguer @ 2023-06-10 15:27 UTC (permalink / raw)
  To: Ivan Vilata i Balaguer; +Cc: 53325

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

I tried installing the package again under Guix 44bbfc24 and it installed
successfully.  It was probably working after a59afdc9 (2022-02-03), which
updated Boost to 1.78.0.

This issue may be closed, thanks!


Ivan Vilata i Balaguer (2022-02-07 23:43:18 +0100) wrote:

> Ivan Vilata i Balaguer (2022-01-26 22:57:18 +0100) wrote:
> 
> > Ivan Vilata i Balaguer (2022-01-17 20:58:40 +0100) wrote:
> > 
> > > Hi!  When trying to upgrade package `povray 3.7.0.8` from Guix commit
> > > `404f6953` to that of commit `4a943cfd`, the build fails showing errors like
> > > these: […]
> > 
> > I found what looks like the same issue reported in
> > <https://github.com/POV-Ray/povray/issues/438>.
> > 
> > As a commenter suggested, I succeeded to build the package using Boost 1.78,
> > […]  BTW, this is where I think they fixed the Boost issue for 1.78:
> > <https://github.com/boostorg/math/pull/676/files>
> 
> So I tried to create a patch (attached) which just drops the fixed version of
> `header_deprecated.hpp` from Boost 1.78 [1] in Povray's `source` directory,
> since that include path has priority over the profile's Boost one during
> build.  I tried building with:
> 
>     $ guix build povray --with-patch=povray=./povray-fix-boost-1.77-math-tools-pragma.patch
>     […]
>     /gnu/store/mp687jry3rb96ff3jbaijibz4klhjicd-povray-3.7.0.8
> 
> So it built successfully.
> 
> [1]: https://github.com/boostorg/math/blob/boost-1.78.0/include/boost/math/tools/header_deprecated.hpp
> 
> Thus, the patch may be applied until Boost is upgraded to 1.78, at which point
> it can be removed.
> 
> Thanks!

-- 
Ivan Vilata i Balaguer -- https://elvil.net/

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

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

end of thread, other threads:[~2023-06-10 15:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-17 19:58 bug#53325: povray: Fails to build (_Pragma errors) Ivan Vilata i Balaguer
2022-01-26 21:57 ` Ivan Vilata i Balaguer
2022-02-07 22:43   ` Ivan Vilata i Balaguer
2023-06-10 15:27     ` bug#53325: povray: Fails to build (_Pragma errors) [FIXED] Ivan Vilata i Balaguer

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).