13.3-BETA1 vs. ports

From: Craig Leres <leres_at_freebsd.org>
Date: Sun, 04 Feb 2024 23:19:08 UTC
I installed a test system (via the amd64 memstick image), copied my port 
options to /var/db/ports, my poudriere make.conf options to 
/etc/make.conf and tried to build a few hundred ports. This stalled out 
trying to build textproc/man2html because of a missing dependency:

     ===>   man2html-3.1.20220714 depends on package: perl5>=5.38.r<5.39 
- not found
     *** Error code 1

     Stop.
     make: stopped in /usr/ports/textproc/man2html
     sea 108 # pkg info | fgrep perl5
     perl5.38-5.38.2_1              Practical Extraction and Report Language

But on one of my production 13.2 systems (using the same port build 
options) I see this:

     zinc 582 # pkg info | fgrep perl
     perl5-5.38.2_1                 Practical Extraction and Report Language

Later I removed all of the packages/work dirs and tried to build just 
textproc/man2html and I noticed this:

     ##################################################

           This is *NOT* the DEFAULT perl version

     It will *NOT* install /usr/local/bin/perl

     It will *ONLY* install /usr/local/bin/perl5.38.2

     The default Perl version currently is 5.36.

     If you want to use this version as the default,
     stop the build now, add this line to your
     /etc/make.conf, and then restart the build.

     DEFAULT_VERSIONS+=perl5=5.38

     ##################################################

(Which likely explains the wacky perl5.38-5.38.2_1 version I saw 
earlier) however:

     sea 54 # pwd
     /usr/ports/textproc/man2html
     sea 55 # make -V DEFAULT_VERSIONS
     lua=5.4 mysql=8.1 perl5=5.38 pgsql=13 php=83 python3=3.11 
python=3.11 ssl=openssl31
     sea 56 # fgrep perl5 /etc/make.conf
     DEFAULT_VERSIONS+= perl5=5.38

So I'm already picking a different default perl5 the approved way.

Being new to the insides of release engineering, I don't know how the 
/usr/ports that is included is populated but I assume some changes will 
be be needed for BETA2 (e.g. appended). Also the problems I find with 
the bundled ports tree wouldn't be a problem for someone using a current 
main branch of /usr/ports (like I do on my build servers).

		Craig

zinc 1424 # pwd
/usr/ports/Mk
zinc 1425 # git log bsd.options.mk | head -6
commit 064923481f420136c46895d1047344c580be3c25
Author: Mathieu Arnold <mat@FreeBSD.org>
Date:   Sat Feb 3 13:11:52 2024 +0100

     Mk/bsd.options.mk: fix typo

zinc 1426 # git diff 47564762a319 bsd.options.mk
diff --git a/Mk/bsd.options.mk b/Mk/bsd.options.mk
index dba8829e7d7..83a03c885ff 100644
--- a/Mk/bsd.options.mk
+++ b/Mk/bsd.options.mk
@@ -555,7 +555,7 @@ ${deptype}_DEPENDS+=        ${${opt}_${deptype}_DEPENDS}
  .        endif
  .        for p in ${SUBPACKAGES}
  .          if defined(${opt}_${deptype}_DEPENDS.${p})
-${deptype}_DEPENDS.{p}+=       ${${opt}_${deptype}_DEPENDS.${p}}
+${deptype}_DEPENDS.${p}+=      ${${opt}_${deptype}_DEPENDS.${p}}
  .          endif
  .        endfor
  .      endfor
@@ -631,7 +631,7 @@ ${deptype}_DEPENDS+= 
${${opt}_${deptype}_DEPENDS_OFF}
  .        endif
  .        for p in ${SUBPACKAGES}
  .          if defined(${opt}_${deptype}_DEPENDS_OFF.${p})
-${deptype}_DEPENDS.{p}+=       ${${opt}_${deptype}_DEPENDS_OFF.${p}}
+${deptype}_DEPENDS.${p}+=      ${${opt}_${deptype}_DEPENDS_OFF.${p}}
  .          endif
  .        endfor
  .      endfor