[ANNOUNCEMENT] Updated: Cygwin 2.2.0-1

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Aug 7 09:04:00 GMT 2015


On Aug  6 14:03, Thomas Wolff wrote:
> On 05.08.2015 12:12, Corinna Vinschen wrote:
> >On Aug  5 11:09, Thomas Wolff wrote:
> >>Am 05.08.2015 um 09:54 schrieb Corinna Vinschen:
> >>...
> >>>So the idea was:
> >>>
> >>>   set HOME=foo		<- ignored, set HOME from passwd DB entry
> >>>   set HOME=C:/foo	<- same
> >>No, please don't!
> >>>   set HOME=//foo/bar	<- same
> >>>   set HOME=/foo/bar	<- valid, taken
> >>>
> >>>Right now, when started from a non-Cygwin process, Cygwin takes the
> >>>value of $HOME and simply calls the Win32->POSIX conversion function.
> >>>It does so for a long time, but is that right?
> Yes!
> >>>   Especially if %HOME% is
> >>>a non-absolute == relative path, the resulting POSIX value of $HOME
> >>>depends on the current directory when starting Cygwin.
> >>Other POSIX systems don't handle this situation well either, so I don't see
> >>a need to act here.
> >Other POSIX systems don't usually get a broken path.  The path is set
> >by the login process with the value taken from the passwd DB.  That's
> >what should be the default for Cygwin processes started from non-Cygwin
> >processes as well.  Of course Cygwin has to use $HOME because it could
> >be set for a reason.  But typically we don't need $HOME from Win32
> >processes, unless it's propagated from another Cygwin parent process.
> >
> >The general idea is to make sure the passwd DB contains the correct
> >home dir and then use that.
> It's a long Unix tradition that you can set HOME to something arbitrary
> before starting a shell (and if you choose a relative or non-existing path,
> it's your own fault). This should be maintained, whether doing so within
> Cygwin or from Windows. As you say, if somebody's setting HOME in Windows,
> they are doing this on purpose.

I have some doubts. Setting HOME in Windows is a workaround to get
other, non-Cygwin POSIX-alike stuff working, and and in many cases
because people didn't read the docs and failed to understand how to
change the account DB (up to 1.7.33 .etc.passwd only) to get the desired
result.  And no, I don't read all documentation myself, so I'm sure I
fail to use some software effectively either.

Globally setting HOME in Windows for the sake of Cygwin was partially
necessary up to the early 2000s.  For *at least* 12 years, it wasn't
anymore.

> And people shouldn't be told to set HOME to a value not valid in the
> environment they are setting it. Also considering that two applications were
> mentioned that use it within Windows.
> Finally, I think people shouldn't be told they cannot use the traditional
> Unix feature (well-known to some) anymore because they should use some more
> modern DB configuration method (system-specific, to be studied...).

So, editing /etc/passwd or /etc/nsswitch.conf is *that* hard?


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20150807/b0c5e2c1/attachment.sig>


More information about the Cygwin mailing list