[Bug 256301] bsd.port.mk: fix setting of FLAVOR in _FLAVOR_RECURSIVE_SH

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 31 May 2021 16:31:05 UTC

            Bug ID: 256301
           Summary: bsd.port.mk: fix setting of FLAVOR in
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Ports Framework
          Assignee: portmgr@FreeBSD.org
          Reporter: avg@FreeBSD.org
                CC: ports-bugs@FreeBSD.org

There are several ways of handling recursive targets.
I found at least


It looks that the latter has a couple of problems comparing to others.
First, it does not handle '@' in a port name.
Second, it would set FLAVOR to the empty value even if a package is not
"flavored". That can confuse some ports.

A fast demonstration of the second problem:

$ make -C /usr/ports/lang/gcc9 checksum-recursive
===>   native-binutils-2.33.1_4,1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by native-binutils-2.33.1_4,1 for building

Note how the package name is native-binutils instead of binutils.
A longer demonstration of the problem would be with the package-resursive

That issue was reported and analyzed some time ago, unfortunately with
no action: https://www.mail-archive.com/freebsd-ports@freebsd.org/msg84543.html

The proposed change brings _FLAVOR_RECURSIVE_SH closer to the other
recursion methods and it should fix both of the problems:

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