diff options
Diffstat (limited to 'glibcbug.in')
-rw-r--r-- | glibcbug.in | 283 |
1 files changed, 0 insertions, 283 deletions
diff --git a/glibcbug.in b/glibcbug.in deleted file mode 100644 index 37123b603f..0000000000 --- a/glibcbug.in +++ /dev/null @@ -1,283 +0,0 @@ -#! /bin/sh -# -# glibcbug - create a bug report and mail it to the bug address. -# -# configuration section: -# these variables are filled in by configure -# -VERSION="@VERSION@" -RELEASE="@RELEASE@" -ADDONS="@subdirs@" -HOST="@host@" -CC='@CC@' -CCVERSION='@CCVERSION@' -CFLAGS="@CFLAGS@" -SYSINCLUDES="@SYSINCLUDES@" -VERSIONING="@VERSIONING@" -BUILD_STATIC="@static@" -BUILD_SHARED="@shared@" -BUILD_PIC_DEFAULT="@pic_default@" -BUILD_PROFILE="@profile@" -BUILD_OMITFP="@omitfp@" -BUILD_BOUNDED="@bounded@" -BUILD_STATIC_NSS="@static_nss@" - -TEMP=`mktemp -q ${TMPDIR-/tmp}/glibcbugXXXXXX 2>/dev/null` -if test $? -ne 0; then - TEMP=${TMPDIR-/tmp}/glibcbug.$$ - echo > $TEMP - chmod 600 $TEMP -fi -TEMPx=`mktemp -q ${TMPDIR-/tmp}/glibcbugXXXXXX 2>/dev/null` -if test $? -ne 0; then - TEMPx=${TMPDIR-/tmp}/glibcbug.$$.x - echo > $TEMPx - chmod 600 $TEMPx -fi - -BUGGLIBC="glibc-bug-reports-${RELEASE}@gnu.org" -BUGADDR=${1-$BUGGLIBC} - -: ${EDITOR=emacs} - -: ${USER=${LOGNAME-`whoami`}} - -trap 'rm -f $TEMP $TEMPx; exit 1' 1 2 3 13 15 -trap 'rm -f $TEMP $TEMPx' 0 - - -# How to read the passwd database. -PASSWD="cat /etc/passwd" - -if [ -f /usr/lib/sendmail ] ; then - MAIL_AGENT="/usr/lib/sendmail -oi -t" -elif [ -f /usr/sbin/sendmail ] ; then - MAIL_AGENT="/usr/sbin/sendmail -oi -t" -else - MAIL_AGENT=rmail -fi - -# Figure out how to echo a string without a trailing newline -N=`echo 'hi there\c'` -case "$N" in -*c) ECHON1='echo -n' ECHON2= ;; -*) ECHON1=echo ECHON2='\c' ;; -esac - -# Find out the name of the originator of this PR. -if [ -n "$NAME" ]; then - ORIGINATOR="$NAME" -elif [ -f $HOME/.fullname ]; then - ORIGINATOR="`sed -e '1q' $HOME/.fullname`" -else - # Must use temp file due to incompatibilities in quoting behavior - # and to protect shell metacharacters in the expansion of $LOGNAME - $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP - ORIGINATOR="`cat $TEMP`" -fi - -if [ -n "$ORGANIZATION" ]; then - if [ -f "$ORGANIZATION" ]; then - ORGANIZATION="`cat $ORGANIZATION`" - fi -else - if [ -f $HOME/.organization ]; then - ORGANIZATION="`cat $HOME/.organization`" - elif [ -f $HOME/.signature ]; then - ORGANIZATION=`sed -e "s/^/ /" $HOME/.signature; echo ">"` - fi -fi - -# If they don't have a preferred editor set, then use -if [ -z "$VISUAL" ]; then - if [ -z "$EDITOR" ]; then - EDIT=vi - else - EDIT="$EDITOR" - fi -else - EDIT="$VISUAL" -fi - -# Find out some information. -SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \ - ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""` -ARCH=`[ -f /bin/arch ] && /bin/arch` -MACHINE=`[ -f /bin/machine ] && /bin/machine` - -case $HOST in *linux*) - KHDRS=`(echo '#include <linux/version.h>' - echo '! UTS_RELEASE' ) | - $CC $SYSINCLUDES -E - | sed -n '/!/s/[! "]//gp'`;; -esac - -ORGANIZATION_C='<organization of PR author (multiple lines)>' -SYNOPSIS_C='<synopsis of the problem (one line)>' -SEVERITY_C='<[ non-critical | serious | critical ] (one line)>' -PRIORITY_C='<[ low | medium | high ] (one line)>' -CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>' -RELEASE_C='<release number or tag (one line)>' -ENVIRONMENT_C='<machine, os, target, libraries (multiple lines)>' -DESCRIPTION_C='<precise description of the problem (multiple lines)>' -HOW_TO_REPEAT_C='<code/input/activities to reproduce the problem (multiple lines)>' -FIX_C='<how to correct or work around the problem, if known (multiple lines)>' - - -cat > $TEMP <<EOF -SEND-PR: -*- send-pr -*- -SEND-PR: Lines starting with \`SEND-PR' will be removed automatically, as -SEND-PR: will all comments (text enclosed in \`<' and \`>'). -SEND-PR: -From: ${USER} -To: ${BUGADDR} -Subject: [50 character or so descriptive subject here (for reference)] - ->Submitter-Id: net ->Originator: ${ORIGINATOR} ->Organization: -${ORGANIZATION- $ORGANIZATION_C} ->Confidential: no ->Synopsis: $SYNOPSIS_C ->Severity: $SEVERITY_C ->Priority: $PRIORITY_C ->Category: libc ->Class: $CLASS_C ->Release: libc-${VERSION} ->Environment: - $ENVIRONMENT_C -`[ -n "$HOST" ] && echo Host type: $HOST` -`[ -n "$SYSTEM" ] && echo System: $SYSTEM` -`[ -n "$ARCH" ] && echo Architecture: $ARCH` -`[ -n "$MACHINE" ] && echo Machine: $MACHINE` -`[ -n "$ADDONS" ] && echo Addons: $ADDONS` -`[ -n "$CFLAGS" ] && echo Build CFLAGS: $CFLAGS` -`[ -n "$CC" ] && echo Build CC: $CC` -`[ -n "$CCVERSION" ] && echo Compiler version: $CCVERSION` -`[ -n "$KHDRS" ] && echo Kernel headers: $KHDRS` -`[ -n "$VERSIONING" ] && echo Symbol versioning: $VERSIONING` -`[ -n "$BUILD_STATIC" ] && echo Build static: $BUILD_STATIC` -`[ -n "$BUILD_SHARED" ] && echo Build shared: $BUILD_SHARED` -`[ -n "$BUILD_PIC_DEFAULT" ] && echo Build pic-default: $BUILD_PIC_DEFAULT` -`[ -n "$BUILD_PROFILE" ] && echo Build profile: $BUILD_PROFILE` -`[ -n "$BUILD_OMITFP" ] && echo Build omitfp: $BUILD_OMITFP` -`[ -n "$BUILD_BOUNDED" ] && echo Build bounded: $BUILD_BOUNDED` -`[ -n "$BUILD_STATIC_NSS" ] && echo Build static-nss: $BUILD_STATIC_NSS` - ->Description: - $DESCRIPTION_C ->How-To-Repeat: - $HOW_TO_REPEAT_C ->Fix: - $FIX_C -EOF - -chmod u+w $TEMP -cp $TEMP $TEMPx - -eval $EDIT $TEMP - -if cmp -s $TEMP $TEMPx; then - echo "File not changed, no bug report submitted." - exit 1 -fi - -# -# Check the enumeration fields - -# This is a "sed-subroutine" with one keyword parameter -# (with workaround for Sun sed bug) -# -SED_CMD=' -/$PATTERN/{ -s||| -s|<.*>|| -s|^[ ]*|| -s|[ ]*$|| -p -q -}' - - -while :; do - CNT=0 - - # - # 1) Severity - # - PATTERN=">Severity:" - SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` - case "$SEVERITY" in - ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;; - *) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'." - esac - # - # 2) Priority - # - PATTERN=">Priority:" - PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` - case "$PRIORITY" in - ""|low|medium|high) CNT=`expr $CNT + 1` ;; - *) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'." - esac - # - # 3) Class - # - PATTERN=">Class:" - CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP` - case "$CLASS" in - ""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;; - *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'." - esac - - [ $CNT -lt 3 ] && - echo "Errors were found with the problem report." - - while :; do - $ECHON1 "a)bort, e)dit or s)end? $ECHON2" - read input - case "$input" in - a*) - echo "$COMMAND: problem report saved in $HOME/dead.glibcbug." - cat $TEMP >> $HOME/dead.glibcbug - xs=1; exit - ;; - e*) - eval $EDIT $TEMP - continue 2 - ;; - s*) - break 2 - ;; - esac - done -done -# -# Remove comments and send the problem report -# (we have to use patterns, where the comment contains regex chars) -# -# /^>Originator:/s;$ORIGINATOR;; -sed -e " -/^SEND-PR:/d -/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;; -/^>Confidential:/s;<.*>;; -/^>Synopsis:/s;$SYNOPSIS_C;; -/^>Severity:/s;<.*>;; -/^>Priority:/s;<.*>;; -/^>Class:/s;<.*>;; -/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;; -/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;; -/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;; -/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;; -/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;; -" $TEMP > $TEMPx - -if $MAIL_AGENT < $TEMPx; then - echo "$COMMAND: problem report sent" - xs=0; exit -else - echo "$COMMAND: mysterious mail failure, report not sent." - echo "$COMMAND: problem report saved in $HOME/dead.glibcbug." - cat $TEMP >> $HOME/dead.glibcbug -fi - -exit 0 |