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
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

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

Closed by  Doug Newgard (Scimmia)
Thursday, 01 March 2018, 14:02 GMT
Reason for closing:  Not a bug
Comment by Jan de Groot (JGC) - Thursday, 01 March 2018, 11:35 GMT
geeqie does a silent fallback to gtk2, so you'll have to check config.log why it fails to detect gtk3.
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.
Comment by Peter Weber (hoschi) - Thursday, 01 March 2018, 12:06 GMT
   configure (397.1 KiB)
   config.log (59.2 KiB)
Comment by Peter Weber (hoschi) - Thursday, 01 March 2018, 12:09 GMT
Okay, the configure.in differs:
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
Comment by Peter Weber (hoschi) - Thursday, 01 March 2018, 12:31 GMT
I checked http://geeqie.org/geeqie-1.4.tar.xz and the confiugre.in doesn't incude the else-branch which prefers GTK3 over GTK2.
And the change to prefer GTK3 is really old:
https://github.com/BestImageViewer/geeqie/commit/48d7bdaed133cd4adadcfdf3973e74056ff666fd#diff-3b3a6ec97232deb43dc14319a73872c1
Comment by Peter Weber (hoschi) - Thursday, 01 March 2018, 12:39 GMT
I reported that upstream:
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.
Comment by loqs (loqs) - Thursday, 01 March 2018, 12:45 GMT Comment by loqs (loqs) - Thursday, 01 March 2018, 12:51 GMT
There does not seem to be an arch issue here or an issue at all as the tarball matches the tree as tagged 1.4
Comment by Peter Weber (hoschi) - Thursday, 01 March 2018, 12:53 GMT
Yes and no. I missed completely, that they have a seperate stable/1.4 branch which prefers GTK2 and the master (including README.MD) which prefers GTK3.
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).
Comment by loqs (loqs) - Thursday, 01 March 2018, 13:03 GMT
https://github.com/BestImageViewer/geeqie/blob/v1.4/README.md matches the 1.4 release. the README.md on head does not seem to match configure.in for head but arch is not using git head.
JCG already covered why the PKGBUILD in a clean chroot generates a binary linked against gtk3.
Comment by Peter Weber (hoschi) - Thursday, 01 March 2018, 13:08 GMT
JCG knows the built system far better, but the branch 1.4 defaults to Gtk2 and our PKGBUILD does so also and produces a binary linked against Gtk2. But 'pacman -S geeqie' fetches a built of Geeqie which is linked against Gtk3. Reading from the source, that shouldn't be the case.

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.
Comment by loqs (loqs) - Thursday, 01 March 2018, 13:18 GMT
JCG already covered why the PKGBUILD in a clean chroot generates a binary linked against gtk3.
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.

Loading...