Package: screen
Version: 4.1.0~20120320gitdb59704-5
Severity: important

Hello,

screen does not build on !linux archs when libelf-dev is installed:

gcc -c -I. -I.  -D_FORTIFY_SOURCE=2 -DETCSCREENRC='"/etc/screenrc"' 
-DSCREENENCODINGS='"/usr/share/screen/utf8encodings"' -DHAVE_CONFIG_H 
-DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
             -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat 
-Werror=format-security -O2 -g -Wall -Wextra -Wno-unused-parameter 
-Wno-missing-field-initializers utmp.c
utmp.c:104:26: error: 'UTMPX_FILE' undeclared here (not in a function)

This is because when libelf-dev is installed, configure.in defines SVR4,
which in os.h makes UTMPFILE defined to UTMPX_FILE, but since
_GNU_SOURCE is defined by config.h only after header inclusion,
/usr/include/utmpx.h's __USE_GNU guard prevents UTMPX_FILE from being
defined.

I see three ways to fix it:

- include config.h before headers and include utmp.h for ut_xtime, as
attached patch1 does,
- use the same trick as on linux, which just disables utmpx, as attached
patch2 does.
- build-conflict with libelf-dev, as attached patch3 does.

Samuel

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.0.4 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages screen depends on:
ii  cdebconf [debconf-2.0]  0.171
ii  debconf [debconf-2.0]   1.5.44
ii  dpkg                    1.16.4.3
ii  install-info            4.13a.dfsg.1-10
ii  libc6                   2.13-33
ii  libpam0g                1.1.3-7.1
ii  libtinfo5               5.9-10

screen recommends no packages.

Versions of packages screen suggests:
ii  iselect  1.4.0-1

-- debconf information:
  screen/410-upgrade:
  screen/403-copy-failed:
* screen/old_upgrade_prompt: false

-- 
Samuel Thibault <samuel.thiba...@ens-lyon.org>
<D> m'enfin, le 5 juillet, le mec vient visiter le labo...
* D a marque d'une croix rouge le 5 juillet sur son agenda
<y> niarc niarc niarc
<D> cet homme va souffrir
<B> c'est donc le 5 juillet qu'il meurt d'un accident de la route écrasé par un 
truck muni d'un pare buffle
 -+- #ens-mim - repaire de terroristes -+-
--- utmp.c.orig 2012-08-09 12:41:29.000000000 +0200
+++ utmp.c      2012-08-09 12:41:32.000000000 +0200
@@ -26,11 +26,12 @@
  ****************************************************************
  */
 
+#include "config.h"
+
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 
-#include "config.h"
 #include "screen.h"
 #include "extern.h"
 
--- os.h.orig   2012-08-09 12:45:12.000000000 +0200
+++ os.h        2012-08-09 12:45:14.000000000 +0200
@@ -252,6 +252,7 @@
 #if defined(UTMPOK) || defined(BUGGYGETLOGIN)
 # if defined(SVR4) && !defined(DGUX) && !defined(__hpux) && !defined(linux)
 #  include <utmpx.h>
+#  include <utmp.h>
 #  define UTMPFILE     UTMPX_FILE
 #  define utmp         utmpx
 #  define getutent     getutxent
--- os.h.orig   2012-08-09 12:45:12.000000000 +0200
+++ os.h        2012-08-09 12:46:39.000000000 +0200
@@ -250,7 +250,7 @@
 #endif
 
 #if defined(UTMPOK) || defined(BUGGYGETLOGIN)
-# if defined(SVR4) && !defined(DGUX) && !defined(__hpux) && !defined(linux)
+# if defined(SVR4) && !defined(DGUX) && !defined(__hpux) && !defined(linux) && 
!defined(__GNU__) && !defined(__FreeBSD_kernel__)
 #  include <utmpx.h>
 #  define UTMPFILE     UTMPX_FILE
 #  define utmp         utmpx
--- debian/control.orig 2012-08-09 12:48:53.000000000 +0200
+++ debian/control      2012-08-09 12:49:03.000000000 +0200
@@ -5,6 +5,7 @@
 Uploaders: Jan Christoph Nordholz <he...@pool.math.tu-berlin.de>
 Standards-Version: 3.9.3
 Build-Depends: libncursesw5-dev, texinfo, libpam0g-dev, debhelper (>> 7), 
dh-autoreconf, dpkg-dev (>= 1.16.1~), po-debconf
+Build-Conflicts: libelf-dev, libelf0-dev, libelf1-dev, libelfg0-dev
 Homepage: http://savannah.gnu.org/projects/screen
 Vcs-Git: git://anonscm.debian.org/collab-maint/screen.git
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/screen.git

Reply via email to