Check-in Number:
|
3692 | |
Date: |
2003-Dec-13 22:23:55 (local)
2003-Dec-13 21:23:55 (UTC) |
User: | rse |
Branch: | |
Comment: |
Replaced old and inflexible "shtool guessos" command
with a completely new command "shtool platform" command.
It distinguishes a Unix platform according to its hardware
architecture and operating system. For both there is a class,
product and technology identification. For each of those six
identifications, there is a verbose, regular and concise version. |
Tickets: |
|
Inspections: |
|
Files: |
ossp-pkg/shtool/AUTHORS
|
1.5
->
1.6
|
 
0 inserted, 4 deleted
|
ossp-pkg/shtool/ChangeLog
|
1.191
->
1.192
|
 
10 inserted, 2 deleted
|
ossp-pkg/shtool/Makefile.in
|
1.47
->
1.48
|
 
1 inserted, 1 deleted
|
ossp-pkg/shtool/NEWS
|
1.6
->
1.7
|
 
2 inserted, 1 deleted
|
ossp-pkg/shtool/README
|
1.96
->
1.97
|
 
1 inserted, 1 deleted
|
ossp-pkg/shtool/sh.common
|
1.21
->
1.22
|
 
10 inserted, 0 deleted
|
ossp-pkg/shtool/sh.guessos
|
1.23->removed
|
ossp-pkg/shtool/sh.platform
|
added->
1.1
|
ossp-pkg/shtool/shtool.pod
|
1.63
->
1.64
|
 
123 inserted, 11 deleted
|
ossp-pkg/shtool/shtoolize.in
|
1.31
->
1.32
|
 
1 inserted, 1 deleted
|
ossp-pkg/shtool/shtoolize.pod
|
1.10
->
1.11
|
 
2 inserted, 2 deleted
|
ossp-pkg/shtool/test.db
|
1.20
->
1.21
|
 
3 inserted, 3 deleted
|
|
ossp-pkg/shtool/AUTHORS 1.5 -> 1.6
--- AUTHORS 2001/06/14 14:24:16 1.5
+++ AUTHORS 2003/12/13 21:23:55 1.6
@@ -21,7 +21,3 @@
Written by: Ulrich Drepper, Ralf S. Engelschall
Edited by: Ralf S. Engelschall
- o sh.guessos:
- Written by: Jim Jagielski et all, ASF
- Edited by: Ralf S. Engelschall
-
|
|
ossp-pkg/shtool/ChangeLog 1.191 -> 1.192
--- ChangeLog 2003/11/17 12:36:42 1.191
+++ ChangeLog 2003/12/13 21:23:55 1.192
@@ -9,8 +9,16 @@
ChangeLog
- Changes between 1.6.2 and 2.0.0 (02-Nov-2002 to 17-Nov-2003):
-
+ Changes between 1.6.2 and 2.0.0 (02-Nov-2002 to xx-Dec-2003):
+
+ *) Replaced old and inflexible "shtool guessos" command
+ with a completely new command "shtool platform" command.
+ It distinguishes a Unix platform according to its hardware
+ architecture and operating system. For both there is a class,
+ product and technology identification. For each of those six
+ identifications, there is a verbose, regular and concise version.
+ [Ralf S. Engelschall]
+
*) Upgraded to GNU Autoconf 2.58 environment.
[Ralf S. Engelschall]
|
|
ossp-pkg/shtool/Makefile.in 1.47 -> 1.48
--- Makefile.in 2003/02/11 13:00:49 1.47
+++ Makefile.in 2003/12/13 21:23:55 1.48
@@ -54,7 +54,7 @@
sh.rotate \
sh.tarball \
sh.subst \
- sh.guessos \
+ sh.platform \
sh.arx \
sh.slo \
sh.scpp \
|
|
ossp-pkg/shtool/NEWS 1.6 -> 1.7
--- NEWS 2003/11/14 17:21:37 1.6
+++ NEWS 2003/12/13 21:23:55 1.7
@@ -9,8 +9,9 @@
This is a list of user-visible and/or major changes to GNU shtool.
For more details please have a look at the ChangeLog file.
- Changes between 1.6 and 2.0 (02-Nov-2002 to xx-Nov-2003)
+ Changes between 1.6 and 2.0 (02-Nov-2002 to xx-Dec-2003)
+ *) Replaced old `shtool guessos' with a new `shtool platform' command
*) Even more POSIX 1003.1-2001 compliancy and portability.
*) Many workarounds and fixed for permission related problems
*) Fixed error exit in all commands by introducing an "shtool_exit"
|
|
ossp-pkg/shtool/README 1.96 -> 1.97
--- README 2003/08/13 14:23:21 1.96
+++ README 2003/12/13 21:23:55 1.97
@@ -35,7 +35,7 @@
rotate Rotate logfiles
tarball Roll distribution tarballs
subst Apply sed(1) substitution operations
- guessos Simple OS/platform guesser
+ platform Platform identification utility
arx Extended archive command
slo Separate linker options by library class
scpp Sharing C Pre-Processor
|
|
ossp-pkg/shtool/sh.common 1.21 -> 1.22
--- sh.common 2003/08/13 14:20:34 1.21
+++ sh.common 2003/12/13 21:23:55 1.22
@@ -174,6 +174,16 @@
chmod 600 $tmpfile
fi
+# utility function: map string to lower case
+util_lower () {
+ echo "$1" | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'
+}
+
+# utility function: map string to upper case
+util_upper () {
+ echo "$1" | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+}
+
# cleanup procedure
shtool_exit () {
rc="$1"
|
|
ossp-pkg/shtool/sh.guessos 1.23 -> 1.24
ossp-pkg/shtool/sh.platform -> 1.1
*** /dev/null Tue Mar 11 06:00:56 2025
--- - Tue Mar 11 06:01:12 2025
***************
*** 0 ****
--- 1,585 ----
+ ##
+ ## platform -- Platform Identification Utility
+ ## Copyright (c) 2003 Ralf S. Engelschall <rse@engelschall.com>
+ ## Originally written for use in OpenPKG
+ ##
+ ## This file is part of shtool and 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 of the License, or (at your option) any later version.
+ ##
+ ## This file 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 program; if not, write to the Free Software
+ ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ ## USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
+ ##
+
+ str_tool="platform"
+ 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 [-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,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_V=no
+ opt_h=no
+
+ . ./sh.common
+
+ # 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="%<sp>-%<ap>"
+ 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 "$msgprefix:Error: invalid type \`$opt_t'" 1>&2
+ exit 1
+ ;;
+ esac
+ fi
+
+ # assemble initial platform 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}"
+
+ AC=""; AP=""; AT=""
+ SC=""; SP=""; ST=""
+
+ # dispatch into platform specific sections
+ 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
+ ;;
+
+ # NetBSD
+ *:NetBSD:* )
+ # determine architecture
+ AT="${UNAME_MACHINE}"
+ AP="${AT}"
+ case "${AP}" in
+ i[3-6]86 ) AP="iX86" ;;
+ esac
+ AC="${AP}"
+ # determine system
+ r=`echo "${UNAME_RELEASE}" | sed -e 's/\(-.*\)$/[\1]/'`
+ ST="NetBSD ${r}"
+ SP="${ST}"
+ case "${r}" in
+ 0.* ) SC="4.3BSD" ;;
+ * ) SC="4.4BSD" ;;
+ esac
+ ;;
+
+ # OpenBSD
+ *:OpenBSD:* )
+ # determine architecture
+ AT="${UNAME_MACHINE}"
+ AP="${AT}"
+ case "${AP}" in
+ i[3-6]86 ) AP="iX86" ;;
+ esac
+ AC="${AP}"
+ # determine system
+ r=`echo "${UNAME_RELEASE}" | sed -e 's/\(-.*\)$/[\1]/'`
+ ST="OpenBSD ${r}"
+ SP="${ST}"
+ SC="4.4BSD"
+ ;;
+
+ # GNU/Linux
+ *:Linux:* )
+ # determine architecture
+ AT="${UNAME_MACHINE}"
+ case "${AT}" in
+ ia64 ) AT="IA64" ;;
+ x86_64 ) AT='AMD64' ;;
+ parisc ) AT="HPPA32" ;;
+ parisc64 ) AT="HPPA64" ;;
+ esac
+ 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}" != . -a ".${DISTRIB_RELEASE}" != . ]; 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' -e '/^lsb-release$/d'; \
+ echo redhat-release lsb-release`
+ do
+ [ ".${tagfile}" = .x ] && continue
+ [ ! -f "/etc/${tagfile}" ] && continue
+ n=`echo ${tagfile} | sed -e 's/[_-]release$//' -e 's/[_-]version$//'`
+ v=`(grep VERSION /etc/${tagfile}; 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/^#.*$//'`
+ t=""
+ if [ ".${n}" = .redhat ]; then
+ t=`head -1 /etc/${tagfile} | \
+ sed -e 's/^/#/' \
+ -e 's/^#.*Red Hat Enterprise Linux \([AEW]S\).*$/\1/' \
+ -e 's/^#.*$//'`
+ fi
+ case "`util_lower ${n}`" in
+ debian ) n="Debian[ GNU/Linux]" ;;
+ fedora ) n="Fedora[ 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
+ if [ ".${t}" != . ]; then
+ n="${n} ${t}"
+ fi
+ 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]\)[^0-9]*$;2.\1;' \
+ -e 's;^5\.\([0-9][0-9]*\).*;\1;'`
+ SP="[Sun ]Solaris $v"
+ case "${UNAME_RELEASE}" in
+ 4.* ) SC="4.3BSD" ;;
+ 5.* ) SC="SVR4" ;;
+ esac
+ ;;
+
+ # SCO UnixWare
+ *:UnixWare:* )
+ # determine architecture
+ AT="${UNAME_MACHINE}"
+ case "${AT}" in
+ i[3-6]86 | ix86at ) AT="iX86" ;;
+ esac
+ AP="${AT}"
+ # determine system
+ v=`/sbin/uname -v`
+ ST="[SCO ]UnixWare ${v}"
+ SP="${ST}"
+ SC="SVR${UNAME_RELEASE}"
+ ;;
+
+ # QNX
+ *:QNX:* )
+ # determine architecture
+ AT="${UNAME_MACHINE}"
+ case "${AT}" in
+ x86pc ) AT="iX86" ;;
+ esac
+ AP="${AT}"
+ # determine system
+ v="${UNAME_RELEASE}"
+ ST="QNX[ Neutrino RTOS] ${v}"
+ v=`echo "${v}" | sed -e 's;^\([0-9][0-9]*\.[0-9][0-9]*\).*$;\1;'`
+ SP="QNX[ Neutrino RTOS] ${v}"
+ SC="QNX"
+ ;;
+
+ # SGI IRIX
+ *:IRIX*:* )
+ # determine architecture
+ AT="${UNAME_MACHINE}"
+ AP="${AT}"
+ case "${AP}:${UNAME_SYSTEM}" in
+ IP*:IRIX64 ) AP="MIPS64" ;;
+ IP*:* ) AP="MIPS" ;;
+ esac
+ AC="${AP}"
+ # determine system
+ v=`(/bin/uname -R || /bin/uname -r) 2>/dev/null | sed -e 's;[0-9.]* ;;'`
+ ST="[SGI ]IRIX ${v}"
+ v="${UNAME_RELEASE}"
+ SP="[SGI ]IRIX ${v}"
+ SC="4.2BSD/SVR3"
+ ;;
+
+ # HP HP-UX
+ *:HP-UX:* )
+ # determine architecture
+ AT="${UNAME_MACHINE}"
+ case "${AT}" in
+ ia64 ) AT="IA64" ;;
+ 9000/[34]?? ) AT=M68K ;;
+ 9000/[678][0-9][0-9])
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523 ) AT="HPPA1.0" ;;
+ 528 ) AT="HPPA1.1" ;;
+ 532 ) AT="HPPA2.0"
+ case "${sc_kernel_bits}" in
+ 32 ) AT="${AT}n" ;;
+ 64 ) AT="${AT}w" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ AP="${AT}"
+ case "${AP}" in
+ HPPA* ) AP="HPPA" ;;
+ esac
+ AC="${AP}"
+ # determine system
+ v=`echo "${UNAME_RELEASE}" | sed -e 's;^[^0-9]*;;'`
+ ST="[HP ]<HP>-<UX> ${v}"
+ SP="${ST}"
+ case "${v}" in
+ 10.* ) SC="SVR4.2" ;;
+ [7-9]* ) SC="SVR4" ;;
+ esac
+ ;;
+
+ # HP Tru64 (OSF1)
+ *:OSF1:* )
+ # determine architecture
+ AP="${UNAME_MACHINE}"
+ case "${AP}" in
+ alpha ) AP="Alpha" ;;
+ esac
+ alpha_type=`(/usr/sbin/psrinfo -v) 2>/dev/null |\
+ sed -n -e 's/^.*The alpha \([^ ][^ ]*\).*processor.*$/\1/p' | head -n 1`
+ AT="${AP}${alpha_type}"
+ AC="${AP}"
+ # determine system
+ v=`echo "${UNAME_RELEASE}" | sed -e 's;^[VTX];;'`
+ ST="[HP ]Tru64 ${v}"
+ SP="${ST}"
+ SC="OSF1"
+ ;;
+
+ # IBM AIX
+ *:AIX:* )
+ cpu_arch=rs6000
+ if [ -x /usr/sbin/lsdev -a -x /usr/sbin/lsattr ]; then
+ cpu_id=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if [ ".`/usr/sbin/lsattr -El ${cpu_id} | grep -i powerpc`" != . ]; then
+ cpu_arch=powerpc
+ fi
+ fi
+ if [ -x /usr/bin/oslevel ]; then
+ os_level=`/usr/bin/oslevel`
+ else
+ os_level="`uname -r`.`uname -v`"
+ fi
+ os_level=`echo "${os_level}" |\
+ sed -e 's;^\([0-9][0-9]*\.[0-9][0-9]*\)\(\.[0-9][0-9]*\)\(.*\)$;<\1>\2[\3];' \
+ -e 's;^\([0-9][0-9]*\.[0-9][0-9]*\)\(.*\)$;<\1>\2;'`
+ AT="${cpu_arch}"
+ AP="${AT}"
+ AC="${AP}"
+ ST="[IBM ]AIX ${os_level}"
+ SP="${ST}"
+ case "${os_level}" in
+ [12]* ) SC="SVR2" ;;
+ * ) SC="SVR4" ;;
+ esac
+ ;;
+
+ # Apple MacOS X Darwin
+ *:Darwin:* )
+ AT=`uname -p`
+ case "${AT}" in
+ powerpc ) AT="PPC" ;;
+ esac
+ AP="${AT}"
+ AC="${AP}"
+ case "${AC}" in
+ i?86 ) AC="iX86" ;;
+ esac
+ ST="[Apple ]${UNAME_SYSTEM} ${UNAME_RELEASE}"
+ SP="${ST}"
+ SC="4.4BSD/Mach3"
+ ;;
+
+ # TODO ...ADD YOUR NEW PLATFORM CHECK HERE... TODO
+ # *:XXX:* )
+ # ...
+ # ;;
+
+ # ...A STILL UNKNOWN PLATFORM...
+ * )
+ AT=`echo "${UNAME_MACHINE}" | sed -e "s; ;${opt_C};g"`
+ AP="${AT}"
+ AC="${AP}"
+ v=`echo "${UNAME_RELEASE}" |\
+ 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/^#.*$/?/'`
+ ST="${UNAME_SYSTEM} ${v}"
+ SP="${ST}"
+ SC="${SP}"
+ ;;
+
+ esac
+
+ # 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
+
|
|
ossp-pkg/shtool/shtool.pod 1.63 -> 1.64
--- shtool.pod 2003/02/11 13:00:50 1.63
+++ shtool.pod 2003/12/13 21:23:55 1.64
@@ -259,10 +259,9 @@
Apply sed(1) substitution operations.
-=item B<guessos>
+=item B<platform>
-Simple operating system and platform architecture guesser which
-determines a GNU I<platform-triple> style identification string.
+Determines platform identification information.
=item B<arx>
@@ -674,17 +673,130 @@
`find . -name Makefile -print`
make install
-=item B<guessos>
+=item B<platform> [B<-F>|B<--format> I<FORMAT>] [B<-S>|B<--sep> I<STRING>] [B<-C>|B<--conc> I<STRING>] [B<-L>|B<--lower>] [B<-U>|B<--upper>] [B<-v>|B<--verbose>] [B<-c>|B<--concise>] [B<-n>|B<--newline>] [B<-t>|B<--type> I<TYPE>] [B<-V>|B<--version>] [B<-h>|B<--help>]
-This command is a simple operating system and platform architecture guesser
-which determines a so-called ``GNU I<platform-triple>'' style identification
-string ``I<arch>-I<hardware>-I<os>I<osversion>''. For instance a FreeBSD 3.1
-running on a Pentium II is identified as ``C<i686-pc-freebsd3.1>''. When you
-need a more sophisticated platform guesser, use the GNU
-C<config.guess>/C<config.sub> scripts, please.
+This command privides Unix platform identifications. It distinguishes
+a platform according to its I<hardware architecture> and I<operating
+system>. For both there is a I<class>, I<product> and I<technology>
+identification. For each of those six identifications, there is a
+I<verbose>, I<regular> and I<concise> version.
+
+This leads to eighteen (2x3x3) available identification strings for each
+platform, from which usually 2 are chosen in a particular situation.
+This is done by assembling the platform identification string using a
+I<FORMAT> string containing one or more identification constructs of the
+forms "C<%[xx]>" (verbose), "C<%{xx}>" (regular) and "C<%E<lt>xxE<gt>>"
+(concise).
+
+Option B<-F> controls the output formatting of this command. It is a
+plain-text string with the "C<%>I<xx>" constructs which expand to the
+various platform information strings. "C<%{>I<xx>C<}>" is the canonical
+regular version of the information. "C<%[>I<xx>C<]>" is the verbose
+version of the information. "C<%E<lt>>I<xx>C<E<gt>>" is the concise
+version of the information. In total, the following constructs
+are available for expansion:
+
+ %[ac] verbose hardware architecture class
+ %{ac} regular hardware architecture class
+ %<ac> concise hardware architecture class
+ %[ap] verbose hardware architecture product
+ %{ap} regular hardware architecture product
+ %<ap> concise hardware architecture product
+ %[at] verbose hardware architecture technology
+ %{at} regular hardware architecture technology
+ %<at> concise hardware architecture technology
+ %[sc] verbose operating system class
+ %{sc} regular operating system class
+ %<sc> concise operating system class
+ %[sp] verbose operating system product
+ %{sp} regular operating system product
+ %<sp> concise operating system product
+ %[st] verbose operating system technology
+ %{st} regular operating system technology
+ %<st> concise operating system technology
+
+The default I<FORMAT> string is "C<%{sp} (%{ap})>", providing the
+regular operating system and hardware architecture product information.
+
+Option B<-S> sets the word I<separation> string for the platform
+information strings. By default it is "C< >" (whitespace). It is
+especially used for separating the operating system name and the
+operating system version. Option B<-C> sets the word I<concatenation>
+string for the platform information strings. By default it is "C</>".
+It is especially used to concatenate multiple parts in operating
+system name and version parts. Option B<-L> enforces conversion of the
+output to all I<lower> case. Option B<-U> enforces conversion of the
+output to all I<upper> case.
+
+Option B<-v> enforces verbose versions of all expansion constructs
+in I<FORMAT> string of option B<-F>. It is equal to specifying all
+expansion constructs as "C<%[>I<xx>C<]>". Option B<-c> enforces
+concise versions of all expansion constructs in I<FORMAT> string of
+option B<-F>. It is equal to specifying all expansion constructs as
+"C<%E<lt>>I<xx>C<E<gt>>". Option B<-n> omits the usual trailing newline
+character in the output.
+
+Option B<-t> is a meta option which internally sets options B<-F>,
+B<-S>, B<-C>, B<-L>, B<-U>, B<-v> or B<-c> according to I<TYPE>. It can
+be used to easily specify various commonly known outputs. The following
+I<TYPE>s are available:
+
+=over 4
+
+=item B<binary>
+
+Binary Package Id (OpenPKG RPM).
+This is equal to "C<-F '%<ap>-%<sp>' -L -S '' -C '+'>"
+and results in outputs like "C<ix86-freebsd4.9>" and "C<ix86-debian3.0>".
+
+=item B<build>
+
+Build-Time Checking (OpenPKG RPM).
+This is equal to "C<-F '%<at>-%<st>' -L -S '' -C '+'>"
+and results in outputs like "C<i686-freebsd4.9>" and "C<i586-linux2.4>".
+
+=item B<gnu>
+
+GNU F<config.guess> Style Id.
+This is similar to B<build> and is equal to "C<-F '"%<at>-unknown-%<st>' -L -S '' -C '+'>"
+and results in outputs like "C<i686-unknown-freebsd4.9>" and "C<i586-unknown-linux2.4>".
+
+=item B<web>
+
+HTTP Server Header Id.
+This is equal to "C<-F '"%<sp>-%<ac>' -S '/' -C '+'>"
+and results in outputs like "C<FreeBSD/4.9-iX86>" and "C<Debian/3.0-iX86>".
+
+=item B<summary>
+
+Human Readable Verbose Summary Information. This is equal to "C<-F
+'Class: %[sc] (%[ac])\nProduct: %[sp] (%[ap])\nTechnology: %[st]
+(%[at])' -S ' ' -C '/'>" and results in outputs like:
+
+ Class: 4.4BSD (iX86)
+ Product: FreeBSD 4.9-RC (iX86)
+ Technology: FreeBSD 4.9-RC (i686)
+
+and
+
+ Class: LSB (iX86)
+ Product: Debian GNU/Linux 3.0 (iX86)
+ Technology: GNU/Linux 2.2/2.4 (i686)
+
+=item B<all-in-one>
+
+All-In-One Full-Table Information. This just outputs really
+all 2x2x3 identification strings as a table.
+
+=back
+
+Option B<-V> outputs the version information of B<OSSP platform> only.
+Option B<-h> outputs the usage information of B<OSSP platform> only.
+
+Example:
# configure.in
- OS=`shtool guessos`
+ PLATFORM=`shtool platform --type=binary`
=item B<arx> [B<-t>|B<--trace>] [B<-C>|B<--command> I<cmd>] I<op> I<archive> I<file> [I<file> ...]
|
|
ossp-pkg/shtool/shtoolize.in 1.31 -> 1.32
--- shtoolize.in 2003/08/13 14:20:34 1.31
+++ shtoolize.in 2003/12/13 21:23:55 1.32
@@ -35,7 +35,7 @@
# Available modules
my @available = qw(
echo mdate table prop move install mkdir mkln mkshadow
- fixperm rotate tarball subst guessos arx slo scpp version path
+ fixperm rotate tarball subst platform arx slo scpp version path
);
##
|
|
ossp-pkg/shtool/shtoolize.pod 1.10 -> 1.11
--- shtoolize.pod 2003/02/11 13:00:50 1.10
+++ shtoolize.pod 2003/12/13 21:23:55 1.11
@@ -57,7 +57,7 @@
rotate Rotate a logfile
tarball Roll distribution tarballs
subst Apply sed(1) substitution operations
- guessos Simple OS/platform guesser
+ platform Platform identification utility
arx Extended archive command
slo Separate linker options by library class
scpp Sharing C Pre-Processor
@@ -66,7 +66,7 @@
Additionally there is a pseudo-module ``C<all>'' which can be used as a
short-hand for ``C<echo mdate table prop move install mkdir mkln mkshadow
-fixperm guessos arx slo scpp version path>'', i.e. to build a B<shtool> script
+fixperm platform arx slo scpp version path>'', i.e. to build a B<shtool> script
with all modules in the standard order. An installed B<shtool> is usually
built this way via ``C<shtoolize -o shtool all>''.
|
|
ossp-pkg/shtool/test.db 1.20 -> 1.21
--- test.db 2003/02/11 13:00:50 1.20
+++ test.db 2003/12/13 21:23:55 1.21
@@ -130,10 +130,10 @@
test ".`cat baz`" = ".CbazC"
@end{subst}
-@begin{guessos}
+@begin{platform}
# cannot be checked easily, so just start it
-shtool guessos
-@end{guessos}
+shtool platform
+@end{platform}
@begin{arx}
echo foo >foo.o
|
|