poudriere icon indicating copy to clipboard operation
poudriere copied to clipboard

Option to fail `poudriere bulk -b` if ports listed in `PACKAGE_FETCH_WHITELIST` are skipped

Open svmhdvn opened this issue 1 year ago • 2 comments

Prerequisites

  • [x] Have you checked for an existing issue describing your idea?

What is your proposal?

Have a poudriere.conf option such as PACKAGE_FETCH_WHITELIST_FAIL_ON_SKIP=yes to cause any packages listed in PACKAGE_FETCH_WHITELIST to fail the entire build if they are skipped while fetching.

What is the existing behavior, if any?

The build does mention the reason why fetching is skipped, but it silently continues building the unfetched ports.

What is the motivation / use case for the change?

I have a poudriere server that is as powerful as I can afford right now. It still takes multiple hours to build massive ports such as lang/rust due to CPU and RAM constraints. lang/rust seems to be more and more prevalent as a build dependency for many ports I use in my pkglist.

Instead of trying to build this from source and wait hours before successful poudriere bulk builds, I'd like to fetch the binary instead, since lang/rust is just a build-time dependency for my desired ports only. However, due to Rust's relatively fast upstream release cadence and FreeBSD's official pkg repo latest branch cadence, it takes a while before the newest version of lang/rust hits the official pkg repo. This causes my poudriere bulk -b build to skip fetching lang/rust due to a local/remote ports version mismatch (since I keep my local checkout of the ports repo up-to-date).

lang/rust is the only port in my PACKAGE_FETCH_WHITELIST. I'd like to have the option to fail my poudriere bulk -b run when this package gets skipped while fetching. This would allow me to manually go to my local ports checkout, switch to a previous version of lang/rust that matches the latest official pkg repo version, and rebuild. This will save me hours of time and quite a bit of power usage as well from avoiding the heavy build of lang/rust.

Did you consider any alternatives?

  • FreshPorts is currently working on a feature to help its users watch for new package builds to be released to their respective ABI location in the official pkg repos. This is being tracked in https://github.com/FreshPorts/freshports/issues/542 . Once this feature is available, it should be easy enough to be notified when my particular case will be resolved. However, it's still better to just have the option to fail the build and know the reason for it.

Is this really a ports feature request?

N/A

Example

N/A

Additional context

N/A

svmhdvn avatar Feb 26 '24 21:02 svmhdvn

honestly, even with freshports bringing the promised feature, i would still like to fail my build before building any compiler suite

igalic avatar Mar 21 '24 20:03 igalic

I like it. I think it should be a separate list though. PACKAGE_FETCH_ONLY package list. No other new option should be needed.

bdrewery avatar Apr 19 '24 19:04 bdrewery