Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Apr 2017 13:37:33 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 218827] r438058 and r438901 cause trouble for PACKAGES settings with colons in them
Message-ID:  <bug-218827-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218827

            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@FreeBSD.org
          Reporter: dim@FreeBSD.org
                CC: freebsd-ports-bugs@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?=3D/share/dim/dist/FreeBSD:12:amd64/latest

On an i386-freebsd10 box:

  PACKAGES?=3D/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 a=
bout
duplicate targets:

$ make foo
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate sc=
ript
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previo=
us
script for "/share/dim/dist/FreeBSD" defined here
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate sc=
ript
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previo=
us
script for "/share/dim/dist/FreeBSD" defined here
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate sc=
ript
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previo=
us
script for "/share/dim/dist/FreeBSD" defined here
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 5130: warning: duplicate sc=
ript
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previo=
us
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?=3D     ${PACKAGES}/${PKGREPOSITORYSUBDIR}
.if exists(${PACKAGES})
_HAVE_PACKAGES=3D yes
PKGFILE?=3D       ${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 simi=
lar
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 sc=
ript
for target "/share/dim/dist/FreeBSD" ignored
make[1]: "/share/dim/ports/Mk/bsd.port.mk" line 3294: warning: using previo=
us
script for "/share/dim/dist/FreeBSD" defined here
=3D=3D=3D>  License GPLv3 accepted by the user
=3D=3D=3D>   gmake-4.2.1_1 depends on file: /usr/local/sbin/pkg - found
=3D=3D=3D> Fetching all distfiles required by gmake-4.2.1_1 for building
=3D=3D=3D>  Extracting for gmake-4.2.1_1
=3D> 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.

--=20
You are receiving this mail because:
You are on the CC list for the bug.=



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