[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