[Bug 218827] r438058 and r438901 cause trouble for PACKAGES settings with colons in them
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Apr 23 13:37:33 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=218827
Bug ID: 218827
Summary: r438058 and r438901 cause trouble for PACKAGES
settings with colons in them
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: Ports Framework
Assignee: portmgr at FreeBSD.org
Reporter: dim at FreeBSD.org
CC: freebsd-ports-bugs at FreeBSD.org
On a number of FreeBSD boxes where I build ports, I have always had the
PACKAGES setting point to a shared NFS directory where the packages should end
up. For example, in /etc/make.conf on a amd64-freebsd12 box:
PACKAGES?=/share/dim/dist/FreeBSD:12:amd64/latest
On an i386-freebsd10 box:
PACKAGES?=/share/dim/dist/FreeBSD:10:i386/latest
and so on. I use the same version:arch convention as pkg, so I can easily
specify a common url in pkg.conf files, e.g.:
url: "file:///share/dim/dist/${ABI}/latest"
However, since r438058 and its follow-up r438901, this no longer works, and
every invocation of make inside the ports tree gives a number of warnings about
duplicate targets:
$ make foo
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate script
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previous
script for "/share/dim/dist/FreeBSD" defined here
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate script
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previous
script for "/share/dim/dist/FreeBSD" defined here
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate script
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previous
script for "/share/dim/dist/FreeBSD" defined here
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate script
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previous
script for "/share/dim/dist/FreeBSD" defined here
make: don't know how to make foo. Stop
This is because line 3292 of bsd.port.mk now specifies:
${PKGFILE}: ${WRKDIR_PKGFILE} ${PKGREPOSITORY}
while before that, PKGFILE has been defined as:
PKGREPOSITORY?= ${PACKAGES}/${PKGREPOSITORYSUBDIR}
.if exists(${PACKAGES})
_HAVE_PACKAGES= yes
PKGFILE?= ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX}
E.g. the PACKAGES setting, complete with colons, ends up in PKGFILE.
Afterwards, actually trying to build any port errors out with messages similar
to:
$ make -C devel/gmake
make: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate script
for target "/share/dim/dist/FreeBSD" ignored
make: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previous
script for "/share/dim/dist/FreeBSD" defined here
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate script
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previous
script for "/share/dim/dist/FreeBSD" defined here
===> License GPLv3 accepted by the user
===> gmake-4.2.1_1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by gmake-4.2.1_1 for building
===> Extracting for gmake-4.2.1_1
=> SHA256 Checksum OK for make-4.2.1.tar.bz2.
make[1]: don't know how to make 12:amd64/latest/All:. Stop
make[1]: stopped in /share/dim/ports/devel/gmake
*** Error code 2
Stop.
make: stopped in /share/dim/ports/devel/gmake
I can confirm that reverting both r438058 and r438901 fixes this issue.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the freebsd-ports-bugs
mailing list