Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 May 2003 13:12:26 +0200
From:      Alex Dupre <sysadmin@alexdupre.com>
To:        ports@freebsd.org
Cc:        Kris Kennaway <kris@obsecurity.org>
Subject:   Wrong BUILD_DEPENDS behaviour
Message-ID:  <22244580918.20030525131226@alexdupre.com>

next in thread | raw e-mail | index | archive | help
The bsd.port.mk file says:

# BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
#                 package depends to build (between the "extract" and
#                 "build" stages, inclusive).

For me this means extract, patch, configure and build stages.

But later in the makefile we find:

_EXTRACT_SEQ=   extract-message checksum extract-depends pre-extract \
                                pre-extract-script do-extract \
                                post-extract post-extract-script

[no build-depends]
                                
_PATCH_SEQ=             patch-message patch-depends pre-patch pre-patch-script \
                                do-patch post-patch post-patch-script

[no build-depends]

_CONFIGURE_SEQ= build-depends lib-depends misc-depends configure-message \
                                patch-libtool pre-configure pre-configure-script \
                                do-configure post-configure post-configure-script

[build-depends appears in configure stage]
                                
_BUILD_SEQ=             build-message pre-build pre-build-script do-build \
                                post-build post-build-script

[no build-depends]

There is clearly something wrong IMHO...and this issue is exploited for
example with the USE_REINPLACE knob.

if defined(USE_REINPLACE)
REINPLACE_ARGS?=        -i.bak
.if ${OSVERSION} < 460101 || ( ${OSVERSION} >= 500000 && ${OSVERSION} < 500036 )
BUILD_DEPENDS+= ${LOCALBASE}/bin/sed_inplace:${PORTSDIR}/textproc/sed_inplace
REINPLACE_CMD?= ${LOCALBASE}/bin/sed_inplace ${REINPLACE_ARGS}
.else
REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS}
.endif
.endif

Consider a fresh FreeBSD installation that requires the sed_inplace port
and a port who define USE_REINPLACE to sed something in the post-patch
stage. The sed_inplace port will not be installed before the configure
stage and the build will fail in patch stage.

-- 
Alex Dupre                             sysadmin@alexdupre.com
http://www.alexdupre.com/              alex@sm.FreeBSD.org

Today's excuse: Standing room only on the bus.



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