Hi! On Fri, 2024-01-05 at 11:37:30 +0800, xiao sheng wen wrote: > 在 2024/1/5 11:09, Guillem Jover 写道: > > > So, my question is: > > > > > > Can dpkg-checkbuilddeps read > > > > > > ||BuildProfileSpec "Registered profile names"pkg.$sourcepackage.$anything > > > in debian/control |Build-Depends section?| > > > > > > Perhaps, it's a bug of dpkg-checkbuilddeps. > > It can obviously parse the build profile, otherwise it would not have > > succeeded when you passed the build profile to it. So, I don't understand > > why this was cloned against dpkg-dev. So I'm closing this now.
> If build profile already exist in env variable like DEB_BUILD_PROFILES, > > dpkg-checkbuilddeps can parse the build profile succeeded, that is right. > > But if there is nobuild profile env variable exist before, can > dpkg-checkbuilddeps parse the debian/control Build-Depends section to > getDEB_BUILD_PROFILES env variable? At present, Is dpkg-checkbuilddeps > parse pkg.$sourcepackage.$anything in debian/control ? I think there's some confusion on how build profiles work, I'd recommend rereading the wiki pages, if there's something not clear I guess the debian-cross list could clarify further. In any case here follows a simplified view of how this works. We mark dependencies (bust mostly build-dependencies) with specific build-profiles. These dependencies will be in effect if the restriction formula evaluates to true, which depends on whether specific build profiles are active, and how the formula looks like. By default there are no active build profile. There's no such thing as a literal «pkg.$sourcepackage.$anything» being parsed, the dpkg code simply parses the dependencies and the formulas, matches the build profiles found in the formulas against active profiles, that are specified via the environment or options such as -P, and evaluates those formulas based on that. > If dpkg-checkbuilddeps parse it, dpkg-checkbuilddeps will pass, then the > buildd will begin build these packages. dpkg-checkbuilddeps always parses the formulas, they just evaluate differently depending on whether the profiles are active or not. Which means, if you want to make the specific profiles active you need to tell the buildd to build that specific package like so, or build it locally (just to bootstrap it), upload then retrigger a rebuild to get a clean build. Regards, Guillem