Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com Message-ID: <20000229133656.2556.qmail@web116.yahoomail.com> Date: Tue, 29 Feb 2000 05:36:56 -0800 (PST) From: Earnie Boyd Reply-To: earnie_boyd AT yahoo DOT com Subject: Re: FS layout issues for v1.1 (eg., /bin and /usr/bin) To: Mumit Khan , Cygwin Developers List MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii --- Mumit Khan 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//include and > system libraries in /usr//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: __Cygwin: POSIX on Windows__ Cygwin Newbies: __Minimalist GNU for Windows__ Mingw32 List: Mingw Home: (Coming Soon) __________________________________________________ Do You Yahoo!? Talk to your friends online with Yahoo! Messenger. http://im.yahoo.com