On 2012-07-11 21:47 +0200, Bart Martens wrote:
> On Wed, Jul 11, 2012 at 07:44:34PM +0200, Sven Joachim wrote:
>> On 2012-07-11 19:07 +0200, Sven Joachim wrote:
>> > On 2012-07-11 18:53 +0200, Bart Martens wrote:
>> >> In my opinion, regardless of the order in which these two packages are
>> >> installed, dpkg should fail to install the second package, with an error
>> >> message about /usr/include/tcl.
>> >
>> > Policy (ยง6.6) actually documents this behavior:
>> >
>> > A directory will never be replaced by a symbolic link to a
>> > directory or vice versa; instead, the existing state (symlink or
>> > not) will be left alone and `dpkg' will follow the symlink if
>> > there is one.
>>
>> And changing it would break quite a few things.
>
> Examples of those things ?
Local admin has set up (say) /usr/share/doc as a symlink rather than a
plain directory. Not really recommended, but according to your plan
they would not be able to unpack any package until they fix that.
Package foo converts (say) /usr/share/doc/foo into a symlink in the new
version. There is no standard procedure for that right now[1], but the
sanest way is to do it in the postinst (look at the libpipeline-dev
package for an example). With your proposal this becomes impossible,
and instead the package needs to rm -rf the directory in the preinst
instead, losing files if unpacking fails.
If other packages that share the same directory are involved, this
becomes even trickier.
> How to reproduce those breakages ?
Modify dpkg to fail in the above situations; this is left as an exercise
for you. ;-)
Cheers,
Sven
1. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=583585
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]