On 1-7-2024 19:22, Tomoaki AOKI wrote:
On Mon, 1 Jul 2024 15:46:18 +0200 DutchDaemon - FreeBSD Forums Administrator<dutchdae...@freebsd.org> wrote:Hey, I use `pkg prime-origins` on my servers to pick up the ports that Poudriere needs to build for that (cluster of) server(s). This doesn't work for flavors, or I'm missing a trick. E.g.: I have installed the "guestagent" flavor of emulators/qemu ("qemu-guest-agent" in pkg terms), which gets built in Poudriere as "emulators/qemu@guestagent". All good and well. But `pkg prime-origins` picks it up as "emulators/qemu", which, of course, triggers Poudriere to build the whole thing, "emulators/qemu@default". Which I don't need. So either pkg needs to be amended to be able to recognize and report a flavor, or I have to put this in the jail's make.conf on Poudriere. I'm not sure if there's a place for that in a generic make.conf for all ports in that specific jail; you know, one that contains all-encompassing lines like DEFAULT_VERSIONS= php=82 apache=2.4 mysql=80 ssl=openssl python=3.9 python3=3.9 Anyone?Hi. pkg records informations about FLAVORs in annotations only. You should search output from `pkg -A <packagename>` for each pkg. Does the script on brew.bsd.cafe [1] help understanding/usable? [1] https://brew.bsd.cafe/TomAoki/sh_scripts/src/branch/main/poudlist-all Regards.
That actually put me on a path forward, but I decided to sort of brute-force it, so I could run the script anywhere.
In fact, Ansible runs it on all servers (grouped by build jail names on Poudriere) and gathers/sorts the output to populate the build lists for Poudriere, which then fires up the jails and builds the associated repos.
for port in $( /usr/local/sbin/pkg prime-origins ) doflavor=$( /usr/local/sbin/pkg info -A "${port}" | /usr/bin/grep "flavor" | /usr/bin/awk '{print $NF}' | /usr/bin/grep -v "default" )
[ "x${flavor}" = "x" ] && echo "${port}" || echo "${port}@${flavor}" done That gives me exactly the output I need. Thanks! DD
OpenPGP_signature.asc
Description: OpenPGP digital signature