More: [1.7] packaging problem? Both /usr/bin/ and /usr/lib/ are non-empty

Christopher Faylor
Thu May 14 14:42:00 GMT 2009

On Thu, May 14, 2009 at 12:24:44PM +0200, Corinna Vinschen wrote:
>On May 13 13:26, Christopher Faylor wrote:
>On Wed, May 13, 2009 at 07:20:00PM +0200, Corinna Vinschen wrote:
>>> >Ok, sure.  Are you going to do that?
>>> Yes.  Trivial change.
>I just applied a small patch.  The root dir got the MOUNT_OVERRIDE flag
>instead of the MOUNT_IMMUTABLE flag.  This looked like a typo.  Without
>this patch, you can override / without the "override" flag.

Oops.  Thanks for catching that.

>I also added a no-op "auto" option to the oopts array so the output of
>mount -m is just stoically used.  Maybe we should actually tweak mount
>-m not to emit "auto" mount points instead, but itshould be fine one way
>or the other.

I did do that to the mount command already:

	* (oopts): Sort.  Add override option.  Add dummy "auto"
        option for consistency.
        (mount_entries): Avoid adding auto-mounted entries to -m output.

I guess it should be in the DLL too, for consistency.

>However, I have a problem with enforcing the MOUNT_CYGWIN_EXEC flag for
>/usr/bin.  Not all executables in /usr/bin are cygwin executables.  Even
>our own strace or cygcheck are no Cygwin binaries, and there are a
>couple more in the directory.

I fixed that problem a long time ago but if you don't want to do this
then go ahead and remove it.  FWIW, I have been mounting /bin and
/usr/bin as cygexec for years.  It should make process creation faster
and more reliable.

>And something else occured to me.  Isn't it too simple to create the
>/usr/bin entry like this?
>  char *p = stpcpy (native, mount[root_idx].native_path);
>  stpcpy (p, "\\bin");
>  mount_table->add_item (native, "/usr/bin", MOUNT_SYSTEM...);
>This works for a default installation, but what if Cygwin has *not* been
>installed in a directory called "bin"?  Isn't the idea of /usr/bin to
>point to the directory in which the Cygwin DLL itself is installed,
>rather than blindly pointing to ${native_root}\bin?  So, shouldn't we
>create the default /usr/bin entry more along the lines of the following
>	* (mount_info::init): Create /usr/bin mount entry
>	from parent dir of the Cygwin DLL, rather then using the fixed
>	string "\\bin".  Remove MOUNT_CYGWIN_EXEC option.

Why do we really care about non-default layouts?  With Cygwin 1.5 they
would have had to set up a specific mount entry.  Why should 1.7 be any
different?  I think it's as likely that someone would want to have be
/bin point to the actual bin directory one level up from cygwin DLL as
it is that they'd want it to be exactly where the Cygwin DLL is


More information about the Cygwin-developers mailing list