Package: postfix
Version: 2.8.4-1
Severity: serious
Tags: patch
Justification: fails to build from source (but built successfully in the past)
User: debian-d...@lists.debian.org
Usertags: multiarch

[Note:  This is a separate bug from #637565, which appears to be fixed
in 2.8.4.]

Dear Maintainer,

Version 2.8.4 fails to build on machines using Linux 3.x with the
following error message:

gcc -Wmissing-prototypes -Wformat -DDEBIAN -DMAX_DYNAMIC_MAPS -DHAS_PCRE 
-DHAS_LDAP -DMYORIGIN_FROM_FILE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
-DHAS_CDB -DHAS_MYSQL -I/usr/include/mysql -DHAS_PGSQL 
-I/usr/include/postgresql -DHAS_SSL -I/usr/include/openssl -DUSE_SASL_AUTH 
-I/usr/include/sasl -DUSE_CYRUS_SASL -DUSE_TLS  -O2 -I. -I../../include 
-DLINUX3 -o master master.o master_conf.o master_ent.o master_sig.o 
master_avail.o master_spawn.o master_service.o master_status.o master_listen.o 
master_vars.o master_wakeup.o master_watch.o master_flow.o 
../../lib/libglobal.a ../../lib/libutil.a -lssl -lcrypto -lsasl2 
-L/home/kevin/tmp/postfix-2.8.4/debian -ldb
../../lib/libutil.a: undefined reference to `yp_get_default_domain'
../../lib/libutil.a: undefined reference to `yp_match'
collect2: ld returned 1 exit status

The problem occurs because libnsl is not included in SYSLIBS because it
is not found in /usr/lib64 /lib64 /usr/lib or /lib on machines using the
latest libc6-dev packages, where it is in an arch-specific directory
(e.g ./usr/lib/i386-linux-gnu/libnsl.a).

Although it appears that the fix for this was applied to the Linux.2
system type, it was not applied (or was somehow unapplied) to Linux.3.
The attached patch uses the same SEARCHDIRS logic for Linux.3 as
Linux.2.

Cheers,
Kevin

P.S.  It doesn't look like anyone is committing to
git://git.debian.org/~lamont/postfix.git anymore.  Perhaps the Vcs-*
tags in debian/control should be updated to
git://anonscm.debian.org/users/lamont/postfix.git?


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (101, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.0.4-kevinoid1 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages postfix depends on:
ii  adduser                3.113                           
ii  debconf [debconf-2.0]  1.5.40                          
ii  dpkg                   1.16.0.3                        
ii  libc6                  2.13-18                         
ii  libdb5.1               5.1.25-11                       
ii  libsasl2-2             2.1.24~rc1.dfsg1+cvs2011-05-23-4
ii  libssl1.0.0            1.0.0e-2                        
ii  lsb-base               3.2-28                          
ii  netbase                4.46                            
ii  ssl-cert               1.0.28                          

Versions of packages postfix recommends:
ii  python  2.6.7-3

Versions of packages postfix suggests:
pn  bsd-mailx [mail-reader]  8.1.2-0.20100314cvs-1           
pn  dovecot-common           <none>                          
pn  evolution [mail-reader]  3.0.3-1+b1                      
pn  icedove [mail-reader]    3.1.13-1                        
pn  libsasl2-modules         2.1.24~rc1.dfsg1+cvs2011-05-23-4
pn  mutt [mail-reader]       1.5.21-5                        
pn  opera [mail-reader]      11.50.1074                      
pn  postfix-cdb              <none>                          
pn  postfix-ldap             <none>                          
pn  postfix-mysql            <none>                          
pn  postfix-pcre             <none>                          
pn  postfix-pgsql            <none>                          
pn  procmail                 3.22-19                         
pn  resolvconf               1.59                            
pn  sasl2-bin                <none>                          
pn  ufw                      <none>                          

-- debconf information excluded
>From 2b4cfb2a411442a24d1cc0e3ab5171751d8fea5e Mon Sep 17 00:00:00 2001
From: Kevin Locke <ke...@kevinlocke.name>
Date: Thu, 22 Sep 2011 14:26:19 -0600
Subject: [PATCH] Make use of SEARCHDIRS on Linux.3 as on Linux.2

The same directories that would be searched on a 2.x kernel should be
searched on a 3.x kernel.  The current search paths do not not include
the multiarch directories and cause it to FTBFS on Linux.3.

Signed-off-by: Kevin Locke <ke...@kevinlocke.name>
---
 makedefs |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/makedefs b/makedefs
index 2648f10..24082a4 100644
--- a/makedefs
+++ b/makedefs
@@ -363,9 +363,16 @@ EOF
 		    exit 1
 		fi
 		SYSLIBS="-ldb"
+		SEARCHDIRS=$(${CC-gcc} -print-search-dirs 2>/dev/null \
+			| grep libraries | cut -f2- -d= \
+			| sed -e's/\:/\n/g' | xargs -n1 readlink -f \
+			| grep -v 'gcc\|/[0-9.]\+$' | uniq)
+		if [ -z "$SEARCHDIRS" ]; then
+			SEARCHDIRS="/usr/lib64 /lib64 /usr/lib /lib"
+		fi
 		for name in nsl resolv
 		do
-		    for lib in /usr/lib64 /lib64 /usr/lib /lib
+		    for lib in $SEARCHDIRS
 		    do
 			test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
 			    SYSLIBS="$SYSLIBS -l$name"
-- 
1.7.5.4

Reply via email to