OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 23-Mar-2007 00:02:34 Branch: OPENPKG_2_STABLE Handle: 2007032223023102 Modified files: (Branch: OPENPKG_2_STABLE) openpkg-src/openpkg HISTORY openpkg.spec rc rc.func rc.openpkg uuid.sh Log: MFC: latest registry fine tuning, rc fixes and compatibility removal Summary: Revision Changes Path 1.337.2.22 +10 -0 openpkg-src/openpkg/HISTORY 1.490.2.22 +15 -15 openpkg-src/openpkg/openpkg.spec 1.62.2.3 +1 -7 openpkg-src/openpkg/rc 1.15.2.2 +1 -37 openpkg-src/openpkg/rc.func 1.19.12.3 +12 -6 openpkg-src/openpkg/rc.openpkg 1.8.2.3 +11 -33 openpkg-src/openpkg/uuid.sh ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/openpkg/HISTORY ============================================================================ $ cvs diff -u -r1.337.2.21 -r1.337.2.22 HISTORY --- openpkg-src/openpkg/HISTORY 18 Mar 2007 23:31:59 -0000 1.337.2.21 +++ openpkg-src/openpkg/HISTORY 22 Mar 2007 23:02:31 -0000 1.337.2.22 @@ -2,6 +2,16 @@ 2007 ==== +20070322 **** RELEASE AS PART OF OPENPKG 2.20070322 **** +20070322 cosmetic: align code variable name with documentation +20070321 upgrade to openpkg-registry 1.1.2 replace HOSTNAME with FQDN when creating OPENPKG_DESC default +20070320 automatic (re-)registration if previous registration, community series or release set to openpkg URLs +20070320 improve generation of UUID_PLATFORM by using a better (no longer IP based) "discriminator" value +20070320 remove old support for never finished rcng +20070320 remove old backward compatibility from rc.func for OpenPKG 1.2's opXXX functions +20070319 change "rc" to not check permissions for --print operations +20070319 fix eval "rc" in rc.func which relies on PATH and conflicts with Plan 9 shell + 20070319 **** RELEASE AS PART OF OPENPKG 2.20070319 **** 20070305 invalidate passwd and group tables from Name Service Cache Daemon after pwconv 20070305 upgrade to rpmtool 1.1.0 remove dormant code for system user/group addition/removal @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/openpkg.spec ============================================================================ $ cvs diff -u -r1.490.2.21 -r1.490.2.22 openpkg.spec --- openpkg-src/openpkg/openpkg.spec 18 Mar 2007 23:32:00 -0000 1.490.2.21 +++ openpkg-src/openpkg/openpkg.spec 22 Mar 2007 23:02:31 -0000 1.490.2.22 @@ -39,7 +39,7 @@ # o any cc(1) # the package version/release -%define V_openpkg 2.20070319 +%define V_openpkg 2.20070322 # the used software versions %define V_rpm 4.2.1 @@ -55,7 +55,7 @@ %define V_bash 3.2 %define V_uuid 1.5.1 %define V_config 20060923 -%define V_registry 1.1.1 +%define V_registry 1.1.2 %define V_perl 5.8.8 %define V_openssl 0.9.8e %define V_tools 1.4.4 @@ -1628,12 +1628,12 @@ [ ".$prefix" = . ] && prefix="%{l_prefix}" prefix=`echo "$prefix" | sed -e 's;//*;/;g' -e 's;/$;;'` - # register the OpenPKG instance in /etc/openpkg - registry="/etc/openpkg" - exists=`cat $registry 2>/dev/null | egrep "^ *${prefix} *\$"` + # register instance in presence file + presence="/etc/openpkg" + exists=`cat $presence 2>/dev/null | egrep "^ *${prefix} *\$"` if [ ".$exists" = . ]; then ( umask 022 - echo "${prefix}" >>$registry + echo "${prefix}" >>$presence ) 2>/dev/null || true fi @@ -2488,19 +2488,19 @@ r=`(uname -r) 2>/dev/null` || r='0.0' plid="${s}/${r}" - # unregister the OpenPKG instance in /etc/openpkg - registry="/etc/openpkg" - exists=`cat $registry 2>/dev/null | egrep "^ *${prefix} *\$"` + # unregister instance in presence file + presence="/etc/openpkg" + exists=`cat $presence 2>/dev/null | egrep "^ *${prefix} *\$"` if [ ".$exists" != . ]; then if [ ".$cusr" != ".root" ]; then - echo "openpkg:WARNING: skipping unregistering of $prefix in $registry" 1>&2 + echo "openpkg:WARNING: skipping unregistering of $prefix in $presence" 1>&2 echo "openpkg:WARNING: (would require root-privileges)" 1>&2 else - cp $registry $registry.bak && \ - egrep -v "^ *${prefix} *\$" $registry.bak >$registry - rm -f $registry.bak >/dev/null 2>&1 - if [ ".`cat $registry`" = . ]; then - rm -f $registry >/dev/null 2>&1 + cp $presence $presence.bak && \ + egrep -v "^ *${prefix} *\$" $presence.bak >$presence + rm -f $presence.bak >/dev/null 2>&1 + if [ ".`cat $presence`" = . ]; then + rm -f $presence >/dev/null 2>&1 fi fi fi @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/rc ============================================================================ $ cvs diff -u -r1.62.2.2 -r1.62.2.3 rc --- openpkg-src/openpkg/rc 5 Jan 2007 20:34:36 -0000 1.62.2.2 +++ openpkg-src/openpkg/rc 22 Mar 2007 23:02:32 -0000 1.62.2.3 @@ -48,12 +48,6 @@ NL=" " -# provide hook for "openpkg-rc" package which contains the -# new OSSP rc implementation as a replacement for this script. -if [ -f "$prefix/lib/openpkg/rcng" ]; then - exec "$prefix/lib/openpkg/rcng" ${1+"$@"} -fi - ## ## command line option parsing ## @@ -341,7 +335,7 @@ done # sanity check: is operation supported by current environment? - if [ ".$s_user" != ".$user" -a ".$user" != ".root" ]; then + if [ ".$s_user" != ".$user" -a ".$user" != ".root" -a ".$print" = .0 ]; then echo "openpkg:rc:ERROR: $s_name:%$cmd: require root privileges to run as user \"$s_user\"" 1>&2 exit 1 fi @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/rc.func ============================================================================ $ cvs diff -u -r1.15.2.1 -r1.15.2.2 rc.func --- openpkg-src/openpkg/rc.func 5 Jan 2007 20:34:36 -0000 1.15.2.1 +++ openpkg-src/openpkg/rc.func 22 Mar 2007 23:02:33 -0000 1.15.2.2 @@ -176,7 +176,7 @@ local chk="${3}" eval "local val=\$${var}" if [ ".${val}" = . ]; then - eval `rc ${1} status` + eval [EMAIL PROTECTED]@/bin/openpkg rc 2>/dev/null --silent ${1} status || true` eval "local val=\$${var}" fi if [ ".${val}" = ".${chk}" ]; then @@ -208,39 +208,3 @@ esac } -# -# BACKWARD COMPATIBILITY FOR OPENPKG 1.2 ONLY: -# Mapping between old opXXX and new rcXXX functions. -# - -opWarn () { - rcMsg -w "$*" -} -opErr () { - rcMsg -e "$*" -} -opPathAdd () { - rcPath -a "$@" -} -opPathDel () { - rcPath -r "$@" -} -opServiceEnabled () { - rcService ${1} enable yes -} -opService () { - rcService "$@" -} -opTmpDirGen () { - rcTmp -i -p ${1} -} -opTmpDirFile () { - eval "${3}=\$(rcTmp -f -n ${2})" -} -opTmpDirDel () { - rcTmp -k -} -opVarIsYes () { - rcVarIsYes "$@" -} - @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/rc.openpkg ============================================================================ $ cvs diff -u -r1.19.12.2 -r1.19.12.3 rc.openpkg --- openpkg-src/openpkg/rc.openpkg 21 Feb 2007 17:22:11 -0000 1.19.12.2 +++ openpkg-src/openpkg/rc.openpkg 22 Mar 2007 23:02:33 -0000 1.19.12.3 @@ -28,12 +28,18 @@ %hourly -u @l_musr@ rcService openpkg enable yes || exit 0 - reregister=0; @l_prefix@/bin/openpkg register --printstatus >/dev/null 2>&1 && reregister=1 - # check for "openpkg" executable from the OpenPKG Community series - # if OSS, register with openpkg.org - [EMAIL PROTECTED]@/bin/openpkg --license 2>/dev/null | \ - sed -e 'q' | egrep '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*-C'` - if [ ".$community_version" != . -o $reregister -eq 1 ]; then + # automatic (re-)registration + reregister=0 + # re-register if previously registered + @l_prefix@/bin/openpkg register --printstatus >/dev/null 2>&1 && reregister=1 + # re-register if "openpkg" executable from community series + [ $reregister -eq 0 ] && @l_prefix@/bin/openpkg --license 2>/dev/null \ + | sed -e 'q' | egrep '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*-C' >/dev/null && reregister=1 + # re-register if "openpkg release" configured to pull packages directly from openpkg.(org|com|net) + [ $reregister -eq 0 ] && @l_prefix@/bin/openpkg release --fmt='%u' \ + | egrep '^[^:]*://(([^:]*:)?([EMAIL PROTECTED]@)?)?([^/]*\.)?openpkg\.(com|org|net)/' >/dev/null && reregister=1 + # perform (re-)registration + if [ $reregister -eq 1 ]; then [ $openpkg_reghour -lt 00 -o $openpkg_reghour -gt 23 ] && openpkg_reghour="3" now=`date '+%H'` [ $openpkg_reghour -eq $now ] || exit 0 @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg/uuid.sh ============================================================================ $ cvs diff -u -r1.8.2.2 -r1.8.2.3 uuid.sh --- openpkg-src/openpkg/uuid.sh 5 Jan 2007 20:34:38 -0000 1.8.2.2 +++ openpkg-src/openpkg/uuid.sh 22 Mar 2007 23:02:33 -0000 1.8.2.3 @@ -29,6 +29,7 @@ mgrp="@l_mgrp@" prog_rpm="$prefix/libexec/openpkg/rpm" prog_shtool="$prefix/lib/openpkg/shtool" +prog_miniperl="$prefix/lib/openpkg/miniperl" prog_uuid="$prefix/lib/openpkg/uuid" file_uuid="$prefix/etc/openpkg/uuid" @@ -62,34 +63,17 @@ eval `$prog_rpm --eval "$query" 2>/dev/null` # query OS information - Q_platform=`$prog_shtool platform --type=binary 2>/dev/null` + Q_platform=`$prog_shtool platform --type=binary 2>/dev/null |\ + sed -e 's;^\([^-][^-]*-[^.-][^.-]*\)\..*$;\1;'` if [ ".$Q_platform" = . ]; then Q_platform="unknown" fi - Q_hostname=`$prog_shtool echo -e '%h%d' 2>/dev/null` - if [ ".$Q_hostname" = . ]; then - Q_hostname="unknown" - fi - Q_ipaddr="" - ifconfig=`$prog_shtool path -p "/sbin:/usr/sbin:/bin:/usr/bin:$PATH" ifconfig` - if [ ".$ifconfig" != . ]; then - ips=`$ifconfig -a 2>&1 | grep 'inet' | \ - sed -e 's;inet6;inet;g' \ - -e 's;inet addr:;inet ;' \ - -e 's;^;X;' \ - -e 's;^X.*inet *\([^ ][^ ]*\).*$;\1;' \ - -e 's;^X.*;;' | \ - sort` - for ip in $ips; do - if [ ".$Q_ipaddr" = . ]; then - Q_ipaddr="$ip" - else - Q_ipaddr="$Q_ipaddr,$ip" - fi - done - fi - if [ ".$Q_ipaddr" = . ]; then - Q_ipaddr="unknown" + Q_discriminator=`$prog_uuid -v1 | $prog_uuid -d -- - | awk '/node:.*global unicast/ { printf("mac:%s", $2); }'` + if [ ".$Q_discriminator" = . ]; then + Q_discriminator=`$prog_miniperl -e 'if (-f "/etc/openpkg") { printf("inode:%s", (stat("/etc/openpkg"))[1]); }' 2>/dev/null` + if [ ".$Q_discriminator" = . ]; then + Q_discriminator=`$prog_shtool echo -e 'fqdn:%h%d' 2>/dev/null` + fi fi } @@ -221,8 +205,7 @@ # update platform UUID name="${Q_platform}" - name="$name:${Q_hostname}" - name="$name:${Q_ipaddr}" + name="$name:${Q_discriminator}" if [ ".$opt_v" = .yes ]; then echo "uuid: querying OpenPKG Platform OID" echo "uuid: << $prog_rpm --eval '%{l_openpkg_oid_platform}'" @@ -282,12 +265,7 @@ echo "" echo "OpenPKG Platform" echo " Platform Id: $Q_platform" - echo " Host Name: $Q_hostname" - n=1 - for ip in `echo "$Q_ipaddr" | sed -e 's;,; ;g'`; do - echo . | awk '{ printf(" Host IP Address %-6s %s\n", num, ip); }' num="#$n" ip="$ip" - n=`expr $n + 1` - done + echo " Discriminator: $Q_discriminator" echo " UUID_PLATFORM: $UUID_PLATFORM" echo "" echo "(run \"$0 --verbose update\" to reproduce the UUID generation)" @@ . ______________________________________________________________________ OpenPKG http://openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org