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-28 11:54:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
 and      /work/SRC/openSUSE:Factory/.transactional-update.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "transactional-update"

Sun Mar 28 11:54:05 2021 rev:72 rq:881412 version:3.3.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes    
    2021-03-21 23:20:08.936734688 +0100
+++ 
/work/SRC/openSUSE:Factory/.transactional-update.new.2401/transactional-update.changes
      2021-03-28 11:54:14.392111203 +0200
@@ -1,0 +2,9 @@
+Thu Mar 25 22:13:59 UTC 2021 - Ignaz Forster <ifors...@suse.com>
+
+- Version 3.3.0
+  - Add support for more package managers by bind mounting their directories
+  - Support snapshots without dedicated overlay [boo#1183539], [bsc#1183539]
+  - Link RPM database correctly with older zypper versions [boo#1183521]
+  - Don't discard manual changes in fstab [boo#1183856]
+
+-------------------------------------------------------------------

Old:
----
  transactional-update-3.2.2.tar.gz

New:
----
  transactional-update-3.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.9hWqDV/_old  2021-03-28 11:54:14.908111660 +0200
+++ /var/tmp/diff_new_pack.9hWqDV/_new  2021-03-28 11:54:14.908111660 +0200
@@ -26,7 +26,7 @@
 %{!?_distconfdir: %global _distconfdir %{_prefix}%{_sysconfdir}}
 
 Name:           transactional-update
-Version:        3.2.2
+Version:        3.3.0
 Release:        0
 Summary:        Transactional Updates with btrfs and snapshots
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later
@@ -137,7 +137,6 @@
 Adds a zypper rule to prevent accidental uninstallation of
 transactional-update.
 
-
 %prep
 %autosetup -p1
 

++++++ transactional-update-3.2.2.tar.gz -> transactional-update-3.3.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-3.2.2/NEWS 
new/transactional-update-3.3.0/NEWS
--- old/transactional-update-3.2.2/NEWS 2021-03-12 14:05:13.000000000 +0100
+++ new/transactional-update-3.3.0/NEWS 2021-03-25 23:12:19.000000000 +0100
@@ -2,6 +2,12 @@
 
 Copyright (C) 2016-2020 Thorsten Kukuk, Ignaz Forster et al.
 
+Version 3.3.0
+* Add support for more package managers by bind mounting their directories
+* Support snapshots without dedicated overlay [boo#1183539], [bsc#1183539]
+* Link RPM database correctly with older zypper versions [boo#1183521]
+* Don't discard manual changes in fstab [boo#1183856]
+
 Version 3.2.2
 * Don't skip patches with rebootSuggested flag
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-3.2.2/configure.ac 
new/transactional-update-3.3.0/configure.ac
--- old/transactional-update-3.2.2/configure.ac 2021-03-12 14:05:13.000000000 
+0100
+++ new/transactional-update-3.3.0/configure.ac 2021-03-25 23:12:19.000000000 
+0100
@@ -1,9 +1,9 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 3.2.2)
+AC_INIT(transactional-update, 3.3.0)
 # Increase on any interface change and reset revision
 LIBTOOL_CURRENT=2
 # Increase or reset on any VERSION update
-LIBTOOL_REVISION=1
+LIBTOOL_REVISION=2
 # 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.2/lib/Overlay.cpp 
new/transactional-update-3.3.0/lib/Overlay.cpp
--- old/transactional-update-3.2.2/lib/Overlay.cpp      2021-03-12 
14:05:13.000000000 +0100
+++ new/transactional-update-3.3.0/lib/Overlay.cpp      2021-03-25 
23:12:19.000000000 +0100
@@ -35,7 +35,6 @@
  * For new overlays `create` has to be called afterwards with a base.
  */
 Overlay::Overlay(string snapshot):
-        upperdir(fs::path{config.get("OVERLAY_DIR")} / snapshot / "etc"),
         workdir(fs::path{config.get("OVERLAY_DIR")} / snapshot / "work-etc")
 {
     fs::create_directories(fs::path{workdir});
@@ -50,7 +49,9 @@
     snap->open(snapshot);
     Mount mntEtc{"/etc"};
     mntEtc.setTabSource(snap->getRoot() / "etc" / "fstab");
+    // Read data from fstab if this is an existing snapshot, just use the 
defaults otherwise
     try {
+        upperdir = regex_replace(mntEtc.getOption("upperdir"), std::regex("^" 
+ config.get("DRACUT_SYSROOT")), "");
         const string fstabLowerdirs = mntEtc.getOption("lowerdir");
         string lowerdir;
         stringstream ss(fstabLowerdirs);
@@ -88,7 +89,7 @@
     return false;
 }
 
-void Overlay::sync(string base, string snapshot) {
+void Overlay::sync(string base, fs::path snapRoot) {
     Overlay baseOverlay = Overlay{base};
     auto previousSnapId = baseOverlay.getPreviousSnapshotOvlId();
     if (previousSnapId.empty()) {
@@ -116,7 +117,7 @@
     string syncSource = string(previousOvl.upperdir.parent_path() / "sync" / 
"etc") + "/";
     string rsyncExtraArgs;
     previousEtc->mount(previousOvl.upperdir.parent_path() / "sync");
-    tulog.info("Syncing /etc of previous snapshot ", previousSnapId, " as base 
into new snapshot ", snapshot);
+    tulog.info("Syncing /etc of previous snapshot ", previousSnapId, " as base 
into new snapshot ", snapRoot);
     if (is_selinux_enabled()) {
         tulog.info("SELinux is enabled.");
         // Ignore the SELinux attributes when synchronizing pre-SELinux files,
@@ -129,7 +130,7 @@
             }
         }
     }
-    Util::exec("rsync --quiet --archive --inplace --xattrs --exclude='/fstab' 
" + rsyncExtraArgs + " --acls --delete " + syncSource + " " + snapshot + 
"/etc");
+    Util::exec("rsync --quiet --archive --inplace --xattrs --exclude='/fstab' 
" + rsyncExtraArgs + " --acls --delete " + syncSource + " " + string(snapRoot) 
+ "/etc");
 }
 
 void Overlay::setMountOptions(unique_ptr<Mount>& mount) {
@@ -180,7 +181,8 @@
     mount->setOption("workdir", workdir);
 }
 
-void Overlay::create(string base, string snapshot) {
+void Overlay::create(string base, string snapshot, fs::path snapRoot) {
+    upperdir = fs::path{config.get("OVERLAY_DIR")} / snapshot / "etc";
     Overlay parent = Overlay{base};
 
     // Remove overlay directory if it already exists (e.g. after the snapshot 
was deleted)
@@ -204,7 +206,7 @@
         }
     } else {
         lowerdirs.push_back(parent.lowerdirs.back());
-        sync(base, snapshot);
+        sync(base, snapRoot);
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-3.2.2/lib/Overlay.hpp 
new/transactional-update-3.3.0/lib/Overlay.hpp
--- old/transactional-update-3.2.2/lib/Overlay.hpp      2021-03-12 
14:05:13.000000000 +0100
+++ new/transactional-update-3.3.0/lib/Overlay.hpp      2021-03-25 
23:12:19.000000000 +0100
@@ -19,10 +19,10 @@
 public:
     Overlay(std::string snapshot);
     virtual ~Overlay() = default;
-    void create(std::string base, std::string snapshot);
+    void create(std::string base, std::string snapshot, std::filesystem::path 
snapRoot);
     std::string getPreviousSnapshotOvlId();
     bool references(std::string snapshot);
-    void sync(std::string base, std::string snapshot);
+    void sync(std::string base, std::filesystem::path snapRoot);
     void setMountOptions(std::unique_ptr<Mount>& mount);
     void setMountOptionsForMount(std::unique_ptr<Mount>& mount);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transactional-update-3.2.2/lib/Transaction.cpp 
new/transactional-update-3.3.0/lib/Transaction.cpp
--- old/transactional-update-3.2.2/lib/Transaction.cpp  2021-03-12 
14:05:13.000000000 +0100
+++ new/transactional-update-3.3.0/lib/Transaction.cpp  2021-03-25 
23:12:19.000000000 +0100
@@ -85,7 +85,8 @@
     Mount mntVar{"/var"};
     if (mntVar.isMount()) {
         dirsToMount.push_back(std::make_unique<BindMount>("/var/cache"));
-        dirsToMount.push_back(std::make_unique<BindMount>("/var/lib/zypp"));
+        if (fs::is_directory("/var/lib/zypp"))
+            
dirsToMount.push_back(std::make_unique<BindMount>("/var/lib/zypp"));
         
dirsToMount.push_back(std::make_unique<BindMount>("/var/lib/ca-certificates"));
         if (fs::is_directory("/var/lib/alternatives"))
             
dirsToMount.push_back(std::make_unique<BindMount>("/var/lib/alternatives"));
@@ -143,10 +144,17 @@
         supplements.addDir(fs::path{"/var/tmp"});
         supplements.addLink(fs::path{"/run"}, fs::path{"/var/run"});
     }
-    supplements.addLink(fs::path{"/usr/lib/sysimage/rpm"}, 
fs::path{"/var/lib/rpm"});
+    supplements.addLink(fs::path{"../../usr/lib/sysimage/rpm"}, 
fs::path{"/var/lib/rpm"});
     supplements.addFile(fs::path{"/run/netconfig"});
     supplements.addFile(fs::path{"/run/systemd/resolve"});
-    supplements.addDir(fs::path{"/var/cache/zypp"});
+    if (fs::is_directory("/var/cache/dnf"))
+        supplements.addDir(fs::path{"/var/cache/dnf"});
+    if (fs::is_directory("/var/cache/yum"))
+        supplements.addDir(fs::path{"/var/cache/yum"});
+    if (fs::is_directory("/var/cache/PackageKit"))
+        supplements.addDir(fs::path{"/var/cache/PackageKit"});
+    if (fs::is_directory("/var/cache/zypp"))
+        supplements.addDir(fs::path{"/var/cache/zypp"});
     supplements.addDir(fs::path{"/var/spool"});
 }
 
@@ -163,8 +171,13 @@
     std::unique_ptr<Mount> mntEtc{new Mount{"/etc"}};
     if (mntEtc->isMount() && mntEtc->getFilesystem() == "overlay") {
         Overlay overlay = Overlay{pImpl->snapshot->getUid()};
-        overlay.create(base, pImpl->snapshot->getRoot());
+        overlay.create(base, pImpl->snapshot->getUid(), 
pImpl->snapshot->getRoot());
         overlay.setMountOptions(mntEtc);
+        // Copy current fstab into root in case the user modified it
+        if (fs::exists(fs::path{overlay.lowerdirs[0] / "fstab"})) {
+            fs::copy(fs::path{overlay.lowerdirs[0] / "fstab"}, 
fs::path{pImpl->snapshot->getRoot() / "etc"}, 
fs::copy_options::overwrite_existing);
+        }
+
         mntEtc->persist(pImpl->snapshot->getRoot() / "etc" / "fstab");
 
         // Make sure both the snapshot and the overlay contain all relevant 
fstab data, i.e.

Reply via email to