FS#57690 - [geeqie] binary links against GTK3, PKGBUILD against GTK2
Attached to Project:
Arch Linux
Opened by Peter Weber (hoschi) - Thursday, 01 March 2018, 11:19 GMT
Last edited by Doug Newgard (Scimmia) - Thursday, 01 March 2018, 14:02 GMT
Opened by Peter Weber (hoschi) - Thursday, 01 March 2018, 11:19 GMT
Last edited by Doug Newgard (Scimmia) - Thursday, 01 March 2018, 14:02 GMT
|
Details
Hello!
Something weird is going on. If compiled from PKGBUILD we got a build against GTK2, but the binary package is linked against GTK3. I figured this out during investigating this bug: https://github.com/BestImageViewer/geeqie/issues/539 The GTK3 based build, which should be now the default, doesn't work on Wayland and renders just white images. Additional info: * package version(s): >= 1.4-1 Steps to reproduce: 1. Download PKGBUILD and geeqie-no-changelog.patch 2. makepkg --skippgpcheck # watch the build output 3. pacman -U geeqie-1.4-1-x86_64.pkg.tar.xz 4. ldd /usr/bin/geeqie I set this to high, because it's is really a "WTF" on my scale and I'm worried. Probably this is caused by Geeqie, they announced GTK3 is now the default and ./autogen.sh -h give me the impression, that GTK2 is still the default. Thank you |
This task depends upon
We build our packages in chroot, so gtk2 is not present during build, resulting in either gtk3 or build failure instead of a silent fallback.
config.log (59.2 KiB)
Local:
201 AC_ARG_ENABLE([gtk3], AC_HELP_STRING([--enable-gtk3], [use gtk3 instead of gtk2]),[gtk3="${enableval}"], [gtk3=m4_ifdef([AM_PATH_GTK_3_0], m4_ifdef([AM_PATH_GTK_2_0], [no],
202
203 if test x$gtk3 == xyes; then
204 AC_MSG_WARN("Gtk3 enabled")
205 m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,AC_MSG_ERROR(GTK+ >= 3.0.0 not installed.))])
206 fi
207
208 if test x$gtk3 == xno; then
209 m4_ifdef([AM_PATH_GTK_2_0], [AM_PATH_GTK_2_0(2.20.0,,AC_MSG_ERROR(GTK+ >= 2.20.0 not installed.))])
210 true
211 fi
Github:
AC_ARG_ENABLE([gtk3], AC_HELP_STRING([--disable-gtk3], [use gtk2 instead of gtk3]),[gtk3="${enableval}"], [gtk3=m4_ifdef([AM_PATH_GTK_3_0], [auto], [no])])
if test x$gtk3 == xyes; then
AC_MSG_WARN("Gtk3 enabled")
m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,AC_MSG_ERROR(GTK+ >= 3.0.0 not installed.))])
else
if test x$gtk3 != xno; then
AC_MSG_WARN("Gtk3 is preferred...")
m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,[gtk3=no])])
fi
fi
if test x$gtk3 == xno; then
m4_ifdef([AM_PATH_GTK_2_0], [AM_PATH_GTK_2_0(2.20.0,,AC_MSG_ERROR(GTK+ >= 2.20.0 not installed.))])
true
fi
And the change to prefer GTK3 is really old:
https://github.com/BestImageViewer/geeqie/commit/48d7bdaed133cd4adadcfdf3973e74056ff666fd#diff-3b3a6ec97232deb43dc14319a73872c1
https://github.com/BestImageViewer/geeqie/issues/593
That would explain, why no distribution is using Gtk3 with Geeqie in the first place. The configure.in in the tarball is outdated.
So we are back to Archlinux, why we are using GTK3 in the binary but GTK2 if built from PKGBUILD?
If I'm allowed to guess "arojas" trapped into the same issue than me and believed master == stable/1.4 and passed during built '--enable-gtk3' but sticked with the default in the PKGBUILD. Because GTK3 fails to render images at all on Wayland, we could probably considere just a rebuild (which will automatically switch back to GTK2).
JCG already covered why the PKGBUILD in a clean chroot generates a binary linked against gtk3.
In other works 'makepkg --skippgpcheck' results in Geeqie linked against Gtk2 and that is right, regarding the PKGBUILD and the default from "stable/1.4". Therefore pacman delivers the 'wrong' binary.
Did you run makepkg --skippgpcheck in a clean chroot. Extract geeqie-1.4-1.x86._64.pkg.tar.gz and look at the .BUILDINFO file.
Where in the .BUILDINFO is gtk2 listed? Now compare that to the .BUILDINFO of the package you generated.