Subject: Re: bug#24404: "calibre" package fails to build.

From: Brendan Tildesley <[email-masked]>
Date: Wed, 1 Aug 2018 22:46:56 +1000

On 08/01/18 20:17, Efraim Flashner wrote:
> On Sun, Jul 22, 2018 at 11:49:14AM +0200, Andreas Enge wrote:
>> Hello,
>>
>> I ended up disabling tests (see comments in the patch).
>> Now the package builds, but tries to install into the Qt directory; at the
>> end of the cmake phase, it prints:
>>   -- Installing in the same prefix as Qt, adopting their path scheme.
>> The previous version of the package contains a phase to adapt this,
>> but the .pri files to be modified do not exist any more.
>>
>> I also tried to inherit from qtsvg like other qt* packages; but the
>> gnu-build-system does not work any more for qtwebkit, the build finishes
>> in a few seconds creating only the documentation and not compiling the code...
>>
>> At this point, I am giving up; it would be nice if someone else could take
>> a look, I am attaching the current patch.
> Thanks for getting the patch this far! I switched the 'configure phase
> from (invoke qmake) to fully cmake with some necessary configure-flags.
> It seemed easier than trying to convince qmake to install to the correct
> location.
>
> I also left the tests disabled, 7+ hours compiling on my fast aarch64
> board was quite long enough. I'm not opposed to re-enabling them but I
> don't want to debug failures.
>
>> If there is no progress during the next few days, I would suggest to re-add
>> [email-masked] for calibre. What do you think?
> After fixing a bug in optipng (bundling outdated copies of libraries is
> definately a bug) I was able to compile calibre on aarch64. I run it
> headless, so I wasn't able to test it but hopefully it's back to
> working.
>
>> Andreas
>>
>> PS: There is a thread from 2016 in which the Calibre author states that he
>>     will stick with qtwebkit and in the worst case take over the maintenance
>>     of a fork:
>>        https://www.mobileread.com/forums/showthread.php?t=270258
> If he's planning on going the same route as gnucash I assume its only a
> matter of time until he realizes distros will drop calibre rather than
> carry along his beloved cruft.
>
He doesn't care much about that because he believes people should use
the binary version of calibre that he distributes. He maintains python 2
for Windows and also intends to continue maintaining Python2 for
GNU/Linux himself. Calibre also uses some python2 dependencies that
haven't been ported to python3 at all. It would take a significant
amount of work to port it, although I feel like Calibre is the result of
years of poor programming practices. One should maintain that their
large program works with a simple gnu-build-system at all times.

-----------------------------------------------------------

The new qtwebkit fails to build for me. This is the tail of the output:

/__/DerivedSources/WebCore/InternalSettingsGenerated.cpp.o -c
/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/build/DerivedSources/WebCore/InternalSettingsGenerated.cpp
[ 82%] Linking CXX static library ../../lib/libWebCoreTestSupport.a
cd /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/build/Source/WebCore &&
/gnu/store/g85ikfjxs2d7aydvg5w06jn2h9xrjmpc-cmake-3.11.0/bin/cmake -P
CMakeFiles/WebCoreTestSupport.dir/cmake_clean_target.cmake
cd /tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/build/Source/WebCore &&
/gnu/store/g85ikfjxs2d7aydvg5w06jn2h9xrjmpc-cmake-3.11.0/bin/cmake -E
cmake_link_script CMakeFiles/WebCoreTestSupport.dir/link.txt --verbose=1
/gnu/store/srmqh29dpm50j8kj1pbqg2rgh053wgyp-binutils-2.30/bin/ar crT
../../lib/libWebCoreTestSupport.a 
CMakeFiles/WebCoreTestSupport.dir/platform/mock/PlatformSpeechSynthesizerMock.cpp.o
CMakeFiles/WebCoreTestSupport.dir/platform/mock/mediasource/MockBox.cpp.o
CMakeFiles/WebCoreTestSupport.dir/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp.o
CMakeFiles/WebCoreTestSupport.dir/platform/mock/mediasource/MockMediaSourcePrivate.cpp.o
CMakeFiles/WebCoreTestSupport.dir/platform/mock/mediasource/MockSourceBufferPrivate.cpp.o
CMakeFiles/WebCoreTestSupport.dir/platform/mock/mediasource/MockTracks.cpp.o
CMakeFiles/WebCoreTestSupport.dir/testing/InternalSettings.cpp.o
CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o
CMakeFiles/WebCoreTestSupport.dir/testing/MockPageOverlay.cpp.o
CMakeFiles/WebCoreTestSupport.dir/testing/MockPageOverlayClient.cpp.o
CMakeFiles/WebCoreTestSupport.dir/testing/js/WebCoreTestSupport.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/JSInternalSettings.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/JSInternals.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/JSMallocStatistics.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/JSMemoryInfo.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/JSMockContentFilterSettings.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/JSMockPageOverlay.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/JSTypeConversions.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/JSInternalSettingsGenerated.cpp.o
CMakeFiles/WebCoreTestSupport.dir/__/__/DerivedSources/WebCore/InternalSettingsGenerated.cpp.o
/gnu/store/srmqh29dpm50j8kj1pbqg2rgh053wgyp-binutils-2.30/bin/ranlib
../../lib/libWebCoreTestSupport.a
make[2]: Leaving directory
'/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/build'
[ 82%] Built target WebCoreTestSupport
make[1]: Leaving directory
'/tmp/guix-build-qtwebkit-5.212.0-alpha2.drv-0/build'
make: *** [Makefile:166: all] Error 2
Backtrace:
           4 (primitive-load "/gnu/store/kfiy9kfa3gpgm6i4f2x142xz2qp…")
In ice-9/eval.scm:
   191:35  3 (_ _)
In srfi/srfi-1.scm:
    640:9  2 (for-each #<procedure 973d40 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" "16") exit-status: 2 term-signal: #f
stop-signal: #f] 98bfc0>)'.
builder for
`/gnu/store/6xpbgvsravd365mb5nlxbcdns9n41spj-qtwebkit-5.212.0-alpha2.drv'
failed with exit code 1
@ build-failed
/gnu/store/6xpbgvsravd365mb5nlxbcdns9n41spj-qtwebkit-5.212.0-alpha2.drv
- 1 builder for
`/gnu/store/6xpbgvsravd365mb5nlxbcdns9n41spj-qtwebkit-5.212.0-alpha2.drv'
failed with exit code 1
cannot build derivation
`/gnu/store/06blrp079yfq07xs8nbsfgam1h1gfkj6-python2-pyqt-5.11.2.drv': 1
dependencies couldn't be built
cannot build derivation
`/gnu/store/snn0rr40iljv635ddjw726jdnys38bz0-calibre-3.28.0.drv': 1
dependencies couldn't be built
guix build: error: build failed: build of
`/gnu/store/snn0rr40iljv635ddjw726jdnys38bz0-calibre-3.28.0.drv' failed
b@jiu ~/guix$