Hello community, here is the log from the commit of package supportutils for openSUSE:Factory checked in at 2020-03-16 10:16:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/supportutils (Old) and /work/SRC/openSUSE:Factory/.supportutils.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "supportutils" Mon Mar 16 10:16:50 2020 rev:14 rq:784716 version:3.1.9 Changes: -------- --- /work/SRC/openSUSE:Factory/supportutils/supportutils.changes 2020-03-06 21:24:23.821452728 +0100 +++ /work/SRC/openSUSE:Factory/.supportutils.new.3160/supportutils.changes 2020-03-16 10:17:34.223568468 +0100 @@ -1,0 +2,11 @@ +Fri Mar 13 20:45:16 UTC 2020 - [email protected] + +- Addition to version 3.1.9 + + Changes affecting getappcore + - Added core file validation (bsc#1166126) + - Added -j <PID> to extract core from systemd journal + - Capture coredumptctl info in getappcore.log + + Changed filename prefixes from nts_ to scc_ (SLE-8702, SLE-6762) + - The new prefix references SUSE Customer Center + +------------------------------------------------------------------- Old: ---- supportutils-3.1.8.tar.gz New: ---- supportutils-3.1.9.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ supportutils.spec ++++++ --- /var/tmp/diff_new_pack.C8TO2H/_old 2020-03-16 10:17:34.771568692 +0100 +++ /var/tmp/diff_new_pack.C8TO2H/_new 2020-03-16 10:17:34.791568700 +0100 @@ -19,7 +19,7 @@ %define support_libdir /usr/lib/supportconfig Name: supportutils -Version: 3.1.8 +Version: 3.1.9 Release: 0 Summary: Support Troubleshooting Tools License: GPL-2.0-only ++++++ supportutils-3.1.8.tar.gz -> supportutils-3.1.9.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/bin/analyzevmcore new/supportutils-3.1.9/bin/analyzevmcore --- old/supportutils-3.1.8/bin/analyzevmcore 2019-10-14 15:06:13.028616690 +0200 +++ new/supportutils-3.1.9/bin/analyzevmcore 2020-03-13 19:03:38.545774096 +0100 @@ -1,7 +1,7 @@ #!/bin/bash -SVER=1.32 -SDATE="2013 07 02" +SVER='1.33' +SDATE="2020 03 13" SNAME="analyzevmcore" # --------------------------------------------------------------------- # @@ -11,7 +11,7 @@ # Please submit bug fixes or comments via: # # http://en.opensuse.org/Supportutils#Reporting_Bugs # # # -# Copyright (C) 1999-2012 SUSE Linux Products GmbH, Nuernberg, Germany # +# Copyright (C) 1999-2020 SUSE Linux Products GmbH, Nuernberg, Germany # # # # --------------------------------------------------------------------- # # # @@ -26,10 +26,11 @@ # 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, see <http://www.gnu.org/licenses/>. # +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # # # Authors/Contributors: # # Mike Latimer ([email protected]) # +# Jason Record ([email protected]) # # --------------------------------------------------------------------- # # # # Overview: # @@ -51,6 +52,9 @@ # --------------------------------------------------------------------- # # Changes: # # # +# 1.33 Release # +# - Changed filename prefix from nts_ to scc_ with FILENAME_PREFIX # +# - Processes all available crash dumps # # 1.32 Release # # - Improved support for user-specified crash directory # # 1.31 Release # @@ -80,6 +84,7 @@ REWRITE_ANALYSIS=0 FORMAT="%-35s" SPINSTR='|/-\' +FILENAME_PREFIX='scc_' #Required Binaries AWK_BIN=/usr/bin/awk @@ -122,10 +127,10 @@ { echo "Usage: $SNAME [OPTIONS]" echo - echo "$SNAME creates an analysis file (nts_analyzevmcore_<CORE_DATE>.txt) for all" + echo "$SNAME creates an analysis file (${FILENAME_PREFIX}analyzevmcore_<CORE_DATE>.txt) for all" echo "kernel cores found on the system. This analysis file is automatically copied" echo "to /var/log, and included in supportconfig archives for further analysis by" - echo "Novell and SUSE Technical Services." + echo "SUSE Technical Services." echo echo "In order to create the analysis, this script requires the debuginfo kernel" echo "(vmlinux-*.debug) that matches the kernel version which generated the core." @@ -340,9 +345,9 @@ echo echo " --- Missing $DEBUGKERNEL! ---" echo - echo "Please install the debuginfo package for this kernel and try again." - echo "The debuginfo kernel can be automatically installed (if debuginfo" - echo "channels are activated) using:" + echo " Please install the debuginfo package for this kernel and try again." + echo " The debuginfo kernel can be automatically installed (if debuginfo" + echo " channels are activated) using:" echo if [ "$CRASHV4" = "1" ]; then echo " rug in kernel-$KERNEL_FLAVOR-debuginfo-$KERNEL_VER" @@ -350,9 +355,9 @@ echo " zypper in kernel-$KERNEL_FLAVOR-debuginfo-${KERNEL_VER%-*}" fi echo - echo "For additional information, see analyzevmcore(8)." + echo " For additional information, see analyzevmcore(8)." echo - exit -1 + return 1 fi fi else @@ -364,6 +369,7 @@ $LN_BIN -s /usr/lib/debug/boot/$DEBUGKERNEL $CRASHDIR/$DEBUGKERNEL fi fi + return 0 } # --------------------------------------------------------- # @@ -561,10 +567,13 @@ if ! [ -z "$COREDIR" ]; then TMP_DIR=$($MKTEMP_BIN -d /tmp/analyzevmcore_tmp_XXXXXX) ORG_DIR=$PWD + COREDIR_TOTAL=$($WC_BIN -w <<< $COREDIR) + COREDIR_COUNT=1 for CRASHDIR in $COREDIR; do - echo "Analyzing $CRASHDIR..." + echo "Analyzing $COREDIR_COUNT of $COREDIR_TOTAL $CRASHDIR..." + (( COREDIR_COUNT++ )) CORE_DATE=${CRASHDIR##*/} - ANALYSIS="$CRASHDIR/nts_analyzevmcore_$CORE_DATE.txt" + ANALYSIS="$CRASHDIR/${FILENAME_PREFIX}analyzevmcore_$CORE_DATE.txt" $PRINTF_BIN "$FORMAT" " Existing analysis..." if [ -e "$ANALYSIS" ]; then if [ "$REWRITE_ANALYSIS" = "1" ]; then @@ -601,11 +610,12 @@ fi $PRINTF_BIN "$FORMAT" " Checking vmlinux.debug..." - checkdebug - - createreport - - cd $OLD_DIR + if checkdebug; then + createreport + cd $OLD_DIR + else + continue + fi fi echo done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/bin/chkbin new/supportutils-3.1.9/bin/chkbin --- old/supportutils-3.1.8/bin/chkbin 2019-10-14 15:06:13.028616690 +0200 +++ new/supportutils-3.1.9/bin/chkbin 2020-03-13 15:59:34.181768788 +0100 @@ -1,6 +1,6 @@ #!/bin/bash -SVER=1.01-25 +SVER='1.02.1' ############################################################################## # chkbin - Checks the specified binary and it shared library dependencies @@ -9,7 +9,7 @@ # Please submit bug fixes or comments via: # http://en.opensuse.org/Supportutils#Reporting_Bugs # -# Copyright (C) 2007-2012 SUSE Linux Products GmbH, Nuernberg, Germany +# Copyright (C) 2007-2020 SUSE Linux Products GmbH, Nuernberg, Germany # ############################################################################## # @@ -26,7 +26,7 @@ # along with this program; if not, see <http://www.gnu.org/licenses/>. # # Authors/Contributors: -# Jason Record ([email protected]) +# Jason Record ([email protected]) # ############################################################################## @@ -42,6 +42,7 @@ SCR_LOG=$(mktemp /tmp/chkbin_screen_XXXXXXXX) TMP_LOGS="$RPM_LOG $RPMV_LOG $LDD_LOG $CACHE_LOG $DL_LOG $ALL_LOG $SCR_LOG" SHOW_LEGEND=0 +ARCHIVE_PREFIX='scc_' GDIFF=0 GWARN=0 GERR=0 @@ -155,7 +156,7 @@ done shift $(( $# - 1 )) BINARG=$@ -LOG=$LOGPATH/nts_chkbin_$(basename $BINARG)_$$.txt +LOG=$LOGPATH/${ARCHIVE_PREFIX}chkbin_$(basename $BINARG)_$$.txt clear >$LOG title | tee -a $LOG diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/bin/getappcore new/supportutils-3.1.9/bin/getappcore --- old/supportutils-3.1.8/bin/getappcore 2020-03-03 02:53:17.803671433 +0100 +++ new/supportutils-3.1.9/bin/getappcore 2020-03-12 19:57:29.505524280 +0100 @@ -1,7 +1,7 @@ #!/bin/bash -SVER='1.46' -SDATE="2020 03 02" +SVER='1.51.2' +SDATE="2020 03 12" SNAME=$(basename $0) # --------------------------------------------------------------------- # @@ -50,6 +50,14 @@ # --------------------------------------------------------------------- # # Changes: # # # +# 1.52 Release # +# - Capture coredumpctl info in getappcore.log # +# - Changed nts_ to scc_ with ARCHIVE_PREFIX # +# 1.51 Release # +# - Added journal core dump processing # +# - Check for valid core file # +# - Updated documentation and messages # +# - Creates ARCHIVE_PATH as needed # # 1.46 Release # # - Replaced Novell with SUSE FTP servers # # - Uses /etc/getappcore.conf if present # @@ -67,15 +75,20 @@ # --------------------------------------------------------------------- # -ARCHIVE_PATH=/var/log -TMP_DIR=$(/bin/mktemp -d /tmp/getappcore_tmp_XXXXXXXX) -GETAPPCORE_LOG=$TMP_DIR/getappcore.log -GDBLIBS_CMD=$TMP_DIR/.gdblibs.cmd +ARCHIVE_PATH="/var/log" +BASE_TMP_DIR="/tmp" +GETAPPCORE_CONF="/etc/getappcore.conf" +GETAPPCORE_TMP_DIR=$(/bin/mktemp -d ${BASE_TMP_DIR}/getappcore_tmp_XXXXXXXX) +GETAPPCORE_LOG="$GETAPPCORE_TMP_DIR/getappcore.log" +GDBLIBS_CMD=$GETAPPCORE_TMP_DIR/.gdblibs.cmd SERVER_NAME=$(/bin/uname -n) SUSE_RELEASE="/etc/SuSE-release" OS_RELEASE="/etc/os-release" +ARCHIVE_PREFIX='scc_' +JOURNAL_PID='' UPLOAD=0 VERBOSE=0 +CLEANUP_CORE=0 SUSE_UPLOAD_NA_ASERVER='support-ftp.us.suse.com' SUSE_UPLOAD_EMEA_ASERVER='support-ftp.emea.suse.com' @@ -93,6 +106,7 @@ CAT_BIN=/bin/cat CHKBIN_BIN=/sbin/chkbin CHMOD_BIN=/bin/chmod +COREDUMP_BIN=/usr/bin/coredumpctl CURL_BIN=/usr/bin/curl CUT_BIN=/usr/bin/cut DATE_BIN=/bin/date @@ -119,7 +133,7 @@ WC_BIN=/usr/bin/wc WHICH_BIN=/usr/bin/which XARGS_BIN=/usr/bin/xargs -ALL_BINS="$AWK_BIN $BASENAME_BIN $CAT_BIN $CHKBIN_BIN $CHMOD_BIN $CUT_BIN $DATE_BIN $DIRNAME_BIN $DOS2UNIX_BIN $FIND_BIN \ +ALL_BINS="$AWK_BIN $BASENAME_BIN $CAT_BIN $CHKBIN_BIN $CHMOD_BIN $COREDUMP_BIN $CUT_BIN $DATE_BIN $DIRNAME_BIN $FIND_BIN \ $CURL_BIN $GDB_BIN $GREP_BIN $HEAD_BIN $LN_BIN $MKDIR_BIN $MV_BIN $READLINK_BIN $RM_BIN $RMDIR_BIN $RPM_BIN \ $SED_BIN $SORT_BIN $TAR_BIN $TEE_BIN $TR_BIN $UNAME_BIN $UNIQ_BIN $WC_BIN $WHICH_BIN $XARGS_BIN" @@ -135,7 +149,7 @@ echo "Server: $SERVER_NAME" | $TEE_BIN -a $GETAPPCORE_LOG echo "OS: $OS_VERSION $OS_PATCHLEVEL" | $TEE_BIN -a $GETAPPCORE_LOG echo "Kernel: $($UNAME_BIN -r) ($($UNAME_BIN -i))" | $TEE_BIN -a $GETAPPCORE_LOG - echo "Corefile: $COREFILE" | $TEE_BIN -a $GETAPPCORE_LOG + echo "Corefile: $COREFILE_STR" | $TEE_BIN -a $GETAPPCORE_LOG echo "####################################################################" | $TEE_BIN -a $GETAPPCORE_LOG echo } @@ -145,7 +159,7 @@ # Display program help screen # # --------------------------------------------------------- # show_help() { - echo "Usage: $0 [OPTION] COREFILE" + echo "Usage: $0 [OPTION] < -j PID | /path/to/corefile >" echo echo "$SNAME creates an archive containing an application core, and all files" echo "required to analyze the application core - including the binary which" @@ -162,6 +176,7 @@ echo echo " -h This screen" echo " -b [BINARY] Binary which generated [COREFILE]" + echo " -j [PID] PID of coredump from coredumpctl list to extract" echo " -r [SR Number] SUSE Service Request number associated with this issue" echo " -u Automatically upload archive to the SUSE FTP server using HTTPS" echo " -f Automatically upload archive to the SUSE FTP server using FTPES" @@ -169,10 +184,12 @@ echo echo "For example:" echo - echo " $SNAME -ur 12345678 -b /bin/rpm /core.15832" + echo " $SNAME -ur 00123456 -b /bin/rpm -j 2344" + echo " $SNAME -ur 00123456 -b /bin/rpm /core.15832" echo echo "$SNAME version $SVER ($SDATE)" echo + show_journal_coredumps } # --------------------------------------------------------- # @@ -181,7 +198,7 @@ # --------------------------------------------------------- # verbose() { if [[ $VERBOSE -eq '1' ]]; then - echo "-- $1" + [[ -z $1 ]] && echo || echo "-- $1" fi } @@ -233,24 +250,27 @@ echo echo "Please install the required package(s) and try again." echo + cleanup exit -1 fi } -# -- ------------------------------------------------------ # +# --------------------------------------------------------- # # create_filename () # # Create the archive filename # # --------------------------------------------------------- # create_filename() { CORE_ARCHIVE_NAME="$SERVER_NAME"_"$($BASENAME_BIN $COREFILE_BIN)_$($DATE_BIN +%y%m%d_%H%M%S)_appcore" if [ -z "$SR_NUM" ]; then - CORE_ARCHIVE_NAME="nts_${CORE_ARCHIVE_NAME}" + CORE_ARCHIVE_NAME="${ARCHIVE_PREFIX}${CORE_ARCHIVE_NAME}" else - CORE_ARCHIVE_NAME="nts_SR${SR_NUM}_${CORE_ARCHIVE_NAME}" + CORE_ARCHIVE_NAME="${ARCHIVE_PREFIX}SR${SR_NUM}_${CORE_ARCHIVE_NAME}" fi - OPENCORE_INI=$TMP_DIR/$CORE_ARCHIVE_NAME/opencore.ini - OPENCORE_SH=$TMP_DIR/$CORE_ARCHIVE_NAME/opencore.sh - LOG_DIR=$TMP_DIR/$CORE_ARCHIVE_NAME/logs + verbose "Using archive name $CORE_ARCHIVE_NAME" + OPENCORE_INI=$GETAPPCORE_TMP_DIR/$CORE_ARCHIVE_NAME/opencore.ini + OPENCORE_SH=$GETAPPCORE_TMP_DIR/$CORE_ARCHIVE_NAME/opencore.sh + LOG_DIR=$GETAPPCORE_TMP_DIR/$CORE_ARCHIVE_NAME/logs + verbose "Making the log directory $LOG_DIR" $MKDIR_BIN -p $LOG_DIR } @@ -260,6 +280,7 @@ # ----------------------------------------------------------------- # create_opencoreini() { # Strip double slashes and ././ from COREFILE and COREFILE_BIN + verbose "Creating file: $OPENCORE_INI" COREFILE_BIN_TMP=`echo "./${COREFILE_BIN#./}" | $SED_BIN s#//*#/#g` COREFILE_TMP=`echo "./${COREFILE#./}" | $SED_BIN s#//*#/#g` echo "# Generated by $SNAME v$SVER" > $OPENCORE_INI @@ -285,6 +306,7 @@ # Create the opencore.sh script at the root of the archive # # --------------------------------------------------------- # create_opencoresh() { + verbose "Creating file: $OPENCORE_SH" echo "#!/bin/sh" > $OPENCORE_SH echo "gdb --command=./$($BASENAME_BIN $OPENCORE_INI)" >> $OPENCORE_SH echo "" >> $OPENCORE_SH @@ -303,15 +325,19 @@ verbose "Removing file: $FILE" $RM_BIN $FILE done + if (( $CLEANUP_CORE )); then + verbose "Removing file: $COREFILE" + $RM_BIN $COREFILE + fi for FILE in $REQUIRED_LIBRARIES $COREFILE $COREFILE_BIN; do - SYMLINK=$TMP_DIR/$CORE_ARCHIVE_NAME/$FILE + SYMLINK=$GETAPPCORE_TMP_DIR/$CORE_ARCHIVE_NAME/$FILE SYMLINK=${SYMLINK/\/\//\/} if [ -L "$SYMLINK" ]; then verbose "Removing symlink: $SYMLINK" $RM_BIN $SYMLINK fi done - for DIR in $($FIND_BIN $TMP_DIR -type d | sort -r); do + for DIR in $($FIND_BIN $GETAPPCORE_TMP_DIR -type d | sort -r); do verbose "Removing directory: $DIR" $RMDIR_BIN $DIR done @@ -326,7 +352,7 @@ # --------------------------------------------------------------- # create_symlinks() { for REQUIRED_FILE in $COREFILE $COREFILE_BIN $REQUIRED_LIBRARIES; do - REQUIRED_FILE_LINK=$TMP_DIR/$CORE_ARCHIVE_NAME/$REQUIRED_FILE + REQUIRED_FILE_LINK=$GETAPPCORE_TMP_DIR/$CORE_ARCHIVE_NAME/$REQUIRED_FILE REQUIRED_FILE_LINK=${REQUIRED_FILE_LINK/\/\//\/} $MKDIR_BIN -p $(dirname $REQUIRED_FILE_LINK) verbose "Creating symlink: $REQUIRED_FILE_LINK --> $REQUIRED_FILE" @@ -341,21 +367,76 @@ create_archive() { echo -n "Creating core archive... " ORIGINAL_DIR=$PWD - cd $TMP_DIR + cd $GETAPPCORE_TMP_DIR FINAL_ARCHIVE_FILE="${CORE_ARCHIVE_NAME}.tbz" FINAL_ARCHIVE_NAME="${ARCHIVE_PATH}/${FINAL_ARCHIVE_FILE}" + verbose '' verbose "Executing: $TAR_BIN -jhvcvf $FINAL_ARCHIVE_NAME $CORE_ARCHIVE_NAME 1>/dev/null 2>&1" $TAR_BIN -jhvcvf $FINAL_ARCHIVE_NAME $CORE_ARCHIVE_NAME 1>/dev/null 2>&1 if [ -e $FINAL_ARCHIVE_NAME ]; then echo "Done" - echo "+ Created archive as: $FINAL_ARCHIVE_NAME" + verbose "Created archive as: $FINAL_ARCHIVE_NAME" else + echo "ERROR" echo "+ Unable to create $FINAL_ARCHIVE_NAME!" fi cd $ORIGINAL_DIR } # --------------------------------------------------------- # +# show_journal_coredumps() # +# Shows the number of coredumps in the journal # +# --------------------------------------------------------- # +show_journal_coredumps() { + echo -n "Number of coredumps in the journal... " + CORENUM=$($COREDUMP_BIN list --no-legend --no-pager | wc -l) + echo $CORENUM + if (( $CORENUM )); then + echo + if (( $VERBOSE )); then + $COREDUMP_BIN list + else + echo + echo "Most recent coredump:" + $COREDUMP_BIN list -1 + echo + echo "Use '$COREDUMP_BIN list' to see more." + fi + fi + echo +} + +# --------------------------------------------------------- # +# get_journal_coredump() # +# Gets the coredump from the journal using the PID # +# --------------------------------------------------------- # +get_journal_coredump() { + JPID=$1 + echo -n "Retrieving core file with PID ${JPID}... " + COREFILE="${ARCHIVE_PATH}/core.${JPID}" + COREFILE_BIN=$($COREDUMP_BIN dump -o ${COREFILE} ${JPID} 2>/dev/null | grep -i 'Executable:' | $AWK_BIN '{print $NF}') + #Only extracted core files are cleaned up. + CLEANUP_CORE=1 + if [[ -s $COREFILE ]]; then + echo Done + else + echo "ERROR" + echo "Coredump not found - PID ${JPID}" + echo + echo "Use '$COREDUMP_BIN list' to see coredumps." + echo + cleanup + exit 10 + fi + verbose "$($COREDUMP_BIN info $JPID)" + echo >> $GETAPPCORE_LOG + $COREDUMP_BIN info $JPID >> $GETAPPCORE_LOG + echo >> $GETAPPCORE_LOG + verbose "Extracted corefile: $COREFILE" + verbose "Associated executable: $COREFILE_BIN" +} + +# --------------------------------------------------------- # # upload_archive () # # Upload the appcore archive to the designated ftp server # # --------------------------------------------------------- # @@ -376,7 +457,7 @@ $CURL_BIN -v -L -A SupportConfig -T "${FINAL_ARCHIVE_NAME}" "${UPLOAD_URL}" ERRNO=$? else - $CURL_BIN -v -L -A SupportConfig -T "${FINAL_ARCHIVE_NAME}" "${UPLOAD_URL}" &> $GETAPPCORE_LOG + $CURL_BIN -v -L -A SupportConfig -T "${FINAL_ARCHIVE_NAME}" "${UPLOAD_URL}" >> $GETAPPCORE_LOG 2>&1 ERRNO=$? fi ;; @@ -390,7 +471,7 @@ $CURL_BIN -#T ${FINAL_ARCHIVE_NAME} ${FTPES_OPTIONS} ${UPLOAD_URL}/${FINAL_ARCHIVE_FILE} ERRNO=$? else - $CURL_BIN -#T ${FINAL_ARCHIVE_NAME} ${FTPES_OPTIONS} ${UPLOAD_URL}/${FINAL_ARCHIVE_FILE} &> $GETAPPCORE_LOG + $CURL_BIN -#T ${FINAL_ARCHIVE_NAME} ${FTPES_OPTIONS} ${UPLOAD_URL}/${FINAL_ARCHIVE_FILE} >> $GETAPPCORE_LOG 2>&1 ERRNO=$? fi ;; @@ -408,8 +489,6 @@ echo " archive name below." fi echo - echo " Archive Name: ${FINAL_ARCHIVE_NAME}" - echo } @@ -417,11 +496,12 @@ # main () # # Main script function # # --------------------------------------------------------- # -while getopts b:hr:ufv opt +while getopts b:hr:ufvj: opt do case $opt in \?) show_help + cleanup exit 0 ;; b) @@ -441,8 +521,12 @@ v) VERBOSE=1 ;; + j) + JOURNAL_PID=$OPTARG + ;; h) show_help + cleanup exit 0 ;; esac @@ -450,42 +534,64 @@ eval COREFILE=\$$OPTIND CMDLINE="$0 $*" +[[ $JOURNAL_PID ]] && COREFILE_STR="PID $JOURNAL_PID" || COREFILE_STR=${COREFILE} get_server_release show_title check_binaries # Check for valid configuration file -if [[ -s ${GETAPPCORE_CONF:="/etc/getappcore.conf"} ]]; then +if [[ -s ${GETAPPCORE_CONF} ]]; then + echo "Local configuration file... ${GETAPPCORE_CONF}" if [[ -x $DOS2UNIX_BIN ]]; then $DOS2UNIX_BIN $GETAPPCORE_CONF &>/dev/null else $SED_BIN -i -e 's/\r//g' $GETAPPCORE_CONF &>/dev/null fi . ${GETAPPCORE_CONF} +else + echo "Local configuration file... None" fi +[[ -d ${ARCHIVE_PATH} ]] || mkdir -p ${ARCHIVE_PATH} + +[[ $JOURNAL_PID ]] && get_journal_coredump $JOURNAL_PID + if [ ! -z $COREFILE -a -e $COREFILE ]; then + echo -n "Validating core file... " + if [[ -f $COREFILE ]]; then + echo Done + verbose "$(file $COREFILE)" + else + echo Invalid + echo " + $(file $COREFILE)" + cleanup + exit -5 + fi COREFILE=$($READLINK_BIN -f $COREFILE) + echo -n "Validating binary file... " + verbose '' if [ -z $COREFILE_BIN ]; then - echo -n "Binary file not provided, trying to determine source binary using gdb... " + verbose "Extracting binary file from core file" COREFILE_BIN=`$GDB_BIN --core=$COREFILE --batch 2>/dev/null | $GREP_BIN "generated" | $CUT_BIN -d '\`' -f 2| $CUT_BIN -d " " -f 1 | $CUT_BIN -d "'" -f 1 | $CUT_BIN -d ":" -f 1` if [ ! -z "$COREFILE_BIN" ]; then COREFILE_BIN=`$WHICH_BIN $COREFILE_BIN 2>/dev/null` fi - else - echo -n "Binary file manually provided, confirming file type... " + verbose "Extracted file: $COREFILE_BIN" fi - if ! [ -x $COREFILE_BIN ]; then + if ! [[ -x $COREFILE_BIN ]]; then echo echo "Unable to determine the binary which generated $COREFILE!" echo " ($COREFILE_BIN does not seem to be an executable!)" echo "Please manually determine the binary, and execute the script again" echo "using the '-b [CORE_BINARY] parameter." + echo + cleanup exit -1 else COREFILE_BIN=$($READLINK_BIN -f $COREFILE_BIN) - echo "Done ($COREFILE_BIN)" + verbose "$(file $COREFILE_BIN)" + echo "Done" # Build full name of directory and tarball create_filename @@ -495,12 +601,13 @@ CHKBIN_RESULT=$($CAT_BIN $CHKBIN_LOG | $GREP_BIN STATUS | $AWK_BIN '{print $2}') echo "Done" - echo "Crashing binary: $COREFILE_BIN chkbin result: $CHKBIN_RESULT" &> $GETAPPCORE_LOG + echo "Crashing binary: $COREFILE_BIN chkbin result: $CHKBIN_RESULT" >> $GETAPPCORE_LOG 2>&1 + echo >> $GETAPPCORE_LOG verbose "Crashing binary: $COREFILE_BIN" verbose "Chkbin result: $CHKBIN_RESULT" # Use GDB to build list of required libraries - echo -n "Building list of required libraries with gdb... " + echo -n "Building list of required libraries... " echo "Libraries:" >> $GETAPPCORE_LOG echo "----------" >> $GETAPPCORE_LOG # Create temporary GDB command file @@ -525,6 +632,8 @@ echo "DEBUG RPMs:" >> $GETAPPCORE_LOG echo "-----------" >> $GETAPPCORE_LOG verbose "" + GUESSED=0 + GUESSED_BEFORE=0 while read LIBRARY_RPM do if [ "${LIBRARY_RPM:(-4)}" = ".rpm" ]; then @@ -535,6 +644,7 @@ # If so, building the debuginfo name is easy RPM_VER="-${RPM_INFO[2]}.*.rpm" SRC_NAME=${RPM_INFO[1]/$RPM_VER/} + verbose "${SRC_NAME} =? ${RPM_INFO[1]}" if [ "${#SRC_NAME}" -lt "${#RPM_INFO[1]}" ]; then DEBUG_RPM=$SRC_NAME-debuginfo-${RPM_INFO[2]}.${RPM_INFO[3]}.rpm else @@ -550,9 +660,11 @@ DEBUG_RPM="${RPM_INFO[0]}-debuginfo-${RPM_INFO[2]}.${RPM_INFO[3]}.rpm" fi verbose " $LIBRARY_RPM --> $DEBUG_RPM" - if [ "$GUESSED" = "1" ]; then - echo " -- ${RPM_INFO[0]}: RPM and SRC version did not match. Debuginfo name may not be reliable! --" + if (( $GUESSED )); then + (( $GUESSED_BEFORE )) || echo Warning + echo " + ${RPM_INFO[0]}: RPM and SRC version did not match. Debuginfo name may not be reliable! --" GUESSED=0 + GUESSED_BEFORE=1 fi # Build list of debug RPMs DBG_LIST="$DBG_LIST $DEBUG_RPM" @@ -560,8 +672,8 @@ done < $GETAPPCORE_LOG # Parse list of debug RPMs and add to log echo $DBG_LIST | $TR_BIN " " \\n | $SORT_BIN | $UNIQ_BIN >> $GETAPPCORE_LOG - verbose "" if (( $VERBOSE )); then + echo echo " ... Done" else echo " Done" @@ -596,28 +708,42 @@ done echo "Done" - # Move chkbin and getappcore log to $TMP_DIR to be included in tar archive + # Move chkbin and getappcore log to GETAPPCORE_TMP_DIR to be included in tar archive + if [[ -s $GETAPPCORE_CONF ]]; then + echo "${GETAPPCORE_CONF}:" >> $GETAPPCORE_LOG + echo "-----------" >> $GETAPPCORE_LOG + $CAT_BIN ${GETAPPCORE_CONF} >> $GETAPPCORE_LOG + echo >> $GETAPPCORE_LOG + fi $MV_BIN $CHKBIN_LOG $GETAPPCORE_LOG $LOG_DIR CHKBIN_LOG=$LOG_DIR/$(basename $CHKBIN_LOG) GETAPPCORE_LOG=$LOG_DIR/$(basename $GETAPPCORE_LOG) - echo -n "Creating gdb startup files... " + (( $VERBOSE )) && { echo "Creating gdb startup files... "; echo; } || echo -n "Creating gdb startup files... " create_opencoreini create_opencoresh - echo "Done" - create_symlinks + (( $VERBOSE )) && { echo " ... Done"; echo; } || echo "Done" + create_archive (( $UPLOAD )) && upload_archive + echo | $TEE_BIN -a $GETAPPCORE_LOG + echo "Affected Binary: ${COREFILE_BIN}" | $TEE_BIN -a $GETAPPCORE_LOG + echo "Coredump File: ${COREFILE}" | $TEE_BIN -a $GETAPPCORE_LOG + echo "Archive Name: ${FINAL_ARCHIVE_NAME}" | $TEE_BIN -a $GETAPPCORE_LOG + (( $UPLOAD )) && echo "Upload URL: ${UPLOAD_URL}" | $TEE_BIN -a $GETAPPCORE_LOG cleanup fi else if [ -z $COREFILE ]; then - echo "Required parameter COREFILE missing!" + echo "Required parameter -j PID or COREFILE missing!" else - echo "Missing valid corefile!" + echo + echo "ERROR: Missing valid corefile!" + echo fi + cleanup show_help exit -1 fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/bin/supportconfig new/supportutils-3.1.9/bin/supportconfig --- old/supportutils-3.1.8/bin/supportconfig 2020-03-03 15:23:32.149815488 +0100 +++ new/supportutils-3.1.9/bin/supportconfig 2020-03-12 22:50:28.489565131 +0100 @@ -1,7 +1,7 @@ #!/bin/bash -SVER='3.1.7-3' -SDATE='2020 03 03' +SVER='3.1.8-2' +SDATE='2020 03 12' ############################################################################## # supportconfig - Gathers system troubleshooting information for SUSE Support @@ -2241,8 +2241,9 @@ fi fi fi + ANALYZEVMCORE_PREFIX=$ARCHIVE_PREFIX - for i in $(ls -1 /var/log/nts_analyzevmcore* 2>/dev/null) + for i in $(ls -1 /var/log/${ANALYZEVMCORE_PREFIX}analyzevmcore* 2>/dev/null) do log_write $OF "#==[ Kernel Core Logs ]==========================#" log_write $OF "# $i" @@ -2343,7 +2344,9 @@ log_cmd $OF "file $FILES" fi - for i in $(ls -1 /var/log/nts_chkbin* 2>/dev/null) + CHKBIN_PREFIX=$ARCHIVE_PREFIX + + for i in $(ls -1 /var/log/${CHKBIN_PREFIX}chkbin* 2>/dev/null) do log_write $OF "#==[ chkbin Logs ]==========================#" log_write $OF "# $i" @@ -4038,7 +4041,7 @@ q) VAR_OPTION_UNIQUE_FILE=1 ;; r) CONTACT_SRNUM=$OPTARG; if valid_srnum; then - BASE="nts_%r_%B" + BASE="${ARCHIVE_PREFIX}%r_%B" else clear; title echo "ERROR: Invalid SR Number, -${TMPOPT} $CONTACT_SRNUM" @@ -4073,7 +4076,7 @@ # Add custom tar ball name element if [ -n "$VAR_OPTION_CUSTOM_ARCH" ]; then TMP=$(echo "$VAR_OPTION_CUSTOM_ARCH" | sed -e 's/ /_/g') - BASE="nts_${TMP}" + BASE="${ARCHIVE_PREFIX}${TMP}" fi if (( VAR_OPTION_UNIQUE_FILE )); then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/bin/supportconfig.rc new/supportutils-3.1.9/bin/supportconfig.rc --- old/supportutils-3.1.8/bin/supportconfig.rc 2020-02-26 18:54:42.870968242 +0100 +++ new/supportutils-3.1.9/bin/supportconfig.rc 2020-03-12 21:41:27.371403787 +0100 @@ -115,6 +115,7 @@ SC_RESOURCE_FILE="${LIB_DIR}/resources/supportconfig.rc" XPLUGIN_DIR="${LIB_DIR}/plugins" CURRENT_SCRIPT=$(basename $0) +ARCHIVE_PREFIX='scc_' unset CONTACT_SRNUM UPLOAD_TARBALL=0 CSFILE=${CURRENT_SCRIPT}.txt @@ -139,7 +140,7 @@ SC_DATE=$(date +"%y%m%d") # %d SC_TIME=$(date +"%H%M") # %t test -x /usr/bin/uuidgen && SC_UID="$(uuidgen 2>/dev/null)" || SC_UID="$(mktemp -u XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)" # %u -BASE="nts_%B" +BASE="${ARCHIVE_PREFIX}%B" ARCH=$(uname -i) SAVE_LOGS_ONLY=0 USE_SAVED_LOGS_ONLY=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/man/analyzevmcore.8 new/supportutils-3.1.9/man/analyzevmcore.8 --- old/supportutils-3.1.8/man/analyzevmcore.8 2019-10-14 15:06:13.028616690 +0200 +++ new/supportutils-3.1.9/man/analyzevmcore.8 2020-03-12 23:00:17.271450248 +0100 @@ -1,13 +1,13 @@ -.TH ANALYZEVMCORE "8" "20 Mar 2014" "supportutils" "Support Utilities Manual" +.TH ANALYZEVMCORE "8" "12 Mar 2020" "supportutils" "Support Utilities Manual" .SH NAME analyzevmcore - Creates an analysis file for kernel cores .SH SYNOPSIS analyzevmcore [OPTIONS] .SH DESCRIPTION -Creates an analysis file (nts_analyzevmcore_<CORE_DATE>.txt) for all +Creates an analysis file (scc_analyzevmcore_<CORE_DATE>.txt) for all kernel cores found on the system. This analysis file is automatically copied to /var/log, and included in supportconfig's crash.txt file for further -analysis by SUSE and Novell Technical Services. +analysis by Technical Support Services. In order to create the analysis, this script requires the kernel (vmlinux-*) and the debuginfo kernel (vmlinux-*.debug) which match the kernel version which @@ -61,11 +61,11 @@ -d [kernel-*-debuginfo.rpm] -The correct kernel-*-debuginfo RPM can be downloaded through the Novell FileFinder, -or through the patch database (using valid update credentials) at the following urls: +The correct kernel-*-debuginfo RPM can be downloaded through the SUSE Customer Center, +at the following urls: - FileFinder: \fBhttp://download.novell.com/patch/finder\fP - Patch Database: \fBhttp://download.novell.com/patch/psdb\fP + Package Database: \fBhttps://scc.suse.com/packages\fP + Patch Database: \fBhttps://scc.suse.com/patches\fP .PP .RE .RE @@ -88,8 +88,13 @@ .TP \fB\-r\fR Remove and recreate existing analysis files. -.SH AUTHOR +.SH AUTHORS +.RS Mike Latimer <[email protected]> +.RE +.RS +Jason Record <[email protected]> +.RE .SH COPYRIGHT 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/man/chkbin.8 new/supportutils-3.1.9/man/chkbin.8 --- old/supportutils-3.1.8/man/chkbin.8 2019-10-14 15:06:13.028616690 +0200 +++ new/supportutils-3.1.9/man/chkbin.8 2020-03-12 23:07:19.271693603 +0100 @@ -1,4 +1,4 @@ -.TH CHKBIN "8" "20 Mar 2014" "supportutils" "Support Utilities Manual" +.TH CHKBIN "8" "12 Mar 2020" "supportutils" "Support Utilities Manual" .SH NAME chkbin - Binary Check Tool .SH SYNOPSIS @@ -6,7 +6,7 @@ .SH DESCRIPTION Checks the RPM package owner of the file being checked. It also checks the RPM package owner for each of the file's shared library dependencies. It then runs an rpm verify on each of the unique RPM packages associated with the file and it's shared library dependencies. -This tool will create a text file in the default /var/log directory. Supportconfig will gather chkbin log files if present. Please attach the chkbin log files or the supportconfig with chkbin files to your open service request, using the following URL: https://secure\-support.novell.com/eService_enu +This tool will create a text file in the default /var/log directory. Supportconfig will gather chkbin log files if present. Please attach the chkbin log files or the supportconfig with chkbin files to your open service request. If you cannot attach the file to the service request, then email it to the support engineer assigned to your service request. .SH OPTIONS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/man/getappcore.8 new/supportutils-3.1.9/man/getappcore.8 --- old/supportutils-3.1.8/man/getappcore.8 2019-10-14 15:06:13.028616690 +0200 +++ new/supportutils-3.1.9/man/getappcore.8 2020-03-10 15:35:27.669158720 +0100 @@ -1,34 +1,55 @@ -.TH GETAPPCORE "8" "20 Mar 2014" "supportutils" "Support Utilities Manual" +.TH GETAPPCORE "8" "10 Mar 2020" "supportutils" "Support Utilities Manual" .SH NAME getappcore - Get Application Core File .SH SYNOPSIS -getappcore [OPTIONS] </path/to/core/file> +getappcore [OPTIONS] < -j PID | /path/to/core/file > .SH DESCRIPTION Creates an archive containing an application core, and all files -required to analyze the application core - including the binary which -created the core, and all required shared libraries. Included in the -archive is a logfile containing RPM version information for further -investigation by SUSE. +required to analyze it - including the binary which created the core, +and all required shared libraries. Included in the archive is a logfile +containing RPM version information for further investigation by SUSE. +You must specify the filename or the journal PID of the application core +you want to submit. + + .SH OPTIONS .TP \fB\-h\fR -This screen +The help screen .TP \fB\-b\fR \fIpath\fR Path to the binary which generated the application core file .TP \fB\-r\fR \fIsrnum\fR -Novell Service Request number associated with this issue +SUSE Service Request number associated with this issue +.TP +\fB\-j\fR \fIPID\fR +Specifies a coredump PID number from the journal to extract, instead of specifying a core file on the file system .TP \fB\-u\fR -Automatically uploads archive to ftp.novell.com:/incoming +Automatically uploads archive to the SUSE FTP server using HTTPS +.TP +\fB\-f\fR +Automatically uploads archive to the SUSE FTP server using FTPES .TP \fB\-v\fR Enable verbose messages .SH EXAMPLES -.B getappcore -ur 12345678901 -b /bin/rpm /core.15832 -.SH AUTHOR +.RE +.RS +.B getappcore -ur 00123456 -b /bin/rpm /core.15832 +.RE +.RS +.B getappcore -ur 00123456 -b /bin/rpm -j 2344 +.RE +.SH AUTHORS +.RE +.RS +Jason Record <[email protected]> +.RE +.RS Mike Latimer <[email protected]> +.RE .SH COPYRIGHT 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/man/getappcore.conf.5 new/supportutils-3.1.9/man/getappcore.conf.5 --- old/supportutils-3.1.8/man/getappcore.conf.5 1970-01-01 01:00:00.000000000 +0100 +++ new/supportutils-3.1.9/man/getappcore.conf.5 2020-03-10 00:34:22.940822477 +0100 @@ -0,0 +1,67 @@ +.TH GETAPPCORE.CONF 5 "09 Mar 2020" "supportutils" "Support Utilities Manual" +.SH NAME +/etc/getappcore.conf \- +.BR getappcore (8) +configuration file. + +.SH DESCRIPTION +.B /etc/getappcore.conf +is a text file. +.B getappcore +sources it if available. It must follow +.BR bash (1) +guidelines. + +Lines generally follow the form: +.RS +.I VARIABLE="VALUE" +.RE + +Unknown +.I VARIABLE +values are considered an error. + +The defined variables are: + +.TP +\fBVERBOSE\fR +Turns verbose output on and off. Acceptable values are 0 and 1, +.B 0 +being the default. + +.TP +\fBUPLOAD\fR +Determines if the application core archive will be uploaded to the +.I UPLOAD_TARGET. +Acceptable values are 0 and 1, +.B 0 +being the default. + +.TP +\fBUPLOAD_TARGET\fR +The destination URL where the application core archive will be uploaded. The default is the North American SUSE FTP server using HTTPS. If you set +.I UPLOAD_TARGET, +the -j and -f will only use the value you set. You can use the European SUSE FTP server by setting one of the following: + +.RS +UPLOAD_TARGET=${SUSE_UPLOAD_EMEA_HTTPS} +.RE +.RS +UPLOAD_TARGET=${SUSE_UPLOAD_EMEA_FTPES} +.RE + +.TP +\fBARCHIVE_PATH\fR +The location where the application core archive will be created. The default is +.B /var/log + +.PD +.SH REPORTING BUGS +Please submit bug fixes or comments via: +.B +http://en.opensuse.org/Supportutils#Reporting_Bugs +.SH AUTHOR +Jason Record <[email protected]> +.SH SEE ALSO +.BR getappcore (8) + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/man/supportconfig.8 new/supportutils-3.1.9/man/supportconfig.8 --- old/supportutils-3.1.8/man/supportconfig.8 2019-10-14 15:06:13.028616690 +0200 +++ new/supportutils-3.1.9/man/supportconfig.8 2020-03-12 23:06:15.155847415 +0100 @@ -1,4 +1,4 @@ -.TH SUPPORTCONFIG 8 "26 Apr 2019" "supportutils" "Support Utilities Manual" +.TH SUPPORTCONFIG 8 "12 Mar 2020" "supportutils" "Support Utilities Manual" .SH NAME supportconfig - Gathers system troubleshooting information .SH SYNOPSIS @@ -27,7 +27,7 @@ Activates all supportconfig functions with additional logging and full rpm verification. .TP \fB\-B\fR \fIstring\fR -Includes the string in the tar ball filename in the format nts_<string>. See \fBsupportconfig.conf\fR(5) under VAR_OPTION_CUSTOM_ARCH for string qualifiers. +Includes the string in the tar ball filename in the format scc_<string>. See \fBsupportconfig.conf\fR(5) under VAR_OPTION_CUSTOM_ARCH for string qualifiers. .TP \fB\-C\fR Creates a new default /etc/supportconfig.conf @@ -173,7 +173,7 @@ Include full SLP service lists .TP \fB\-t\fR \fIdirectory\fR -Target directory. Just save log files here, do not create tarball. Uses the newest nts_* directory found. +Target directory. Just save log files here, do not create tarball. .TP \fB\-u\fR Uploads the supportconfig tar ball to the specified VAR_OPTION_UPLOAD_TARGET. See diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/man/supportconfig.conf.5 new/supportutils-3.1.9/man/supportconfig.conf.5 --- old/supportutils-3.1.8/man/supportconfig.conf.5 2020-02-26 18:54:42.870968242 +0100 +++ new/supportutils-3.1.9/man/supportconfig.conf.5 2020-03-12 23:09:12.308290740 +0100 @@ -1,7 +1,7 @@ -.TH SUPPORTCONFIG.CONF 5 "21 Nov 2019" "supportutils" "Support Utilities Manual" +.TH SUPPORTCONFIG.CONF 5 "12 Mar 2020" "supportutils" "Support Utilities Manual" .SH NAME supportconfig.conf \- -.BR supportconfig (1) +.BR supportconfig (8) configuration file. .SH ENVIRONMENT .I SC_CONF @@ -242,7 +242,7 @@ Contact's company terminal identifier to include in the basic-environment.txt \fB\-M\fR (Not Set) .TP VAR_OPTION_CUSTOM_ARCH -Includes the string to create a custom tar ball filename in the format nts_<string> \fB\-B\fR (Not Set) +Includes the string to create a custom tar ball filename in the format scc_<string> \fB\-B\fR (Not Set) .RS .RE @@ -283,22 +283,22 @@ .B Examples: .RE .RS -The default supportconfig file format \fBnts_%B\fR or \fBnts_%s_%d_%t\fR yields "nts_hostname_100326_1105.tbz" +The default supportconfig file format \fBscc_%B\fR or \fBscc_%s_%d_%t\fR yields "scc_hostname_100326_1105.tbz" .RE .RS -\fBsupportconfig \-B "before problem %s"\fR yields "nts_before_problem_hostname.tbz" +\fBsupportconfig \-B "before problem %s"\fR yields "scc_before_problem_hostname.tbz" .RE .RS -\fBsupportconfig \-B "testcase 1 %d-%t"\fR yields "nts_testcase_1_100326-1105.tbz" +\fBsupportconfig \-B "testcase 1 %d-%t"\fR yields "scc_testcase_1_100326-1105.tbz" .RE .RS -\fBsupportconfig \-qB "testcase %d %t"\fR yields "nts_testcase_100326_1105_21a17f8c-13c2-44ff-b0ef-29b7fa7d91c0.tbz" +\fBsupportconfig \-qB "testcase %d %t"\fR yields "scc_testcase_100326_1105_21a17f8c-13c2-44ff-b0ef-29b7fa7d91c0.tbz" .RE .RS -\fBsupportconfig \-B "testcase %d %t %u"\fR yields "nts_testcase_100326_1105_21a17f8c-13c2-44ff-b0ef-29b7fa7d91c0.tbz" +\fBsupportconfig \-B "testcase %d %t %u"\fR yields "scc_testcase_100326_1105_21a17f8c-13c2-44ff-b0ef-29b7fa7d91c0.tbz" .RE .RS -\fBsupportconfig \-B "%r bad" -r 12345678901\fR yields "nts_SR12345678901_bad.tbz" +\fBsupportconfig \-B "%r bad" -r 12345678901\fR yields "scc_SR12345678901_bad.tbz" .RE .TP VAR_OPTION_EXHASTIVE_MEM diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/spec/supportutils.changes new/supportutils-3.1.9/spec/supportutils.changes --- old/supportutils-3.1.8/spec/supportutils.changes 2020-03-03 15:22:59.966637676 +0100 +++ new/supportutils-3.1.9/spec/supportutils.changes 2020-03-13 21:45:54.885049557 +0100 @@ -1,4 +1,15 @@ ------------------------------------------------------------------- +Fri Mar 13 20:45:16 UTC 2020 - [email protected] + +- Addition to version 3.1.9 + + Changes affecting getappcore + - Added core file validation (bsc#1166126) + - Added -j <PID> to extract core from systemd journal + - Capture coredumptctl info in getappcore.log + + Changed filename prefixes from nts_ to scc_ (SLE-8702, SLE-6762) + - The new prefix references SUSE Customer Center + +------------------------------------------------------------------- Tue Mar 3 14:22:12 UTC 2020 - [email protected] - Addition to version 3.1.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/supportutils-3.1.8/spec/supportutils.spec new/supportutils-3.1.9/spec/supportutils.spec --- old/supportutils-3.1.8/spec/supportutils.spec 2020-03-03 15:16:21.588922449 +0100 +++ new/supportutils-3.1.9/spec/supportutils.spec 2020-03-09 21:05:23.787580472 +0100 @@ -19,7 +19,7 @@ %define support_libdir /usr/lib/supportconfig Name: supportutils -Version: 3.1.8 +Version: 3.1.9 Release: 0 Summary: Support Troubleshooting Tools License: GPL-2.0
