Subject: Re: "calibre" package fails to build.

From: Andreas Enge <[email-masked]>
Date: Sat, 21 Jul 2018 22:34:48 +0200

On Sat, Jul 21, 2018 at 09:52:25PM +0300, Efraim Flashner wrote:
> I see, debian moved to the same source. I am worried though that that
> repo hasn't seen any action in 6 months.

And it does not compile at all with our current recipe:
The custom phases 'fix-qmlwebkit-plugins-rpath and 'patch-installpaths
manipulate files that do not exist anymore. I removed them.

Then it complains about missing cmake. I moved to cmake-build-system,
which results in a warning:
starting phase `configure'
Info: creating stash file /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/.qmake.stash
phase `configure' succeeded after 0.1 seconds
## WARNING: phase `configure' returned `0'.  Return values other than #t
## are deprecated.  Please migrate this package so that its phase
## procedures report errors by raising an exception, and otherwise
## always return #t.
starting phase `patch-generated-file-shebangs'

and then fails with a complaint about missing stuff.
I added qtlocation, qtsensors and qtwebchannel to the inputs.
Then it complains about glib, which I added.
Then it complains about gst-plugins-base, which I also added.
Then it starts building.

A good hour later, it fails with the following error message:

[ 94%] Building CXX object Source/WebKit2/CMakeFiles/WebKit2.dir/UIProcess/gstreamer/WebPageProxyGStreamer.cpp.o
In file included from /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/release/DerivedSources/ForwardingHeaders/WebCore/GUniquePtrGStreamer.h:1:0,
                 from /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/Source/WebKit2/UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.h:30,
                 from /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/Source/WebKit2/UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.cpp:27:
/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/Source/WebCore/platform/graphics/gstreamer/GUniquePtrGStreamer.h:25:41: fatal error: gst/pbutils/install-plugins.h: No such file or directory
compilation terminated.
make[4]: *** [Source/WebKit2/CMakeFiles/WebKit2.dir/build.make:6952: Source/WebKit2/CMakeFiles/WebKit2.dir/UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.cpp.o] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/release/DerivedSources/ForwardingHeaders/WebCore/GUniquePtrGStreamer.h:1:0,
                 from /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/Source/WebKit2/UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.h:30,
                 from /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/Source/WebKit2/UIProcess/gstreamer/WebPageProxyGStreamer.cpp:30:
/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/Source/WebCore/platform/graphics/gstreamer/GUniquePtrGStreamer.h:25:41: fatal error: gst/pbutils/install-plugins.h: No such file or directory
compilation terminated.
make[4]: *** [Source/WebKit2/CMakeFiles/WebKit2.dir/build.make:6965: Source/WebKit2/CMakeFiles/WebKit2.dir/UIProcess/gstreamer/WebPageProxyGStreamer.cpp.o] Error 1
make[4]: Leaving directory '/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/release'
make[3]: *** [CMakeFiles/Makefile2:2433: Source/WebKit2/CMakeFiles/WebKit2.dir/all] Error 2
make[3]: Leaving directory '/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/release'
make[2]: *** [Makefile:163: all] Error 2
make[2]: Leaving directory '/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/release'
make[1]: *** [Makefile.run_cmake:319: first] Error 2
make[1]: Leaving directory '/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/qtwebkit-5.212.0-alpha2/Tools/qmake/projects'
make: *** [Makefile:133: sub-Tools-qmake-projects-run_cmake-pro-make_first-ordered] Error 2
Backtrace:
           4 (primitive-load "/gnu/store/n4bxq1jsisqmk716x8613j8xi1i?")
In ice-9/eval.scm:
   191:35  3 (_ _)
In srfi/srfi-1.scm:
    640:9  2 (for-each #<procedure 983e20 at /gnu/store/qzsljkcllc0?> ?)
In /gnu/store/qzsljkcllc01dmdq9z0yrqri3ajam3vp-module-import/guix/build/gnu-build-system.scm:
   799:31  1 (_ _)
In /gnu/store/qzsljkcllc01dmdq9z0yrqri3ajam3vp-module-import/guix/build/utils.scm:
    616:6  0 (invoke _ . _)

/gnu/store/qzsljkcllc01dmdq9z0yrqri3ajam3vp-module-import/guix/build/utils.scm:616:6: In procedure invoke:
Throw to key `srfi-34' with args `(#<condition &invoke-error [program: "make" arguments: ("-j" "4") exit-status: 2 term-signal: #f stop-signal: #f] 870f80>)'.
builder for `/gnu/store/xxvzbyvjs55ap4ia71d6acz6gq80ij89-qtwebkit-5.212.0-alpha2.drv' failed with exit code 1
@ build-failed /gnu/store/xxvzbyvjs55ap4ia71d6acz6gq80ij89-qtwebkit-5.212.0-alpha2.drv - 1 builder for `/gnu/store/xxvzbyvjs55ap4ia71d6acz6gq80ij89-qtwebkit-5.212.0-alpha2.drv' failed with exit code 1
guix build: error: build failed: build of `/gnu/store/xxvzbyvjs55ap4ia71d6acz6gq80ij89-qtwebkit-5.212.0-alpha2.drv' failed

The missing file install-plugins.h sits in
   /gnu/store/g3iwkhs7sjrhsaqq3bwmj81mxsa5c3d1-gst-plugins-base-1.14.1/include/gstreamer-1.0/gst/pbutils
My impression is that it is searched for in
   /gnu/store/6cklwzrqdhff1ps3ahk55nm48pfy16iq-gstreamer-1.14.1/include/gstreamer-1.0
instead (this follows an "-isystem" option in the command line), where it
does not exist.

Does this ring a bell?

Should we pursue this direction, or should we simply add the previous version
of pyqt again, only for calibre? Since qtwebkit is deprecated inside Qt, I
wonder how much energy we should put into this.

Andreas