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:   25-Sep-2003 14:16:30
  Branch: OPENPKG_1_3_SOLID HEAD           Handle: 2003092513162702

  Added files:              (Branch: OPENPKG_1_3_SOLID)
    openpkg-src/openpkg     platform
  Modified files:
    openpkg-web             news.txt
  Modified files:           (Branch: OPENPKG_1_3_SOLID)
    openpkg-src/openpkg     openpkg.spec rc rc.func rpmmacros

  Log:
    Mass "Merge From CURRENT" to fix OpenPKG 1.3 bootstrap and to provide
    forward compatibility to forthcoming OpenPKG 2.0 in order to be able to
    still build OpenPKG-CURRENT packages:
    
    - MFC: backport %{l_platform} macro and companion script
    - MFC: backport availability of <prefix>/lib/openpkg/rpmdb_{load,dump}
    - MFC: remove temporary files in /etc from within %post/%pre
    - MFC: fix rc %env result variable parsing
    - MFC: fix rc.func's rcTmp functionality

  Summary:
    Revision    Changes     Path
    1.127.2.6.2.3+28 -3      openpkg-src/openpkg/openpkg.spec
    1.8.2.1     +570 -0     openpkg-src/openpkg/platform
    1.19.2.5.2.1+1  -1      openpkg-src/openpkg/rc
    1.4.2.1.2.1 +2  -1      openpkg-src/openpkg/rc.func
    1.29.2.2.2.1+4  -0      openpkg-src/openpkg/rpmmacros
    1.6727      +1  -0      openpkg-web/news.txt
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/openpkg.spec
  ============================================================================
  $ cvs diff -u -r1.127.2.6.2.2 -r1.127.2.6.2.3 openpkg.spec
  --- openpkg-src/openpkg/openpkg.spec  30 Jul 2003 18:14:37 -0000      1.127.2.6.2.2
  +++ openpkg-src/openpkg/openpkg.spec  25 Sep 2003 12:16:29 -0000      1.127.2.6.2.3
  @@ -39,7 +39,7 @@
   #   o any cc(1)
   
   #   the package version/release
  -%define       V_openpkg 1.3.0
  +%define       V_openpkg 1.3.1
   
   #   the used software versions
   %define       V_rpm     4.0.2
  @@ -117,6 +117,7 @@
   Source48:     pod2man.sh
   Source49:     rc.8
   Source50:     rc.pod
  +Source51:     platform
   
   #   build information
   Prefix:       %{l_prefix}
  @@ -455,7 +456,7 @@
             *-*-osf* ) echo 'db_cv_mutex=${db_cv_mutex=UNIX/msem_init}' >config.cache 
;;
         esac
         CC="${l_cc}" ../dist/configure
  -      ${l_make} libdb.a || exit $?
  +      ${l_make} libdb.a db_load db_dump || exit $?
         ln libdb.a libdbXXX.a # workaround for Tru64
       ) || exit $?
   
  @@ -673,6 +674,18 @@
       cp `SOURCE config.sub` $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
       chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/config.sub
   
  +    #   install platform identification program
  +    #   (forward compatibility to forthcoming OpenPKG 2.0)
  +    cp `SOURCE platform` \
  +        $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/platform
  +    chmod 755 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/platform
  +
  +    #   install Berkeley-DB utilities
  +    ( cd db-%{V_db}/build_unix
  +      cp db_load $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb_load
  +      cp db_dump $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb_dump
  +    ) || exit $?
  +
       #   install a few README files
       sed -e "s:@l_prefix@:%{l_prefix}:g" \
           <`SOURCE root.README` \
  @@ -804,9 +817,12 @@
       %{l_prefix}/lib/openpkg/macros
       %{l_prefix}/lib/openpkg/mkproxyrpm.pl
       %{l_prefix}/lib/openpkg/patch
  +    %{l_prefix}/lib/openpkg/platform
       %{l_prefix}/lib/openpkg/rpm
       %{l_prefix}/lib/openpkg/rpmb
       %{l_prefix}/lib/openpkg/rpmdb
  +    %{l_prefix}/lib/openpkg/rpmdb_dump
  +    %{l_prefix}/lib/openpkg/rpmdb_load
       %{l_prefix}/lib/openpkg/rpme
       %{l_prefix}/lib/openpkg/rpmi
       %{l_prefix}/lib/openpkg/rpmk
  @@ -1128,6 +1144,7 @@
                           ( grep -v local_startup /etc/rc.conf.bak
                             echo "local_startup=\"/etc/rc.d $local_startup\""
                           ) >/etc/rc.conf
  +                        rm -f /etc/rc.conf.bak >/dev/null 2>&1
                         fi
                       ) || exit $?
                       #   install transfer script
  @@ -1489,6 +1506,7 @@
           else
               cp /etc/shells /etc/shells.bak && \
               grep -v "^${shell}" /etc/shells.bak >/etc/shells
  +            rm -f /etc/shells.bak >/dev/null 2>&1
           fi
       fi
   
  @@ -1516,20 +1534,24 @@
                           cp /etc/master.passwd /etc/master.passwd.bak && \
                           grep -v "^${usr}:" /etc/master.passwd.bak 
>/etc/master.passwd
                           ( PATH="$PATH:/usr/sbin"; pwd_mkdb -p /etc/master.passwd ) 
|| exit $?
  +                        rm -f /etc/master.passwd.bak >/dev/null 2>&1
                           ;;
                       Linux/* | SunOS/5.* )
                           cp /etc/passwd /etc/passwd.bak && \
                           grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
                           ( PATH="$PATH:/usr/sbin"; pwconv ) || exit $?
  +                        rm -f /etc/passwd.bak >/dev/null 2>&1
                           ;;
                       OSF1/V5.* )
                           cp /etc/passwd /etc/passwd.bak && \
                           grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
                           ( PATH="$PATH:/usr/sbin"; mkpasswd /etc/passwd ) || exit $?
  +                        rm -f /etc/passwd.bak >/dev/null 2>&1
                           ;;
                       HP-UX/* )
                           cp /etc/passwd /etc/passwd.bak && \
                           grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
  +                        rm -f /etc/passwd.bak >/dev/null 2>&1
                           ;;
                       Darwin/* )
                           niutil -destroy . "/users/${usr}"
  @@ -1555,13 +1577,14 @@
                       * )
                           cp /etc/group /etc/group.bak && \
                           grep -v "^${grp}:" /etc/group.bak >/etc/group
  +                        rm -f /etc/group.bak >/dev/null 2>&1
                           ;;
                   esac
               fi
           fi
       done
   
  -    #   remove the startup/shutdown transfer ripts
  +    #   remove the startup/shutdown transfer scripts
       name=`echo "$prefix" | sed -e 's;/;;g'`
       if [ ".$cusr" != ".root" ]; then
           echo "openpkg:WARNING: skipping deletion of system run-command hooks" 1>&2
  @@ -1641,6 +1664,7 @@
               Darwin/* )
                   cp /etc/hostconfig /etc/hostconfig.bak && \
                   grep -v "^OPENPKG_${name}=" /etc/hostconfig.bak >/etc/hostconfig
  +                rm -f /etc/hostconfig.bak >/dev/null 2>&1
                   rm -rf /System/Library/StartupItems/${name} >/dev/null 2>&1
                   ;;
           esac
  @@ -1660,6 +1684,7 @@
                       cat /etc/crontab.bak |\
                       sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\\/OpenPKG>/d" \
                       >/etc/crontab
  +                    rm -f /etc/crontab.bak >/dev/null 2>&1
                   fi
                   ;;
               SunOS/5.* | OSF1/V5.* | NetBSD/* | HP-UX/* )
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/platform
  ============================================================================
  $ cvs diff -u -r0 -r1.8.2.1 platform
  --- /dev/null 2003-09-25 14:16:30.000000000 +0200
  +++ platform  2003-09-25 14:16:30.000000000 +0200
  @@ -0,0 +1,570 @@
  +##
  +##  OSSP platform - Platform Identification
  +##  Copyright (c) 2003 The OSSP Project <http://www.ossp.org/>
  +##  Copyright (c) 2003 Ralf S. Engelschall <[EMAIL PROTECTED]>
  +##
  +##  This file is part of OSSP platform, a Unix platform identification
  +##  program which can be found at http://www.ossp.org/pkg/tool/platform/.
  +##
  +##  This program is free software; you can redistribute it and/or modify
  +##  it under the terms of the GNU General Public License as published by
  +##  the Free Software Foundation; either version 2.0 of the License, or
  +##  (at your option) any later version.
  +##
  +##  This program is distributed in the hope that it will be useful,
  +##  but WITHOUT ANY WARRANTY; without even the implied warranty of
  +##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  +##  General Public License for more details.
  +##
  +##  You should have received a copy of the GNU General Public License
  +##  along with this library; if not, write to the Free Software
  +##  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  +##  USA, or contact Ralf S. Engelschall <[EMAIL PROTECTED]>.
  +##
  +##  platform.sh: the program (language: Bourne-Shell)
  +##
  +
  +#   program information
  +prog_run="${0}"
  +prog_cmd="platform"
  +prog_name="OSSP platform"
  +prog_vers="0.1.0"
  +prog_date="06-Sep-2003"
  +
  +##  _________________________________________________________________________
  +##
  +##                           COMMAND LINE PARSING
  +##                (partly derived from GNU shtool's sh.common)
  +##  _________________________________________________________________________
  +##
  +
  +#   the command line specification
  +str_usage="[-F|--format FORMAT]"
  +str_usage="$str_usage [-S|--sep STRING]"
  +str_usage="$str_usage [-C|--conc STRING]"
  +str_usage="$str_usage [-L|--lower]"
  +str_usage="$str_usage [-U|--upper]"
  +str_usage="$str_usage [-v|--verbose]"
  +str_usage="$str_usage [-c|--concise]"
  +str_usage="$str_usage [-n|--no-newline]"
  +str_usage="$str_usage [-t|--type TYPE]"
  +str_usage="$str_usage [-d|--debug]"
  +str_usage="$str_usage [-V|--version]"
  +str_usage="$str_usage [-h|--help]"
  +arg_spec="0="
  +opt_spec="F:S:C:L.U.v.c.n.t:d.V.h."
  
+opt_alias="F:format,S:sep,C:conc,L:lower,U:upper,v:verbose,c:consise,t:type,n:no-newline,d:debug,V:version,h:help"
  +opt_F="%{sp} (%{ap})"
  +opt_S=" "
  +opt_C="/"
  +opt_L=no
  +opt_U=no
  +opt_t=""
  +opt_v=no
  +opt_c=no
  +opt_n=no
  +opt_d=no
  +opt_V=no
  +opt_h=no
  +
  +#   commonly used ASCII values
  +ASC_TAB="    "
  +ASC_NL="
  +"
  +
  +#   parse argument specification string
  +eval `echo $arg_spec |\
  +      sed -e 's/^\([0-9]*\)\([+=]\)/arg_NUMS=\1; arg_MODE=\2/'`
  +
  +#   parse option specification string
  +eval `echo $opt_spec |\
  +      sed -e 's/\([a-zA-Z0-9]\)\([.:+]\)/opt_MODE_\1=\2;/g'`
  +
  +#   parse option alias string
  +eval `echo $opt_alias |\
  +      tr 'x-' 'x_' | sed -e 's/\([a-zA-Z0-9]\):\([^,]*\),*/opt_ALIAS_\2=\1;/g'`
  +
  +#   interate over argument line
  +opt_PREV=''
  +while [ $# -gt 0 ]; do
  +    #   special option stops processing
  +    if [ ".$1" = ".--" ]; then
  +        shift
  +        break
  +    fi
  +
  +    #   determine option and argument
  +    opt_ARG_OK=no
  +    if [ ".$opt_PREV" != . ]; then
  +        #   merge previous seen option with argument
  +        opt_OPT="$opt_PREV"
  +        opt_ARG="$1"
  +        opt_ARG_OK=yes
  +        opt_PREV=''
  +    else
  +        #   split argument into option and argument
  +        case "$1" in
  +            --[a-zA-Z0-9]*=*)
  +                eval `echo "x$1" |\
  +                      sed -e 
's/^x--\([a-zA-Z0-9-]*\)=\(.*\)$/opt_OPT="\1";opt_ARG="\2"/'`
  +                opt_STR=`echo $opt_OPT | tr 'x-' 'x_'`
  +                eval "opt_OPT=\${opt_ALIAS_${opt_STR}-${opt_OPT}}"
  +                ;;
  +            --[a-zA-Z0-9]*)
  +                opt_OPT=`echo "x$1" | cut -c4-`
  +                opt_STR=`echo $opt_OPT | tr 'x-' 'x_'`
  +                eval "opt_OPT=\${opt_ALIAS_${opt_STR}-${opt_OPT}}"
  +                opt_ARG=''
  +                ;;
  +            -[a-zA-Z0-9]*)
  +                eval `echo "x$1" |\
  +                      sed -e 's/^x-\([a-zA-Z0-9]\)/opt_OPT="\1";/' \
  +                          -e 's/";\(.*\)$/"; opt_ARG="\1"/'`
  +                ;;
  +            -[a-zA-Z0-9])
  +                opt_OPT=`echo "x$1" | cut -c3-`
  +                opt_ARG=''
  +                ;;
  +            *)
  +                break
  +                ;;
  +        esac
  +    fi
  +
  +    #   eat up option
  +    shift
  +
  +    #   determine whether option needs an argument
  +    eval "opt_MODE=\$opt_MODE_${opt_OPT}"
  +    if [ ".$opt_ARG" = . ] && [ ".$opt_ARG_OK" != .yes ]; then
  +        if [ ".$opt_MODE" = ".:" ] || [ ".$opt_MODE" = ".+" ]; then
  +            opt_PREV="$opt_OPT"
  +            continue
  +        fi
  +    fi
  +
  +    #   process option
  +    case $opt_MODE in
  +        '.' )
  +            #   boolean option
  +            eval "opt_${opt_OPT}=yes"
  +            ;;
  +        ':' )
  +            #   option with argument (multiple occurances override)
  +            eval "opt_${opt_OPT}=\"\$opt_ARG\""
  +            ;;
  +        '+' )
  +            #   option with argument (multiple occurances append)
  +            eval "opt_${opt_OPT}=\"\$opt_${opt_OPT}\${ASC_NL}\$opt_ARG\""
  +            ;;
  +        * )
  +            echo "${prog_cmd}:Error: unknown option: \`$opt_OPT'" 1>&2
  +            echo "${prog_cmd}:Hint:  run \`${prog_run} -h' or \`man ${prog_cmd}' 
for details" 1>&2
  +            exit 1
  +            ;;
  +    esac
  +done
  +if [ ".$opt_PREV" != . ]; then
  +    echo "${prog_cmd}:Error: missing argument to option \`$opt_PREV'" 1>&2
  +    echo "${prog_cmd}:Hint: run \`${prog_run} -h' or \`man ${prog_cmd}' for 
details" 1>&2
  +    exit 1
  +fi
  +
  +#   process help option
  +if [ ".$opt_h" = .yes ]; then
  +    echo "Usage: ${prog_run} ${str_usage}"
  +    exit 0
  +fi
  +
  +#   process version option
  +if [ ".$opt_V" = .yes ]; then
  +    echo "${prog_name} ${prog_vers} (${prog_date})"
  +    exit 0
  +fi
  +
  +#   complain about incorrect number of arguments
  +case $arg_MODE in
  +    '=' )
  +        if [ $# -ne $arg_NUMS ]; then
  +            echo "${prog_cmd}:Error: invalid number of arguments (exactly $arg_NUMS 
expected)" 1>&2
  +            echo "${prog_cmd}:Hint:  run \`${prog_run} -h' or \`man ${prog_cmd}' 
for details" 1>&2
  +            exit 1
  +        fi
  +        ;;
  +    '+' )
  +        if [ $# -lt $arg_NUMS ]; then
  +            echo "${prog_cmd}:Error: invalid number of arguments (at least 
$arg_NUMS expected)" 1>&2
  +            echo "${prog_cmd}:Hint:  run \`${prog_run} -h' or \`man ${prog_cmd}' 
for details" 1>&2
  +            exit 1
  +        fi
  +        ;;
  +esac
  +
  +##  _________________________________________________________________________
  +##
  +##                         OPTION POST-PROCESSING
  +##  _________________________________________________________________________
  +##
  +
  +if [ ".$opt_t" != . ]; then
  +    case "$opt_t" in
  +        binary )
  +            #   binary package id (OpenPKG RPM)
  +            opt_F="%<ap>-%<sp>"
  +            opt_L=yes
  +            opt_S=""
  +            opt_C="+"
  +            ;;
  +        build )
  +            #   build time checking (OpenPKG RPM)
  +            opt_F="%<at>-%<st>"
  +            opt_L=yes
  +            opt_S=""
  +            opt_C="+"
  +            ;;
  +        gnu )
  +            #   GNU config.guess style <arch>-<vendor>-<os><osversion>
  +            opt_F="%<at>-unknown-%<st>"
  +            opt_L=yes
  +            opt_S=""
  +            opt_C="+"
  +            ;;
  +        web )
  +            #   non-whitespace HTTP Server-header id
  +            opt_F="%<ap>-%<sp>"
  +            opt_S="/"
  +            opt_C="+"
  +            ;;
  +        summary)
  +            #   human readable verbose summary information
  +            opt_F="Class:      %[sc] (%[ac])\\nProduct:    %[sp] 
(%[ap])\\nTechnology: %[st] (%[at])"
  +            opt_S=" "
  +            opt_C="/"
  +            ;;
  +        all-in-one )
  +            #   full-table all-in-one information
  +            opt_F=""
  +            opt_F="${opt_F}concise architecture class:      %<ac>\\n"
  +            opt_F="${opt_F}regular architecture class:      %{ac}\\n"
  +            opt_F="${opt_F}verbose architecture class:      %[ac]\\n"
  +            opt_F="${opt_F}concise architecture product:    %<ap>\\n"
  +            opt_F="${opt_F}regular architecture product:    %{ap}\\n"
  +            opt_F="${opt_F}verbose architecture product:    %[ap]\\n"
  +            opt_F="${opt_F}concise architecture technology: %<at>\\n"
  +            opt_F="${opt_F}regular architecture technology: %{at}\\n"
  +            opt_F="${opt_F}verbose architecture technology: %[at]\\n"
  +            opt_F="${opt_F}concise system class:            %<sc>\\n"
  +            opt_F="${opt_F}regular system class:            %{sc}\\n"
  +            opt_F="${opt_F}verbose system class:            %[sc]\\n"
  +            opt_F="${opt_F}concise system product:          %<sp>\\n"
  +            opt_F="${opt_F}regular system product:          %{sp}\\n"
  +            opt_F="${opt_F}verbose system product:          %[sp]\\n"
  +            opt_F="${opt_F}concise system technology:       %<st>\\n"
  +            opt_F="${opt_F}regular system technology:       %{st}\\n"
  +            opt_F="${opt_F}verbose system technology:       %[st]"
  +            ;;
  +        * )
  +            echo "${prog_cmd}:Error: invalid type \`$opt_t'" 1>&2
  +            exit 1
  +            ;;
  +    esac
  +fi
  +
  +##  _________________________________________________________________________
  +##
  +##                            UTILITY FUNCTIONS
  +##  _________________________________________________________________________
  +##
  +
  +#   map string to lower case
  +util_lower () {
  +    echo "$1" | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'
  +}
  +
  +#   map string to upper case
  +util_upper () {
  +    echo "$1" | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  +}
  +
  +##  _________________________________________________________________________
  +##
  +##                       ASSEMBLE INITIAL INFORMATION
  +##  _________________________________________________________________________
  +##
  +
  +UNAME_MACHINE=`(uname -m) 2>/dev/null` ||\
  +UNAME_MACHINE=`(uname -p) 2>/dev/null` ||\
  +UNAME_MACHINE='unknown'
  +UNAME_SYSTEM=`(uname -s) 2>/dev/null`  ||\
  +UNAME_SYSTEM='unknown'
  +UNAME_RELEASE=`(uname -r) 2>/dev/null` ||\
  +UNAME_RELEASE=`(uname -v) 2>/dev/null` ||\
  +UNAME_RELEASE='unknown'
  +
  +UNAME="${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}"
  +
  +if [ ".$opt_d" = .yes ]; then
  +    echo "uname => ${UNAME}" 1>&2
  +fi
  +
  +AC=""; AP=""; AT=""
  +SC=""; SP=""; ST=""
  +
  +##  _________________________________________________________________________
  +##
  +##                         DISPATCH INTO PLATFORMS
  +##  _________________________________________________________________________
  +##
  +
  +case "${UNAME}" in
  +
  +    #   FreeBSD
  +    *:FreeBSD:* )
  +        #   determine architecture
  +        AC="${UNAME_MACHINE}"
  +        case "${AC}" in
  +            i386 ) AC="iX86" ;;
  +        esac
  +        AP="${AC}"
  +        AT=`(/sbin/sysctl -n hw.model) 2>&1`
  +        case "${AT}" in
  +            *"Xeon"* | *"Pentium Pro"* | *"Cyrix 6x86MX"* | *"Pentium II"* | 
*"Pentium III"* | *"Pentium 4"* | *"Celeron"* ) AT="i686" ;;
  +            *"Pentium"* ) AT="i586" ;; *"i486[SD]X"* | *"Cyrix 486"* | *"Cyrix 
[56]x86"* | *"Blue Lightning" | *"Cyrix 486S/DX" ) AT="i486" ;;
  +            *"i386[SD]X"* | *"NexGen 586"* ) AT="i386" ;;
  +            * ) AT="${AP}" ;;
  +        esac
  +        #   determine system
  +        r=`echo "${UNAME_RELEASE}" |\
  +           sed -e 's;[()];;' -e 's/\(-.*\)$/[\1]/'`
  +        ST="FreeBSD ${r}"
  +        SP="${ST}"
  +        case "${r}" in
  +            1.* ) SC="4.3BSD" ;;
  +            *   ) SC="4.4BSD" ;;
  +        esac
  +        ;;
  +
  +    #   GNU/Linux
  +    *:Linux:* )
  +        #   determine architecture
  +        AT="${UNAME_MACHINE}"
  +        AP="${AT}"
  +        case "${AP}" in
  +           i[3-6]86 ) AP='iX86' ;;
  +        esac
  +        AC="${AP}"
  +        #   determine system
  +        v_kern=`echo "${UNAME_RELEASE}" |\
  +            sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/'`
  +        v_libc=`(strings /lib/libc.so.* | grep '^GLIBC_' | sed -e 's/^GLIBC_//' |\
  +            sort -n | tail -1 | sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/') 
2>/dev/null`
  +        ST="GNU/<Linux >${v_libc}/<${v_kern}>"
  +        if [ -f /etc/lsb-release ]; then
  +            eval `( . /etc/lsb-release
  +                echo "SC=\"LSB${LSB_VERSION}\""
  +                if [ ".${DISTRIB_ID}" != . ]; then
  +                    echo "SP=\"${DISTRIB_ID} ${DISTRIB_RELEASE}\""
  +                fi
  +            ) 2>/dev/null`
  +        fi
  +        if [ ".$SP" = . ]; then
  +            for tagfile in x `cd /etc && \
  +                /bin/ls *[_-]release *[_-]version 2>/dev/null | \
  +                sed -e '/redhat-release/d'; echo redhat-release`; do
  +                [ ".${tagfile}" = .x ] && continue
  +                [ ! -f "/etc/${tagfile}" ] && continue
  +                n=`echo ${tagfile} | sed -e 's/[_-]release$//' -e 
's/[_-]version$//'`
  +                v=`cat /etc/${tagfile} | grep '[0-9]' | head -1 |\
  +                   sed -e 's/^/#/' \
  +                       -e 
's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' \
  +                       -e 's/^#[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' \
  +                       -e 's/^#[^0-9]*\([0-9][0-9]*\).*$/\1/' \
  +                       -e 's/^#.*$//'`
  +                case "`util_lower ${n}`" in
  +                    debian      ) n="Debian[ GNU/Linux]" ;;
  +                    redhat      ) n="RedHat[ Linux]"     ;;
  +                    suse        ) n="SuSE[ Linux]"       ;;
  +                    mandrake    ) n="Mandrake[ Linux]"   ;;
  +                    gentoo      ) n="Gentoo[ Linux]"     ;;
  +                    slackware   ) n="Slackware[ Linux]"  ;;
  +                    turbolinux  ) n="TurboLinux"         ;;
  +                    unitedlinux ) n="UnitedLinux"        ;;
  +                    *           ) n="${n}[ GNU/Linux]"   ;;
  +                esac
  +                SP="$n $v"
  +                break
  +            done
  +        fi
  +        [ ".$SP" = . ] && SP="${ST}"
  +        [ ".$SC" = . ] && SC="LSB"
  +        ;;
  +
  +    #   Sun Solaris
  +    *:SunOS:* )
  +        #   determine architecture
  +        AT="${UNAME_MACHINE}"
  +        case "${AT}" in
  +            i86pc ) AT="iX86" ;; 
  +        esac
  +        AP="${AT}"
  +        case "${AP}" in
  +            sun4[cdm] ) AP="SPARC32" ;;
  +            sun4u     ) AP="SPARC64" ;;
  +            sun4*     ) AP="SPARC"   ;;
  +        esac
  +        AC="${AP}"
  +        case "${AC}" in
  +            SPARC* ) AC="SPARC" ;;
  +        esac
  +        #   determine system
  +        ST="[Sun ]SunOS ${UNAME_RELEASE}"
  +        v=`echo "${UNAME_RELEASE}" |\
  +           sed -e 's;^4\.;1.;' \
  +               -e 's;^5\.\([0-6]\).*;2.\1;' \
  +               -e 's;^5\.\([0-9][0-9]*\).*;\1;'`
  +        SP="[Sun ]Solaris $v"
  +        case "${UNAME_RELEASE}" in
  +            4.* ) SC="4.2BSD" ;;
  +            5.* ) SC="SVR4"   ;;
  +        esac
  +        ;;
  +
  +
  +    #   TODO ...ADD YOUR NEW PLATFORM CHECK HERE... TODO
  +    # *:XXX:* )
  +    #   ...
  +    #   ;;
  +
  +    #   ...A STILL UNKNOWN PLATFORM...
  +    * )
  +        AT="${UNAME_MACHINE}"
  +        AP="${AT}"
  +        AC="${AP}"
  +        ST="${UNAME_SYSTEM} ${UNAME_RELEASE}"
  +        SP="${ST}"
  +        SC="${SP}"
  +        ;;
  +
  +esac
  +
  +##  _________________________________________________________________________
  +##
  +##                           PROVIDE RESULT OUTPUT
  +##  _________________________________________________________________________
  +##
  +
  +#   provide fallback values
  +[ ".$AT" = . ] && AT="${AP:-${AC}}"
  +[ ".$AP" = . ] && AP="${AT:-${AC}}"
  +[ ".$AC" = . ] && AC="${AP:-${AT}}"
  +[ ".$ST" = . ] && ST="${SP:-${SC}}"
  +[ ".$SP" = . ] && SP="${ST:-${SC}}"
  +[ ".$SC" = . ] && SC="${SP:-${ST}}"
  +
  +#   support explicit enforced verbose/concise output
  +if [ ".$opt_v" = .yes ]; then
  +    opt_F=`echo ":$opt_F" | sed -e 's/^://' -e 's/%\([as][cpt]\)/%[\1]/g'`
  +elif [ ".$opt_c" = .yes ]; then
  +    opt_F=`echo ":$opt_F" | sed -e 's/^://' -e 's/%\([as][cpt]\)/%<\1>/g'`
  +fi
  +
  +#   provide verbose and concise variants
  +AC_V=""; AC_N=""; AC_C=""
  +AP_V=""; AP_N=""; AP_C=""
  +AT_V=""; AT_N=""; AT_C=""
  +SC_V=""; SC_N=""; SC_C=""
  +SP_V=""; SP_N=""; SP_C=""
  +ST_V=""; ST_N=""; ST_C=""
  +for var_lc in at ap ac st sp sc; do
  +    case "$opt_F" in
  +        *"%[${val_lc}]"* | *"%{${val_lc}}"* | *"%${val_lc}"* | *"%<${val_lc}>"* )
  +        var_uc=`util_upper "$var_lc"`
  +        eval "val=\"\$${var_uc}\""
  +        val_V=""; val_N=""; val_C=""
  +        case "$opt_F" in
  +            *"%[${var_lc}]"* )
  +                val_V=`echo ":$val" | \
  +                       sed -e 's/^://' \
  +                           -e 's;\[\([^]]*\)\];\1;g' \
  +                           -e 's;<\([^>]*\)>;\1;g' \
  +                           -e "s; ;��;g" \
  +                           -e "s;/;%%;g" \
  +                           -e "s;��;${opt_S};g" \
  +                           -e "s;%%;${opt_C};g"`
  +                eval "${var_uc}_V=\"\${val_V}\""
  +                ;;
  +        esac
  +        case "$opt_F" in
  +            *"%{${var_lc}}"* | *"%${var_lc}"* )
  +                val_N=`echo ":$val" | \
  +                       sed -e 's/^://' \
  +                           -e 's;\[\([^]]*\)\];;g' \
  +                           -e 's;<\([^>]*\)>;\1;g' \
  +                           -e "s; ;��;g" \
  +                           -e "s;/;%%;g" \
  +                           -e "s;��;${opt_S};g" \
  +                           -e "s;%%;${opt_C};g"`
  +                eval "${var_uc}_N=\"\${val_N}\""
  +                ;;
  +        esac
  +        case "$opt_F" in
  +            *"%<${var_lc}>"* )
  +                val_C=`echo ":$val" | \
  +                       sed -e 's/^://' \
  +                           -e 's;\[\([^]]*\)\];;g' \
  +                           -e 's;[^<]*<\([^>]*\)>;\1;g' \
  +                           -e "s; ;��;g" \
  +                           -e "s;/;%%;g" \
  +                           -e "s;��;${opt_S};g" \
  +                           -e "s;%%;${opt_C};g"`
  +                eval "${var_uc}_C=\"\${val_C}\""
  +                ;;
  +        esac
  +        ;;
  +    esac
  +done
  +
  +#   create output string
  +output=`echo ":$opt_F" |\
  +        sed -e "s/^://" \
  +            -e "s;%\\[ac\\];${AC_V};g" \
  +            -e "s;%{ac};${AC_N};g" \
  +            -e "s;%ac;${AC_N};g" \
  +            -e "s;%<ac>;${AC_C};g" \
  +            -e "s;%\\[ap\\];${AP_V};g" \
  +            -e "s;%{ap};${AP_N};g" \
  +            -e "s;%ap;${AP_N};g" \
  +            -e "s;%<ap>;${AP_C};g" \
  +            -e "s;%\\[at\\];${AT_V};g" \
  +            -e "s;%{at};${AT_N};g" \
  +            -e "s;%at;${AT_N};g" \
  +            -e "s;%<at>;${AT_C};g" \
  +            -e "s;%\\[sc\\];${SC_V};g" \
  +            -e "s;%{sc};${SC_N};g" \
  +            -e "s;%sc;${SC_N};g" \
  +            -e "s;%<sc>;${SC_C};g" \
  +            -e "s;%\\[sp\\];${SP_V};g" \
  +            -e "s;%{sp};${SP_N};g" \
  +            -e "s;%sp;${SP_N};g" \
  +            -e "s;%<sp>;${SP_C};g" \
  +            -e "s;%\\[st\\];${ST_V};g" \
  +            -e "s;%{st};${ST_N};g" \
  +            -e "s;%st;${ST_N};g" \
  +            -e "s;%<st>;${ST_C};g" \
  +            -e 's/\\\\n/^/g' |\
  +         tr '^' '\012'`
  +
  +#   support lower/upper-case mapping
  +if [ ".$opt_L" = .yes ]; then
  +    output=`util_lower "$output"`
  +elif [ ".$opt_U" = .yes ]; then
  +    output=`util_upper "$output"`
  +fi
  +
  +#   display output string
  +if [ ".$opt_n" = .yes ]; then
  +    echo . | awk '{ printf("%s", output); }' output="$output"
  +else
  +    echo "$output"
  +fi
  +
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/rc
  ============================================================================
  $ cvs diff -u -r1.19.2.5 -r1.19.2.5.2.1 rc
  --- openpkg-src/openpkg/rc    29 Jul 2003 10:11:42 -0000      1.19.2.5
  +++ openpkg-src/openpkg/rc    25 Sep 2003 12:16:29 -0000      1.19.2.5.2.1
  @@ -577,7 +577,7 @@
           echo "exec 1<&3-" >>$tmpfile
           echo "unset PWD SHLVL" >>$tmpfile
           echo "env |\\" >>$tmpfile
  -        echo "egrep '^[A-Z]*=.' |\\" >>$tmpfile
  +        echo "egrep '^[A-Z_][A-Z0-9_]*=.' |\\" >>$tmpfile
           echo "sed -e 's/\\\\/\\\\\\\\/g' -e 's/\"/\\\\\"/g' \\" >>$tmpfile
           case $SHELL in
               csh|*/csh|tcsh|*/tcsh )
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/rc.func
  ============================================================================
  $ cvs diff -u -r1.4.2.1 -r1.4.2.1.2.1 rc.func
  --- openpkg-src/openpkg/rc.func       24 Jul 2003 20:42:00 -0000      1.4.2.1
  +++ openpkg-src/openpkg/rc.func       25 Sep 2003 12:16:29 -0000      1.4.2.1.2.1
  @@ -146,7 +146,8 @@
           fi
           return 0
       elif [ ".${mode}" = .file ]; then
  -        return "${RC_TMPDIR}/${name:-tmp}"
  +        echo "${RC_TMPDIR}/${name:-tmp}"
  +        return 0
       elif [ ".${mode}" = .kill ]; then
           if [ ".${RC_TMPDIR}" = . ]; then
               rcMsg -e "rcTmp: no secure temporary directory known"
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openpkg/rpmmacros
  ============================================================================
  $ cvs diff -u -r1.29.2.2 -r1.29.2.2.2.1 rpmmacros
  --- openpkg-src/openpkg/rpmmacros     24 Jul 2003 20:42:00 -0000      1.29.2.2
  +++ openpkg-src/openpkg/rpmmacros     25 Sep 2003 12:16:29 -0000      1.29.2.2.2.1
  @@ -30,6 +30,10 @@
   %l_target                %{_target}
   %l_location              @LOC@
   
  +#   new OpenPKG platform identification
  +#   (forward compatibility to forthcoming OpenPKG 2.0)
  +%l_platform(cptF:)       %(if [ ".%{?-F}" != . ]; then fmt="%{-F*}"; else 
T="%{?-c:c}%{?-p:p}%{?-t:t}"; [ ".$T" = . ] && T="p"; fmt="%%<a$T>-%%<s$T>"; fi; 
@l_prefix@/lib/openpkg/platform -n -L -S "" -C "+" -F "$fmt")
  +
   #   the *S*uper-user user/group name/id pair
   %l_susr                  @SUSR@
   %l_sgrp                  @SGRP@
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/news.txt
  ============================================================================
  $ cvs diff -u -r1.6726 -r1.6727 news.txt
  --- openpkg-web/news.txt      25 Sep 2003 08:46:31 -0000      1.6726
  +++ openpkg-web/news.txt      25 Sep 2003 12:16:27 -0000      1.6727
  @@ -1,3 +1,4 @@
  +25-Sep-2003: Upgraded package: P<openpkg-1.3.1-1.3.1>
   25-Sep-2003: Upgraded package: P<uvscan-4.24+4295-20030925>
   25-Sep-2003: Upgraded package: P<gcc-3.3.1-20030925>
   25-Sep-2003: Upgraded package: P<strace-4.5-20030925>
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to