FS layout issues for v1.1 (eg., /bin and /usr/bin)

Earnie Boyd earnie_boyd@yahoo.com
Tue Feb 29 05:30:00 GMT 2000

--- Mumit Khan <khan@NanoTech.Wisc.EDU> wrote:
> I had recently asked Chris if he would support the idea of making /bin
> and /usr/bin point to the same directory (the `how' comes later), and
> he'd asked me bring this out here for a wider discussion. I'm going
> to expand the discussion a bit to also talk about where the system
> includes and libraries go.

It's a good thing to discuss

> I'm going to leave releases b20.1 and earlier out of the discussion since 
> the layout is a confusing mess.


> In Cygwin v1.0, Cygwin finally moved into a reasonable layout with (IMO)
> two exceptions:
> 1 it used an "interesting" layout where the binaries go to /bin and
>   other things go into /usr. In GNU package terminology, it's equiv
>   to specifying ``--prefix=/usr --exec-prefix=/''.
>   I'd like to see /bin and /usr/bin "point" to the same place in the
>   filesystem for the next net release.
> 2 The system includes are still buried in /usr/<PLATFORM>/include and
>   system libraries in /usr/<PLATFORM>/lib, where PLATFORM is something
>   like i686-pc-cygwin, i686-cygwin, etc.
>   I'd like to see system includes and libraries go in /usr/include and
>   /usr/lib respectively, *and* /usr/lib and /lib point to the same place
>   in the filesystem. 

These are definitely good ideas.

> One consequence of (1) is that you have to be extra careful in building
> and installing packages (real problem IMO), and the other is that we
> lose symmetry (I like symmetry). Historically, Unix systems have always 
> had a /bin and /usr/bin, and the reason had mostly to do with expensive 
> disks, diskless or semi-diskless workstations and other things not really
> relevant today. Having /bin is important since that's the only thing we 
> can depend on (#!/bin/sh); at the same time, we want symmetry, and would 
> like /usr/bin as well. On systems such as Cygwin, there is no reason to 
> maintain both separately, and these should simply point to the same place.
> The question is -- how do we make /bin and /usr/bin the same?
> a. Symlinks: cygcheck could check and report this if the user somehow
>    deletes it.

Symlinks could be slow, especially if they're sitting on a networked drive.

> b. Cygwin mount table: It's like a loopback mount used by quite a few
>    systems, and even on windows by UWIN:

The mount table could be confusing, but I prefer it.  I would --prefix=/usr and
`mount /usr/bin /bin'.  I would not do it the other way around.

> We can fix (2) by simply changing the way the Cygwin/winsup installation
> works and installing things to /usr/include and /usr/lib (and make /lib
> point /usr/lib for the same reasons I'd like to /bin point to /usr/bin).

How about /share pointing to /usr/share and /include pointing to /usr/include?

> There are a few side-effects of moving the includes from "target" include
> directory /usr/include, but it only has to do with how gcc orders the
> include path. I believe I can address those issues if we indeed have any.

I've always moved the distro to look more or less like this and have very
little problems with it.  The thing that I do different is, I have a minimal
/bin into which I move the cygwin1.dll, bash, sh, cygcheck, cygpath and a few
other things I can't remember or check at the moment; but if I had this setup
probably wouldn't have bothered.

Oh, just thought about this, the /bin, /lib, etc. mountpoints will have to be
created before mounting.  This could be done with the install program.

   Earnie Boyd: < mailto:earnie_boyd@yahoo.com >
            __Cygwin: POSIX on Windows__
Cygwin Newbies: < http://www.freeyellow.com/members5/gw32/index.html >
           __Minimalist GNU for Windows__
  Mingw32 List: < http://www.egroups.com/group/mingw32 >
    Mingw Home: (Coming Soon)
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.

More information about the Cygwin-developers mailing list