OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src openpkg-web          Date:   20-Jan-2004 17:56:13
  Branch: HEAD                             Handle: 2004012016560804

  Added files:
    openpkg-src/openpkg     uuid.sh
  Modified files:
    openpkg-src/openpkg     HISTORY README aux.wrapbin.sh openpkg.boot
                            openpkg.spec rc.openpkg
    openpkg-web             news.txt

  Log:
    - add OSSP uuid and companion uuid.sh frontend to provide new 
<prefix>/etc/openpkg/uuid
    - embed %post section from openpkg.spec into bootstrap script *.src.sh

  Summary:
    Revision    Changes     Path
    1.108       +2  -0      openpkg-src/openpkg/HISTORY
    1.21        +1  -0      openpkg-src/openpkg/README
    1.14        +16 -0      openpkg-src/openpkg/aux.wrapbin.sh
    1.41        +15 -5      openpkg-src/openpkg/openpkg.boot
    1.267       +36 -2      openpkg-src/openpkg/openpkg.spec
    1.17        +11 -0      openpkg-src/openpkg/rc.openpkg
    1.1         +286 -0     openpkg-src/openpkg/uuid.sh
    1.8149      +1  -0      openpkg-web/news.txt
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/HISTORY
  ============================================================================
  $ cvs diff -u -r1.107 -r1.108 HISTORY
  --- openpkg-src/openpkg/HISTORY       20 Jan 2004 15:17:11 -0000      1.107
  +++ openpkg-src/openpkg/HISTORY       20 Jan 2004 16:56:12 -0000      1.108
  @@ -2,6 +2,8 @@
   2004
   ====
   
  +20040120 add OSSP uuid and companion uuid.sh frontend to provide new 
<prefix>/etc/openpkg/uuid
  +20040120 embed %post section from openpkg.spec into bootstrap script *.src.sh
   20040120 adjust widths in "rpm -qplv" output to allow longer owner/group
   20040120 regenerate rpm.patch.* files with latest CVS 1.12.x
   20040113 add %status to rc.openpkg; this prevents warnings when no package provides 
a status
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/README
  ============================================================================
  $ cvs diff -u -r1.20 -r1.21 README
  --- openpkg-src/openpkg/README        20 Jan 2004 14:52:02 -0000      1.20
  +++ openpkg-src/openpkg/README        20 Jan 2004 16:56:12 -0000      1.21
  @@ -19,6 +19,7 @@
     patch-2.5.9.tar.gz ...... untouched distribution tarball of the GNU patch tool
     bash-2.05b.tar.gz ....... untouched distribution tarball of the GNU bash tool
     tar-1.13.25.tar.gz ...... untouched distribution tarball of the GNU tar tool
  +  uuid-0.9.4.tar.gz ....... untouched distribution tarball of the OSSP uuid tool
     curl-7.10.8.tar.gz ...... untouched distribution tarball of the cURL tool
     bzip2-1.0.2.tar.gz ...... untouched distribution tarball of the BZIP2 library
     zlib-1.2.1.tar.gz ....... untouched distribution tarball of the ZLIB library
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/aux.wrapbin.sh
  ============================================================================
  $ cvs diff -u -r1.13 -r1.14 aux.wrapbin.sh
  --- openpkg-src/openpkg/aux.wrapbin.sh        7 Nov 2003 11:48:38 -0000       1.13
  +++ openpkg-src/openpkg/aux.wrapbin.sh        20 Jan 2004 16:56:12 -0000      1.14
  @@ -168,6 +168,22 @@
         grep -v '(none)' | sed 's/^fixate .../fixate /' | sed -e "s; 
::\\(.\\)@l_prefix@; \\1$l_prefix;"
   ) | sh 2>/dev/null || true
   
  +#   running the embedded %post script
  +echo "++ post-processing OpenPKG bootstrap installation"
  +prefix="$l_prefix"
  +susr='@SUSR@'; sgrp='@SGRP@'
  +musr='@MUSR@'; mgrp='@MGRP@'
  +rusr='@RUSR@'; rgrp='@RGRP@'
  +nusr='@NUSR@'; ngrp='@NGRP@'
  +suid='@SUID@'; sgid='@SGID@'
  +muid='@MUID@'; mgid='@MGID@'
  +ruid='@RUID@'; rgid='@RGID@'
  +nuid='@NUID@'; ngid='@NGID@'
  +set -- 1 # emulate RPM's $1 when executing scripts
  +#   ---- BEGIN EMBEDDED %post SCRIPT ----
  [EMAIL PROTECTED]@
  +#   ---- END EMBEDDED %post SCRIPT ----
  +
   #   display final information
   ( echo "Congratulations!"
     echo ""
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/openpkg.boot
  ============================================================================
  $ cvs diff -u -r1.40 -r1.41 openpkg.boot
  --- openpkg-src/openpkg/openpkg.boot  29 Nov 2003 15:44:23 -0000      1.40
  +++ openpkg-src/openpkg/openpkg.boot  20 Jan 2004 16:56:12 -0000      1.41
  @@ -538,7 +538,7 @@
   files=`cat $spec |\
          sed -e '1,/%files/d' -e '/%clean/,$d' |\
          grep -v '^ *$' | grep -v '%defattr' |\
  -       sed -e 's;%config(noreplace) *;;' -e 's;%config *;;' \
  +       sed -e 's;%config(noreplace) *;;' -e 's;%config *;;' -e 's;%ghost *;;' \
              -e 's;%dir *;;' -e 's;%{l_prefix}/;;' -e 's;^ *;;' -e 
"s;%{V_rpm};${V_rpm};"`
   db_files=""
   for db_file in \
  @@ -580,8 +580,17 @@
           -e 's;%{![?]l_\([^:}]*\):\([^}]*\)};${\1-\2};g' \
           -e 's;%{[?]l_\([^:}]*\)};${\1+""};g' \
           -e 's;%{![?]l_\([^:}]*\)};${\1-""};g' \
  -        -e 's;%{l_\([^}]*\)};${\1};g' >>$script \
  +        -e 's;%{l_\([^}]*\)};${\1};g' \
       >$tmpdir/rpm.pre
  +cat $spec |\
  +    sed -e "/^%post$/,/^%/ p" -e 'd' |\
  +    sed -e '/^%/d' -e 's/^   //' |\
  +    sed -e 's;%{[?]l_\([^:}]*\):\([^}]*\)};${\1+\2};g' \
  +        -e 's;%{![?]l_\([^:}]*\):\([^}]*\)};${\1-\2};g' \
  +        -e 's;%{[?]l_\([^:}]*\)};${\1+""};g' \
  +        -e 's;%{![?]l_\([^:}]*\)};${\1-""};g' \
  +        -e 's;%{l_\([^}]*\)};${\1};g' \
  +    >$tmpdir/rpm.post
   sed <`SOURCE aux.wrapbin.sh` \
       -e "s;@SUSR@;$susr;" -e "s;@SGRP@;$sgrp;" \
       -e "s;@MUSR@;$musr;" -e "s;@MGRP@;$mgrp;" \
  @@ -595,8 +604,9 @@
       -e "s;@l_platform@;$l_platform;" \
       -e "s;@l_release@;$l_release;" \
       -e "s;@l_version@;$l_version;" \
  -    -e "/[EMAIL PROTECTED]@/r $tmpdir/rpm.pre" |\
  -    sed -e '/[EMAIL PROTECTED]@/d' >$tmpdir/openpkg.boot.tmp
  +    -e "/[EMAIL PROTECTED]@/r $tmpdir/rpm.pre" \
  +    -e "/[EMAIL PROTECTED]@/r $tmpdir/rpm.post" |\
  +    sed -e '/[EMAIL PROTECTED]@/d' -e '/[EMAIL PROTECTED]@/d' 
>$tmpdir/openpkg.boot.tmp
   echo . | awk '{
       for (i = 0; i < 8192; i++) {
           printf("        ");
  @@ -616,7 +626,7 @@
   cp `SOURCE rpmtool` $tmpdir/rpmtool
   rm -rf $RPM_BUILD_ROOT
   rm -rf $tmpdir/$name-$version
  -rm -f $tmpdir/rpm $tmpdir/rpm.[123] $tmpdir/.popt $tmpdir/rpm.pre
  +rm -f $tmpdir/rpm $tmpdir/rpm.[123] $tmpdir/.popt $tmpdir/rpm.pre $tmpdir/rpm.post
   rm -f $prolog
   
   #   final hint about results
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/openpkg.spec
  ============================================================================
  $ cvs diff -u -r1.266 -r1.267 openpkg.spec
  --- openpkg-src/openpkg/openpkg.spec  20 Jan 2004 15:17:11 -0000      1.266
  +++ openpkg-src/openpkg/openpkg.spec  20 Jan 2004 16:56:12 -0000      1.267
  @@ -52,6 +52,7 @@
   %define       V_patch    2.5.9
   %define       V_tar      1.13.25
   %define       V_bash     2.05b
  +%define       V_uuid     0.9.4
   
   #   package information
   Name:         openpkg
  @@ -122,6 +123,8 @@
   Source53:     rpm-config.pod
   Source54:     rpm-config.8
   Source55:     rpmdb
  +Source56:     ftp://ftp.ossp.org/pkg/lib/uuid/uuid-%{V_uuid}.tar.gz
  +Source57:     uuid.sh
   
   #   build information
   Prefix:       %{l_prefix}
  @@ -148,7 +151,7 @@
           RedHat RPM %{V_rpm}, ZLib %{V_zlib}, GNU Bzip2 %{V_bzip2},
           GNU Gzip %{V_gzip}, GNU Tar %{V_tar}, GNU Patch %{V_patch},
           GNU Make %{V_make}, GNU Bash %{V_bash}, cURL %{V_curl},
  -        BeeCrypt %{V_beecrypt}
  +        OSSP uuid %{V_uuid}, BeeCrypt %{V_beecrypt}
   
   %prep
       #   skip in bootstrap phase 2 (see openpkg.boot)
  @@ -374,6 +377,7 @@
       ${l_gzip} -dc `SOURCE patch-%{V_patch}.tar.gz`       | ${l_tar} xf - 
2>/dev/null || true
       ${l_gzip} -dc `SOURCE tar-%{V_tar}.tar.gz`           | ${l_tar} xf - 
2>/dev/null || true
       ${l_gzip} -dc `SOURCE bash-%{V_bash}.tar.gz`         | ${l_tar} xf - 
2>/dev/null || true
  +    ${l_gzip} -dc `SOURCE uuid-%{V_uuid}.tar.gz`         | ${l_tar} xf - 
2>/dev/null || true
       ${l_gzip} -dc `SOURCE beecrypt-%{V_beecrypt}.tar.gz` | ${l_tar} xf - 
2>/dev/null || true
   
       #   update config.guess/config.sub
  @@ -520,6 +524,17 @@
       #   display verbosity header
       set +x; VERBOSE "BUILD: Build cURL (URL Fetching Tool)"
   
  +    #   build OSSP uuid tool
  +    ( cd uuid-%{V_uuid}
  +      CC="${l_cc}" \
  +      CFLAGS="-O" \
  +      ./configure \
  +        --prefix=%{l_prefix} \
  +        --disable-shared
  +      ${l_make} || exit $?
  +      ( mv uuid ..; ${l_make} clean || true; mv ../uuid . ) || exit $?
  +    ) || exit $?
  +
       #   build cURL tool
       ( cd curl-%{V_curl}
         ( echo 'ac_cv_header_openssl_engine_h=no'
  @@ -810,6 +825,15 @@
         cp bash $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bash
         strip $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bash
       ) || exit $?
  +    ( cd uuid-%{V_uuid}
  +      cp uuid $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid
  +      strip $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid
  +    ) || exit $?
  +    sed -e "s;@l_prefix@;%{l_prefix};g" \
  +        -e "s;@l_musr@;%{l_musr};g" \
  +        -e "s;@l_mgrp@;%{l_mgrp};g" \
  +        <`SOURCE uuid.sh` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid.sh
  +    chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid.sh
       sed -e "s;@l_prefix@;%{l_prefix};g" \
           -e "s;@l_musr@;%{l_musr};g" \
           -e "s;@l_mgrp@;%{l_mgrp};g" \
  @@ -892,6 +916,10 @@
           >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/platform
       chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/platform
   
  +    #   install UUID configuration file (ghost)
  +    touch $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/uuid
  +    chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/uuid
  +
       #   install overriding RPM configuration files
       sed -e "s:@l_prefix@:%{l_prefix}:g" \
           <`SOURCE rpmpopt` \
  @@ -943,6 +971,7 @@
       %dir %{l_prefix}/etc/rc.d
       %{l_prefix}/etc/rc.d/rc.openpkg
       %dir %{l_prefix}/etc/openpkg
  +    %ghost %{l_prefix}/etc/openpkg/uuid
       %config %{l_prefix}/etc/openpkg/platform
       %config %{l_prefix}/etc/openpkg/rpmmacros
       %config %{l_prefix}/etc/openpkg/rpmrc
  @@ -991,6 +1020,8 @@
       %{l_prefix}/lib/openpkg/bzip2
       %{l_prefix}/lib/openpkg/config.guess
       %{l_prefix}/lib/openpkg/config.sub
  +    %{l_prefix}/lib/openpkg/uuid
  +    %{l_prefix}/lib/openpkg/uuid.sh
       %{l_prefix}/lib/openpkg/curl
       %{l_prefix}/lib/openpkg/file
       %{l_prefix}/lib/openpkg/gzip
  @@ -1678,6 +1709,9 @@
       fi
   
   %post
  +    #   update or initially create OpenPKG UUID configuration
  +    %{l_prefix}/lib/openpkg/uuid.sh update >/dev/null 2>&1 || true
  +
       #   determine new and old OpenPKG RPM version
       V_rpm_new="%{V_rpm}"
       if [ -f %{l_prefix}/RPM/DB/.version ]; then
  @@ -1693,7 +1727,7 @@
       %{l_prefix}/lib/openpkg/rpmdb --quiet --fixate
   
       #   check RPM database for upgrade requirements
  -    if [ ".$V_rpm_old" != ".$V_rpm_new" ]; then
  +    if [ ".$1" = .2 -a ".$V_rpm_old" != ".$V_rpm_new" ]; then
           #   RPM 4.0/4.1 does not allow concurrent database access, so we
           #   cannot upgrade the database immediately from here (because
           #   we are still running within the execution context of the
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/rc.openpkg
  ============================================================================
  $ cvs diff -u -r1.16 -r1.17 rc.openpkg
  --- openpkg-src/openpkg/rc.openpkg    13 Jan 2004 16:17:33 -0000      1.16
  +++ openpkg-src/openpkg/rc.openpkg    20 Jan 2004 16:56:12 -0000      1.17
  @@ -16,6 +16,17 @@
       echo "openpkg_usable=\"$openpkg_usable\""
       echo "openpkg_active=\"$openpkg_active\""
   
  +%info -o
  +    @l_prefix@/lib/openpkg/uuid.sh info
  +
  +%start
  +    rcService openpkg enable yes || exit 0
  +    @l_prefix@/lib/openpkg/uuid.sh update >/dev/null 2>&1 || true
  +
  +%daily
  +    rcService openpkg enable yes || exit 0
  +    @l_prefix@/lib/openpkg/uuid.sh update >/dev/null 2>&1 || true
  +
   %env -p0
       rcService openpkg enable yes || exit 0
   
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/uuid.sh
  ============================================================================
  $ cvs diff -u -r0 -r1.1 uuid.sh
  --- /dev/null 2004-01-20 17:56:12.000000000 +0100
  +++ uuid.sh   2004-01-20 17:56:12.000000000 +0100
  @@ -0,0 +1,286 @@
  [EMAIL PROTECTED]@/lib/openpkg/bash
  +##
  +##  uuid -- OpenPKG UUID Update Utility
  +##  Copyright (c) 2004 The OpenPKG Project <http://www.openpkg.org/>
  +##  Copyright (c) 2004 Ralf S. Engelschall <[EMAIL PROTECTED]>
  +##  Copyright (c) 2004 Cable & Wireless <http://www.cw.com/>
  +##
  +##  Permission to use, copy, modify, and distribute this software for
  +##  any purpose with or without fee is hereby granted, provided that
  +##  the above copyright notice and this permission notice appear in all
  +##  copies.
  +##
  +##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  +##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  +##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  +##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  +##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  +##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  +##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  +##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  +##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  +##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  +##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  +##  SUCH DAMAGE.
  +##
  +
  +#   configuration
  +prefix="@l_prefix@"
  +musr="@l_musr@"
  +mgrp="@l_mgrp@"
  +prog_rpm="$prefix/bin/rpm"
  +prog_shtool="$prefix/lib/openpkg/shtool"
  +prog_uuid="$prefix/lib/openpkg/uuid"
  +file_uuid="$prefix/etc/openpkg/uuid"
  +
  +#   minimum command line parsing
  +opt_v=no
  +opt_m=no
  +while [ 1 ]; do
  +    case "$1" in
  +        -v | --verbose   ) opt_v=yes; shift ;;
  +        -m | --multicast ) opt_m=yes; shift ;;
  +        * ) break ;;
  +    esac
  +done
  +
  +#   Prepare Static Information
  +do_prepare () {
  +    #   official OpenPKG OID
  +    OID_OPKG="1.3.6.1.4.1.18749.4.1"
  +
  +    #   special UUIDs for OpenPKG OID-based namespaces
  +    UUID_NS_INSTANCE=`$prog_uuid -v3 ns:OID "$OID_OPKG.1"`
  +    UUID_NS_PLATFORM=`$prog_uuid -v3 ns:OID "$OID_OPKG.2"`
  +
  +    #   special "Nil UUID"
  +    UUID_NIL="00000000-0000-0000-0000-000000000000"
  +}
  +
  +#   Query Dynamic Information
  +do_query () {
  +    #   query RPM information
  +    query=":"
  +    for var in \
  +        l_openpkg_release \
  +        l_prefix \
  +        l_susr l_suid l_sgrp l_sgid \
  +        l_musr l_muid l_mgrp l_mgid \
  +        l_rusr l_ruid l_rgrp l_rgid \
  +        l_nusr l_nuid l_ngrp l_ngid; do
  +        query="$query; `echo $var | sed -e 's;^l_;Q_;'`=\"%{$var}\""
  +    done
  +    eval `$prog_rpm --eval "$query" 2>/dev/null`
  +
  +    #   query OS information
  +    Q_platform=`$prog_shtool platform --type=binary 2>/dev/null`
  +    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"
  +    fi
  +}
  +
  +#  Load Configuration
  +do_load () {
  +    #   start with reasonable defaults
  +    UUID_REGISTRY="$UUID_NIL"
  +    UUID_INSTANCE="$UUID_NIL"
  +    UUID_PLATFORM="$UUID_NIL"
  +
  +    #   load configuration (and override defaults)
  +    if [ -r $file_uuid ]; then
  +        if [ ".$opt_v" = .yes ]; then
  +            echo "$0: loading UUID configuration file ($file_uuid)"
  +        fi
  +        . $file_uuid
  +    fi
  +
  +    #   remember whether something was changed
  +    changed=no
  +}
  +
  +#  Save Configuration
  +do_save () {
  +    if [ ".$changed" = .yes ]; then
  +        #   save configuration
  +        if [ ".$opt_v" = .yes ]; then
  +            echo "$0: saving UUID configuration file ($file_uuid)"
  +        fi
  +        if [ -f $file_uuid ] && [ ! -w $file_uuid ]; then
  +            echo "$0:ERROR: cannot write to $file_uuid" 1>&2
  +            exit 1
  +        fi
  +        ( echo "UUID_REGISTRY=\"$UUID_REGISTRY\""
  +          echo "UUID_INSTANCE=\"$UUID_INSTANCE\""
  +          echo "UUID_PLATFORM=\"$UUID_PLATFORM\""
  +        ) >$file_uuid.new || exit $?
  +        n=`egrep 'UUID_(REGISTRY|INSTANCE|PLATFORM)="[0-9a-f-]*"' \
  +           $file_uuid.new | wc -l | awk '{ print $1; }'`
  +        if [ ".$n" != .3 ]; then
  +            echo "$0:ERROR: failed to update $file_uuid" 1>&2
  +            rm -f $file_uuid.new
  +            exit 1
  +        fi
  +        cp $file_uuid.new $file_uuid || exit $?
  +        rm -f $file_uuid.new || true
  +        chown $musr:$mgrp $file_uuid >/dev/null 2>&1 || true
  +        chmod 644 $file_uuid >/dev/null 2>&1 || true
  +
  +        #   remember that no more changes exist
  +        changed=no
  +    fi
  +}
  +
  +#  Reset UUIDs
  +do_reset () {
  +    #   reset all UUIDs to the "Nil UUID"
  +    if [ ".$UUID_REGISTRY" != ".$UUID_NIL" ]; then
  +        UUID_REGISTRY="$UUID_NIL"
  +        changed=yes
  +    fi
  +    if [ ".$UUID_INSTANCE" != ".$UUID_NIL" ]; then
  +        UUID_INSTANCE="$UUID_NIL"
  +        changed=yes
  +    fi
  +    if [ ".$UUID_PLATFORM" != ".$UUID_NIL" ]; then
  +        UUID_PLATFORM="$UUID_NIL"
  +        changed=yes
  +    fi
  +}
  +
  +#   Update UUIDs
  +do_update () {
  +    #   update registry UUID
  +    if [ ".$UUID_REGISTRY" = ".$UUID_NIL" ]; then
  +        opt=""
  +        if [ ".$opt_m" = .yes ]; then
  +            opt="-m"
  +        fi
  +        if [ ".$opt_v" = .yes ]; then
  +            echo "$0: calculating OpenPKG Registry UUID (UUID_REGISTRY):"
  +            echo "$0: << $prog_uuid -v1 $opt"
  +        fi
  +        UUID_REGISTRY=`$prog_uuid -v1 $opt`
  +        if [ ".$opt_v" = .yes ]; then
  +            echo "$0: >> $UUID_REGISTRY (NOT REPEATABLE)"
  +        fi
  +        changed=yes
  +    fi
  +
  +    #   update instance UUID
  +    name="${Q_openpkg_release}"
  +    name="$name:${Q_prefix}"
  +    name="$name:${Q_susr}:${Q_suid}:${Q_sgrp}:${Q_sgid}"
  +    name="$name:${Q_musr}:${Q_muid}:${Q_mgrp}:${Q_mgid}"
  +    name="$name:${Q_rusr}:${Q_ruid}:${Q_rgrp}:${Q_rgid}"
  +    name="$name:${Q_nusr}:${Q_nuid}:${Q_ngrp}:${Q_ngid}"
  +    if [ ".$opt_v" = .yes ]; then
  +        echo "$0: calculating OpenPKG Instance UUID (UUID_INSTANCE):"
  +        echo "$0: << $prog_uuid -v3 \"$UUID_NS_INSTANCE\" \"$name\""
  +    fi
  +    uuid=`$prog_uuid -v3 "$UUID_NS_INSTANCE" "$name"`
  +    if [ ".$opt_v" = .yes ]; then
  +        echo "$0: >> $uuid"
  +    fi
  +    if [ ".$UUID_INSTANCE" != ".$uuid" ]; then
  +        UUID_INSTANCE="$uuid"
  +        changed=yes
  +    fi
  +
  +    #   update platform UUID
  +    name="${Q_platform}"
  +    name="$name:${Q_hostname}"
  +    name="$name:${Q_ipaddr}"
  +    if [ ".$opt_v" = .yes ]; then
  +        echo "$0: calculating OpenPKG Platform UUID (UUID_PLATFORM):"
  +        echo "$0: << $prog_uuid -v3 \"$UUID_NS_PLATFORM\" \"$name\""
  +    fi
  +    uuid=`$prog_uuid -v3 "$UUID_NS_PLATFORM" "$name"`
  +    if [ ".$opt_v" = .yes ]; then
  +        echo "$0: >> $uuid"
  +    fi
  +    if [ ".$UUID_PLATFORM" != ".$uuid" ]; then
  +        UUID_PLATFORM="$uuid"
  +        changed=yes
  +    fi
  +}
  +
  +#   Info about input and resulting UUIDs
  +do_info () {
  +    echo "OpenPKG Summary of Identification Information"
  +    echo "============================================="
  +    echo ""
  +    echo "OpenPKG Registry"
  +    time=""; clock=""; node=""
  +    eval `$prog_uuid -d "$UUID_REGISTRY" 2>/dev/null |\
  +          sed -e 's/^/X/' \
  +              -e 's/X.*time:  *\(.*\)$/time="\1";/' \
  +              -e 's/X.*clock:  *\(.*\)$/clock="\1";/' \
  +              -e 's/X.*node:  *\(.*\)$/node="\1";/' \
  +              -e 's/^X.*//'`
  +    echo "    System Time:           ${time:-unknown}"
  +    echo "    System Clock Sequence: ${clock:-unknown}"
  +    echo "    System Node Address:   ${node:-unknown}"
  +    echo "    UUID_REGISTRY:         $UUID_REGISTRY"
  +    echo ""
  +    echo "OpenPKG Instance"
  +    echo "    Release:               ${Q_openpkg_release}"
  +    echo "    Prefix:                ${Q_prefix}"
  +    echo "    Super Account:         ${Q_susr}(${Q_suid}):${Q_sgrp}(${Q_sgid})"
  +    echo "    Management Account:    ${Q_musr}(${Q_muid}):${Q_mgrp}(${Q_mgid})"
  +    echo "    Restricted Account:    ${Q_rusr}(${Q_ruid}):${Q_rgrp}(${Q_rgid})"
  +    echo "    Nonprivileged Account: ${Q_nusr}(${Q_nuid}):${Q_ngrp}(${Q_ngid})"
  +    echo "    UUID_INSTANCE:         $UUID_INSTANCE"
  +    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 "    UUID_PLATFORM:         $UUID_PLATFORM"
  +    echo ""
  +    echo "(run \"$0 --verbose update\" to reproduce the UUID generation)"
  +}
  +
  +#   Command Line Dispatching
  +cmd="$1"
  +shift
  +case "$cmd" in
  +    reset )
  +        do_prepare; do_load; do_reset; do_save
  +        ;;
  +    update )
  +        do_prepare; do_query; do_load; do_update; do_save
  +        ;;
  +    info )
  +        do_prepare; do_query; do_load; do_info
  +        ;;
  +esac
  +
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/news.txt
  ============================================================================
  $ cvs diff -u -r1.8148 -r1.8149 news.txt
  --- openpkg-web/news.txt      20 Jan 2004 15:13:04 -0000      1.8148
  +++ openpkg-web/news.txt      20 Jan 2004 16:56:08 -0000      1.8149
  @@ -1,3 +1,4 @@
  +20-Jan-2004: Upgraded package: P<openpkg-20040120-20040120>
   20-Jan-2004: Upgraded package: P<w3m-0.4.2-20040120>
   20-Jan-2004: Upgraded package: P<perl-5.8.3-20040120>
   20-Jan-2004: Upgraded package: P<perl-text-20040120-20040120>
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to