Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Jul 2026 19:43:57 -0700
From:      Steve Kargl <kargls@comcast.net>
To:        ports@freebsd.org
Subject:   Re: What is a FLAVOR and how to unbreak ports?
Message-ID:  <f73caf78-c17c-40e6-9b02-c6137725029c@comcast.net>
In-Reply-To: <SA1PR11MB88113E9A84985B293F61293BE6CC2@SA1PR11MB8811.namprd11.prod.outlook.com>
References:  <add809af-41f1-4f3a-9f8d-246f2a01ec36@comcast.net> <CALH631nghtQpj%2BLoxsx3SL7tfr_URbW7pHRZScLpyki8HvBjBg@mail.gmail.com> <6ce75735-75f7-4852-814c-91b8105692e6@comcast.net> <SA1PR11MB88113E9A84985B293F61293BE6CC2@SA1PR11MB8811.namprd11.prod.outlook.com>

index | next in thread | previous in thread | raw e-mail

On 7/26/26 18:41, Edward Sanford Sutton, III wrote:
>    Flavors are a way to have separate packages created for different 
> configurations of a port. That way users of pkg do not need to go 
> manually build software for relatively common software variation 
> possibilities that they may want or need in place of a single default 
> set of options.

Yeah, I read the porter's documentation.  I could not find where
it mentions a comprehensive list of the FLAVORs.  There is no
discussion of how one can query for the list of FLAVORs.

> On 7/26/26 13:18, Steve Kargl wrote:
>> On 7/26/26 12:51, Gleb Popov wrote:
>>> On Sun, Jul 26, 2026 at 10:43 PM Steve Kargl <kargls@comcast.net> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Updating a laptop that had a year old FreeBSD on it
>>>> to top-of-tree.
>>>>
>>>> % portmaster -Byd --force-config sqlite3 |& tee sgk.log
>>>
>>> Try updating libclc first using portmaster or plain make.
>>
>> I did try plain make in libclc.  See the end of original email.
>> make dies with an error about llvm15 no longer being supported.
>> If llvm15 is no longer supported on fbsd 16, then the libclc
>> Makefile should simply skip trying to build for llvm15.
>>
>>> Figure out what flavor you need by looking at the installed package's 
>>> name
>>
>> That's the question.  What is a FLAVOR and how do I determine what
>> FLAVOR is the right flavor?
>>
>>> pkg info -x libclc
>>>
>>> If going the plain make route, append FLAVOR=llvmXY to make invocation.
>>
>> Is there a comprehensive list of FLAVORs?  'man make.conf' does not
>> mention FLAVOR.  Is it possible to set FLAVORS there?
> 
>    Flavors are a property of each port individually and not an 
> externally defined property; some different ports use common flavors 
> like 'nox11' but there is no hard rule to it. In the ports tree you can 
> list flavors with `make -C /usr/ports/devel/libclc -VFLAVORS` and drop - 
> C if you run it in the port's folder.

Well, that's inconvenient, but that make command should be provided
in the porter's documentation.  At the moment, portmaster dies
with some mystery error.  Going to /usr/ports/devel/libclc and type
'make' leads to all sorts of fun.  libclc dies because llvm15
is no longer supported; so, well, the port shouldn't even try
to build that flavor.

>    For manually running make, `make -C /usr/ports/devel/libclc 
> FLAVOR=llvm17` would be an example of overriding it. Not sure if there 
> are other ways to express it.

That's the problem.  There are apparently 8 flavors.  How do I determine
I need llvm17 instead of llvm20?

>    Some changes I assume should happen:
>    1. The default of libclc should be reconsidered if it is broken on a 
> platform unless it is being actively worked on. Why are we defaulting to 
> the oldest compiler, a compiler not included as a base compiler on any 
> supported FreeBSD version, and not even having a comment as to why?

Good question.


>> In the old days, one could cd into any directory under /usr/port
>> and simply type 'make'.
> 
>    Unless things are broken. Having been building things since 2004, you 
> can usually find broken things when you look.

I've been building ports since its inception.  In fact, I was the
maintainer for lang/f2c and few others prior to the creation of
portmgr.  portmgr broke lang/f2c, I received daily complaints it
was broken, and it only wasted a few weeks of my time trying to
figure out what portmgr did.  I dropped maintainership decades
ago due to that experience.

  at over 30,000 port
> folders, its hard to have the tree in a state where 'nothing' fails.

Sure, I find a number of issues every time I need to rebuild
ports.  I fix/workaround the issue and move on with life.  The
math/arpack-ng port now has a mpich and openmpi flavor, because
I got tired of editing out the hardcoded use of mpich and asked
for either 'none' or 'openmpi' build option.  Unfortunately,
math/octave has a hardcoded dependency on arpack-ng@mpich.  Fun
times.

>> My actual problem is building devel/node24, which dies with an
>> error:
>> ld.lld: error: undefined symbol: sqlite3session_patchset.
> 
>    I'd have to see a more complete error log to guess properly. 

I've found a fix.  It seems that node24 requires sqlite3 built
with the sessions compile option set.  For some reason, it was
unset when I last built it on my system.  I suppose default
options change over time.

-- 
steve


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f73caf78-c17c-40e6-9b02-c6137725029c>