OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 29-Sep-2006 08:54:06 Branch: HEAD Handle: 2006092907540401 Modified files: openpkg-src/openpkg HISTORY aux.usrgrp.sh aux.wrapsrc.sh openpkg.spec rpmmacros shtool Log: - passwd/group lookups more efficient by performing key-based lookups instead of full dumps when possible - upgrade to latest tools Summary: Revision Changes Path 1.379 +2 -0 openpkg-src/openpkg/HISTORY 1.17 +24 -24 openpkg-src/openpkg/aux.usrgrp.sh 1.22 +4 -4 openpkg-src/openpkg/aux.wrapsrc.sh 1.528 +40 -12 openpkg-src/openpkg/openpkg.spec 1.78 +8 -8 openpkg-src/openpkg/rpmmacros 1.35 +22 -10 openpkg-src/openpkg/shtool ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/openpkg/HISTORY ============================================================================ $ cvs diff -u -r1.378 -r1.379 HISTORY --- openpkg-src/openpkg/HISTORY 28 Sep 2006 15:18:00 -0000 1.378 +++ openpkg-src/openpkg/HISTORY 29 Sep 2006 06:54:04 -0000 1.379 @@ -2,6 +2,8 @@ 2006 ==== +20060929 make passwd/group lookups more efficient by performing key-based lookups instead of full dumps when possible +20060929 upgrade to openpkg-tools 0.8.75 20060928 upgrade to OpenSSL 0.9.8d 20060926 upgrade to openpkg-tools 0.8.74 20060923 upgrade to GNU config 20060923 @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/aux.usrgrp.sh ============================================================================ $ cvs diff -u -r1.16 -r1.17 aux.usrgrp.sh --- openpkg-src/openpkg/aux.usrgrp.sh 1 Jan 2006 13:17:48 -0000 1.16 +++ openpkg-src/openpkg/aux.usrgrp.sh 29 Sep 2006 06:54:04 -0000 1.17 @@ -79,11 +79,11 @@ (who am i | cut "-d " -f1) 2>/dev/null ||\ echo $LOGNAME` cgid=`(id -g $cusr) 2>/dev/null ||\ - ((getent passwd; cat /etc/passwd; ypcat passwd) 2>/dev/null |\ - grep "^${cusr}:" | sed -n -e '1p' | awk -F: '{ print $4; }')` + ((getent passwd "${cusr}"; grep "^${cusr}:" /etc/passwd; ypmatch "${cusr}" passwd; nismatch "${cusr}" passwd; nidump passwd . | grep "^${cusr}:") 2>/dev/null |\ + sed -n -e '1p' | awk -F: '{ print $4; }')` cgrp=`(id -gn $cusr) 2>/dev/null ||\ - ((getent group; cat /etc/group; ypcat group) 2>/dev/null |\ - grep ":${cgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }')` + ((getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null | grep "^[^:]*:[^:]*:${cgid}:" |\ + sed -n -e '1p' | awk -F: '{ print $1; }')` [ ".$cgrp" = . ] && cgrp="$cusr" # determine OpenPKG susr/sgrp @@ -97,12 +97,12 @@ if [ ".$sgrp" = . ]; then sgrp=`(id -gn $susr) 2>/dev/null` if [ ".$sgrp" = . ]; then - tgid=`(getent passwd; cat /etc/passwd; ypcat passwd) 2>/dev/null |\ - grep "^${susr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'` + tgid=`(getent passwd "${susr}"; grep "^${susr}:" /etc/passwd; ypmatch "${susr}" passwd; nismatch "${susr}" passwd; nidump passwd . | grep "^${susr}:") 2>/dev/null |\ + sed -n -e '1p' | awk -F: '{ print $4; }'` if [ ".$tgid" != . ]; then sgid="${tgid}" - sgrp=`(getent group; cat /etc/group; ypcat group) 2>/dev/null |\ - grep ":${sgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` + sgrp=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\ + grep "^[^:]*:[^:]*:${sgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` fi if [ ".$sgrp" = . ]; then sgrp="wheel" @@ -120,12 +120,12 @@ if [ ".$mgrp" = . ]; then mgrp=`(id -gn $musr) 2>/dev/null` if [ ".$mgrp" = . ]; then - tgid=`(getent passwd; cat /etc/passwd; ypcat passwd) 2>/dev/null |\ - grep "^${musr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'` + tgid=`(getent passwd "${musr}"; grep "^${musr}:" /etc/passwd; ypmatch "${musr}" passwd; nismatch "${musr}" passwd; nidump passwd . | grep "^${musr}:") 2>/dev/null |\ + sed -n -e '1p' | awk -F: '{ print $4; }'` if [ ".$tgid" != . ]; then mgid="${tgid}" - mgrp=`(getent group; cat /etc/group; ypcat group) 2>/dev/null |\ - grep ":${mgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` + mgrp=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\ + grep "^[^:]*:[^:]*:${mgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` fi if [ ".$mgrp" = . ]; then mgrp="$grp" @@ -146,12 +146,12 @@ if [ ".$rgrp" = . ]; then rgrp=`(id -gn $rusr) 2>/dev/null` if [ ".$rgrp" = . ]; then - tgid=`(getent passwd; cat /etc/passwd; ypcat passwd) 2>/dev/null |\ - grep "^${rusr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'` + tgid=`(getent passwd "${rusr}"; grep "^${rusr}:" /etc/passwd; ypmatch "${rusr}" passwd; nismatch "${rusr}" passwd; nidump passwd . | grep "^${rusr}:") 2>/dev/null |\ + sed -n -e '1p' | awk -F: '{ print $4; }'` if [ ".$tgid" != . ]; then rgid="${tgid}" - rgrp=`(getent group; cat /etc/group; ypcat group) 2>/dev/null |\ - grep ":${rgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` + rgrp=`(getent group; cat /etc/group; ypcat group; nismatch group; nidump group .) 2>/dev/null |\ + grep "^[^:]*:[^:]*:${rgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` fi if [ ".$rgrp" = . ]; then rgrp="${grp}-r" @@ -172,12 +172,12 @@ if [ ".$ngrp" = . ]; then ngrp=`(id -gn $nusr) 2>/dev/null` if [ ".$ngrp" = . ]; then - tgid=`(getent passwd; cat /etc/passwd; ypcat passwd) 2>/dev/null |\ - grep "^${nusr}:" | sed -n -e '1p' | awk -F: '{ print $4; }'` + tgid=`(getent passwd "${nusr}"; grep "^${nusr}:" /etc/passwd; ypmatch "${nusr}" passwd; nismatch "${nusr}" passwd; nidump passwd . | grep "^${nusr}:") 2>/dev/null |\ + sed -n -e '1p' | awk -F: '{ print $4; }'` if [ ".$tgid" != . ]; then ngid="${tgid}" - ngrp=`(getent group; cat /etc/group; ypcat group) 2>/dev/null |\ - grep ":${ngid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` + ngrp=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\ + grep "^[^:]*:[^:]*:${ngid}:" | sed -n -e '1p' | awk -F: '{ print $1; }'` fi if [ ".$ngrp" = . ]; then ngrp="${grp}-n" @@ -189,16 +189,16 @@ fi # determine OpenPKG suid/sgid -# FIXME?! (currently not necessary) +# (currently not necessary) # determine OpenPKG muid/mgid -# FIXME?! (currently not necessary) +# (currently not necessary) # determine OpenPKG ruid/rgid -# FIXME?! (currently not necessary) +# (currently not necessary) # determine OpenPKG nuid/ngid -# FIXME?! (currently not necessary) +# (currently not necessary) # print results output="" @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/aux.wrapsrc.sh ============================================================================ $ cvs diff -u -r1.21 -r1.22 aux.wrapsrc.sh --- openpkg-src/openpkg/aux.wrapsrc.sh 1 Jan 2006 13:17:48 -0000 1.21 +++ openpkg-src/openpkg/aux.wrapsrc.sh 29 Sep 2006 06:54:04 -0000 1.22 @@ -110,11 +110,11 @@ (who am i | cut "-d " -f1) 2>/dev/null ||\ echo $LOGNAME` cgid=`(id -g $cusr) 2>/dev/null ||\ - ((getent passwd; cat /etc/passwd; ypcat passwd) 2>/dev/null |\ - grep "^${cusr}:" | sed -n -e '1p' | awk -F: '{ print $4; }')` + ((getent passwd "${cusr}"; grep "^${cusr}:" /etc/passwd; ypmatch "${cusr}" passwd; nismatch "${cusr}" passwd; nidump passwd . | grep "^${cusr}:") 2>/dev/null |\ + sed -e 'q' | awk -F: '{ print $4; }')` cgrp=`(id -gn $cusr) 2>/dev/null ||\ - ((getent group; cat /etc/group; ypcat group) 2>/dev/null |\ - grep ":${cgid}:" | sed -n -e '1p' | awk -F: '{ print $1; }')` + ((getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null | grep "^[^:]*:[^:]*:${cgid}:" |\ + sed -e 'q' | awk -F: '{ print $1; }')` if [ ".$cgrp" = . ]; then cgrp="$cusr" fi @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/openpkg.spec ============================================================================ $ cvs diff -u -r1.527 -r1.528 openpkg.spec --- openpkg-src/openpkg/openpkg.spec 28 Sep 2006 15:18:00 -0000 1.527 +++ openpkg-src/openpkg/openpkg.spec 29 Sep 2006 06:54:04 -0000 1.528 @@ -39,7 +39,7 @@ # o any cc(1) # the package version/release -%define V_openpkg 20060928 +%define V_openpkg 20060929 # the used software versions %define V_rpm 4.2.1 @@ -57,7 +57,7 @@ %define V_registry 0.7.2 %define V_perl 5.8.8 %define V_openssl 0.9.8d -%define V_tools 0.8.74 +%define V_tools 0.8.75 # package information Name: openpkg @@ -1615,8 +1615,12 @@ eval "xuid=\"\$${class}uid\"" eval "xgid=\"\$${class}gid\"" if [ ".$xuid" = . ]; then - xuid=`(getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .) 2>/dev/null |\ - grep "^${xusr}:" | awk -F: '{ print $3; }' | sed -e q` + xuid=`(getent passwd "${xusr}"; \ + grep "^${xusr}:" /etc/passwd; \ + ypmatch "${xusr}" passwd; \ + nismatch "${xusr}" passwd; \ + nidump passwd . | grep "^${xusr}:") 2>/dev/null | \ + sed -e 'q' | awk -F: '{ print $3; }'` if [ ".$xuid" = . ]; then # seek for a reasonably uid/gid pair xuid=1000 @@ -1624,12 +1628,12 @@ while [ ".$ok" = .0 ]; do eval "u_exists=\$u_exists_$xuid" if [ ".$u_exists" = . ]; then - u_exists=`(getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .) 2>/dev/null |\ + u_exists=`(getent passwd; cat /etc/passwd; ypcat passwd; niscat passwd; nidump passwd .) 2>/dev/null |\ grep "^[^:]*:[^:]*:$xuid:"` fi eval "g_exists=\$g_exists_$xuid" if [ ".$g_exists" = . ]; then - g_exists=`(getent group; cat /etc/group; ypcat group; nidump group .) 2>/dev/null |\ + g_exists=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\ grep "^[^:]*:[^:]*:$xuid:"` fi if [ ".$u_exists" = . -a ".$g_exists" = . ]; then @@ -1643,8 +1647,12 @@ fi fi if [ ".$xgid" = . ]; then - xgid=`(getent group; cat /etc/group; ypcat group; nidump group .) 2>/dev/null |\ - grep "^${xgrp}:" | awk -F: '{ print $3; }' | sed -e q` + xgid=`(getent group "${xgrp}"; \ + grep "^${xgrp}:" /etc/group; \ + ypmatch "${xgrp}" group; \ + nismatch "${xgrp}" group; \ + nidump group . | grep "^${xgrp}:") 2>/dev/null | \ + sed -e 'q' | awk -F: '{ print $3; }'` if [ ".$xgid" = . ]; then xgid="$xuid" fi @@ -1682,7 +1690,12 @@ class="$1"; usr="$2"; uid="$3"; grp="$4"; gid="$5" # check whether user already exists - exists=`(getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .) 2>/dev/null | grep "^$usr:"` + exists=`(getent passwd "$usr"; \ + grep "^$usr:" /etc/passwd; \ + ypmatch "$usr" passwd; \ + nismatch "$usr" passwd; \ + nidump passwd . | grep "^$usr:") 2>/dev/null | \ + sed -e 'q'` if [ ".$exists" = . ]; then if [ ".$cusr" != ".root" ]; then echo "openpkg:WARNING: skipping creation of OpenPKG $class user $usr" 1>&2 @@ -1766,7 +1779,12 @@ fi # check whether group already exists - exists=`(getent group; cat /etc/group; ypcat group; nidump group .) 2>/dev/null | grep "^$grp:"` + exists=`(getent group "$grp"; \ + grep "^$grp:" /etc/group; \ + ypmatch "$grp" group; \ + nismatch "$grp" group; \ + nidump group . | grep "^$grp:") 2>/dev/null | \ + sed -e 'q'` if [ ".$exists" = . ]; then if [ ".$cusr" != ".root" ]; then echo "openpkg:WARNING: skipping creation of OpenPKG $class group $grp" 1>&2 @@ -2459,7 +2477,12 @@ class="$1"; usr="$2"; uid="$3"; grp="$4"; gid="$5" # check whether user already exists - exists=`(getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .) 2>/dev/null | grep "^$usr:"` + exists=`(getent passwd "$usr"; \ + grep "^$usr:" /etc/passwd; \ + ypmatch "$usr" passwd; \ + nismatch "$usr" passwd; \ + nidump passwd . | grep "^$usr:") 2>/dev/null | \ + sed -e 'q'` if [ ".$exists" != . ]; then if [ ".$cusr" != ".root" ]; then echo "openpkg:WARNING: skipping deletion of OpenPKG $class user $usr" 1>&2 @@ -2515,7 +2538,12 @@ fi # check whether group already exists - exists=`(getent group; cat /etc/group; ypcat group; nidump group .) 2>/dev/null | grep "^$grp:"` + exists=`(getent group "$grp"; \ + grep "^$grp:" /etc/group; \ + ypmatch "$grp" group; \ + nismatch "$grp" group; \ + nidump group . | grep "^$grp:") 2>/dev/null | \ + sed -e 'q'` if [ ".$exists" != . ]; then if [ ".$cusr" != ".root" ]; then echo "openpkg:WARNING: skipping deletion of OpenPKG $class group $grp" 1>&2 @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/rpmmacros ============================================================================ $ cvs diff -u -r1.77 -r1.78 rpmmacros --- openpkg-src/openpkg/rpmmacros 22 Jun 2006 08:51:06 -0000 1.77 +++ openpkg-src/openpkg/rpmmacros 29 Sep 2006 06:54:05 -0000 1.78 @@ -101,26 +101,26 @@ # the *S*uper-user user/group name/id pair %l_susr @SUSR@ %l_sgrp @SGRP@ -%l_suid %((getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .) 2>/dev/null | grep "^%{l_susr}:" | sed -e 'q' | awk -F: '{ print $3; }') -%l_sgid %((getent group; cat /etc/group; ypcat group; nidump group .) 2>/dev/null | grep "^%{l_sgrp}:" | sed -e 'q' | awk -F: '{ print $3; }') +%l_suid %((getent passwd "%{l_susr}"; grep "^%{l_susr}:" /etc/passwd; ypmatch "%{l_susr}" passwd; nismatch "%{l_susr}" passwd; nidump passwd . | grep "^%{l_susr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }') +%l_sgid %((getent group "%{l_sgrp}"; grep "^%{l_sgrp}:" /etc/group; ypmatch "%{l_sgrp}" group; nismatch "%{l_sgrp}" group; nidump group . | grep "^%{l_susr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }') # the *M*anagement user/group name/id pair %l_musr @MUSR@ %l_mgrp @MGRP@ -%l_muid %((getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .) 2>/dev/null | grep "^%{l_musr}:" | sed -e 'q' | awk -F: '{ print $3; }') -%l_mgid %((getent group; cat /etc/group; ypcat group; nidump group .) 2>/dev/null | grep "^%{l_mgrp}:" | sed -e 'q' | awk -F: '{ print $3; }') +%l_muid %((getent passwd "%{l_musr}"; grep "^%{l_musr}:" /etc/passwd; ypmatch "%{l_musr}" passwd; nismatch "%{l_musr}" passwd; nidump passwd . | grep "^%{l_musr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }') +%l_mgid %((getent group "%{l_mgrp}"; grep "^%{l_mgrp}:" /etc/group; ypmatch "%{l_mgrp}" group; nismatch "%{l_mgrp}" group; nidump group . | grep "^%{l_musr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }') # the *R*restricted user/group name/id pair %l_rusr @RUSR@ %l_rgrp @RGRP@ -%l_ruid %((getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .) 2>/dev/null | grep "^%{l_rusr}:" | sed -e 'q' | awk -F: '{ print $3; }') -%l_rgid %((getent group; cat /etc/group; ypcat group; nidump group .) 2>/dev/null | grep "^%{l_rgrp}:" | sed -e 'q' | awk -F: '{ print $3; }') +%l_ruid %((getent passwd "%{l_rusr}"; grep "^%{l_rusr}:" /etc/passwd; ypmatch "%{l_rusr}" passwd; nismatch "%{l_rusr}" passwd; nidump passwd . | grep "^%{l_rusr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }') +%l_rgid %((getent group "%{l_rgrp}"; grep "^%{l_rgrp}:" /etc/group; ypmatch "%{l_rgrp}" group; nismatch "%{l_rgrp}" group; nidump group . | grep "^%{l_rusr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }') # the *N*on-privileged user/group name/id pair %l_nusr @NUSR@ %l_ngrp @NGRP@ -%l_nuid %((getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .) 2>/dev/null | grep "^%{l_nusr}:" | sed -e 'q' | awk -F: '{ print $3; }') -%l_ngid %((getent group; cat /etc/group; ypcat group; nidump group .) 2>/dev/null | grep "^%{l_ngrp}:" | sed -e 'q' | awk -F: '{ print $3; }') +%l_nuid %((getent passwd "%{l_nusr}"; grep "^%{l_nusr}:" /etc/passwd; ypmatch "%{l_nusr}" passwd; nismatch "%{l_nusr}" passwd; nidump passwd . | grep "^%{l_nusr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }') +%l_ngid %((getent group "%{l_ngrp}"; grep "^%{l_ngrp}:" /etc/group; ypmatch "%{l_ngrp}" group; nismatch "%{l_ngrp}" group; nidump group . | grep "^%{l_nusr}:") 2>/dev/null | sed -e 'q' | awk -F: '{ print $3; }') # backward compatibility (openpkg < 20020204) %l_fsusr %{l_musr} @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/shtool ============================================================================ $ cvs diff -u -r1.34 -r1.35 shtool --- openpkg-src/openpkg/shtool 19 Apr 2006 16:45:22 -0000 1.34 +++ openpkg-src/openpkg/shtool 29 Sep 2006 06:54:05 -0000 1.35 @@ -768,11 +768,14 @@ userid=`grep "^${username}:" /etc/passwd 2>/dev/null | \ sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'` if [ ".$userid" = . ]; then - userid=`(ypcat passwd) 2>/dev/null | - grep "^${username}:" | \ - sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'` + userid=`(ypmatch "${username}" passwd; nismatch "${username}" passwd) 2>/dev/null | \ + sed -e 'q' | sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'` if [ ".$userid" = . ]; then - userid='?' + userid=`(nidump passwd . | grep "^${username}:") 2>/dev/null | \ + sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'` + if [ ".$userid" = . ]; then + userid='?' + fi fi fi fi @@ -797,10 +800,14 @@ groupid=`grep "^${username}:" /etc/passwd 2>/dev/null | \ sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'` if [ ".$groupid" = . ]; then - groupid=`(ypcat passwd) 2>/dev/null | grep "^${username}:" | \ - sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'` + groupid=`(ypmatch "${username}" passwd; nismatch "${username}" passwd) 2>/dev/null | \ + sed -e 'q' | sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'` if [ ".$groupid" = . ]; then - groupid='?' + groupid=`(nidump passwd . | grep "^${username}:") 2>/dev/null | \ + sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'` + if [ ".$groupid" = . ]; then + groupid='?' + fi fi fi fi @@ -825,11 +832,16 @@ groupname=`grep "^[^:]*:[^:]*:${groupid}:" /etc/group 2>/dev/null | \ sed -e 's/:.*$//'` if [ ".$groupname" = . ]; then - groupname=`(ypcat group) 2>/dev/null | \ - grep "^[^:]*:[^:]*:${groupid}:" | \ + groupname=`(ypcat group; niscat group) 2>/dev/null | \ + sed -e 'q' | grep "^[^:]*:[^:]*:${groupid}:" | \ sed -e 's/:.*$//'` if [ ".$groupname" = . ]; then - groupname='?' + groupname=`(nidump group .) 2>/dev/null | \ + grep "^[^:]*:[^:]*:${groupid}:" | \ + sed -e 's/:.*$//'` + if [ ".$groupname" = . ]; then + groupname='?' + fi fi fi fi @@ . ______________________________________________________________________ The OpenPKG Project www.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org