Subject: Re: bug#57402: FreeCAD build fails to configure / Qt5WebKitWidgets related.

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 29 Aug 2023 10:13:51 -0400

retitle 57402 webkitgtk-with-libsoup2 fails to build on powerpc64le, breaking freecad
reopen 57402
quit

Hi,

Marcel van der Boom <[email-masked]> writes:

> This still fails for me, same error.

OK, thanks for the reply.

> To be clear, substitutable means there is a binary available from one
> of the substituation servers?

Yes.

> If so, guix is not using it as it tries to build freecad, starting
> with a configure, where it then fails.
>
> What am I missing?
>
>
> I am using a manifest where some of the dependencies of freecad skip
> tests, as in:
>
> (options->transformation
>   '((without-tests . "ffmpeg")
>     (without-tests . "hwloc")
>     (without-tests . "hdf4-alt")
>     (without-tests . "python-pandas")
>     (without-tests . "gst-plugins-bad")
>     (without-tests . "gtk")
>     (without-tests . "qtbase")))
>
> these are needed for a number of packages on ppc64le.

Ah, so it seems a problem specific to the powerpc64le architecture.

By using transformations as above, the derivations are changed so you
must build them locally.  But it seems the problem is bigger than that,
as there's no substitute for the powerpc64le-linux system:

--8<---------------cut here---------------start------------->8---
$ guix weather freecad --system=powerpc64le-linux
calcul de 1 dérivations de paquets pour powerpc64le-linux…
recherche de 1 éléments du dépôt sur https://ci.guix.gnu.org...
https://ci.guix.gnu.org ⛈
  0.0 % des substituts sont disponibles (0 sur 1)
  taille des substituts inconnue
  0,0 Mo sur le disque (décompressé)
  0,609 secondes par requête (0,6 secondes en tout)
  1,6 requêtes par seconde

  0.0 % (0 sur 1) des éléments manquants sont dans la queue
  au moins 1 000 constructions dans la queue
      aarch64-linux : 986 (98.6 %)
      powerpc64le-linux : 10 (1.0 %)
      armhf-linux : 4 (.4 %)
  vitesse de construction : 60.75 constructions par l'heure
      i686-linux : 30.72 constructions par heure
      x86_64-linux : 26.97 constructions par heure
      powerpc64le-linux : 2.98 constructions par heure
      aarch64-linux : 0.87 constructions par heure
recherche de 1 éléments du dépôt sur https://bordeaux.guix.gnu.org...
https://bordeaux.guix.gnu.org ⛈
  0.0 % des substituts sont disponibles (0 sur 1)
  taille des substituts inconnue
  0,0 Mo sur le disque (décompressé)
  0,539 secondes par requête (0,5 secondes en tout)
  1,9 requêtes par seconde
  (informations sur l’intégration continue indisponibles)
--8<---------------cut here---------------end--------------->8---

The last failed completed build can be seen here:
https://ci.guix.gnu.org/build/1778461/details.

There are multiple packages that do not currently build on powerpc64le
as can be seen by inspecting the 'Dependencies' section on that page.
I've restarted some builds that were spurious CI failures (connection
timeouts), but some are real ones, such as for the
webkitgtk-with-libsoup2 transitive dependency [0]:

--8<---------------cut here---------------start------------->8---
FAILED: ext/aalib/libgstaasink.so 
gcc  -o ext/aalib/libgstaasink.so ext/aalib/libgstaasink.so.p/gstaasink.c.o ext/aalib/libgstaasink.so.p/gstaatv.c.o ext/aalib/libgstaasink.so.p/gstaaplugin.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libgstaasink.so -Wl,-Bsymbolic-functions -Wl,-z,nodelete -Wl,-rpath=/gnu/store/275kk2wrasb9gqacaxz45a0x5s24qnd9-gst-plugins-good-1.22.2/lib /gnu/store/0l9aglwxbrkva96c7lrh334gb31rwbxc-gst-plugins-base-1.22.2/lib/libgstvideo-1.0.so /gnu/store/pm16mb257n6c0dh7g74ns3f54pzpwkly-gstreamer-1.22.2/lib/libgstbase-1.0.so /gnu/store/pm16mb257n6c0dh7g74ns3f54pzpwkly-gstreamer-1.22.2/lib/libgstreamer-1.0.so /gnu/store/iz2my9wgqvv088hnirdyxfa3q14xbh3m-glib-2.72.3/lib/libgobject-2.0.so /gnu/store/iz2my9wgqvv088hnirdyxfa3q14xbh3m-glib-2.72.3/lib/libglib-2.0.so -laa -Wl,--end-group
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aarender.o): in function `aa_renderpalette':
(.text+0x708): undefined reference to `pow'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurses.o):(.text+0xe8): undefined reference to `curs_set'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurses.o):(.text+0x130): undefined reference to `wrefresh'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurses.o):(.text+0x18c): undefined reference to `wmove'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurses.o):(.text+0x1d4): undefined reference to `waddnstr'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurses.o): in function `curses_init':
(.text+0x248): undefined reference to `initscr'
ld: (.text+0x278): undefined reference to `termattrs'
ld: (.text+0x2d0): undefined reference to `intrflush'
ld: (.text+0x344): undefined reference to `wclear'
ld: (.text+0x354): undefined reference to `intrflush'
ld: (.text+0x360): undefined reference to `wrefresh'
ld: (.text+0x3a4): undefined reference to `endwin'
ld: (.text+0x45c): undefined reference to `wclear'
ld: (.text+0x46c): undefined reference to `intrflush'
ld: (.text+0x478): undefined reference to `wrefresh'
ld: (.text+0x504): undefined reference to `endwin'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurses.o):(.toc+0x0): undefined reference to `stdscr'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x2c): undefined reference to `nodelay'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x70): undefined reference to `wgetch'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x114): undefined reference to `nodelay'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x224): undefined reference to `initscr'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x254): undefined reference to `cbreak'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x25c): undefined reference to `noecho'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x264): undefined reference to `nonl'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x27c): undefined reference to `keypad'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x330): undefined reference to `keypad'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x340): undefined reference to `nodelay'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x358): undefined reference to `nocbreak'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x360): undefined reference to `echo'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x370): undefined reference to `nl'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x3a8): undefined reference to `intrflush'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x3b4): undefined reference to `wclear'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x3c0): undefined reference to `wrefresh'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.text+0x3dc): undefined reference to `endwin'
ld: /gnu/store/s2jbrqa6j96j00q69kdnp4xzijjdd7jf-aalib-1.4rc5/lib/../lib/libaa.a(aacurkbd.o):(.toc+0x0): undefined reference to `stdscr'
collect2: error: ld returned 1 exit status
--8<---------------cut here---------------end--------------->8---

[0]  https://ci.guix.gnu.org/build/1778171/log/raw

It seems fixing this package may be enough to get freecad to build on
powerpc64le.  Help welcome!

-- 
Thanks,
Maxim