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