This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
Re: More: [1.7] packaging problem? Both /usr/bin/ and /usr/lib/ are non-empty
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:
* mount.cc (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
>patch?
>
> * mount.cc (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
installed.
cgf