Setting of DEFAULT_VERSIONS of php and poudriere's ports compilation woes in my setup

From: Michael Grimm <trashcan_at_ellael.org>
Date: Sat, 02 Dec 2023 20:37:40 UTC
Hi,

I am following the git repository for ports and using poudriere to compile those.

Today I stumbled over:

	20231125:
	  AFFECTS: users of lang/php81
	  AUTHOR: bofh@FreeBSD.org

	  The default version of PHP has been switched from 8.1 to 8.2.
	[…]


I had had the following definition for default php version in my poudriere make.conf:
	DEFAULT_VERSIONS+= php=81 […]


Now, I *removed* 'php=81' from DEFAULT_VERSIONS and ended up with the following errors from poudriere:
	Warning: (local/wpm): Error: local/wpm depends on nonexistent origin 'lang/php8.2-extensions'; 
				Please contact maintainer of the port to fix this.
	Warning: (mail/roundcube@php8.2): Error: Invalid FLAVOR 'php8.2' for mail/roundcube
	Error: Fatal errors encountered gathering ports metadata

Understandable to me because all relevant ports are named as 'php82'...


I do have that local port local/wpm defined as follows:
	[…]
	RUN_DEPENDS+= php${PHP_DEFAULT}-extensions>0:${PORTSDIR}/lang/php${PHP_DEFAULT}-extensions
	RUN_DEPENDS+= roundcube-php${PHP_DEFAULT}>0:${PORTSDIR}/mail/roundcube@php${PHP_DEFAULT}
	[…]


Adding 'DEFAULT_VERSIONS+= php=82 […]' to my poudriere make.conf resolves this issue.


It looks like $PHP_DEFAULT in port definition without 'DEFAULT_VERSIONS+= php=82' in make.conf translates to an erroneous 'php8.2' and runs into errors.

Whereas the explicit definition of 'DEFAULT_VERSIONS+= php=82' in make.conf is resulting in a $PHP_DEFAULT translating to 'php82' which successfully compiles those ports without complaints.


I really don't understand what I am doing wrong. And I would appreciate if someone could explain it to me.


Thanks in advance and regards,
Michael