Re: git: 756ff0a53c87 - main - sysutils/msktutil: Fix build for FreeBSD >= 15
Date: Thu, 23 Jul 2026 01:14:15 UTC
On Wed, 2026-07-22 at 19:01, Daniel Engberg <diizzy@FreeBSD.org> wrote:
> On 2026-07-22 17:35, Joseph Mingrone wrote:
>> On Wed, 2026-07-22 at 00:39, Daniel Engberg <diizzy@FreeBSD.org> wrote:
>>> On 2026-07-22 00:33, Joseph Mingrone wrote:
>>>> On Tue, 2026-07-21 at 17:59, "Dan Langille" <dan@langille.org> wrote:
>>>>> On Tue, Jul 21, 2026, at 5:19 PM, Daniel Engberg wrote:
>>>>>> On 2026-07-21 22:26, Dan Langille wrote:
>>>>>>> The branch main has been updated by dvl:
>>>>>>> URL: https://cgit.FreeBSD.org/ports/commit/?id=756ff0a53c87b6de3bd7303db91756615985e785
>>>>>>> commit 756ff0a53c87b6de3bd7303db91756615985e785
>>>>>>> Author: Dan Langille <dvl@FreeBSD.org>
>>>>>>> AuthorDate: 2026-07-21 20:24:52 +0000
>>>>>>> Commit: Dan Langille <dvl@FreeBSD.org>
>>>>>>> CommitDate: 2026-07-21 20:25:56 +0000
>>>>>>> sysutils/msktutil: Fix build for FreeBSD >= 15
>>>>>>> * Take maintainership
>>>>>>> * While here, portfmt
>>>>>>> PR: 292735
>>>>>>> ---
>>>>>>> sysutils/msktutil/Makefile | 20 ++++++++++++--------
>>>>>>> 1 file changed, 12 insertions(+), 8 deletions(-)
>>>>>> Port doesn't build after this change using Ports tree because it's
>>>>>> missing inclusion of bsd.port.options.mk as documented in Porters Handbook.
>>>>>> https://docs.freebsd.org/en/books/porters-handbook/book/#slow-patch-extra
>>>>>> Variable "OPSYS" is undefined
>>>>> Thank you. I've been working on it. It passed both poudriere testport and bulk.
>>>> Hi Dan(iel)?,
>>>> Maybe you can detect Kerberos the same way the framework does.
>>>> Mk/Uses/gssapi.mk:93 decides whether base Kerberos is MIT or Heimdal
>>>> with exists(/usr/libdata/pkgconfig/mit-krb5.pc), and exists() works at
>>>> parse time with no framework variables.
>>>> GSSAPI_BASE_USES= gssapi
>>>> .if exists(/usr/libdata/pkgconfig/mit-krb5.pc)
>>>> GSSAPI_BASE_CONFIGURE_ON= --with-krb5=mit
>>>> .else
>>>> GSSAPI_BASE_CONFIGURE_ON= --with-krb5=heimdal
>>>> .endif
>>>> Joe
>> Hello Daniel,
>>> While possible I'm not very fond of these since they tend to get stale and we already have a good established way of pruning checks based on version aka rene@.
>> I didn't have a lot of time to research solutions, hence "Maybe you
>> can...". I'm unsure what you mean by "aka rene." I don't see any
>> messages from rene@ in this thread.
> rene@ periodically prunes the tree for obsolete version checks. There nothing done for if exist and it's really hard to easily find ones since we don't have defined list.
>> On Tue, 2026-07-21 at 23:19, Daniel Engberg <diizzy@FreeBSD.org> wrote:
>>> Port doesn't build after this change using Ports tree because it's missing inclusion of bsd.port.options.mk as documented in Porters Handbook.
>>> https://docs.freebsd.org/en/books/porters-handbook/book/#slow-patch-extra
>> As Dan discovered, simply adding .include <bsd.port.options.mk> above
>> the .if won't work here. GSSAPI_BASE_CONFIGURE_ON, assigned after the
>> include, will get set to --with-krb5=mit, but CONFIGURE_ARGS will not
>> contain --with-krb5=mit. No warning, no error.
> Because ordering is wrong, as shown in Porters Handbook which I linked to.
Daniel,
You must be referring to this example, since it's the only one with a .include:
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100069
EXTRA_PATCHES= ${PATCHDIR}/extra-patch-fbsd10
.endif
.include <bsd.port.mk>
This does not show what you claim. This particular example works
because EXTRA_PATCHES is a plain variable the framework reads later.
GSSAPI_BASE_CONFIGURE_ON is an option helper, and helpers are flattened
into CONFIGURE_ARGS in bsd.port.options.mk. A helper assigned after
that include is silently ignored.
Simply suggesting Dan follow the handbook was not actionable advice
here. If you believe the handbook covers this case, please quote the
part that does.
That said, your general argument makes sense (to me) now. Dan, if you
agree, after the ports tree thaws, you could use arrowd's suggestion
from IRC, that uses a lazily-expanded variable.
> arrowd wrote on IRC:
> First GSSAPI_BASE_CONFIGURE_ON=${MIT_OR_HEIMDAL} and then set MIT_OR_HEIMDAL conditionally after .include
GSSAPI_BASE_USES= gssapi
GSSAPI_BASE_CONFIGURE_ON= ${MIT_OR_HEIMDAL}
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1500047
MIT_OR_HEIMDAL= --with-krb5=heimdal
.else
MIT_OR_HEIMDAL= --with-krb5=mit
.endif
On 16-CURRENT this parses and puts --with-krb5=mit into CONFIGURE_ARGS.
Joe