Subject: pkg/37246: archivers/pax fails to build on linux
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Yakovetsky Vladimir <yx@x.ua>
List: pkgsrc-bugs
Date: 10/29/2007 14:05:00
>Number:         37246
>Category:       pkg
>Synopsis:       archivers/pax (and bootstrap too) fails to build on linux
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 29 14:05:00 +0000 2007
>Originator:     Yakovetsky Vladimir
>Release:        
>Environment:
System: Linux bres 2.6.21.5 #1 SMP Fri Jul 6 09:48:19 GMT 2007 i686 GNU/Linux

>Description:
	archivers/pax (and bootstrap too) fails to build on linux
	beacuse of fts.h is incompatible with _FILE_OFFSET_BITS 64.

>How-To-Repeat:
% uname -s
Linux
% cd /usr/pkgsrc/bootstrap && ./bootstrap
...
gcc -DHAVE_CONFIG_H -DHAVE_NBCOMPAT_H=1 -I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pax/work/libnbcompat -I. -I. -O2 -c ftree.c
In file included from ftree.c:110:
/usr/include/fts.h:41:3: error: #error "<fts.h> cannot be used with -D_FILE_OFFSET_BITS==64"
*** Error code 1

Stop.


>Fix:
	Workaround:
--- /usr/pkgsrc/archivers/pax/Makefile.common.orig
+++ /usr/pkgsrc/archivers/pax/Makefile.common
@@ -26,3 +26,12 @@
 
 do-extract:
 	${CP} -R ${FILESDIR} ${WRKSRC}
+
+.if ${LOWER_OPSYS} == "linux"
+# XXX: configure should fix the brokenness instead?
+SUBST_CLASSES+=		fix-off64
+SUBST_STAGE.fix-off64=	post-configure
+SUBST_FILES.fix-off64=	config.h
+SUBST_SED.fix-off64=	-e 's,^\#define _FILE_OFFSET_BITS 64,/* \#undef _FILE_OFFSET_BITS */,'
+.endif
+