Date: Fri, 22 Sep 2006 01:26:18 GMT From: "Reed A. Cartwright" <reed@scit.us> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/103471: port gnu-automake installs old config.guess and old config.sub Message-ID: <200609220126.k8M1QIJs086338@www.freebsd.org> Resent-Message-ID: <200609220130.k8M1ULHq034149@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 103471 >Category: ports >Synopsis: port gnu-automake installs old config.guess and old config.sub >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Sep 22 01:30:21 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Reed A. Cartwright >Release: 6.1-RELEASE >Organization: NCSU >Environment: FreeBSD orochi.scit.us 6.1-STABLE FreeBSD 6.1-STABLE #4: Wed Sep 6 20:31:18 EDT 2006 reed@orochi.scit.us:/usr/obj/usr/src/sys/SMP i386 >Description: The gnu-automake port is supposed to be an unmodified installation of automake. However, because GNU_CONFIGURE is set in the port's Makefile, the portsystem will replace config.sub and config.guess in the work directory with FreeBSD preferred versions. See the following section from Mk/bsd.port.mk. ================================================== .if !target(do-configure) do-configure: @if [ -f ${SCRIPTDIR}/configure ]; then \ cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ ${SCRIPTDIR}/configure; \ fi .if defined(GNU_CONFIGURE) @CONFIG_GUESS_DIRS=$$(${FIND} ${WRKDIR} -name config.guess -o -name config.sub \ | ${XARGS} -n 1 ${DIRNAME}); \ for _D in $${CONFIG_GUESS_DIRS}; do \ ${CP} -f ${TEMPLATES}/config.guess $${_D}/config.guess; \ ${CHMOD} a+rx $${_D}/config.guess; \ ${CP} -f ${TEMPLATES}/config.sub $${_D}/config.sub; \ ${CHMOD} a+rx $${_D}/config.sub; \ done .endif ==================================================== This is appropriate for installing normal ports of FreeBSD but not for gnu-automake because it replaces the config.sub and config.guess that gnu-automake installs into the /usr/local/gnu-autotools directory. This leads to outdated config.guess and config.sub being packaged with software developed on FreeBSD. >How-To-Repeat: Install gnu-autotools. or compare config.guess in the work directory after make patch and after make configure. >Fix: The following script is a work around for installing gnu-autotools ==================================================== #!/bin/sh cd /usr/ports/devel/gnu-automake make clean make install make clean make patch cp work/automake-1.9.6/lib/config.guess /usr/local/gnu-autotools/share/automake-1.9/config.guess cp work/automake-1.9.6/lib/config.sub /usr/local/gnu-autotools/share/automake-1.9/config.sub chown root:wheel /usr/local/gnu-autotools/share/automake-1.9/config.guess chown root:wheel /usr/local/gnu-autotools/share/automake-1.9/config.sub chmod 555 /usr/local/gnu-autotools/share/automake-1.9/config.guess chmod 555 /usr/local/gnu-autotools/share/automake-1.9/config.sub make clean ====================================================== A full solution would be to create pre-configure and post-configure rules in the port's make file, that save a copy of the config.guess and config.sub before configure is run and then restores them afterwards. That way the port's configure uses the proper freebsd config.guess and config.sub, but it installs GNU's versions into the gnu-autotools directory. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609220126.k8M1QIJs086338>