Bug 193359

Summary: dns/bind99: Creates package in WRKDIRPREFIX, not in PACKAGES
Product: Ports & Packages Reporter: Dirk Meyer <dinoex>
Component: Individual Port(s)Assignee: Mathieu Arnold <mat>
Status: Closed FIXED    
Severity: Affects Some People Keywords: needs-patch
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   

Description Dirk Meyer freebsd_committer freebsd_triage 2014-09-06 04:17:15 UTC
dns/bind99 creates package in WRKDIRPREFIX, not in PACKAGES

FreeBSD 9.3-RELEASE pkg-1.3.7

/etc/make.conf:
PACKAGES=${PORTSDIR}/packages-${ARCH}
WRKDIRPREFIX=/usr/obj/ports

cd /usr/ports/dns/bind99/ && make clean package
[...]
====> Compressing man pages (compress-man)
===>  Building package for bind99-9.9.5P1_5

after build I use the workaround by hand:
mv /usr/obj/ports/usr/ports/dns/bind99/work/pkg/bind99-9.9.5P1_5.txz /usr/ports/packages-amd64/All/

Please fix.
Comment 1 Mathieu Arnold freebsd_committer freebsd_triage 2014-09-06 07:57:14 UTC
Is that a problem with BIND specifically ?
Comment 2 Dirk Meyer freebsd_committer freebsd_triage 2014-09-06 15:52:19 UTC
this happens only with the bind ports for some time.
same problem I have seen before with with the old pkg_create.

1590 other ports create the package in PACKAGES as expected.
Comment 3 Dirk Meyer freebsd_committer freebsd_triage 2014-09-07 04:46:52 UTC
clean jail, nothing installed:

samples OK:

root@build:/usr/ports/dns/ldns # make -V PKGFILE
/usr/ports/packages-amd64/All/ldns-1.6.17_2.txz

root@build:/usr/ports/dns/bind10 # make -V PKGFILE
/usr/ports/packages-amd64/All/bind10-1.2.0_1.txz

samples fail:

root@build:/usr/ports/dns/bind99 # make -V PKGFILE
/usr/ports/dns/bind99/bind99-9.9.5P1_5.txz

root@build:/usr/ports/dns/bind910 # make -V PKGFILE
/usr/ports/dns/bind910/bind910-9.10.0P2_5.txz

root@build:/usr/ports/dns/bind97 # make -V PKGFILE
/usr/ports/dns/bind97/bind97-9.7.7.txz

diagnostics:

# grep -C1 PKGFILE.= /usr/ports/Mk/ -r
/usr/ports/Mk/bsd.port.mk-.if exists(${PACKAGES})
/usr/ports/Mk/bsd.port.mk:PKGFILE?=             ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX}
/usr/ports/Mk/bsd.port.mk-.else
/usr/ports/Mk/bsd.port.mk:PKGFILE?=             ${.CURDIR}/${PKGNAME}${PKG_SUFX}
/usr/ports/Mk/bsd.port.mk-.endif

root@build:/usr/ports/dns/bind99 # make -V PKGREPOSITORY
/usr/ports/packages-x86_64/All

This dir does not exist, so bsd.port.mk revert to ".CURDIR"

Another side effect is the loss of CFLAGS_amd64=

if defined(CFLAGS_${ARCH})
CFLAGS+=        ${CFLAGS_${ARCH}}

.if defined(CXXFLAGS_${ARCH})
CXXFLAGS+=      ${CXXFLAGS_${ARCH}}


instead of setting 
ARCH=            x86_64

it might be sufficient to set:
CONFIGURE_TARGET=      x86_64-portbld-${OPSYS:tl}${OSREL}
Comment 4 Mathieu Arnold freebsd_committer freebsd_triage 2014-09-30 20:23:28 UTC
This was fixed in r367505.