Hello.

On 2025/11/11 1:01, Andrea Cocito wrote:
On 10 Nov 2025, at 09:05, Tatsuki Makino <[email protected]> wrote:
However, if the reason curl is being rebuilt is due to an upgrade of the it 
depends on, then rebuilding only ftp/curl can avoid rebuilding rust.
>
I am not completely sure this is correct if we are talking in terms of 
*reprducible* builds.

Hmm, it seems like those kinds of things can often be fitted into certain 
patterns.
For example...

In principle an upgrade in libnghttp2 might trigger a change in the behavior of 
curl which (even if curl is only a build dependency of rust) might change the 
way rust is built.

In cases like this, it is expected that the PORTREVISION of all affected ports 
will be bumped :)

For this example it is merely theoretical but if you consider a build 
dependency on a compiler which on its turn depends on a lot of stuff I would 
not bet on it.

IMHO the only way a port build might be “reproducible” is:
1. Make a clean and empty machine (from release, no ports, no packages).
2, Check out somehow the port tree at a stable state
3. cd /usr/ports/some/port ; make

This has always been *the* way to build a “clean” port on FreeBSD.

These are, um...
For instance, the preprocessor arguments have ended up in this kind of order.
-I/usr -I/usr/local -I. -I..
There are settings where none of --enable-feature, --disable-feature, 
--with-feature and/or --without-feature are configured.
However, the ports related to that feature were changed so that other ports 
would install them, causing them to be automatically detected.
There is no include guard, or the way the guard is implemented overlaps with 
other guards, causing the contents to be abnormal.
... There are a few causes that I can immediately recall, but I think there are 
almost no other causes beyond these. ... Probably :)

Unfortunately, in the last months/years, this often does not even work; and 
it’s quite sad, when it happens, to see #notabug #wontfix #usepoudriere #usepkg
Hardware, architecture... The new programming language standard, especially 
C++...
I think it's become impossible to keep up because too many things are 
constantly changing :)

Regards.


Reply via email to