Hello community, here is the log from the commit of package transactional-update for openSUSE:Factory checked in at 2017-01-20 13:08:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/transactional-update (Old) and /work/SRC/openSUSE:Factory/.transactional-update.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "transactional-update" Changes: -------- --- /work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes 2017-01-12 15:46:23.795502425 +0100 +++ /work/SRC/openSUSE:Factory/.transactional-update.new/transactional-update.changes 2017-01-20 13:08:25.532942500 +0100 @@ -1,0 +2,15 @@ +Thu Jan 19 10:24:13 CET 2017 - kukuk@suse.de + +- Update to version 1.5 + - Install PTFs in interactive mode + - Sync state file between current and new snapshot + +------------------------------------------------------------------- +Tue Jan 17 11:30:19 CET 2017 - kukuk@suse.de + +- Update to version 1.4 + - Fix wrong error messages + - More debug output if umount fails + - Try a second time if umount fails + +------------------------------------------------------------------- Old: ---- transactional-update-1.3.tar.bz2 New: ---- transactional-update-1.5.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ transactional-update.spec ++++++ --- /var/tmp/diff_new_pack.5yl3ql/_old 2017-01-20 13:08:25.984877998 +0100 +++ /var/tmp/diff_new_pack.5yl3ql/_new 2017-01-20 13:08:25.988877428 +0100 @@ -1,7 +1,7 @@ # # spec file for package transactional-update # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: transactional-update -Version: 1.3 +Version: 1.5 Release: 0 Summary: Transactional Updates with btrfs and snapshots License: GPL-2.0+ ++++++ transactional-update-1.3.tar.bz2 -> transactional-update-1.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.3/NEWS new/transactional-update-1.5/NEWS --- old/transactional-update-1.3/NEWS 2016-12-19 10:15:37.000000000 +0100 +++ new/transactional-update-1.5/NEWS 2017-01-19 10:22:12.000000000 +0100 @@ -1,6 +1,14 @@ transactional-update NEWS -- history of user-visible changes. -Copyright (C) 2016 Thorsten Kukuk +Copyright (C) 2016, 2017 Thorsten Kukuk + +Version 1.5 +* Install PTFs in interactive mode +* Make sure state file is in sync between snapshots + +Version 1.4 +* More debug output in case umount fails +* Give umount a second try if it fails Version 1.3 * Implement "initrd" option to regenerate initrd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.3/configure new/transactional-update-1.5/configure --- old/transactional-update-1.3/configure 2016-12-19 10:15:49.000000000 +0100 +++ new/transactional-update-1.5/configure 2017-01-19 10:23:43.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for transactional-update 1.3. +# Generated by GNU Autoconf 2.69 for transactional-update 1.5. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -576,8 +576,8 @@ # Identity of this package. PACKAGE_NAME='transactional-update' PACKAGE_TARNAME='transactional-update' -PACKAGE_VERSION='1.3' -PACKAGE_STRING='transactional-update 1.3' +PACKAGE_VERSION='1.5' +PACKAGE_STRING='transactional-update 1.5' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1210,7 +1210,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures transactional-update 1.3 to adapt to many kinds of systems. +\`configure' configures transactional-update 1.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1277,7 +1277,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of transactional-update 1.3:";; + short | recursive ) echo "Configuration of transactional-update 1.5:";; esac cat <<\_ACEOF @@ -1357,7 +1357,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -transactional-update configure 1.3 +transactional-update configure 1.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1374,7 +1374,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by transactional-update $as_me 1.3, which was +It was created by transactional-update $as_me 1.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2237,7 +2237,7 @@ # Define the identity of the package. PACKAGE='transactional-update' - VERSION='1.3' + VERSION='1.5' cat >>confdefs.h <<_ACEOF @@ -3085,7 +3085,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by transactional-update $as_me 1.3, which was +This file was extended by transactional-update $as_me 1.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3138,7 +3138,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -transactional-update config.status 1.3 +transactional-update config.status 1.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.3/configure.ac new/transactional-update-1.5/configure.ac --- old/transactional-update-1.3/configure.ac 2016-12-19 10:15:45.000000000 +0100 +++ new/transactional-update-1.5/configure.ac 2017-01-19 10:23:38.000000000 +0100 @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(transactional-update, 1.3) +AC_INIT(transactional-update, 1.5) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([sbin/transactional-update.in]) AC_PREFIX_DEFAULT(/usr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transactional-update-1.3/sbin/transactional-update.in new/transactional-update-1.5/sbin/transactional-update.in --- old/transactional-update-1.3/sbin/transactional-update.in 2016-12-16 15:23:01.000000000 +0100 +++ new/transactional-update-1.5/sbin/transactional-update.in 2017-01-19 13:12:06.000000000 +0100 @@ -20,7 +20,7 @@ export LANG=C -DIR_TO_MOUNT="dev sys proc opt usr/local var/log" +DIR_TO_MOUNT="dev opt usr/local var/log" EXITCODE=0 ZYPPER_ARG="" ZYPPER_NONINTERACTIVE=--non-interactive @@ -86,17 +86,18 @@ } save_state_file() { - LOCAL_STATE_FILE=${STATE_FILE} + echo "LAST_WORKING_SNAPSHOT_ID=${LAST_WORKING_SNAPSHOT_ID}" > ${STATE_FILE} + echo "UNUSED_SNAPSHOTS=\"${UNUSED_SNAPSHOTS}\"" >> ${STATE_FILE} + if [ $1 -ne 0 ]; then - # if /var/lib/misc is not a seperate partition/subvolume, write - # into the new snapshot + # if /var/lib/misc is not a seperate partition/subvolume, + # copy it additional into the new snapshot. This will else + # an outdated version from before taking the snapshot grep -q var.lib.misc /proc/mounts if [ $? -ne 0 ]; then - LOCAL_STATE_FILE="/.snapshots/$1/snapshot${STATE_FILE}" + cp -a ${STATE_FILE} "/.snapshots/$1/snapshot${STATE_FILE}" fi fi - echo "LAST_WORKING_SNAPSHOT_ID=${LAST_WORKING_SNAPSHOT_ID}" > ${LOCAL_STATE_FILE} - echo "UNUSED_SNAPSHOTS=\"${UNUSED_SNAPSHOTS}\"" >> ${LOCAL_STATE_FILE} } quit() { @@ -175,6 +176,8 @@ shift fi done + # Run installing PTFs interactive + ZYPPER_NONINTERACTIVE="" ;; bootloader) REWRITE_BOOTLOADER=1 @@ -347,6 +350,16 @@ fi # Mount everything we need: + mount -t proc none ${SNAPSHOT_DIR}/proc + if [ $? -ne 0 ]; then + log_error "ERROR: mount of proc failed!" + quit 1; + fi + mount -t sysfs sys ${SNAPSHOT_DIR}/sys + if [ $? -ne 0 ]; then + log_error "ERROR: mount of sys failed!" + quit 1; + fi for directory in $DIR_TO_MOUNT ; do mount -o bind /$directory ${SNAPSHOT_DIR}/$directory if [ $? -ne 0 ]; then @@ -401,11 +414,19 @@ fi # Unmount everything we don't need anymore: - for directory in $DIR_TO_MOUNT ; do + for directory in proc sys $DIR_TO_MOUNT ; do umount ${SNAPSHOT_DIR}/$directory if [ $? -ne 0 ]; then log_error "ERROR: umount of $directory failed!" - EXITCODE=1; + fuser -v ${SNAPSHOT_DIR}/$directory >> ${LOGFILE} + lsof ${SNAPSHOT_DIR}/$directory >> ${LOGFILE} + # Try again after some time + sleep 30 + umount ${SNAPSHOT_DIR}/$directory + if [ $? -ne 0 ]; then + log_error "ERROR 2nd try: umount of $directory failed!" + EXITCODE=1; + fi fi done umount ${MOUNT_DIR} @@ -432,7 +453,7 @@ else btrfs subvolume set-default $BTRFS_ID ${SNAPSHOT_DIR} if [ $? -ne 0 ]; then - log_error "ERROR: umount of $directory failed!" + log_error "ERROR: btrfs set-default $BTRFS_ID failed!" EXITCODE=1; else LAST_WORKING_SNAPSHOT_ID=${ORIG_SNAPSHOT_ID}