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

Re: Silently breaking on upgrade



On 10/13/2009 11:38 AM, Don Armstrong wrote:

On Tue, 13 Oct 2009, The Wanderer wrote:

That's what I'd have thought, but I've run across a package which
does seem to do this, and the maintainer seems to consider it an
acceptable situation. Before trying to argue too much about that, I
wanted to confirm that it was in fact 'officially' considered
unacceptable.

Breakage is a bug. In some cases fixing the breakage is not possible,
or would introduce other problems (or the breakage isn't even
breakage in the first place) so without knowing details, there's
nothing else we can say.

Very well. Here's the situation; I'll try to present it as neutrally as
I can, but I'm not sure how well I'll succeed. As I said, I know that
I'm not as objective about this as I'd like to be.


The e16keyedit package used to depend on (or, rather, recommend) the
enlightenment package. It now recommends on the e16 package. The
enlightenment package has been removed from Debian, with the
justification that it has been replaced by the e16 package.

The enlightenment package provides /usr/bin/enlightenment. The e16
package does not provide either a binary or a symlink at this location.

As a result, if someone who invokes enlightenment from ~/.xinitrc (a not
uncommon place to invoke the window manager AFAIK) instead of from e.g.
/etc/X11/xinit/xinitrc installs e16 - which they will be prompted to do
if they attempt to upgrade e16keyedit - they will wind up in a situation
in which X will fail to launch because the window manager command is not
found; this is part of what I consider breaking the system. However,
they will not notice this until the next time they attempt to launch X -
which, for many people, may be days or weeks or even months later; this
is part of why I consider the breakage to be silent.

(I have not tested, but I would expect that if this happens to someone
who also uses a graphical login prompt, they might find themselves
unable to even get a shell to try to fix the problem. In this case, the
entire system could become unusable.)


This by itself would not be a fatal problem, if the user could simply
change the window manager invocation from 'exec enlightenment' to 'exec
e16' and have their system back. It is, however, not that simple.

The enlightenment package stores its user-specific configuration in
~/.enlightenment/, and the e16 package stores its user-specific
configuration - in an apparently incompatible format - in ~/.e16/.
Simply changing the window-manager invocation will result in losing all
configuration which may have been done; simply copying one directory to
the other does not seem to be a viable way to retain it, because of the
incompatibilities. Depending on how much configuration had been done,
this can be anything from completely negligible to a major, intolerable
problem.


It is, of course, not practical - or even necessarily desirable - to
automatically modify configuration in users' home directories during a
package upgrade. I do not expect this to be done.

I do, however, think it is unreasonable for this type of potentially -
and, in my experience, actually - system-breaking change to happen
without the user being alerted, at install time (perhaps via
apt-listchanges), to the fact that it is going to happen and that manual
changes will be required in order to fix it. Preferably, such an alert
would include a pointer to directions on how to make those manual
changes, or possibly even to a way to automatically make those changes
on a per-user basis.


When I filed a bug report about this behavior, it was closed fairly
promptly on the grounds that there is not supposed to be a migration
path from enlightenment to e16. While I'm not happy with that fact
itself, it's fair enough in one respect. What isn't, and indeed is IMO
unacceptable on its face, is for the lack of a migration path - combined
with the fact that e16 is stated to be replacing enlightenment - to
silently lead to an unusable, or at least effectively crippled, system.


The package maintainer for the e16 and enlightenment packages has stated
in mail to me that he has no plans to change e16 to accommodate an
upgrade from enlightenment. Given the existence of this breakage, he
therefore seems to be taking the position that this breakage is acceptable.

I would normally consider almost any breakage, much less silent
breakage, to be unacceptable. If others do consider it acceptable, then
unless all breakage is considered acceptable (which is plainly not the
case), there must be some criteria for when it is acceptable and when is
not - which was my original question.

--
      The Wanderer

Warning: Simply because I argue an issue does not mean I agree with any
side of it.

Secrecy is the beginning of tyranny.


Reply to: