On Thu, Mar 22, 2007 at 01:17:17AM +0100, Pierre Habouzit wrote:
> > In the original proposal, 'current' was the flag to tell the packaging tools
> > that pyversions -d *should* be used.  There is of course nothing that stops
> > a maintainer from invoking pyversions -d manually;

>   Okay I see. As a coder, I don't like it then, and I feel reinforced in
> my gut dislike of that field. "current" is declarative, and does not
> says anything about what the packager really put in his debian/rules.

That's fine.  I'm not wedded to the, ah, "current" implementation; my
concern is that it not be gutted from the policy because of concerns about
the implementation, instead of finding a non-buggy solution.

>   If he does not writes what has to be to multi-build the package, and
> that he does not puts current, well, the package basically will only be
> built for current.

And in that case, do all of the helpers correctly calculate the Provides
based on the contents of the binary packages?

>   And as a matter of a fact, maintainers do not seem to understand what
> current is for, Piotr python2.5-only package is a very good example of
> this IMHO.

Well, information surrounding 'current' is certainly muddled at present, but
I don't think that points to a technical flaw.

> > the question is, how will
> > doing so fit into the python policy, will there be support for automating
> > this in the helper tools, and will packages that do this (and are therefore
> > binNMUable for python transitions) be automatically detectable from the
> > Sources and/or Packages files?

>   like I say later, I knew it was what really matters for you. And IMHO
> it's really more interesting that the dh_py* tools explains what has
> really been built. They already do the job to generate the correct
> substs for python:Depends and python:Provides, so basically, the code to
> detect that exists.

Yes, so automation of the package builds themselves is addressed, with or
without 'current'.

>   One just has to make it clear in the Packages.gz files. Like I said, I
> don't really think Sources.gz are relevant, as it's declarative from the
> maintainer PoV.

I can't think of any reason it would be a problem to have this information
in Packages only.

>   But like said, I've not yet thought about all the consequences yet,
> and I do not know what's needed or not. I've the suspicion that XB-P-V
> could indeed be the way to go (even if for packages with modules
> Provides: show that information already), but I'm not sure that the
> current use of XB-P-V carries all the information we need.

AIUI the current use of XB-P-V, as endorsed by the python policy, indicates
what versions of python the package has been built for, which is not all
that relevant for binNMUs; the same information can already be extracted
(though less easily) from the provides/depends.  What is needed is a
description of what will happen to the package if a buildd is *attempted*
against a particular version of python.

>   Thanks. I'll try to make this proposal driven from our needs, and not
> trying to advantage this or that implementation of the dh_py* helpers,
> which was the ground of the argument when I joined this (mess ?) half a
> year ago. I think with your explanations, I quite understand the
> requirements from the user and packager point of view (NEW, number of
> packages efficiency, etc...), and I believe the sole other need is the
> ease to deal with transitions from the RM PoV and for that it needs to
> answer the 3 questions:

>   * what should be binNMUed for a python version removal (assuming it
>     was not default btw ;P), that one is easy IMHO: basically nothing
>     _needs_ to, but:
>       + packages with a strong dependency on that pythonX.Y and _no_
>       python dependency have to be dropped altogether (or likely need
>       porting and are not binNMUable) ;
>       + for space efficiency we could think of binNMUing every package
>       that has built a public module for that particular python
>       version. Here, XB-P-V is not needed if we have the Provides that
>       is mandatory (and that is what Joss proposes, and I think it's
>       sane anyway).

In addition to space efficiency, this should be done to ensure that packages
are in a consistent state at release time, so that we don't risk a security
update significantly changing the contents of one of these packages.

>   * what should be done for a default python change: here concerned
>     packages are:
>       + packages with private binary extensions,
>       + packages built only for the "current" python version.

Yes, I believe that's correct.

>   * what should be done for a new python: here concerned packages are
>     _only_ packages that build public binary modules for more than the
>     "current" python. Here again, XB-P-V does not seems required if the
>     Provides is, they provide the same information, except for the "I'm
>     only built for current and if you binNMU me I won't generate a new
>     package anyway".

Right.

>   So that first quick look just says that what we need is a way to find
> out about packages that:
>   * build private extensions (needed for question (2));
>   * only build things for the default python version (opposed to those
>     who build for as many as possible), knowing that I'm only speaking
>     of packages with public binary modules here.
>     (needed for 2, and for 3)

Looks right to me.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to