Re: Bug#758234: it's actively harmful

2014-10-30 Thread Santiago Vila
On Wed, Oct 29, 2014 at 07:30:57PM +0100, Matthias Urlichs wrote:
 That's obvious. What is not so obvious, to me, is why we would still
 want the current policy in the first place, given that everything(?)
 is resolved via dependencies these days.

Maybe because current policy allows one to take the following set of packages:

+ Packages of required priority.
* Packages of important or higher priority.
* Packages of standard or higher priority.

and all those sets are self-consistent (i.e. they don't have
dependencies outside the set).

I think this is a useful and nice property, but I don't know how many
people rely on it.

 The only practical effect of these priorities I can recognize is that
 apt* refuses to remove Essential packages without asking a question
 which reminds me what the Shift key is for.¹²

Minor clarification: Essential is a flag, not a priority.

Essential packages are almost always required, but they may also be
extra if they Conflicts/Replaces an already existing essential package,
as an alternate implementation for the same functionality (not that there
are a lot of packages like that, but they are not excluded by policy).

In either case, it is the essential flag, not the required priority,
what makes apt-get to ask you enter the phrase yes, i agree this is
very bad.

Thanks.


--
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141030105116.ga2...@cantor.unex.es



Re: Bug#758234: it's actively harmful

2014-10-30 Thread Matthias Urlichs
Hi,

Santiago Vila:
 Maybe because current policy allows one to take the following set of packages:
 
 + Packages of required priority.
 * Packages of important or higher priority.
 * Packages of standard or higher priority.
 
 and all those sets are self-consistent (i.e. they don't have
 dependencies outside the set).
 
 I think this is a useful and nice property, but I don't know how many
 people rely on it.
 
It certainly is useful to have these sets of packages IMHO.

But the work to keep the priorities consistent is not useful when you
already have a tool that adds them (and nothing else) to a set of packages
when you need it, as opposed to when ftpadmin gets around to updating the
override file.

 Minor clarification: Essential is a flag, not a priority.
 
*Oops* Thanks.

-- 
-- Matthias Urlichs


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141030160945.gb8...@smurf.noris.de



Re: Bug#758234: it's actively harmful

2014-10-29 Thread Santiago Vila
On Thu, Oct 23, 2014 at 01:37:11PM +0100, Simon McVittie wrote:
 I agree with your analysis, although perhaps not the wording. Maybe
 something like:
 
 # The priority of a package should be based on the functionality
 # of the package itself, and not on whether high-priority packages
 # depend on it. In particular, shared libraries should normally
 # have a low priority, even if required or essential packages
 # happen to depend on them.

If we are going to take that route, we might just make all libraries
optional as a general rule.

 [footnote: This ensures that a
 # high-priority package transitioning to a new library dependency
 # does not result in both the old and new libraries being installed
 # on new systems, due to the old library's priority remaining high.]

However, I don't like the wording of the footnote.

Why would the old library's priority remain high to begin with?

It sounds as Lack of manpower in the FTP team forced us to change the
rules about package priorities, since they did not change priorities
often enough.

I hope that's not the real reason behind this proposal, because that
would be a problem by itself that should be addressed separately.

Thanks.


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141029124144.ga4...@cantor.unex.es



Re: Bug#758234: it's actively harmful

2014-10-29 Thread Santiago Vila
On Thu, Oct 23, 2014 at 03:04:43AM +0200, Adam Borowski wrote:
 can't even be detected via automated means.

Why not?


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141029124427.gb4...@cantor.unex.es



Re: Bug#758234: it's actively harmful

2014-10-29 Thread Simon McVittie
On 29/10/14 12:41, Santiago Vila wrote:
 If we are going to take that route, we might just make all libraries
 optional as a general rule.

That seems reasonable to me, with the possible exception of the few
libraries that could justify their own priority via the wtf, why isn't
this installed? rule of thumb, like libc6.

 [footnote: This ensures that a
 # high-priority package transitioning to a new library dependency
 # does not result in both the old and new libraries being installed
 # on new systems, due to the old library's priority remaining high.]
 
 However, I don't like the wording of the footnote.
 
 Why would the old library's priority remain high to begin with?

To have a concrete example to talk about, let's say cron (Priority:
important) moves from using libstuff0 to using libstuff1.

If libstuff0 and libstuff1 both come from a libstuff source package,
but you have more than one apt source - e.g. stable on a mostly testing
system - then your apt can still see the older libstuff0 binaries, with
the important priority that was appropriate when cron/stable depended
on them. I believe this means it won't automatically get rid of libstuff0?

If libstuff0 and libstuff1 are in parallel stuff0, stuff1 source
packages (like Gtk2 and Gtk3), it is not clear to me how the ftp team
should be expected to know that libstuff0 should be demoted from
important to optional, or when would be the correct time to do so.

It could equally well be a core package transitioning from one
command-line tool to another (dpkg moving from lzma to xz), or from
command-line tool to library (dpkg's tar.xz support again), or changing
its implementation to not need one of its old dependencies (systemd used
to require libdbus-1-3, but has switched to its own D-Bus implementation).

 It sounds as Lack of manpower in the FTP team forced us to change the
 rules about package priorities, since they did not change priorities
 often enough.

Is your intention that the maintainer of libstuff would track the
transition and buildd status, somehow work out when libstuff0 no longer
qualified for important priority, and file ftp.debian.org bugs to demote
it? Or that the ftp team determine (in some hopefully automated way)
that libstuff0 no longer qualifies for important, and demote it? Or what?

S


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/5450ec0f.8000...@debian.org



Re: Bug#758234: it's actively harmful

2014-10-29 Thread Santiago Vila
On Wed, Oct 29, 2014 at 01:30:55PM +, Simon McVittie wrote:
 On 29/10/14 12:41, Santiago Vila wrote:
  If we are going to take that route, we might just make all libraries
  optional as a general rule.
 
 That seems reasonable to me, with the possible exception of the few
 libraries that could justify their own priority via the wtf, why isn't
 this installed? rule of thumb, like libc6.

Actually, we don't need a rule like that for libc6, because lots of
essential packages depend on it.

We would only need to say wtf, why isn't this installed? for a
library that works like a plugin (i.e. a library on which no other
packages depend).

  [footnote: This ensures that a
  # high-priority package transitioning to a new library dependency
  # does not result in both the old and new libraries being installed
  # on new systems, due to the old library's priority remaining high.]
  
  However, I don't like the wording of the footnote.
  
  Why would the old library's priority remain high to begin with?
 
 To have a concrete example to talk about, let's say cron (Priority:
 important) moves from using libstuff0 to using libstuff1.
 
 If libstuff0 and libstuff1 both come from a libstuff source package,
 but you have more than one apt source - e.g. stable on a mostly testing
 system - then your apt can still see the older libstuff0 binaries, with
 the important priority that was appropriate when cron/stable depended
 on them. I believe this means it won't automatically get rid of libstuff0?

I think we don't even need to consider more than one apt source to see
the problem.

We could just imagine the case where a user changes stable to
testing everywhere in sources.list and then upgrades to testing.

Whatever solution to the problem of getting rid of unused libraries
in this simplified case would probably be a solution for the case of
mixed apt sources as well.

 If libstuff0 and libstuff1 are in parallel stuff0, stuff1 source
 packages (like Gtk2 and Gtk3), it is not clear to me how the ftp team
 should be expected to know that libstuff0 should be demoted from
 important to optional, or when would be the correct time to do so.

A good rule to follow if we keep current policy would be that
libraries should always have the lowest priority possible
(but = optional) that makes the rule

packages should not depend on others with lower priority values

to be true.

The rule would be, of course, applied independently for each
distribution (stable, testing, unstable).

I believe there would be plenty of room for automation here.

 It could equally well be a core package transitioning from one
 command-line tool to another (dpkg moving from lzma to xz), or from
 command-line tool to library (dpkg's tar.xz support again), or changing
 its implementation to not need one of its old dependencies (systemd used
 to require libdbus-1-3, but has switched to its own D-Bus implementation).

I agree that there may be a lot of different cases, but many, if not
most of them should probably be automated.

  It sounds as Lack of manpower in the FTP team forced us to change the
  rules about package priorities, since they did not change priorities
  often enough.
 
 Is your intention that the maintainer of libstuff would track the
 transition and buildd status, somehow work out when libstuff0 no longer
 qualified for important priority, and file ftp.debian.org bugs to demote
 it?

AFAIK, that's what we are already doing, except that it's not always
the maintainer of libstuff the one who tracks the priorities to be
changed and submit the bugs.

 Or that the ftp team determine (in some hopefully automated way)
 that libstuff0 no longer qualifies for important, and demote it? Or what?

I think some automation on this issue would benefit everybody, yes, at
least while we keep the current rules regarding priorities.

My point is that there may be legitimate and valid reasons to change
the rules about priorities, but we didn't automate enough should not
be one of them.

Thanks.


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141029153705.ga8...@cantor.unex.es



Re: Bug#758234: it's actively harmful

2014-10-29 Thread Matthias Urlichs
Hi,

Santiago Vila:
 A good rule to follow if we keep current policy would be that
 libraries should always have the lowest priority possible
 (but = optional) that makes the rule
 
 packages should not depend on others with lower priority values
 
 to be true.

That's obvious. What is not so obvious, to me, is why we would still
want the current policy in the first place, given that everything(?)
is resolved via dependencies these days.

The only practical effect of these priorities I can recognize is that
apt* refuses to remove Essential packages without asking a question
which reminds me what the Shift key is for.¹²

… but let's release Jessie first.

① When a terminal window is set to mouse mode, you need to press Shift
  if you want standard copy+paste behavior.

② Other than writing capital letters, of course.

-- 
-- Matthias Urlichs


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20141029183056.ga8...@smurf.noris.de



Re: Bug#758234: it's actively harmful

2014-10-23 Thread Simon McVittie
On 23/10/14 02:04, Adam Borowski wrote:
 Thus, I propose not merely removing this policy requirement, but also
 replacing it with the opposite:
 # A package should not (must not?) elevate its priority just because it's
 # depended on unless it has extra functionality that itself warrants a given
 # priority.

I agree with your analysis, although perhaps not the wording. Maybe
something like:

# The priority of a package should be based on the functionality
# of the package itself, and not on whether high-priority packages
# depend on it. In particular, shared libraries should normally
# have a low priority, even if required or essential packages
# happen to depend on them. [footnote: This ensures that a
# high-priority package transitioning to a new library dependency
# does not result in both the old and new libraries being installed
# on new systems, due to the old library's priority remaining high.]

 An example:
 * udev is depended on by P:important packages, yet creation of /dev/ nodes
   is something that by itself matches the definition of P:important[1]
 
 * libudev1 does nothing but serve packages that depend on in

These make excellent examples.

The cluster of packages around init, systemd and dbus is another
interesting one. systemd is non-Essential, but is *transitively*
Essential as one of several alternative dependencies for init. That
makes the current policy somewhat unclear: does init's priority
propagate to systemd-sysv, sysvinit-core, upstart, or none of them? At
the moment, init is required, the first dependency option (systemd-sysv)
is merely important (not actually enough for Policy compliance, but
presumably chosen because required priority would harm the ability to
switch away from systemd), and the others are extra.

Meanwhile, if I'd bumped up the priority of libdbus-1-3 because systemd
used to depend on it, newly debootstrap'd chroots (including those that
have sysvinit-core!) would probably still be getting libdbus-1-3 even
though systemd no longer needs it.

S


-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/5448f677.4010...@debian.org