Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Mar 2003 07:49:11 +0100
From:      Adrian Steinmann <ast@marabu.ch>
To:        Scott Sewall <sewall@ix.netcom.com>
Cc:        stable@freebsd.org, bmah@freebsd.org
Subject:   Re: make release failure
Message-ID:  <200303200649.HAA17579@marabu.marabu.ch>

next in thread | raw e-mail | index | archive | help
<sewall@ix.netcom.com> asked this followup question after I posted
a possible solution to the USE_LIBTOOL problem in ports/textproc/jade
build:

   Do I apply the patch to the bsd.port.mk within the chroot'd environment
   used by 'make release',
   or to /usr/share/mk/bsd.port.mk?

not /usr/share/mk/bsd.port.mk, but usr/ports/Mk/bsd.port.mk - within
the chroot'd environment! There are hooks in usr/src/release/Makefile
for applying LOCAL_PATCHES and runing a LOCAL_SCRIPT however they
come before usr/ports is checked out. I have submitted a second PR
http://www.freebsd.org/cgi/query-pr.cgi?pr=50106 which is a change
request to "move down" the running of the local script to after the
ports are also checked out. If you don't set NODOC=yes, you will
need to apply that patch as well, and put the usr/ports/Mk/bsd.port.mk
patch from PR 50103 into your LOCAL_PATCHES file.

As it stood in its first version, PR 50106 was kind of suboptimal
for two reasons:

1) it expected LOCAL_PATCHES to be relative to CHROOTDIR and not
CHROOTDIR/usr/src, which is the traditional root for src patches.

2) if say, NOPORTS=yes was specified, make release failed because
when the patch was applied it returns non-zero when it tried to patch
a nonexisting file (in spite of PATCH_FLAGS=--batch). I work
around this by not using the LOCAL_PATCHES hook at all but doing
the local patching in the moved-down LOCAL_SCRIPT like this:

    patch ${PATCH_FLAGS} < ${MY_LOCAL_PATCHES} || true

making sure that MY_LOCAL_PATCHES is exported into in the 'make
release' environment, and hence the LOCAL_SCRIPT.

I have followed-up PR 50106 with these comments, with a slightly
modified patch which just "moves down" running of the LOCAL_SCRIPT
and leaves the traditional LOCAL_PATCHES where it has always been,
respecting the POLA.

Another approach would be to have a third hook LOCAL_PORT_PATCHES
which are relative to CHROOTDIR/usr/ports, those would be protected
by the existing .if ! defined (NOPORTS) ... .endif clauses within
release/Makefile. Nevertheless, I advocate having LOCAL_SCRIPT after
all checkouts are done, i.e. please commit the revised patch PR 50106!

Adrian

   ><sewall@ix.netcom.com> wrote:
   >   I'm trying to run make release of RELENG_4 on i386, and am getting the following error:
   >
   >   checking for BSD-compatible nm... /usr/bin/nm -B
   >   /ltconfig: Can't open /ltconfig: No such file or directory
   >   configure: error: libtool configure failed
   >   ===>  Script "configure" failed unexpectedly.
   >    ...
   >
   >   Stop in /usr/ports/textproc/jade.
   >    ...
   >
   >jade has USE_LIBTOOL in it's Makefile, but it configures itself
   >*before* it goes and builds libtool, so when 'make jade' finally
   >comes back (after it installs the prerequisites expat, iconv,
   >gettext, and gmake) the patch-libtool target has already run (a
   >no-op in this case) because it's in the _CONFIGURE_SEQ (see
   >usr/ports/Mk/bsd.port.mk) and the ltconfig path is of course not
   >patched, hence /ltconfig.
   >
   >You can observe this by doing a chroot into the CHROOTDIR hierarchy,
   >cd /usr/ports/textproc/jade, rm work/.config*; make configure which
   >lo' and behold will *not* fail. If you then 'pkg_delete -x libtool',
   >then 'make configure' will fail again.
   >
   >I've fixed this locally by forcing USE_LIBTOOL to create a *PATCH*
   >dependancy instead of a BUILD dependancy (it is actually a CONFIGURE
   >dependancy, but we have no such hooks) in bsd.port.mk:
   >
   >Index: bsd.port.mk
   >===================================================================
   >RCS file: /usr/cvs/ports/Mk/bsd.port.mk,v
   >retrieving revision 1.442
   >diff -u -r1.442 bsd.port.mk
   >--- bsd.port.mk	12 Mar 2003 00:28:17 -0000	1.442
   >+++ bsd.port.mk	18 Mar 2003 17:37:20 -0000
   >@@ -1226,7 +1226,7 @@
   >
   > .if defined(USE_LIBTOOL)
   > GNU_CONFIGURE=	yes
   >-BUILD_DEPENDS+=		libtool:${PORTSDIR}/devel/libtool
   >+PATCH_DEPENDS+=		libtool:${PORTSDIR}/devel/libtool
   > .if defined(USE_AUTOCONF)
   > LIBTOOLFILES?=		aclocal.m4
   > .else
   >
   >See also http://www.freebsd.org/cgi/query-pr.cgi?pr=50103
   >
   >Adrian
   >


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200303200649.HAA17579>