How can I disable that a rosdistro package is build on a certain operating system?
Concretely, I am maintaining a camera driver that relies on a vendor-provided SDK which is not available under RHEL9 (just Ubuntu).
Since the launch of Kilted, I get daily mails like this, informing me that the build on RHEL9 failed:
Build failed in Jenkins: Kbin_rhel_el964__spinnaker_camera_driver__rhel_9_x86_64__binary
The package builds fine on Ubuntu, so I don’t want to disable building under Kilted altogether. How can I just disable building under RHEL9?
You can block builds on specific release targets in the buildfarm config:
For example kilted rhel builds are here:
An example can be seen here:
I generally recommend that you also open an issue upstream to note that this is being blacklisted and so that in the future users can find out why a package is missing from the build.
After changing the track.yaml as suggested, bloom-release asks this question:
Your track's 'actions' configuration is not the same as the default.
Should it be updated to the default setting?
I answered “No”. Let’s see if this does the trick. I didn’t see any mention of “rpm” in the console log of bloom-release and no error messages, so that’s a good sign.
I hope this prevents the perpetual attempts to build the binaries.
You have solved that, but you have triggered a new perpetual attempts to build the source packages which are the precursors to the binaries.
Removing the track from bloom will allow bloom to proceed. But then the build farm is going to fail because removing the action just prevents the source rpm from being generated by bloom. So the build farm is going to fail even sooner because it fails to fetch the source rpm which it expects that bloom will have generated.
If you want the build farm to stop trying to build it you need to use the blacklist I mentioned above. Note that it only reconfigures once a day so there’s some latency on the blacklist being updated for the job to be disabled.
Following @tfoote’s suggestion by submitting a PR against the ROS build farm config fixed the issue. No more failure messages from the build farm about these packages.
Thanks!
You can only do it per buildfarm config (rolling see available ones here) and not explicitly on architecture. But we have configured arm64 with it’s own config because we know it is moderately specific so you can block it in that config separately.
So for arm64 rolling you would add it to the package_blacklist entry here:
I don’t think that we have a formal documentation of tracks.yaml beyond the bloom documentation references.