Skip site navigation (1)Skip section navigation (2)
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>