Re: Technical Committee: decision on #119517?
>>"Ian" == Ian Jackson <ian@davenant.greenend.org.uk> writes:
Ian> Manoj Srivastava writes (SuperCite undone):
>> Ian Jackson:
>> > As I understand it, the supposed principle which is being applied is
>> > that it is unacceptable to have a binary in the package which depends
>> > on libraries not mentioned in Depends, and that Recommends or Suggests
>> > are not sufficient.
>>
>> If I install a package properly, all dependencies satisfied,
>> all binaries work. Added recommended or suggested packages may
>> enhance functionality; but the b i n a r i e s M U S T w o r k.
Ian> Err, that's a more general restatement of what I said, isn't it ?
Not quite. It is specifying a general principle, leaving the
details of library dependencies out; it does not matter if the
program does not work if it needs another program, script, data
directory, configuration file, or shared library in order to
work. Shared libraries are not special.
Ian> I'm afraid I still don't understand what is special about a feature
Ian> that's invoked by running a separate program, as opposed to a feature
Ian> invoked by a keystroke sequence, menu option, or command to a
Ian> program's built-in CLI.
This is what us folks in the reliability field call the
distinction between complete failure and graceful degradation: the
former case, the program does not work, in the later case it works,
perhaps with reduced functinality.
Ian> So it seems to me that if you forbid having programs installed which
Ian> do not work, you must even more strongly forbid having menu options or
Ian> what-have-you that don't work. But that's the opposite of your
Ian> position as I understand it.
Nope; what do you think the definition of recommends and
suggests implies? To the end user, it implies that the core
functionality would continue to work, though adding recommended or
suggested packages may allow additional behaviour.
In an ideal world, I would like documentation to reflect that
options that require the recommended packages to be labelled as such.
>> I disagree strongly. This is a quality of implementation
>> issue. When I go on a machine, fire off a binary, and it faults, I
>> know the machine is broken.
Ian> You say it `faults'. To me that would mean that it receives a signal
Ian> whose default action is to terminate and dump core - SIGSEGV or SIGBUS
Ian> or the like.
Perhaps I should have said fails.
Ian> It doens't do that. It prints an informative error message and
Ian> exits nonzero, just like gxditview:
Ian> -norway:~> really cardinfo
Ian> cardinfo: error in loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
Ian> -norway:~> echo $?
Ian> 127
Ian> -norway:~>
Ian> I'm not sure why you see this as a totally unacceptable behaviour, but
Ian> the behaviours of cron, minicom and fvwm as fine. For example, fvwm
Ian> does this if you run it without m4 installed:
Total failure, with a diagnostic. Nothing I can do can change
this, unless I install suposedly optional packages.
Ian> -norway:~> fvwm -cmd 'FvwmM4 .fvwmrc'
Ian> sh: m4: command not found
Ian> [ and then it runs with an empty config file using builtin defaults ]
And it works. Not ideally, but it did not dump me back to the
login screen. I can now put in place a second config file, which does
not need m4, and it shall work even better -- perhaps not all the
bells and whistles I might have, had I installed m4, but hey. It WORKS!!
>> Suggests does nto mean install suggested packages, or else
>> some binaries are just going to fail. Why the hell have a dependency
>> system with differeing levels at all, if you can no longer be sure
>> what one needs install in order to have binaries work?
Ian> The dependency system is intended to make *packages* work. The
Ian> different levels of dependency are there precisely to allow
Ian> different subsets of a package to be made to work, without
Ian> having to split packages up unnecessarily.
Pedantry. To the end user, a package does not work when the
included binaries do not work. Graceful degradation ius acceptable,
total and complete failure is not. The latter is, for most people,
synonymous with ``the package is broken''.
>> Really? I would rahtter add one more package to the nearly 10k
>> list than have broken systems all over the place.
Ian> You keep saying you think a system with cardinfo but not X
Ian> libraries is broken. If I considered it as broken as you do
Ian> then I'm sure I'd agree that it was bad and ought to be avoided
Ian> even if doing so has substantial costs.
Ian> Can you explain why you think this is such a terrible situation
Ian> ? I understand that the binary does not work in this
Ian> configuration, but I don't understand why you think this is flat
Ian> out unacceptable. What actual bad consequences are there ?
Quality of implementation. Failing least surprise. Failure of
the promised invariant that if I install a package, I should expect
the included programs to work. I am not sure how to get my conviction
that having broken programs when all dependendcies are satisfied is a
horribly bad idea across.
>> yeah, it just makes sure that programs in debian kinda work,
>> rather than be discovered randomly after the install phase is over,
>> and one no longer has access to the install system. That is
>> ridiculous.
Ian> Note also that even if we made cardinfo a separate package, or
Ian> arranged for the dependency to enforce the installation of the X
Ian> libraries, you still wouldn't be able to run cardinfo on a system with
Ian> no X installation because you'd have no display !
>> > * cron Recommends mail-transport-agent. [...]
>> > * fvwm Suggests m4. [...]
>> > * minicom Suggests lrzsz. [...]
Hmm. gxditview does not belong here anyway.
>>
>> Every single one of these packages the program can be
>> used. They are, (voila!) working. Add suggested packages, they can do
>> extra things, work better. But the base code does more than produce
>> error messages.
Ian> These things are all true of pcmcia-cs. The base code - cardctl and
Ian> friends - does more than produce error messages.
No, in the cases above, every program worked. In the latter
case, this is not true.
Ian> Most puzzling to me seems to be your position on groff. It's clear
Ian> that if you install groff the base code does indeed work. But you're
Ian> saying that there should be no non-working binaries, and if you
Ian> install groff without xlib6g you get a non-working binary (and indeed
Ian> there's no alternative sensible ditroff previewer). I was expecting
Ian> you to say that gxditview should be broken out of groff, too.
Strawman. The situation is not as you describe; it seems that
groff suggests groff-x11, and lets see here:
Package: groff-x11
Description: GNU troff components for the X Window System
This package contains the X75, X75-12, X100, and X100-12 groff devices,
which allow groff output to be conveniently viewed on an X display using
the standard X11 fonts. These devices display their output with gxditview,
which is also included here. gxditview can also be used to view PostScript
output from groff.
.
With this package installed, 'man -X' can show man pages in a graphical
window.
It seems current practice for groff is to do as Dale and I recommend.
manoj
--
We are Microsoft. Unix is irrelevant. Openness is futile. Prepare
to be assimilated.
Manoj Srivastava <srivasta@debian.org> <http://www.debian.org/%7Esrivasta/>
1024R/C7261095 print CB D9 F4 12 68 07 E4 05 CC 2D 27 12 1D F5 E8 6E
1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C
--
To UNSUBSCRIBE, email to debian-ctte-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: