[PATCH 1/3 v3] Cygwin: accounts: Unify nsswitch.conf db_* defaults

2020-04-21 Thread David Macek via Cygwin-patches
Signed-off-by: David Macek 
---
 winsup/cygwin/uinfo.cc | 11 +--
 winsup/doc/ntsec.xml   | 21 ++---
 2 files changed, 11 insertions(+), 21 deletions(-)

diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index 57d90189d3..2d5fc488bb 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -626,15 +626,12 @@ cygheap_pwdgrp::init ()
   grp_cache.cygserver.init_grp ();
   grp_cache.file.init_grp ();
   grp_cache.win.init_grp ();
-  /* Default settings:
+  /* Default settings (excluding fallbacks):
 
  passwd: files db
  group:  files db
  db_prefix: auto   DISABLED
  db_separator: +   DISABLED
- db_home: cygwin desc
- db_shell: cygwin desc
- db_gecos: cygwin desc
  db_enum: cache builtin
   */
   pwd_src = (NSS_SRC_FILES | NSS_SRC_DB);
@@ -831,12 +828,6 @@ cygheap_pwdgrp::nss_init_line (const char *line)
  c += strspn (c, " \t");
  ++idx;
}
- /* If nothing has been set, revert to default. */
- if (scheme[0].method == NSS_SCHEME_FALLBACK)
-   {
- scheme[0].method = NSS_SCHEME_CYGWIN;
- scheme[1].method = NSS_SCHEME_DESC;
-   }
}
}
   break;
diff --git a/winsup/doc/ntsec.xml b/winsup/doc/ntsec.xml
index 5287845686..a4c253098d 100644
--- a/winsup/doc/ntsec.xml
+++ b/winsup/doc/ntsec.xml
@@ -1507,19 +1507,16 @@ of each schema when used with 
db_home:
 
 
 
-As has been briefly mentioned before, the default setting for
-db_home: is
+db_home: defines no default schemata.  If this setting is 
not
+present in /etc/nsswitch.conf, the aforementioned fallback
+takes over, which is equivalent to a /etc/nsswitch.conf
+settting of
 
 
 
   db_home: /home/%U
 
 
-
-So by default, Cygwin just sets the home dir to
-/home/$USERNAME.
-
-
 
 
 
@@ -1590,8 +1587,10 @@ when used with db_shell:
 
 
 
-As for db_home:, the default setting for
-db_shell: is pretty much a constant
+db_shell: defines no default schemata.  If this setting is
+not present in /etc/nsswitch.conf, the aforementioned
+fallback takes over, which is equivalent to a
+/etc/nsswitch.conf settting of
 
 
 
@@ -1664,13 +1663,13 @@ The following list describes the meaning of each schema 
when used with
   
 Fallback
 If none of the schemes given for db_gecos:
- define a non-empty pathname, nothing is added to
+ define a non-empty string, nothing is added to
  pw_gecos.
   
 
 
 
-The default setting for db_gecos: is the empty string.
+db_gecos: defines no default schemata.
 
 
 
-- 
2.26.1.windows.1



Re: [PATCH 1/3 v2] Cygwin: accounts: Unify nsswitch.conf db_* defaults

2020-04-21 Thread Corinna Vinschen
On Apr 21 11:12, Corinna Vinschen wrote:
> Hi David,
> 
> source patch is ok, just the docs...

Patch 2 and 3 are ok, they just don't apply cleanly as long as
patch 1 isn't applied.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer


Re: [PATCH 1/3 v2] Cygwin: accounts: Unify nsswitch.conf db_* defaults

2020-04-21 Thread Corinna Vinschen
Hi David,

source patch is ok, just the docs...

On Apr 20 19:20, David Macek via Cygwin-patches wrote:
> diff --git a/winsup/doc/ntsec.xml b/winsup/doc/ntsec.xml
> index 5287845686..032bebe4dc 100644
> --- a/winsup/doc/ntsec.xml
> +++ b/winsup/doc/ntsec.xml
> @@ -874,9 +874,6 @@ set up to all default values:
>db_prefix:auto
>db_separator: + -->
>db_enum:  cache builtin
> -  db_home:  /home/%U
> -  db_shell: /bin/bash
> -  db_gecos: empty
>  

I'm not exactly happy with removing these lines.  While your patch is
*technically* correct in terms of schemata, these *are* the default
values.  The target audience are users.  A simple overview like the
above is helpful to just look up the defaults, while the technical
description below is for the more in-depth view.

So from my POV this hunk should be remove from your patch.

>   id="ntsec-mapping-nsswitch-syntax.title">The 
> /etc/nsswitch.conf syntax
> @@ -1508,15 +1505,8 @@ of each schema when used with 
> db_home:
>  
>  
>  As has been briefly mentioned before, the default setting for
> -db_home: is
> -
> -
> -
> -  db_home: /home/%U
> -
> -
> -
> -So by default, Cygwin just sets the home dir to
> +db_home: defines no schemata, which means only the 
> fallback
> +option is used, so by default, Cygwin just sets the home dir to

Just adding text on top and trying to keep the former wording intact
doesn't do justice to the actual change here.  I'd like to suggest a
stronger rephrasing, along the lines of

  db_home: defines no default schemata.  If this
  setting is not present in /etc/nsswitch.conf,
  the fallback is to set the home directory to 
  /home/$USERNAME.  This is equivalent to
  a /etc/nsswitch.conf settting of

  
db_home: /home/%U
  

Same or similar in the db_shell case.  db_gecos is fine as is.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer