Bug#873106: xscreensaver FTCBFS: fails to detect a working c compiler

2017-12-03 Thread Tormod Volden
On Thu, Aug 24, 2017 at 5:57 PM, Helmut Grohne  wrote:
>
> xscreensaver fails to cross build from source, because it insists on
> using AC_TRY_RUN to verify that the compiler works. That's generally a
> bad idea and can simply be discarded. It also uses the build
> architecture pkg-config. After fixing both, it cross builds
> successfully. Please consider applying the attached patch.
>
> Helmut

Hi Helmut,
Thanks for the patch, looks good.

Note that the xscreensaver packaging is maintained in git, so git
format patches are welcome, as an alternative to debdiffs.

Regards,
Tormod



Bug#873106: xscreensaver FTCBFS: fails to detect a working c compiler

2017-08-24 Thread Helmut Grohne
Source: xscreensaver
Version: 5.36-1
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

xscreensaver fails to cross build from source, because it insists on
using AC_TRY_RUN to verify that the compiler works. That's generally a
bad idea and can simply be discarded. It also uses the build
architecture pkg-config. After fixing both, it cross builds
successfully. Please consider applying the attached patch.

Helmut
diff -u xscreensaver-5.36/debian/changelog xscreensaver-5.36/debian/changelog
--- xscreensaver-5.36/debian/changelog
+++ xscreensaver-5.36/debian/changelog
@@ -1,3 +1,12 @@
+xscreensaver (5.36-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: (Closes: #-1)
++ Add 91_cross.patch.
++ autoreconf.
+
+ -- Helmut Grohne   Thu, 24 Aug 2017 16:59:05 +0200
+
 xscreensaver (5.36-1) unstable; urgency=medium
 
   * New upstream release 5.36, changes since 5.34:
diff -u xscreensaver-5.36/debian/control xscreensaver-5.36/debian/control
--- xscreensaver-5.36/debian/control
+++ xscreensaver-5.36/debian/control
@@ -2,7 +2,7 @@
 Section: x11
 Priority: optional
 Maintainer: Tormod Volden 
-Build-Depends: bc, debhelper (>= 9.0), fortune-mod, libgtk2.0-dev, 
libpam0g-dev, libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | xlibmesa-glu-dev 
| libglu-dev, xutils-dev, libxml2-dev, libglade2-dev, libjpeg-dev, libgle-dev, 
intltool, autotools-dev, libx11-dev, libxext-dev, libxinerama-dev, libxmu-dev, 
libxpm-dev, libxrandr-dev, libxss-dev, libxt-dev, libxtst-dev, libxxf86vm-dev, 
x11proto-core-dev, xbitmaps, quilt, dpkg-dev (>= 1.16.1)
+Build-Depends: bc, debhelper (>= 9.0), dh-autoreconf, fortune-mod, 
libgtk2.0-dev, libpam0g-dev, libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | 
xlibmesa-glu-dev | libglu-dev, pkg-config, xutils-dev, libxml2-dev, 
libglade2-dev, libjpeg-dev, libgle-dev, intltool, autotools-dev, libx11-dev, 
libxext-dev, libxinerama-dev, libxmu-dev, libxpm-dev, libxrandr-dev, 
libxss-dev, libxt-dev, libxtst-dev, libxxf86vm-dev, x11proto-core-dev, 
xbitmaps, quilt, dpkg-dev (>= 1.16.1)
 Standards-Version: 3.9.8
 Homepage: http://www.jwz.org/xscreensaver/
 Vcs-Git: https://anonscm.debian.org/git/collab-maint/xscreensaver.git
diff -u xscreensaver-5.36/debian/patches/series 
xscreensaver-5.36/debian/patches/series
--- xscreensaver-5.36/debian/patches/series
+++ xscreensaver-5.36/debian/patches/series
@@ -26,0 +27 @@
+91_cross.patch
diff -u xscreensaver-5.36/debian/rules xscreensaver-5.36/debian/rules
--- xscreensaver-5.36/debian/rules
+++ xscreensaver-5.36/debian/rules
@@ -45,6 +45,8 @@
  mv config.guess config.guess.upstream && \
cp /usr/share/misc/config.guess config.guess
 
+   dh_autoreconf
+
# Configure for xscreensaver
./configure --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) \
--prefix=/usr \
@@ -83,6 +85,7 @@
  mv driver/XScreenSaver_ad.h.upstream driver/XScreenSaver_ad.h
[ ! -f driver/XScreenSaver_Xm_ad.h.upstream ] || \
  mv driver/XScreenSaver_Xm_ad.h.upstream driver/XScreenSaver_Xm_ad.h
+   dh_autoreconf_clean
dh_clean
 
 binary-indep:  build
--- xscreensaver-5.36.orig/debian/patches/91_cross.patch
+++ xscreensaver-5.36/debian/patches/91_cross.patch
@@ -0,0 +1,42 @@
+From: Helmut Grohne 
+Subject: fix cross compilation
+
+AC_TRY_RUN fails during cross compilation. We can expect any compiler to just
+work, so discard the test.
+
+Consider $ac_tool_prefix for pkg-config by using PKG_PROG_PKG_CONFIG.
+
+Index: xscreensaver-5.36/configure.in
+===
+--- xscreensaver-5.36.orig/configure.in
 xscreensaver-5.36/configure.in
+@@ -421,13 +421,6 @@
+ 
+   OBJCC="$CC"
+ 
+-  AC_MSG_CHECKING([whether the compiler works on ANSI C])
+-  AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+- AC_MSG_RESULT(yes),
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
+- AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
+-
+   if test -n "$GCC"; then
+ AC_MSG_RESULT(Turning on gcc compiler warnings.)
+ CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs 
-Wmissing-prototypes"
+@@ -2626,11 +2619,13 @@
+   gtk_path="$foo:$gtk_path"
+ fi
+ 
+-AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path)
++PKG_PROG_PKG_CONFIG
+ 
+-if test -z "$pkg_config" ; then
++if test -z "$PKG_CONFIG" ; then
+   AC_MSG_WARN([pkg-config not found!])
+   pkg_config="false"
++else
++  pkg_config=$PKG_CONFIG
+ fi
+ 
+