On 2020-09-08 08:36, Niels Thykier wrote: > Fundamentally, the difference between the two are: > > * _PROFILES is a "new"[0] thing with a specific purpose to reduce > build-dependencies (at least in this case). It ends up in d/rules > for skipping builds of specific packages (e.g. "nopython") > > * _OPTIONS is the thing that has been here since the "dawn of time" to > enable the builder to tweak the build in a standardized way. > > (Note that their definitions do not overlap) > > Basically, we ended up in the situation like this with nocheck[1]: > > * We had _OPTIONS with nocheck for at least a decade and probably more. > - I.e. _OPTIONS is what everyone wrote in their d/rules file to > implement policy. > > * We invented _PROFILES and supported nocheck to assist cross-builders > and bootstrappers, who generally want as few build-depends as > possible even at the expense of running tests (cross-builders often > cannot run them anyway). > - I.e. _PROFILES is what the dependency resolvers look for when > deciding which build-depends to install. > > And that is how you end up with WET Debian packaging. > > I hope that cleared the relationship between _OPTIONS and _PROFILES and > how we got here.
Yes, thank you for the background -- that was really helpful. Coming back to the practical problem from a maintainer's point of view, unless I'm mistaken, that means: nocheck ------- A recipe such as override_dh_auto_test: ifeq (,$(filter nocheck,$(DEB_BUILD_PROFILES))) dh_auto_test endif is sufficient as "dh_auto_test" will honor possibly present _OPTIONS, but override_dh_auto_test: ifeq (,$(filter nocheck,$(DEB_BUILD_PROFILES))) custom-test-command endif is not, as "custom-test-command" will be executed even if DEB_BUILD_OPTIONS=nocheck is set. nodoc ----- As recipes frequently follow the pattern of override_dh_auto_build: dh_auto_build ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) build-docs-command endif DEB_BUILD_OPTIONS=nodoc gets ignored. vice versa ----------- And the same applies when _OPTIONS is filtered instead of _PROFILES. Did I get that right? Christian