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

Re: /usr/share/doc (was Re: weekly policy summary)



On Fri, Jul 30, 1999 at 08:20:18PM -0700, Joseph Carter wrote:
> > I'm tempted to object to any such proposal that doesn't have the support
> > of Ian Jackson or Klee Dienes or someone equally familiar with dpkg
> > internals.
> Then provide a better option.  I'm beginning to agree with Manoj here.
> I'm seeing a lot of "I will object to this" and not many better solutions
> offered.

That's probably because every solution to this has problems of one sort
or another. I think the symlinks proposal is the best one so far ---
it addresses the issue correctly, and it's drawbacks are both aesthetic
(crufty symlinks that don't damage the system; and extra postinsts)
and temporal (upgrading to woody+1 gets rid of both the symlinks and
the extra postinsts).

I also think the special-script-that-accesses-both-locations is
better than this because it doesn't have any possibility of causing a
catostrophic failure by damaging the dpkg database. Heck, even the cronjob
proposal is better because where it *may* cause a catastrophic failure at
least it'll be limited to just one package and not possibly all of them.

Messing with dpkg's database is *not* something to be done lightly.
Getting knowledgable comment from the author's seems the *least* thing
that should be done.

And yes, I am annoyed that getting such comment should be as difficult
as it is. It's *still* necessary though.

Let me summarise the proposals so far as I see them: (in order of my
personal preference)

 * symlinks managed by postinst/prerm
     - requires lots of packages to add postinsts/prerms for potato
       and woody, and then to get rid of them for woody+1
     - may leave crufty symlinks about on systems where (a) the admin
       doesn't fix it (b) hasn't had the base packages upgraded to woody+1

 * do nothing special
     - means the admin, and all automated tools have to look in both places
       or miss documentation

 * making a script that works out which of /usr/doc /usr/share/doc to use
     - doesn't work for browsing by hand
     - needs to be written/accessible from lots of different languages
     - is significantly different to any other system on the planet
     + makes it easy to "support" /usr/local/doc or similar ("support"
       in scare-quotes because I'm not really sure of the value of
       such support in this case. YMMV)

 * cronjob that adds/removes symlinks in cron.daily
     - downgrading a package that uses /usr/share/doc to a prior version
       that uses /usr/doc will cause dpkg to move files from
       /usr/share/doc/foo to /usr/share/doc/foo via a symlink, which is
       believed to be dangerous. (*)
     - may leave dangling symlinks / may not have symlinks for up to 24 hours

 * fiddling with the dpkg database
     - bugs in the script can cause catastrophic system failure by messing
       up the dpkg database (*)
     - must be done by the admin by hand, rather than automatically as part
       of the upgrade to potato/woody
     - script is difficult to get right on common configurations

 * add support to dpkg for pre and post processing on a global basis
     - requires dpkg modifications (*)
     + allows update-menus and similar programs to be implemented much more
       cleanly.

I consider the points marked with a (*) to be completely unacceptable,
because I read both comp.risks and debian-dpkg. Adding functionality that
is difficult to get right, and likely to cause severe breakage if it's
*not* done right is Fundamentally Stupid.

By "completely unacceptable", I mean that it's unacceptable to just say
"we should do this". If you *can* do it (ie, write the program/make the
modifications), and then can show why the original fears were unfounded
(look, iwj even says this is okay!), then, naturally, there's no problem.

Cheers,
aj

-- 
Anthony Towns <aj@humbug.org.au> <http://azure.humbug.org.au/~aj/>
I don't speak for anyone save myself. PGP encrypted mail preferred.

 ``The thing is: trying to be too generic is EVIL. It's stupid, it 
        results in slower code, and it results in more bugs.''
                                        -- Linus Torvalds

Attachment: pgprWE_yp1wof.pgp
Description: PGP signature


Reply to: