Page MenuHomeFreeBSD

bsd.port.mk: fix setting of FLAVOR in _FLAVOR_RECURSIVE_SH
ClosedPublic

Authored by avg on May 31 2021, 4:22 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 10, 6:03 PM
Unknown Object (File)
Feb 25 2024, 10:57 AM
Unknown Object (File)
Feb 21 2024, 4:15 AM
Unknown Object (File)
Jan 27 2024, 3:34 PM
Unknown Object (File)
Jan 27 2024, 6:58 AM
Unknown Object (File)
Jan 26 2024, 2:33 AM
Unknown Object (File)
Jan 22 2024, 12:26 AM
Unknown Object (File)
Jan 18 2024, 3:26 AM
Subscribers

Details

Summary

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

  • Mk/Scripts/do-depends.sh
  • Mk/Scripts/depends-list.sh
  • _FLAVOR_RECURSIVE_SH

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 target.

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.

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

avg requested review of this revision.May 31 2021, 4:22 PM
This revision was not accepted when it landed; it landed in state Needs Review.Jun 1 2021, 7:18 AM
This revision was not accepted when it landed; it landed in state Needs Review.
This revision was automatically updated to reflect the committed changes.