[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bits from the DPL (April 2019)



Bill Allombert <ballombe@debian.org> writes:

> Note that policy does not actually require that dpkg is used. Instead it
> goes to great length to describe what is the interface to dpkg that
> packages must relie on. This makes sense since this allow dpkg to evolve
> without breaking package policy compliance.

Personally, I think this sort of thing is more of a bug than a feature
given the role that I believe Policy should serve in the project.

I would like there to be a detailed technical specification of the exact
contents of Debian packages and the exact mechanics of how they work.  I
*don't* think that Policy is that document, or should be.  One good place
for such a specification to live would be dpkg.  There are probably
others.

The mandate of Policy is to specify the rules that packagers need to
follow (plus the rules they should follow even if they're not required to
follow) to integrate a package properly into Debian.  In other words, its
function in Debian is an instruction manual, not a technical
specification.  The goal is to convey to packagers the information they
need to know, the API that they need to follow, and the rules about
software behavior that they need to convince the software they're
packaging to conform to.

Given that goal, one of the primary risks of Policy is that it's
overwhelming and impossible to navigate.  Fewer and more straightforward
rules leads to broader adoption and therefore better and more consistent
packages.  Adding a complete technical specification of the artifacts used
behind the scenes by Debian components, however worthy of a goal in its
own right, mostly makes life *harder* for the packager reading Debian
Policy if what they are actually supposed to *do* is "run this command as
part of your build."

I think it's important for Policy to be comprehensive and try to deal with
the edge cases.  But if the answer for all packages is "run this command,"
I think Policy should just say "run this command" and not get into the
details of what that command does unless that's really something a
packager needs to know to understand the behavior of their package.  (But
if there is such a detailed specification, and I too would love for one to
exist, Policy can certainly link to it.)

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: