Subject: Re: No admin setup questions
From: Brian Inglis <[email-masked]>
To: [email-masked]
Date: Tue, 23 Feb 2021 14:51:39 -0700
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>

On 2021-02-23 09:08, Lavrentiev, Anton (NIH/NLM/NCBI) [C] via Cygwin wrote:
> I just downloaded the freshest setup.exe from the website to update a very
> old installation on a work PC, and am running it with -B (no admin).
> First thing I noticed is that the front page of the website (Cygwin.com) 
> tells me that the latest Cygwin is 3.1.6, but the setup is downloading
> 3.1.7-1.

Good catch - thanks - patch submitted.

> Also, I see a lot of messages in the cmd.exe "terminal" window, from where 
> setup was run:  it seems to be logging all actions, including that I was not 
> allowed to open service controller, and missing some rights, what the
> download and install path are, which packages are being downloaded, extracted
> and installing.
> I do not remember seeing any of those in a "more regular" use (without the 
> -B, when I just click the icon with the program).

Your non-elevated non-admin USER may not have perms to create logs in any of the 
usual places /var/log/, /tmp/, ./, /

> Is that some sort of a debugging output left behind?  Just curios, if that's 
> a debug version of the setup ended up on being offered for download
> inadvertently.
> Also, procmail fails to post-install (I don't need it, so I don't basically
> care).
> running: C:\cygwin64\bin\bash.exe --norc --noprofile "/etc/postinstall/procmail.sh"
> abnormal exit: exit code=1
Your non-elevated non-admin USER will not have perms to be able to chown to 
SYSTEM, and may not have perms to create directories, install config files, etc. 
required to install services such as procmail which should normally be installed 
or upgraded under an elevated admin USER.

$ head /etc/postinstall/procmail.sh.done
#!/bin/sh

function install_conf {
         if ! [ -s "/$1" ]; then
                 cp -p "/etc/defaults/$1" "/$1"
                 chown SYSTEM "/$1"
                 chmod -x "/$1"
         fi
}
function install_dir {
$ dash -n /etc/postinstall/procmail.sh.done
a/procmail.sh.done: 9: a/procmail.sh.done: Syntax error: "}" unexpected
$ checkbashisms -fnpx /etc/postinstall/procmail.sh.done
possible bashism in /etc/postinstall/procmail.sh.done line 3 ('function' is 
useless):
function install_conf {
possible bashism in /etc/postinstall/procmail.sh.done line 10 ('function' is 
useless):
function install_dir {

Script /etc/postinstall/procmail.sh is non-POSIX, non-portable, will not run 
under dash or another POSIX shell, only if sh is bash as installed by Cygwin or 
something similar; to be safe, explicit standard binary paths should be 
hardcoded and precautions taken, just in case a proper PATH is not yet set, the 
script is not run under native Cygwin, or not installed for all users under an 
elevated admin USER, similar to the attached patch.

The postinstall script would be better rewritten to take account of these 
conditions and use the install utility designed to do all this instead of 
duplicating it in functions.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]
diff a/procmail.sh b/procmail.sh
--- a/procmail.sh	2015-05-02 15:47:51.000000000 -0600
+++ b/procmail.sh	2021-02-23 14:36:11.615337500 -0700
@@ -1,22 +1,24 @@
 #!/bin/sh
 
-function install_conf {
+install_conf () {
 	if ! [ -s "/$1" ]; then
-		cp -p "/etc/defaults/$1" "/$1"
-		chown SYSTEM "/$1"
-		chmod -x "/$1"
+		/bin/cp -p "/etc/defaults/$1" "/$1"
+		[ -n "$CYGWINFORALL" ] && /bin/chown $root "/$1"
+		/bin/chmod a-x "/$1"
 	fi
 }
-function install_dir {
+install_dir () {
 	if ! [ -d "$1" ]; then
-		mkdir -p "$1"
-		chown SYSTEM "$1"
+		/bin/mkdir -p "$1"
+		[ -n "$CYGWINFORALL" ] && /bin/chown $root "$1"
 	fi
 }
 
+[ $(uname -o) = Cygwin ] && root=SYSTEM || root=root
+
 install_dir /var/spool/mail
 install_conf etc/aliases
 
-chown SYSTEM /usr/bin/procmail.exe
-chown SYSTEM /usr/bin/lockfile.exe
+/bin/chown $root /usr/bin/procmail
+/bin/chown $root /usr/bin/lockfile
 
--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple