From d9b45b17258fee6a95b74982f679619c450deab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Proch=C3=A1zka?= Date: Tue, 12 May 2026 10:56:18 +0200 Subject: [PATCH 1/2] Added EXCLUDE_RECOMMENDS parameter * Default behaviour is "no". * "--no-recommends" is applyed to all types. --- suse-online-update.sysconfig | 9 +++++++++ suse.de-online-update | 14 +++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/suse-online-update.sysconfig b/suse-online-update.sysconfig index 3a94e85..83609af 100644 --- a/suse-online-update.sysconfig +++ b/suse-online-update.sysconfig @@ -113,3 +113,12 @@ IGNORE_SERVICES_FROM_RESTART='dbus udev' # INCLUDE_OPTIONAL='no' +## Type: yesno +## Default: no +# +# Exclude recommends packages +# +# If enabled, the script adds the "--no-recommends" parameter +# when calling zypper to install updates w/o recommended packages. +# +EXCLUDE_RECOMMENDS="no" diff --git a/suse.de-online-update b/suse.de-online-update index b3d0de8..f21ea4b 100644 --- a/suse.de-online-update +++ b/suse.de-online-update @@ -52,6 +52,7 @@ ZYPPER_UPDATE_TYPE='patch' RESTART_SERVICES='no' INCLUDE_OPTIONAL='no' IGNORE_SERVICES_FROM_RESTART='dbus udev' +EXCLUDE_RECOMMENDS='no' ################################################## LOGDIR=$(dirname "$LOGFILE") LOGNAME='suse-online-update' @@ -95,6 +96,7 @@ function usage(){ echo " -d : print debug output on console (default: $DEBUG)" echo " -r : restart services (default: $RESTART_SERVICES)" echo " -o : install optional updates (default: $INCLUDE_OPTIONAL)" + echo " -n : install w/o recommended packages (default: $EXCLUDE_RECOMMENDS)" echo " -t : use 'type' for $ZYPPER update command (default: $ZYPPER_UPDATE_TYPE)" echo " supported types: patch, package, pattern, product, srcpackage" echo " -e : send error messages to this Email address (default: $EMAIL)" @@ -106,7 +108,7 @@ function usage(){ echo } -while getopts 'de:f:l:cphrot:' OPT; do +while getopts 'de:f:l:cphront:' OPT; do case "$OPT" in d) DEBUG='yes' ;; @@ -124,6 +126,8 @@ while getopts 'de:f:l:cphrot:' OPT; do ;; o) INCLUDE_OPTIONAL='yes' ;; + n) EXCLUDE_RECOMMENDS='yes' + ;; t) ZYPPER_UPDATE_TYPE="$OPTARG" ;; h) usage; exit 0; @@ -198,10 +202,14 @@ case "$START_UPDATE" in if [ x"$INCLUDE_OPTIONAL" == x"yes" ] && [ x"$ZYPPER_UPDATE_TYPE" != x"package" ]; then OPTIONAL="--with-optional" fi + NO_RECOMMENDS="" + if [ x"$EXCLUDE_RECOMMENDS" == x"yes" ]; then + NO_RECOMMENDS="--no-recommends" + fi if [ "$UPDATETYPE" == "patch" ] && [ "$OPTIONAL" == "--with-optional" ] ; then - $ZYPPER --non-interactive --terse $UPDATETYPE --no-confirm $OPTIONAL --skip-interactive 2>"$TMPFILE" 1>/dev/null + $ZYPPER --non-interactive --terse $UPDATETYPE --no-confirm $OPTIONAL $NO_RECOMMENDS --skip-interactive 2>"$TMPFILE" 1>/dev/null else - $ZYPPER --non-interactive --terse up --no-confirm -t $UPDATETYPE $OPTIONAL --skip-interactive 2>"$TMPFILE" 1>/dev/null + $ZYPPER --non-interactive --terse up --no-confirm -t $UPDATETYPE $OPTIONAL $NO_RECOMMENDS --skip-interactive 2>"$TMPFILE" 1>/dev/null fi ZYPP_RET=$(echo $?) case "$ZYPP_RET" in From e7683ccafd5698dc92a896eddcf4c58be62eb914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Proch=C3=A1zka?= Date: Fri, 29 May 2026 13:12:39 +0200 Subject: [PATCH 2/2] Added INTERACTIVE_MODE parameter * Define global option for running zypper. * Default value is "--non-interarctive". * Parameter can change to "--non-interactive-include-reboot-patches". --- suse-online-update.sysconfig | 9 +++++++++ suse.de-online-update | 22 +++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/suse-online-update.sysconfig b/suse-online-update.sysconfig index 83609af..26c8c8f 100644 --- a/suse-online-update.sysconfig +++ b/suse-online-update.sysconfig @@ -122,3 +122,12 @@ INCLUDE_OPTIONAL='no' # when calling zypper to install updates w/o recommended packages. # EXCLUDE_RECOMMENDS="no" + +## Type: string +## Default: non_interactive +# +# Call zypper in specific interactive mode. +# Default global option is '--non-interactive'. +# You can change to value "include_reboot" that use switch '--non-interactive-include-reboot-patches'. +# +INTERACTIVE_MODE="non_interactive" diff --git a/suse.de-online-update b/suse.de-online-update index f21ea4b..67fe968 100644 --- a/suse.de-online-update +++ b/suse.de-online-update @@ -53,6 +53,7 @@ RESTART_SERVICES='no' INCLUDE_OPTIONAL='no' IGNORE_SERVICES_FROM_RESTART='dbus udev' EXCLUDE_RECOMMENDS='no' +INTERACTIVE_MODE='non_interactive' ################################################## LOGDIR=$(dirname "$LOGFILE") LOGNAME='suse-online-update' @@ -97,6 +98,7 @@ function usage(){ echo " -r : restart services (default: $RESTART_SERVICES)" echo " -o : install optional updates (default: $INCLUDE_OPTIONAL)" echo " -n : install w/o recommended packages (default: $EXCLUDE_RECOMMENDS)" + echo " -i : use non interactive global option (default: $INTERACTIVE_MODE)" echo " -t : use 'type' for $ZYPPER update command (default: $ZYPPER_UPDATE_TYPE)" echo " supported types: patch, package, pattern, product, srcpackage" echo " -e : send error messages to this Email address (default: $EMAIL)" @@ -108,7 +110,7 @@ function usage(){ echo } -while getopts 'de:f:l:cphront:' OPT; do +while getopts 'de:f:l:cphront:i:' OPT; do case "$OPT" in d) DEBUG='yes' ;; @@ -128,6 +130,8 @@ while getopts 'de:f:l:cphront:' OPT; do ;; n) EXCLUDE_RECOMMENDS='yes' ;; + i) INTERACTIVE_MODE="$OPTARGS" + ;; t) ZYPPER_UPDATE_TYPE="$OPTARG" ;; h) usage; exit 0; @@ -198,6 +202,18 @@ case "$START_UPDATE" in LOG "ERROR: Please set a correct value for ZYPPER_UPDATE_TYPE in $DISTCONFIG. Found: $ZYPPER_UPDATE_TYPE; using 'patch' for now" ;; esac + case "$INTERACTIVE_MODE" in + 'non_interactive') + MODE="--non-interactive" + ;; + 'include_reboot') + MODE="--non-interactive-include-reboot-patches" + ;; + *) + MODE="--non-interactive" + LOG "ERROR: Please set a correct value for INTERACTIVE_MODE in $DISTCONFIG. Found: $INTERACTIVE_MODE; using 'non_interactive; for now" + ;; + esac OPTIONAL="" if [ x"$INCLUDE_OPTIONAL" == x"yes" ] && [ x"$ZYPPER_UPDATE_TYPE" != x"package" ]; then OPTIONAL="--with-optional" @@ -207,9 +223,9 @@ case "$START_UPDATE" in NO_RECOMMENDS="--no-recommends" fi if [ "$UPDATETYPE" == "patch" ] && [ "$OPTIONAL" == "--with-optional" ] ; then - $ZYPPER --non-interactive --terse $UPDATETYPE --no-confirm $OPTIONAL $NO_RECOMMENDS --skip-interactive 2>"$TMPFILE" 1>/dev/null + $ZYPPER $MODE --terse $UPDATETYPE --no-confirm $OPTIONAL $NO_RECOMMENDS --skip-interactive 2>"$TMPFILE" 1>/dev/null else - $ZYPPER --non-interactive --terse up --no-confirm -t $UPDATETYPE $OPTIONAL $NO_RECOMMENDS --skip-interactive 2>"$TMPFILE" 1>/dev/null + $ZYPPER $MODE --terse up --no-confirm -t $UPDATETYPE $OPTIONAL $NO_RECOMMENDS --skip-interactive 2>"$TMPFILE" 1>/dev/null fi ZYPP_RET=$(echo $?) case "$ZYPP_RET" in