This is the mail archive of the cygwin-developers@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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


--- 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.
http://im.yahoo.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]