Re: Poudriere: when fetching a package with porttree from a git source, the generation of logs is slow

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.ports
Message-ID <[email protected]>
On 4/11/26 08:50, Mark Millard wrote:
> On 4/11/26 08:06, Roger Marquis wrote:
>> On Thu, 9 Apr 2026, Mark Millard wrote:
>>> My understanding was that when the ports tree ( /usr/ports/ above ) does
>>> not match the upstream version that can be fetched, including for any
>>> dependency mismatches or option mismatches ...
>>
>> Is this new behavior for 'make fetch'?  Asking because we recently have
>> had a relatively large number of poudriere fetch failures, most without
>> sufficient logging of the cause.  As we reuse /usr/ports/distfiles
>> across architectures and versions it would be helpful if these
>> intentional but unnecessary conditional failures could be overridden.
>>
>> Roger Marquis
>>
>>

Sorry that I forgot to also deal with your switch to a "make fetch"
context, which is not a poudriere context.

Direct use of make was not being covered by my notes.

"man ports" reports:

QUOTE
     fetch      Fetch all of the files needed to build this port from the
                sites listed in MASTER_SITES and PATCH_SITES.  See
FETCH_CMD,
                MASTER_SITE_OVERRIDE and MASTER_SITE_BACKUP.
END QUOTE

It is not the same as "make install-missing-packages" that will attempt
package installs of missing dependencies instead of building them, after
which a "make install" can build and install the port (presuming
everything required was available):

QUOTE

     install-missing-packages
                Install missing dependencies from packages instead of
building
                them.
. . .
     Example 2: Installing Dependencies with pkg(8)

       The following example shows how to build and install a port without
       having to build its dependencies.  Instead, the dependencies are
       downloaded via pkg(8).

         # make install-missing-packages
         # make install

       It is especially useful, when the dependencies are costly in time and
       resources to build (like lang/rust).  The drawback is that pkg(8)
       offers only packages built with the default set of OPTIONS.
END QUOTE

Direct use of make does not do as much as poudriere(-devel) to keep
builds coherent, including for such mixes.

poudriere also reports more about the existence of local differences
from the commits in the ports tree it is using (vs. not having such
differences), which is what the original message was requesting it to do
less of because it takes some time to do that. (Wording simplified.)

> 
> poudriere has  no way of keeping the build coherent unless it follows
> such rules --and with its existing rules may not always be able to do so.
> 
> (Note, poudriere-devel context used:)
> poudriere bulk-s -b documentation in the poudriere-bulk man page reports:
> 
> QUOTE
>               poudriere will only use packages that:
>               •   come from a repository having the same or older version of
>                   pkg.
>               •   do not have a locally fetched package already.
>               •   are not IGNORED.
>               •   match the expected local version.
>               •   match the expected ABI.
>               •   match the expected runtime and library dependencies.
>               •   match the expected OPTIONS when CHECK_CHANGED_OPTIONS is
>                   enabled (default: on).
>               •   is NOT listed in PACKAGE_FETCH_BLACKLIST.
>               •   is NOT listed with -C, or -c, when -t is used.
>               The -v flag can be used to show these decisions during build.
>               Specifing twice will show more details on why some are
> skipped.
> 
> 
>               WARNING: poudriere has no way of determining differences
> outside
>               of the above list.  That is, if the local ports framework, or
>               port, has custom patches or special WITH_FOO knobs (not
> OPTIONS)
>               then it is required to add its name into
>               PACKAGE_FETCH_BLACKLIST.  Otherwise a package may be
> fetched and
>               used that lacks the custom patch or knob.
> 
>               See PACKAGE_FETCH_BRANCH, PACKAGE_FETCH_URL,
>               PACKAGE_FETCH_BLACKLIST, and PACKAGE_FETCH_WHITELIST in
>               poudriere.conf.sample.  The entries in the lists will be
> matched
>               against package names without versions.
> END QUOTE
> 

-- 
===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.