ports/123469: [PATCH] net/rsync: fix WITHOUT_ICONV build

Dan Nelson dnelson at allantgroup.com
Tue May 6 16:40:05 UTC 2008

>Number:         123469
>Category:       ports
>Synopsis:       [PATCH] net/rsync: fix WITHOUT_ICONV build
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 06 16:40:04 UTC 2008
>Originator:     Dan Nelson
>Release:        FreeBSD 7.0-STABLE i386
The Allant Group
System: FreeBSD dan.emsphone.com 7.0-STABLE FreeBSD 7.0-STABLE #546: Thu May 1 13:34:56 CDT 2008 zsh at dan.emsphone.com:/usr/src-7/sys/i386/compile/DANSMP i386


The options dialog lets you ask for iconv support to be disabled, but
just adding --disable-iconv isn't enough.  That simply disables rsync's
--iconv flag but still allows libiconv to be linked into the binary...


Install libiconv, uncheck "Add iconv support" in the rsync options
screen, build rsync.  The link stage will fail with:

rsync.o(.text+0xffe): In function `iconvbufs':
: undefined reference to `libiconv'
rsync.o(.text+0x1132): In function `iconvbufs':
: undefined reference to `libiconv'
rsync.o(.text+0x11b8): In function `setup_iconv':
: undefined reference to `locale_charset'
rsync.o(.text+0x11de): In function `setup_iconv':
: undefined reference to `libiconv_open'
*** Error code 1


Set the appropriate autoconf cache variables so that rsync's configure
script completely skips iconv detection, even if it's present on the
system.  As a bonus, no post-configure fixup is needed:

Index: Makefile
RCS file: /home/ncvs/ports/net/rsync/Makefile,v
retrieving revision 1.131
diff -u -r1.131 Makefile
--- Makefile	8 Apr 2008 19:24:06 -0000	1.131
+++ Makefile	6 May 2008 15:28:33 -0000
@@ -55,6 +55,8 @@
 CONFIGURE_ARGS+=	--disable-iconv
+CONFIGURE_ENV+=		ac_cv_search_libiconv_open=no
+CONFIGURE_ENV+=		ac_cv_header_iconv_h=no
 .if defined(WITH_FLAGS)
@@ -71,7 +73,7 @@
 .if defined(WITH_POPT_PORT)
 LIB_DEPENDS+=	popt.0:${PORTSDIR}/devel/popt
 CONFIGURE_ARGS+=	--with-included-popt
@@ -91,11 +93,6 @@
 	@${REINPLACE_CMD} -e 's|malloc.h|stdlib.h|g' \
 		${WRKSRC}/rsync.h ${WRKSRC}/zlib/zutil.h
-.if defined(WITHOUT_ICONV)
-	@${REINPLACE_CMD} -e 's|-liconv||' ${WRKSRC}/Makefile
 	@${STRIP_CMD} ${PREFIX}/bin/rsync
 	@${INSTALL_DATA} ${FILESDIR}/rsyncd.conf.sample ${PREFIX}/etc/


More information about the freebsd-ports-bugs mailing list