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

[Corrected] Ballot Re: Moving to the FHS: not right now!



[I'm reposting this call for votes with corrections -- some of them are
rather significant.  For example, one sentence in #3 called for us to
remain with FHS which contradicts the rest of that ballot item.]

                            * * * * *


This ballot is going to be a bit crude. The current circumstances are
frustratingly non-optimal, and I've already taken too long preparing
this ballot.

Note that *none* of these proposals were ever actually delivered to
the debian-ctte list.  Instead, they were bounced to the moderators
[who happen to be the debian-ctte members.]

As a separate action, someone [me?] needs to go back and approve a number
of messages.  For this ballot, however, I'm quoting the messages in
their entirety [possibly with cosmetic edits -- not changing any words
but occasionally altering appearance].

I'm sorry this message is so long, but I must ask each of you to study
it carefully.

Ballot summary:

0	further discussion
1	forest of symlinks
2	leave things as they are
3	revert fsstnd->fhs directory changes, with advice
4	alternate amended reversion

You can skip between proposals by searching for a line which begins
with "==", or which begins with "ballot item #".

Please pgp sign votes, and send them to the list [not as bounces].

Details:

======================================================================

[NOT ON THE BALLOT -- BACKGROUND ONLY.]

5 August -- Message from leader@debian.org.  This states problem but
does not provide a proposal for dealing with it.

----------------------------------------------------------------------

Date: Thu, 5 Aug 1999 15:09:51 +0200
From: Wichert Akkerman - Debian Project Leader <leader@debian.org>
To: debian-devel-announce@lists.debian.org, debian-ctte@lists.debian.org
Subject: Moving to the FHS: not right now!
Message-Id: <19990805150951.B13011@soil.nl>
X-Diagnostic: Unapproved submission to debian-ctte

As everyone has probably noticed by now the new policy states that
packages should follow the FHS instead of the FSSTND. This means some
big changes have to be made, such as moving /usr/doc to /usr/share/doc.

How this move has to be made has not been decided yet. Simply moving
will break things, as can be seen by the dhelp package that suddenly
refused to handle 99% of the documentation since it no longer supported
/usr/doc. A strategy will have to be made for moving to the FHS without
breaking anything.

Possible strategies have been discussed on debian-policy for a while now,
but due to conflicting opinions no consensus has been reached. In the
meantime however some packages have begun to follow the FHS and thereby
causing some problems.

Luckily the constitution provides us with a way to solve this: the
Technical Committee can be asked to decide on a strategy which people
will have to follow. I hereby ask them to study this and come up with a
strategy for moving to the FHS.

Until that decision has been made I request all developers to NOT move
to the FHS right now.

Wichert.


======================================================================

6 August

ballot item #1	FOREST OF SYMLINKS

----------------------------------------------------------------------

To: Wichert Akkerman - Debian Project Leader <leader@debian.org>
Cc: debian-ctte@lists.debian.org
Subject: Re: Moving to the FHS: not right now!
From: Manoj Srivastava <srivasta@debian.org>
Date: 06 Aug 1999 11:20:49 -0500
Message-Id: <87lnbokhi6.fsf@glaurung.green-gryphon.com>
X-Diagnostic: Unapproved submission to debian-ctte

Hi,
>>"Wichert" == Wichert Akkerman <- Debian Project Leader <leader@debian.org>> writes:

 Wichert> Luckily the constitution provides us with a way to solve this:
 Wichert> the Technical Committee can be asked to decide on a strategy
 Wichert> which people will have to follow. I hereby ask them to study
 Wichert> this and come up with a strategy for moving to the FHS.

        A draft proposal follows.


Problem statement:

 The FSSTND location for package documentation, /usr/doc, has moved to
 the location /usr/share/doc in the FHS. Now that we have formally
 decided to adopt the FHS, we need to ensure the transition is as
 smooth as we can make it.

     Some of the constraints are:

        * The transition may take a long time, going by previous
          transitions, and not all packages are upgraded anywhere near
          simultaneously.

          I think that expecting _*all*_ packages to have moved before we
          release potato is futile, unless we do not plan on releasing
          potato for 18 months or so. We *_cannot_* expect to get FHS
          compliance in place by potato.

        * We should not break backwards compatibility during the transition
          period. This is a quality of implementation issue

          During the transition, we need to provide backwards
          compatibility, firstly for programs like `dwww', and `dhelp', and
          also for our users who have gotten used to looking under a single
          dir (`/usr/doc/') for docs (`/usr/doc/`package''). During the
          transition, the documentation could be in in two places, and that
          is not good.

        * There is no elegant way to piece wise move a directory
          spanning multiple packages with dpkg.  Basically any attempt
          to provide 'legacy' symlinks that make /usr/doc/foo ==
          /usr/share/doc/foo will either break upgrading, downgrading
          or both, unless special care is taken

  dpkg has no ability to resolve multiple paths to the same files in
  it's database, so it sees /usr/share/doc/pkg/bar and
  /usr/doc/pkg/bar as -different non overwriting- files and will end
  up doing the wrong thing when it comes time to erase the old
  versions files. Basically it will do:
     create /usr/share/doc/pkg/bar
     rm /usr/doc/pkg/bar
  Which is perfectly sensible -IF- they did not happen to be the same
  directory!!

  What makes this directory move different from the other changes
  mandated by the FHS is the human element: humans are used to
  looking for documentation under one directory, namely,
  /usr/doc/<package>, and having the documentation in two directories
  is breaking that expectation.

  What follows is an updated solution to this issue (the so called
  symlink solution).

  Several other solutions have also been proposed to address this
  situation. I shall present a (hopefully unbiased) selection of
  solutions, with arguments for and against each solution.

 Proposed solution
--------------------

     I propose that there be a symlink from /usr/doc/package =>
     /usr/share/doc/package, managed by the package itself. Since there is
     some concern that the packaging system does not deal well with
     replacing a directory with a symbolic link, it is suggested that the
     link be manipulated in the maintainer scripts postinst and postrm.

     We create the postinst, prerm now, installing the symlink, Once
 the move is over, we just have a prerm script removing the
 symlink. another release, (potato+2), we stop bothering, since we
 would have handled the most common case (and provide an base-files
 postinst script removing the symlinks for upgrades at that point).

        Yes, this is a long period, but not forever (which was one of
 the major objections to this proposal)

     So potato packages should have: (effectively)

	postinst install upgrade:
	    if [ -d /usr/doc ]; then
	      if [ ! -e /usr/doc/$package -a -d /usr/share/doc/$package ]; then
	        ln -s /usr/share/doc/$package /usr/doc/$package
              fi
            fi

	prerm remove upgrade:
	    if [ -d /usr/doc ]; then
	      if [ -L /usr/doc/$package ]; then
	        rm -f /usr/doc/$package
	      fi
            fi

	    The prerm removes the symlink, and the postinst reinstates
 it as necessary. The only problem is redundant symlinks when you're
 doing partial upgrades to woody+1 (or later), which no longer need
 any symlinks, from potato/woody. But they still all point at the
 correct places. This is handled by a base-files postinst removing the
 junk symlinks (details below).

     This is how it works:

     1.   Policy 3.X mandates that packages that move the docs to
          /usr/share/doc must provide a compatibility symlink in /usr/doc.
          This shall allow packages to incrementally move to policy 3.X,
          while providing compatibility with older systems.
          (/usr/doc/package symlink is handled by package)

 Thus, potato ships with a full /usr/doc/ (some of which is symlinks),
 and a partial /usr/share/doc.

     2.  Post potato, we continue the transition, with the symlinks in
         place. Before freeze, we file important bugs against any
         package that has not been moved over (in one and a half
         release periods, we may be actually able to accomplish this),
         with NMU-fests to bring over the others.

 Thus, potato+1 (woody) ships with a full /usr/share/doc, and a
 /usr/doc full of symlinks.

     3.   At a later date, another policy (say, 4.X) shall ask for
          packages to no longer provide the link (and possibly remove
          links from /usr/doc). We can also provide a script (possibly
          in base-files postinst) that rm's symlinks from within
          /usr/doc. woody+1 may ship with such a script. (there was a
          proposal as well that potato+2 (woody+1) ships with just the
          prerms, and not the base file script, and potato+3 ships
          with the base-file script, but I am not sure this long a
          reversion period is required).

 No dependency on this base-files shall be required, since they shall
 work with or without a symlink in /usr/doc (and /usr/share/doc shall
 be fully populated by then).

Thus, partial upgrades to potato and woody have a complete /usr/doc,
and full upgrades to woody have a complete /usr/share, and symlinks
throughout /usr/doc. Partial upgrades to anything beyond woody might
have old files left in /usr/doc, but they'll get moved when whoever
finally gets around to run an apt-get dist-upgrade.

     I understand that the forest of symlinks is ugly, but it is
     technically sound, it maintains backwards compatibility, it allows
     incremental compliance to FHS, and caters to a hybrid system. I submit
     that aesthetics takes a back seat to functionality.


 I fail to see what the big problem with fairly obvious symlinks
 existing on a system that's halfway between two significantly
 different file system standards. I also can't see admins being
 particularly bothered by the existence of such symlinks on such
 systems.

 OTOH, it *is* inconvenient to have documentation scattered
 inconsistently between /usr/doc and /usr/share/doc. We've even had
 user complaints on this list about it.


     To the objection that it shall cause package to be modified twice, I
     say that

        * This is a complex transition, and may require this to meet the
          constraints of the situation

        * One modification of the packages is required anyway for compliance
          with the FHS.

        * The second modification, namely, the removal of the symbolic
          link, shall be well into the future, and added to a future policy
          change. It is conceivable that the packages may need to change
          for policy updates in any case.


  The symlink proposal is far from perfect --- adding postinst's and
  prerm's to every package with the same half dozen lines of code is
  really pretty lame. The *proper*, forward thinking solution would be
  to add a feature to dpkg to run specific items of code before and
  after each dpkg run.

  But modifying dpkg is infeasible, and we've agreed to, among other
  things, keep the needs of our users at the forefront of our
  minds. And from a user's perspective, something that keeps the
  system tidy in the normal case, and works *now*, is much better than
  idealistic fantasies like a working dpkg.


Overview of other solutions proposed.
----------------------------------------------------------------------
 * do nothing special
     - means the admin, and all automated tools have to look in both places
       or miss documentation

       This essentially ignores the issues with the split locations
 for the documentation. I think we can live with the problem, but as a
 quality of implementation issue, it would be nice if we had a smoother
 transition.
----------------------------------------------------------------------
 * 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)
  [See Appendix A on details and commentary]

----------------------------------------------------------------------
 * 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
     + allows incremental upgrades
     + allows for downgrades
     + does not involves a global change day
     + works with dpkg failings ;-)
  [This was proposed and shot down because 4 people objected;]
  [See Appendix B for details].

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).

----------------------------------------------------------------------
 * 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. (*)[proof in appendix C]
     - may leave dangling symlinks / may not have symlinks for up to 24 hours

A cronjob is a bad idea because the links will persist for dpkg
operations and basically cause upgrades/downgrades to fail.  This is
not a working solution.
----------------------------------------------------------------------
 * mv /usr/doc/* /usr/share/doc
 * Modify dpkg's internal databases (mainly the .list files in the
   directory /var/lib/dpkg/info) so that they are in sync with the
   previous changes.
 + would make the system to be /usr/share/doc-compliant.
 + would avoid to touch every maintainer script in every package.
 + would support upgrades and downgrades.
 - fiddles with dpkg internals, against all warnings in the docs
 - pointless unless the package is changed, or the next upgrade
   creates the /usr/doc dir all over again

  This isn't trivial, because you cannot be sure that /usr/doc and
  /usr/share/doc are located at the same file system.
  And don't miss the (few) packages which already moved to
  /usr/share/doc (where some of them left back a .dhelp file in
  /usr/doc/<package>). Also, doing it the way mv(1) does means
  failures halfway through leave you with files in /usr/doc/foo and
  /usr/share/doc/foo, which could be hard to deal with correctly.

  If one uses tar/cpio to do the move, one should realize that if you
  *do* have /usr and /usr/share on the same partition, you need to have
  as much free space as /usr/doc takes up.  Unless you do the move on
  a directory by directory basis.

  Also, 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

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

     This is not a working solution.

----------------------------------------------------------------------
 * 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.
     This is not a working solution, given the timetable.
----------------------------------------------------------------------
* Stick with /usr/doc until potato is released, then begin a massive
  migration, which may or may not involve symlinks.
     -  some people have already moved and may not want to move back.
     - would need a policy amendment partially backing out of the FHS
      move.
     - requires all changes to be made in a single release cycle*
        (or we're back in the same position we're in at the moment)
    - delays the move to FHS compliance.
    + gives us a little more time to decide if we want crufty
      symlinks, and if so, what's the best way to handle it.
    + no surprises to the user.
    + no changes to most packages till after potato's release.

----------------------------------------------------------------------

I consider the points marked with a (*) to be completely unacceptable.
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.

 ======================================================================

Appendix A

 docdir() {
   dirname $(grep "/doc/$1/copyright\$" /var/lib/dpkg/info/$1.list")
 cddoc() {
   cd $(docdir $1)
 Now we're back to a single probe.  We're just probing the
 database, not the filesystem.

 [This has to be in every environment, and needs to cater to all kinds
 of shells, and shell scripts, and perl scripts, and ...]
> So we make it a script.

It doesn't just have to be in every user's environment, it has to be (or
at least, ought to be) easily available for arbitrary scripts/programs
to be able to access documentation.  It thus needs to work conveniently
with csh, rc, perl, python and C.

It also adds another learning curve to Debian for, what appears to me
to be, very little benefit. Instead of just cd'ing to /usr/src/linux
and running make, we're meant to use kernel-package. Well, that's fine
--- kernel-package makes it a lot easier to deal with upgrading from
one kernel version to another keeping modules in sync and not leaving
cruft lying about on your disk.  Instead of just cd'ing to /usr/doc and
poking around with your favorite utilities, you now have to either know
the name of the program in advance and use some special functions which
you've likely never heard of before.


 Still does not answer less /usr/doc/<package>[TAB]
> Very true.  There are always tradeoffs -- in this case, we gain
> flexibility.

To what end? Is /usr/local/doc particularly common anyway? We certainly
don't have any intention of keeping /usr/doc around, so having more than
one doc directory doesn't seem to help us.

Needless flexibility breeds bugs.

 ======================================================================
Appendix B
Details of dpkg lossage with symlinks.
----------------------------------------------------------------------

All right dammit, here we go...  built a package crap 1.0-1, here is the
listing:

/.
/usr
/usr/bin
/usr/sbin
/usr/lib
/usr/lib/crap
/usr/lib/crap/olddir
/usr/lib/crap/olddir/file
/usr/doc
/usr/doc/crap
/usr/doc/crap/changelog.Debian.gz

Now from /usr/lib/crap:

drwxr-xr-x   2 root     root         1024 Aug  3 02:15 olddir/
-rwxr-xr-x   1 root     root          633 Aug  3 02:14 olddir/file*

And then after I symlink it:

drwxr-xr-x   2 root     root         1024 Aug  3 02:15 newdir/
-rwxr-xr-x   1 root     root          633 Aug  3 02:14 newdir/file*
lrwxrwxrwx   1 root     root            7 Aug  3 02:19 olddir -> newdir//


Install crap 1.0-2 ...

/.
/usr
/usr/bin
/usr/sbin
/usr/lib
/usr/lib/crap
/usr/lib/crap/newdir
/usr/lib/crap/newdir/file
/usr/doc
/usr/doc/crap
/usr/doc/crap/changelog.Debian.gz

root@icarus2:/usr/lib/crap# ls -lR
..:
total 1
drwxr-xr-x   2 root     root         1024 Aug  3 02:21 newdir/

newdir:
total 0


Do you believe us yet?  What more proof do you possibly need?


> (Note that I am explicitly avoiding actually installing or deinstalling an
> actual symlink which dpkg thinks is a directory ... with my proposal this
> can, in fact, happen, but only if users deinstall all packages that refer
> to the /usr/doc directory which is rather unlikely.)

Does not matter.  dpkg breaks.  It has been now demonstrated and proven.


> > Your script also has a cow if /usr/doc isn't -> share/doc, which is bad
> > because it may be necessary to use some symlink magic at some point.  Not
> > that it isn't a moot point unless you fix dpkg first.
>
> This was intentional ... and in fact the script will merely warn you if
> this is the case.  I was merely trying to KISS since this is a rather
> critical script.
>
> More reactions welcome !

It exits with 1, that's an error condition.
> I am happy to tell you that we agree completely on the behavior of dpkg on
> your example.  But you are ignoring a very important aspect of my proposal:
> THIS ONLY HAPPENS FOR DIRECTORIES INTERNAL TO PACKAGES.  It happens because
> olddir is actually REMOVED by the deinstallation.

This doesn't seem to be the case.

* Create three packages:
	test1 version 1.0 mimicking your average /usr/doc-using package
	test1 version 2.0 mimicking your average /usr/share/doc-using package
	test3 version 1.0 mimicking base-files

test1 1.0 has a file /my_usr/doc/test1/copyright,
          and depends on test3

test1 2.0 has a file /my_usr/share/doc/test1/copyright,
          and depends on test3

test3 1.0 has a file /my_usr/doc/copyright/GPL,
          and a file /my_usr/share/doc/test3/copyright

* dpkg --install test3_1.0_all.deb

* mv /my_usr/doc/copyright /my_usr/share/doc/
* rmdir /my_usr/doc
* ln -s /my_usr/share/doc /my_usr/doc

* dpkg --install test1_1.0_all.deb
* dpkg --install test1_2.0_all.deb

* ls -l /my_usr/doc/test1 -> empty
* ls -l /my_usr/share/doc/test1 -> empty
* dpkg -L test1 | grep my_usr/share/doc -> not empty

The packages are available as:

    http://www.debian.org/~ajt/test1_1.0_all.deb
    http://www.debian.org/~ajt/test1_2.0_all.deb
    http://www.debian.org/~ajt/test3_1.0_all.deb

Possibly I'm just misunderstanding what you're suggesting should be done
though. Can you give a sequence of commands that does whatever you're
suggesting, and still has those three packages survive unscathed?
----------------------------------------------------------------------
On Tue, Aug 03, 1999 at 09:02:53PM -0400, Michael Stone wrote:
> (And thus useless to me.) I don't argue that dpkg has some problems with
> symlinks if a package changes the path by which it references one of its
> files. It does not have problems (as far as I have found) if a package
> consistently uses the same path when referencing the file, whether or
> not that path passes through a symlink. That's the case I'm interested
> in and which I've been testing.

*OH*. No, that's completely correct.

> No, what I wrote works fine. The examples were irrelevant. You
> apparently ignored the part where I said that all packages should put
> their stuff into /usr/doc without regard for whether it's a symlink or
> anything else.

This means packages will have to use /usr/doc instead of /usr/share/doc
until dpkg is fixed. "until dpkg is fixed" could be forever.

This seems like it might also require pre-dependencies on base-files for
every package (so that they don't accidently create /usr/doc as an
actual directory instead of as a symlink).

Hmmm. This also seems like it might require pre-dependencies from every
package against the new version of dpkg that handles following symlinks
correctly.

>    1. use both /usr/doc and /usr/share/doc; this upsets the partial
>    upgrade people, and worries the UI people.

"upsets" and "worries" aren't really very precise. It results in a
"needlessly" inconsistent user interface for accessing documentation
for potato and partial upgrades from <=potato to >potato.

>    2. use both /usr/doc and /usr/share/doc but provide symlinks from
>    each package in one to each package in the other by means of
>    preinst/rm scripts; this upsets the anti-bloat people and horrifies
>    the elegance people :)

It creates postinst and prerms where there never used to be any, but lets
them go away after woody.

>    3. use both /usr/doc and /usr/share/doc but provide symlinks from
>    each package in one to each package in the other by means of a cron
>    job or somesuch; this upsets the partial upgrade people, horrifies
>    the elegance people, and terrifies the people who don't want cron
>    jobs automatically deleting things on their systems.

It means documentation can be lost when doing a downgrade from a
/usr/share-using package to a prior, /usr/doc-using, version of that
package.

It means dangling symlinks could exist for up to 24 hours (or however
often the job runs). It means symlinks might not exist for the same
amount of time.

>    4. use both /usr/doc and /usr/share/doc but provide symlinks from
>    each package in one to each package in the other by means of an
>    optional script run manually by the admin; this upsets the partial
>    upgrade people, worries the UI people, and horrifies the elegance
>    people.

Same problems as the cron job, and not automatic.

>    Don't explicitly use /usr/share/doc yet, and we can rig up a symlink
>    to effectively use /usr/share/doc until we come up with a better
>    solution; this upsets the policy-says-I-can-therefor-I-must people
>    and dismays the people who have already converted their packages

Requires changes to dpkg, which don't have a particular history of being
made. Possibly requires lots of pre-dependencies that will last for ever.
----------------------------------------------------------------------
----------------------------------------------------------------------
Appendix C

  Has no one seriously considered the mess that will happen if you
try to follow this path (namely, making each package manage the
transition by itself)? Think about all the typos (like "[-L foo]")
that people are going to make, the number of link-handling scripts
that bomb out or do the wrong thing, the number of unwanted symlinks
that will be lying around once the dust settles, and the crap that
will live in the maintainer scripts forever (well, a long time). Think
about how few maintainers test their scripts exhaustively (for
idempotency etc.)  (when doing upgrade, new install, failed-upgrade,
configure, remove, purge, etc.).

I will oppose the proposal unless it contains code fragments that a)
have been thoroughly tested, b) have been shown to be the only real
solution, and c) will be mandated.

One question, does the FHS permit "/usr/share/doc -> ../doc" ? If so,
there is a very simple solution (forbid the use of /usr/share/doc and
have base-files contain this symlink; this does not address mount and
partition issues).

A better solution (than the proposed one) would be one that has all
the code in only one place and the opportunity to fail at only one
time. Alas, I do not have such a thing.

Unfortunately, various people have pre-empted the policy discussion
and have started using /usr/share/doc already.

 ======================================================================

-- 
 A fool's brain digests philosophy into folly, science into
 superstition, and art into pedantry.  Hence University
 education. Shaw
Manoj Srivastava   <srivasta@debian.org>  <http://www.debian.org/%7Esrivasta/>
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05  CC 2D 27 12 1D F5 E8 6E

======================================================================

14 August

ballot item #2	leave things as they are

----------------------------------------------------------------------

Date: Sun, 15 Aug 1999 09:14:48 -0400 (EDT)
From: Dale Scheetz <dwarf@polaris.net>
To: debian-ctte@lists.debian.org
Subject: Alternative to the symlink proposal.
Message-Id: <Pine.LNX.3.96.990815090620.195D-100000@dwarf.polaris.net>
X-Diagnostic: Unapproved submission to debian-ctte

I'm not sure why Joey Hess felt unwilling to deliver this directly
(possibly because my request was done in private mail), but he has
delivered this alternate proposal for the move to /usr/share. (see
forwarded message below)

It is a bit more inclusive than the symlink proposal, which only deals
with the /usr/doc to /usr/share/doc transition, and includes the complete
transition of /usr to /usr/share (those components that will move, at
least).

With this proposal, we now have an alternative proposal, and can choose
between the two, rather than just deciding whether or not to accept the
symlink proposal.

While there are things to like in Joey's proposal, I'm not sure that it
addresses the "least surprise" conditions that Manoj's proposal tries to
resolve. We may still be looking at apples and oranges.

Anyone have thoughts on this?

Waiting is,

Dwarf
--
_-_-_-_-_-   Author of "The Debian Linux User's Guide"  _-_-_-_-_-_-

aka   Dale Scheetz                   Phone:   1 (850) 656-9769
      Flexible Software              11000 McCrackin Road
      e-mail:  dwarf@polaris.net     Tallahassee, FL  32308

_-_-_-_-_-_- See www.linuxpress.com for more details  _-_-_-_-_-_-_-

---------- Forwarded message ----------
Date: Sat, 14 Aug 1999 19:22:48 -0700
From: Joey Hess <joey@kitenet.net>
To: Dale Scheetz <dwarf@polaris.net>
Subject: Re: I'd like to coordinate a major update of stable

Dale Scheetz wrote:
> Your comments about the /usr/share/doc transition has prompted this
> e-mail.
> 
> I am very likely to get stuck with the Chair of the Technical Committee,
> and the current proposal (from Manoj) before the committee has no
> alternative proposal to judge against. I would very much appreciate your
> making a proposal to the committee as well, so we have at least two
> choices, rather than the single option currently being discussed.
> 
> Can you do that?

Certainly. Please pass this on to the committee:

The proposal is that nothing be done to ease the transition to
/usr/share/doc, except a major update to stable be made before unstable is
released. This update will include updated versions of man, dwww, info, and
any other packages that use /usr/share/doc, /usr/share/man, or
/usr/share/info. The release notes for potato will recommend that anyone
using a package from unstable first upgrade to the updated stable.

This is intended to be a compromise that can be acceptable to all parties,
not a technically perfect solution. The update to stable already appears to
be going to happen, with everyone in favor of it.

-- 
see shy jo

======================================================================

20 August

ballot item #3	revert fsstnd->fhs directory changes, with advice

----------------------------------------------------------------------

From: Ian Jackson <ian@davenant.greenend.org.uk>
Message-Id: <14269.55627.900414.390241@davenant.relativity.greenend.org.uk>
Date: Fri, 20 Aug 1999 23:40:11 +0100 (BST)
To: debian-ctte@lists.debian.org
Subject: Revised proposed interim FHS resolution
X-Diagnostic: Unapproved submission to debian-ctte

It seems to me that Manoj has got the impression I'm trying to make
the `old' FSSTND status quo permanent with my resolution.  That's not
the case.  I'm just trying to fix the immediate problem to produce
some calm and time for us to consider the transition.

Manoj: you must agree that there is need for us to discuss this,
because there is disagreement and we haven't come to consensus yet.
So, is it not right for us to mandate that the status quo be
preserved, as Wichert requested in his mail ?

Having looked at my proposed resolution it didn't make it clear that
it's an interim solution.  So I've added a bit on the end saying what
the committee will do after this resolution - ie, look at the complex
issues surrounding symlinks, dpkg, existing packages, finding
documents, etc.

I propose the resolution below, in place of my previous one.  Manoj,
if you don't agree with this as a status-quo-preserving resolution,
please propose amendments, or a counter-resolution.

I will call for a vote shortly.

Proposed resolution of the Technical Committee
`Interim decision to preserve status quo wrt fhs transition'

 Given that:

 * Wichert has made an announcement saying we should preserve the
 status quo pending a decision;

 * it will obviously take a little while to make a decision,
 particularly given that the technical committee's internal mechanisms
 haven't been debugged yet because they've not previously been used;

 * packages already using /usr/share/doc may make whatever decision we
 come up with hard to implement;

 * people on debian-policy have tried getting the policy reverted to
 preserve the status quo as requested by Wichert, with no avail;

 * no analysis of the changes between FSSTND and FHS seems to have
 been made to determine whether to make the change and if so how best
 to do it;

 The Technical Committee mandates that, firstly:

 * Until a the a list of the differences between FSSTND and FHS, with
 a decision whether to change and if applicable a transition plan for
 each, has been prepared, Debian should continue to use the FSSTND.

 And in particular:

 * Until a decision on transition to FHS directories has been made by
 the Committee, /usr/share/doc, /var/state and /var/mail should not
 yet be used to by Debian packages.  Instead, packages should continue
 to place files in and refer to /usr/doc, /var/lib and
 /var/spool/mail.

 Therefore:

 * The policy manual should immediately be amended accordingly
 immediately, to change the reference to the FHS back to the FSSTND,
 and to add a comment saying that /usr/share/doc, /var/state and
 /var/mail are not yet to be used or referred to.

 * If the policy editors or policy group feel it necessary to ratify
 this change to the policy manual with the formal policy process this
 should be done after the policy has been changed; the policy editors
 should change the policy manual and issue an updated version
 immediately.

 * Lintian and any other package checking software which has already
 made the change to FHS should be changed back immediately.

 Finally, the Technical Committee resolves that it will:

 * Enquire with the debian-policy group, maintainers of packaging
 tools, and other relevant Developers, to make clear in the minds of
 the members of the Committee what the issues and options are with
 respect to FHS transition;

 * Discuss and agree a proposal for moving /usr/doc to /usr/share/doc,
 including a transition plan;

 * Discuss and agree policy on other aspects of FHS transition, or
 agree to refer this matter back to the debian-policy group, possibly
 with some specific advice.

Ian.

======================================================================

23 August

ballot item #4	alternate amended reversion

----------------------------------------------------------------------

To: Ian Jackson <ian@davenant.greenend.org.uk>
Cc: debian-ctte@lists.debian.org
Subject: Re: Revised proposed interim FHS resolution
From: Manoj Srivastava <srivasta@debian.org>
Date: 23 Aug 1999 11:36:27 -0500
Message-Id: <877lmmbgj8.fsf@glaurung.green-gryphon.com>
X-Diagnostic: Unapproved submission to debian-ctte

Hi,

        I would like to strike the following paragraphs from this
 proposal:
----------------------------------------------------------------------

 * Until a the a list of the differences between FSSTND and FHS, with
 a decision whether to change and if applicable a transition plan for
 each, has been prepared, Debian should continue to use the FHS.
----------------------------------------------------------------------

        This had been discussed in the policy group for a while, and
 people on either side of the heated discussions are not arguing the
 desirability of the switch. For the most part, the move is
 incremental, and mostly transparent, and far more packages have moved
 towards the FHS than those whose docs have appeared in
 /usr/share/doc/ with no fuss.

----------------------------------------------------------------------
 * The policy manual should immediately be amended accordingly
 immediately, to change the reference to the FHS back to the FSSTND,
 and to add a comment saying that /usr/share/doc, /var/state and
 /var/mail are not yet to be used or referred to.
----------------------------------------------------------------------

        The former is overkill, the latter [apart from the /usr/doc/]
 already is in the policy document (perhaps one should read the latest
 policy document?) I think we should clarify the policy document about
 the exceptions, adding /usr/doc to it, rather than rolling back the
 parts of the move that have been accomplished successfully.

 ======================================================================
     The location of all installed files and directories must comply (with
     some exceptions [1] ) with the Linux File system Hierarchy Standard
     (FHS). The latest version of this document can be found alongside this
     manual or on tsx-11.mit.edu in
     /pub/linux/docs/linux-standards/fsstnd/. Specific questions about
     following the standard may be asked on `debian-devel', or referred to
     Daniel Quinlan, the FHS coordinator, at <quinlan@pathname.com>.

     [1]  In an as yet unreleased version of the standard, the location of
          the mail spool and state information directories has changed; and
          we propose to follow the latter, since that would mean that we do
          not have to move things around again when the new version of the
          FHS comes around). The changes are, amongst others,
          s%/var/mail%/var/spool/mail% and s%/var/state%/var/lib%
 ======================================================================

----------------------------------------------------------------------
 * Discuss and agree policy on other aspects of FHS transition, or
 agree to refer this matter back to the debian-policy group, possibly
 with some specific advice.
----------------------------------------------------------------------

        What is the rationale for this item? Have we been asked to
 adjudicate any other aspect of the FHS transition? Are there known
 problems that can not be dealt with by the policy group? If this ctte
 is a resource of the last resort, should we not have reasonable
 grounds for expanding our efforts?

        manoj
-- 
 Life is to you a dashing and bold adventure.
Manoj Srivastava   <srivasta@debian.org>  <http://www.debian.org/%7Esrivasta/>
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05  CC 2D 27 12 1D F5 E8 6E

======================================================================

Since I've elected to call this vote without approving any of
the relevant discussion for debian-ctte [sorry -- time constraints],
please be aware that klee has made his personal debian-ctte folder
available for study on master.debian.org (~klee/debian-ctte.mbox.gz).

Finally, be aware that if anyone has any important issues to raise, we
can continue to discuss the matter during the voting process (or, at
least, until we have four votes).  If you think we're missing something
important, please do let us know.

-- 
Raul


Reply to: