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 <[email protected]>
+
+- 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.