Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package transactional-update for openSUSE:Factory checked in at 2021-03-18 22:54:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/transactional-update (Old) and /work/SRC/openSUSE:Factory/.transactional-update.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "transactional-update" Thu Mar 18 22:54:02 2021 rev:70 rq:878553 version:3.2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes 2021-03-10 08:46:22.686215349 +0100 +++ /work/SRC/openSUSE:Factory/.transactional-update.new.2401/transactional-update.changes 2021-03-18 22:54:04.739474989 +0100 @@ -1,0 +2,21 @@ +Fri Mar 12 13:08:04 UTC 2021 - Ignaz Forster <ifors...@suse.com> + +- Version 3.2.2 + - Don't skip patches with rebootSuggested flag [bsc#1183442] + +------------------------------------------------------------------- +Wed Mar 10 15:14:03 UTC 2021 - Ignaz Forster <ifors...@suse.com> + +- Version 3.2.1 + - t-u: Forward --quiet option to tukit + - Regression: Add /opt as bind mount into update environment + - Remove output indicators of the called command to not tamper + the result line + - Fix /etc syncing with --drop-if-no-change + +------------------------------------------------------------------- +Wed Mar 10 12:40:56 UTC 2021 - Alberto Planas Dominguez <apla...@suse.com> + +- Requires inotify-tool to have --drop-if-no-change available + +------------------------------------------------------------------- Old: ---- transactional-update-3.2.0.tar.gz New: ---- transactional-update-3.2.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ transactional-update.spec ++++++ --- /var/tmp/diff_new_pack.IjBqRL/_old 2021-03-18 22:54:05.443475749 +0100 +++ /var/tmp/diff_new_pack.IjBqRL/_new 2021-03-18 22:54:05.443475749 +0100 @@ -26,7 +26,7 @@ %{!?_distconfdir: %global _distconfdir %{_prefix}%{_sysconfdir}} Name: transactional-update -Version: 3.2.0 +Version: 3.2.2 Release: 0 Summary: Transactional Updates with btrfs and snapshots License: GPL-2.0-or-later AND LGPL-2.1-or-later @@ -64,13 +64,14 @@ BuildRequires: xsltproc Requires: /usr/bin/bc Requires: dracut-transactional-update = %{version}-%{release} +# Parameter --drop-if-no-change requires it +Requires: inotify-tools Requires: logrotate Requires: lsof # psmisc is needed because of fuser Requires: psmisc Requires: tukit = %{version}-%{release} Requires: zypper -Recommends: inotify-tools Recommends: rebootmgr %description ++++++ transactional-update-3.2.0.tar.gz -> transactional-update-3.2.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-3.2.0/NEWS new/transactional-update-3.2.2/NEWS --- old/transactional-update-3.2.0/NEWS 2021-03-03 00:56:13.000000000 +0100 +++ new/transactional-update-3.2.2/NEWS 2021-03-12 14:05:13.000000000 +0100 @@ -2,6 +2,16 @@ Copyright (C) 2016-2020 Thorsten Kukuk, Ignaz Forster et al. +Version 3.2.2 +* Don't skip patches with rebootSuggested flag + +Version 3.2.1 +* t-u: Forward --quiet option to tukit +* Regression: Add /opt as bind mount into update environment +* Remove output indicators of the called command to not tamper the result + line +* Fix /etc syncing with --drop-if-no-change + Version 3.2.0 * tukit: Add new command 'callext' to execute an application while the snapshot is mounted. '{}' as a parameter will be replaced with the path diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-3.2.0/configure.ac new/transactional-update-3.2.2/configure.ac --- old/transactional-update-3.2.0/configure.ac 2021-03-03 00:56:13.000000000 +0100 +++ new/transactional-update-3.2.2/configure.ac 2021-03-12 14:05:13.000000000 +0100 @@ -1,9 +1,9 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(transactional-update, 3.2.0) +AC_INIT(transactional-update, 3.2.2) # Increase on any interface change and reset revision LIBTOOL_CURRENT=2 # Increase or reset on any VERSION update -LIBTOOL_REVISION=0 +LIBTOOL_REVISION=1 # Increase if interface change is backwards compatible, reset otherwise LIBTOOL_AGE=2 AC_CANONICAL_SYSTEM diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-3.2.0/lib/Log.hpp new/transactional-update-3.2.2/lib/Log.hpp --- old/transactional-update-3.2.0/lib/Log.hpp 2021-03-03 00:56:13.000000000 +0100 +++ new/transactional-update-3.2.2/lib/Log.hpp 2021-03-12 14:05:13.000000000 +0100 @@ -12,24 +12,24 @@ #include <iostream> enum class TULogLevel { - NONE=0, ERROR, INFO, DEBUG + None=0, Error, Info, Debug }; // There's no threading in this application, so no locking is implemented class TULog { public: - TULogLevel level = TULogLevel::ERROR; + TULogLevel level = TULogLevel::Error; template<typename... T> void error(const T&... args) { - if (level >=TULogLevel::ERROR) + if (level >=TULogLevel::Error) log(args...); } template<typename... T> void info(const T&... args) { - if (level >= TULogLevel::INFO) + if (level >= TULogLevel::Info) log(args...); } template<typename... T> void debug(const T&... args) { - if (level >= TULogLevel::DEBUG) + if (level >= TULogLevel::Debug) log(args...); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-3.2.0/lib/Transaction.cpp new/transactional-update-3.2.2/lib/Transaction.cpp --- old/transactional-update-3.2.0/lib/Transaction.cpp 2021-03-03 00:56:13.000000000 +0100 +++ new/transactional-update-3.2.2/lib/Transaction.cpp 2021-03-12 14:05:13.000000000 +0100 @@ -80,6 +80,7 @@ void Transaction::impl::mount() { dirsToMount.push_back(std::make_unique<PropagatedBindMount>("/dev")); dirsToMount.push_back(std::make_unique<BindMount>("/var/log")); + dirsToMount.push_back(std::make_unique<BindMount>("/opt")); Mount mntVar{"/var"}; if (mntVar.isMount()) { @@ -215,8 +216,6 @@ // Set indicator for RPM pre/post sections to detect whether we run in a // transactional update setenv("TRANSACTIONAL_UPDATE", "true", 1); - if (tulog.level > TULogLevel::ERROR) - std::cout << "???" << std::flush; if (execvp(argv[0], (char* const*)argv) < 0) { throw std::runtime_error{"Calling " + std::string(argv[0]) + " failed: " + std::string(strerror(errno))}; } @@ -224,8 +223,6 @@ this->pid = pid; ret = waitpid(pid, &status, 0); this->pid = 0; - if (tulog.level > TULogLevel::ERROR) - std::cout << "???" << std::endl; if (ret < 0) { throw std::runtime_error{"waitpid() failed: " + std::string(strerror(errno))}; } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-3.2.0/sbin/transactional-update.in new/transactional-update-3.2.2/sbin/transactional-update.in --- old/transactional-update-3.2.0/sbin/transactional-update.in 2021-03-03 00:56:13.000000000 +0100 +++ new/transactional-update-3.2.2/sbin/transactional-update.in 2021-03-12 14:05:13.000000000 +0100 @@ -60,6 +60,7 @@ NON_ROOTFS_WHITELIST=("/var/lib/YaST2/cookies" "/var/lib/rpm" "/var/lib/systemd/migrated" "/var/run/zypp.pid") DROP_IF_NO_CHANGE=0 INOTIFY_EXCLUDES="" +TUKIT_OPTS="" TMPDIR=${TMPDIR:-/tmp} @@ -172,7 +173,7 @@ } log_info() { - echo `date "+%Y-%m-%d %H:%M"` "$@" >> ${LOGFILE} + echo -e `date "+%Y-%m-%d %H:%M"` "$@" >> ${LOGFILE} if [ ${VERBOSITY} -ge 2 ]; then echo -e "$@" fi @@ -180,7 +181,7 @@ log_error() { TELEM_PAYLOAD="${TELEM_PAYLOAD}\nmessage=$@" - echo `date "+%Y-%m-%d %H:%M"` "$@" >> ${LOGFILE} + echo -e `date "+%Y-%m-%d %H:%M"` "$@" >> ${LOGFILE} echo -e "$@" 1>&4 } @@ -225,7 +226,7 @@ test -f /usr/lib/systemd/system/kdump.service || return systemctl is-enabled --quiet kdump.service if [ $? = 0 -a -x "/.snapshots/$1/snapshot/usr/sbin/tu-rebuild-kdump-initrd" ]; then - tukit call "$1" /usr/sbin/tu-rebuild-kdump-initrd |& tee -a ${LOGFILE} + tukit ${TUKIT_OPTS} call "$1" /usr/sbin/tu-rebuild-kdump-initrd |& tee -a ${LOGFILE} fi } @@ -259,7 +260,7 @@ if [ -n "${SNAPSHOT_ID}" ] ; then log_error "Removing snapshot #${SNAPSHOT_ID}..." - tukit abort ${SNAPSHOT_ID} |& tee -a ${LOGFILE} + tukit ${TUKIT_OPTS} abort ${SNAPSHOT_ID} |& tee -a ${LOGFILE} fi telem_finish $1 log_info "transactional-update finished" @@ -279,7 +280,7 @@ # /etc may do so. Changes in /etc may be applied immediately, # so merge them back into the running system. log_info "Merging overlay directory ${SNAPSHOT_DIR}/etc into /etc..." - rsync --archive --inplace --xattrs --acls --exclude 'fstab' --delete --quiet "${SNAPSHOT_DIR}/etc/" /etc + tukit ${TUKIT_OPTS} callext ${SNAPSHOT_ID} rsync --archive --inplace --xattrs --acls --exclude 'fstab' --delete --quiet "${SNAPSHOT_DIR}/etc/" /etc quit 0 fi @@ -403,11 +404,16 @@ shift TELEM_CLASS="upgrade" ;; - up|patch) - ZYPPER_ARG=$1 + up) + ZYPPER_ARG=up shift TELEM_CLASS="update" ;; + patch) + ZYPPER_ARG="--non-interactive-include-reboot-patches patch" + shift + TELEM_CLASS="patch" + ;; ptf|pkg|package) TELEM_CLASS="package" shift @@ -560,6 +566,7 @@ ;; --quiet) VERBOSITY=1 + TUKIT_OPTS="${TUKIT_OPTS} -q" shift ;; register) @@ -877,8 +884,8 @@ fi fi - output="`tukit -c"${BASE_SNAPSHOT_ID}" open |& tee -a ${LOGFILE}`" - echo "$output" + output="`tukit ${TUKIT_OPTS} -c"${BASE_SNAPSHOT_ID}" open |& tee -a ${LOGFILE}`" + log_info "$output" SNAPSHOT_ID=`echo "${output}" | grep -e "^ID:" | cut -d " " -f 2-` if [ -z ${SNAPSHOT_ID} ]; then quit 1 @@ -909,12 +916,12 @@ if [ ${DO_MIGRATION} -eq 1 ]; then # transactional-update migration export DISABLE_RESTART_ON_UPDATE=yes - tukit call "${SNAPSHOT_ID}" zypper ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} "${ZYPPER_ARG_PKGS[@]}" |& tee -a ${LOGFILE} + tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" zypper ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} "${ZYPPER_ARG_PKGS[@]}" |& tee -a ${LOGFILE} RETVAL=${PIPESTATUS[0]} else # Check if there are updates at all. TMPFILE=`mktemp ${TMPDIR}/transactional-update.XXXXXXXXXX` - tukit callext "${SNAPSHOT_ID}" zypper -R {} --xmlout ${ZYPPER_ARG} -y --auto-agree-with-product-licenses --dry-run "${ZYPPER_ARG_PKGS[@]}" > ${TMPFILE} + tukit ${TUKIT_OPTS} callext "${SNAPSHOT_ID}" zypper -R {} --xmlout ${ZYPPER_ARG} -y --auto-agree-with-product-licenses --dry-run "${ZYPPER_ARG_PKGS[@]}" > ${TMPFILE} PACKAGE_UPDATES=`grep "install-summary download-size" ${TMPFILE} | sed -e 's|.*install-summary download-size=\"\(.*\)\" space-usage-diff.*|\1|g'` SIZE_OF_UPDATES=`grep "install-summary.*space-usage-diff" ${TMPFILE} | sed -e 's|.*install-summary.*space-usage-diff=\"\([^"]*\)\".*|\1|g'` NUM_OF_UPDATES=`grep "install-summary.*packages-to-change" ${TMPFILE} | sed -e 's|.*install-summary.*packages-to-change=\"\([^"]*\)\".*|\1|g'` @@ -926,7 +933,7 @@ fi export DISABLE_RESTART_ON_UPDATE=yes - tukit callext "${SNAPSHOT_ID}" zypper -R {} ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} "${ZYPPER_ARG_PKGS[@]}" |& tee -a ${LOGFILE} + tukit ${TUKIT_OPTS} callext "${SNAPSHOT_ID}" zypper -R {} ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} "${ZYPPER_ARG_PKGS[@]}" |& tee -a ${LOGFILE} RETVAL=${PIPESTATUS[0]} fi # in case of migration, we need to do a little bit more: @@ -976,15 +983,15 @@ # Check if we don't have selinux already enabled. grep ^GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub | grep -q security=selinux || \ - tukit call "${SNAPSHOT_ID}" sed -i -e 's|\(^GRUB_CMDLINE_LINUX_DEFAULT=.*\)"|\1 security=selinux selinux=1"|g' "/etc/default/grub" + tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" sed -i -e 's|\(^GRUB_CMDLINE_LINUX_DEFAULT=.*\)"|\1 security=selinux selinux=1"|g' "/etc/default/grub" REWRITE_GRUB_CFG=1 - if tukit call "${SNAPSHOT_ID}" [ ! -e "/etc/selinux/config" ]; then + if tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" [ ! -e "/etc/selinux/config" ]; then log_error "ERROR: /etc/selinux/config does not exist!" EXITCODE=1 fi # Adjust selinux config - tukit call "${SNAPSHOT_ID}" sed -i -e 's|^SELINUX=.*|SELINUX=enforcing|g' \ + tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" sed -i -e 's|^SELINUX=.*|SELINUX=enforcing|g' \ -e 's|^SELINUXTYPE=.*|SELINUXTYPE=targeted|g' \ "/etc/selinux/config" @@ -994,7 +1001,7 @@ if [ ${REWRITE_INITRD} -eq 1 ]; then log_info "Creating new initrd" - tukit call "${SNAPSHOT_ID}" /sbin/mkinitrd + tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" /sbin/mkinitrd if [ $? -ne 0 ]; then log_error "ERROR: mkinitrd failed!" EXITCODE=1 @@ -1010,7 +1017,7 @@ if [ ${REWRITE_GRUB_CFG} -eq 1 ]; then log_info "Creating a new grub2 config" - tukit call "${SNAPSHOT_ID}" bash -c "/usr/sbin/grub2-mkconfig > /boot/grub2/grub.cfg" + tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" bash -c "/usr/sbin/grub2-mkconfig > /boot/grub2/grub.cfg" if [ $? -ne 0 ]; then log_error "ERROR: grub2-mkconfig failed!" EXITCODE=1; @@ -1023,7 +1030,7 @@ if [ ${REWRITE_BOOTLOADER} -eq 1 ]; then log_info "Writing new bootloader" - tukit call "${SNAPSHOT_ID}" /sbin/pbl --install + tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" /sbin/pbl --install if [ $? -ne 0 ]; then log_error "ERROR: /sbin/pbl --install failed!" EXITCODE=1; @@ -1031,13 +1038,13 @@ fi if [ ${DO_RUN} -eq 1 ]; then - tukit call "${SNAPSHOT_ID}" "${RUN_CMD[@]}" + tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" "${RUN_CMD[@]}" fi if [ ${RUN_SHELL} -eq 1 ]; then echo "Opening chroot in snapshot ${SNAPSHOT_ID}, continue with 'exit'" export PS1="transactional update # " - tukit call "${SNAPSHOT_ID}" bash 2>&4 + tukit ${TUKIT_OPTS} call "${SNAPSHOT_ID}" bash 2>&4 fi if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled ; then @@ -1057,7 +1064,7 @@ echo "EXPECTED_SNAPSHOT_ID=${SNAPSHOT_ID}" > "${NEW_SNAPSHOT_FLAG}" echo "PREV_SNAPSHOT_ID=${CURRENT_SNAPSHOT_ID}" >> "${NEW_SNAPSHOT_FLAG}" fi - tukit close "${SNAPSHOT_ID}" + tukit ${TUKIT_OPTS} close "${SNAPSHOT_ID}" fi # Check for installation artefacts: Packages may have created files in @@ -1089,7 +1096,7 @@ if [ ${EXITCODE} -ne 0 ]; then quit ${EXITCODE} elif [ $REBOOT_AFTERWARDS -eq 0 ]; then - log_error "\nPlease reboot your machine to activate the changes and avoid data loss." + log_info "\nPlease reboot your machine to activate the changes and avoid data loss." touch "${NEEDS_RESTARTING_FILE}" fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-3.2.0/tukit/tukit.cpp new/transactional-update-3.2.2/tukit/tukit.cpp --- old/transactional-update-3.2.0/tukit/tukit.cpp 2021-03-03 00:56:13.000000000 +0100 +++ new/transactional-update-3.2.2/tukit/tukit.cpp 2021-03-12 14:05:13.000000000 +0100 @@ -81,10 +81,10 @@ displayHelp(); return 0; case 'q': - tulog.level = TULogLevel::ERROR; + tulog.level = TULogLevel::Error; break; case 'v': - tulog.level = TULogLevel::DEBUG; + tulog.level = TULogLevel::Debug; break; case 'V': cout << VERSION << endl; @@ -190,7 +190,7 @@ signal(SIGQUIT, interrupt); signal(SIGTERM, interrupt); - tulog.level = TULogLevel::INFO; + tulog.level = TULogLevel::Info; int ret = parseOptions(argc, argv); if (ret <= 0) {