Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
1 task done
svmhdvn opened this issue Feb 26, 2024 · 2 comments
Open
1 task done

Comments

@svmhdvn
Copy link
Contributor

svmhdvn commented Feb 26, 2024

Prerequisites

  • 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 Notification: New Package Available FreshPorts/freshports#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

@igalic
Copy link
Contributor

igalic commented Mar 21, 2024

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

@bdrewery
Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants