Re: what is pkg annotation ports_top_git_hash?

From: Kyle Evans <kevans_at_FreeBSD.org>
Date: Thu, 05 Sep 2024 14:34:56 UTC
On 9/5/24 05:06, Ronald Klop wrote:
> 
> *Van:* Baptiste Daroussin <bapt@freebsd.org>
> *Datum:* donderdag, 5 september 2024 11:38
> *Aan:* Ronald Klop <ronald-lists@klop.ws>
> *CC:* ports@freebsd.org
> *Onderwerp:* Re: what is pkg annotation ports_top_git_hash?
> 
>     On Thu 05 Sep 11:30, Ronald Klop wrote:
>      > Hi,
>      >
>      > I'm looking into some metadata of a pkg.
>      > I found annotation ports_top_git_hash which looks like what I'm
>     looking for.
>      >
>      > But I found that not all pkgs in one build have the same
>     'ports_top_git_hash'.
>      >
>      > See for example:
>      > curl -s
>     https://pkg.freebsd.org/FreeBSD:13:aarch64/latest/data.txz
>     <https://pkg.freebsd.org/FreeBSD:13:aarch64/latest/data.txz> | tar
>     -x -f - --to-stdout data | jq '.packages[] | {origin: .origin,
>     ports_top_git_hash: .annotations.ports_top_git_hash }' | jq
>     .ports_top_git_hash | sort | uniq
>      > "1b6eada811a"
>      > "60a177caf14"
>      >
>      > I found a reference to this in the poudriere source code, but it
>     didn't make it more clear for me.
>      >
>     https://github.com/freebsd/poudriere/blob/b2360d43e63e098a9afd3243f81f7fe8852c8965/src/share/poudriere/common.sh#L1114 <https://github.com/freebsd/poudriere/blob/b2360d43e63e098a9afd3243f81f7fe8852c8965/src/share/poudriere/common.sh#L1114>
>      >
>      > Wat does 'ports_top_git_hash' mean? Isn't it the git hash of the
>     top directory of the ports tree?
> 
>     This the hash of the top directory of the ports tree at the moment
>     the package
>     was built.
> 
>     Best regards,
>     Bapt
>     ------------------------------------------------------------------------
> 
> 
> 
> Hi,
> 
> That is what I hoped for. How can it be that one package build contains 
> multiple values for this? Is that because not all packages are rebuild 
> every time?
> 

Hi,

Note that the cluster infrastructure doesn't do a fresh build every 
time, so you'll see packages across multiple builds that didn't need a 
rebuild (any kind of version/dependency bump).  If you started a fresh 
bulk -a today, I'd expect they would all have the same annotation, but 
these packages carried over don't get a spurious rebuild to correct any 
metadata.

Thanks,

Kyle Evans