Bill Allombert <[email protected]> writes:
> On Sun, Feb 08, 2026 at 10:54:33AM -0800, Russ Allbery wrote:

>> I think that's true, if I understand what you mean by "defined," but
>> I'm not sure why it matters. Could you say more?

> A lot of Debian packages contain libraries and headers files that can be
> used by Debian users to compile software. These packages are not
> supposed to be restricted to the purpose of building other Debian
> packages.

> On the other hand Debian users are not expected to use the same flags as
> dpkg-buildflags set, so the libaries provided by Debian should not
> require the use of dpkg-buildflags.

> In the original issue leading to this bug report, it was suggested to
> add a flag to dpkg-buildflags that would change the ABI on some
> architecture. Doing so would have required users to use the same flags
> when compiling software using the libraries.

> Ultimately, the flags were set directly at the compiler level which
> sidesteps this issue as long as the user use a Debian-provided compiler.

> In conclusion, any requirement to build Debian package with a certain
> compiler flag must address the issue of user-build software and not rely
> on dpkg-buildflags.

Oh, I see. Yes, this is a very good point. That means that the utility of
dpkg-buildflags is probably limited to cases where we want to set default
flags for Debian packages by (lowercase) policy, but not cases where we
want to change the ABI in ways that users of libraries need to know about.
In other words, cases where the flags are desirable but not mandatory (and
the original bug to which I'm responding was focused on mandatory flags).

I do think there are a lot of remaining cases that fall into the former
category, though. The one that comes up a lot is hardening flags, which we
have sometimes pushed into the compiler and sometimes managed with
dpkg-buildflags. Another use case is correctly handling reproducible
builds, which downstream users are not as concerned with.

Given that, I think this part still does apply?

> Thus I think this sentence to be overstated:

> 'the package maintainer is prepared to track future changes to the default
> compiler flags and update the package as necessary'

For example, if we add new flags for reproducible builds, the packages
that don't use dpkg-buildflags really should pick those up, because
reproducible builds is a general distribution goal. "Should," not "must,"
but it feels to me like should is appropriate here.

I suppose if we're committed to always changing the compiler, then this
isn't needed and dpkg-buildflags is more of an "ought," but my impression
was that we preferred to use dpkg-buildflags where possible.

-- 
Russ Allbery ([email protected])              <https://www.eyrie.org/~eagle/>

Reply via email to