commit 4c498c42b84be3be8d69b376b99dd01edbb329b9 Author: Adrian Schröter Date: Fri Jan 19 16:49:21 2024 +0100 Sync from SUSE:ALP:Source:Standard:1.0 transactional-update revision 05a7e19a9a25ac23d182abb8bad34a09 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/transactional-update-4.5.0.tar.gz b/transactional-update-4.5.0.tar.gz new file mode 100644 index 0000000..d2049e6 --- /dev/null +++ b/transactional-update-4.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:116986e8ad3340acd44d7f6dd7869b70781c64696f17ef1c905097b274d15742 +size 170428 diff --git a/transactional-update.changes b/transactional-update.changes new file mode 100644 index 0000000..caeff1c --- /dev/null +++ b/transactional-update.changes @@ -0,0 +1,1185 @@ +------------------------------------------------------------------- +Thu Jan 18 16:19:41 UTC 2024 - Ignaz Forster + +- Use "up" instead of "dup" by default on ALP [bsc#1218861] + +------------------------------------------------------------------- +Mon Nov 20 17:12:20 UTC 2023 - Ignaz Forster + +- Version 4.5.0 + - libtukit: Use permissions of real /etc when creating overlay + [bsc#1215878] + - libtukit, tukit: Support "rollback" via library now + - tukitd: Implement Snapshot delete and rollback methods + - tukit: Check for missing arguments with "close" and "abort" + commands + - t-u: Warn user when using "kdump" if it isn't configured to + avoid confusion with "setup-kdump" [boo#1215725] + - t-u: Abort if mkdumprd run is not successful + - t-u: Use defaut from config file if t-u is called without + arguments [gh#openSUSE/transactional-update#101] + - Improved README.md [gh#openSUSE/transactional-update#59] and + API docs + - Code cleanup + +------------------------------------------------------------------- +Mon Sep 11 13:55:40 UTC 2023 - Ignaz Forster + +- Version 4.4.0 + - t-u: Introduce setup-fips command [jsc#SMO-194] + - libtukit: Always set a cleanup algorithm for snapshots - when + using API, D-Bus interface or tukit the snapshots will be + automatically cleaned up by snapper after some time now; in the + past only snapshots created by the transactional-update shell + script would be cleanup after, and only after a `t-u cleanup` + run. [gh#openSUSE/transactional-update#62] + - tukit: enable kexec's syscall detection feature + - tukit: Don't throw exceptions from the child process after fork + - tukitd: Rename service file to org.opensuse.tukit.service + - tukitd: Allow querying DBus Properties [boo#1214707] + - t-u: Add support for fully written-out update commands + - t-u: Improve detection of existing kernel parameters + +------------------------------------------------------------------- +Wed Jun 28 15:01:34 UTC 2023 - Ignaz Forster + +- Version 4.3.0 + - Replace custom tu-rebuild-kdump-initrd with call to mkdumprd + [gh#openSUSE/transactional-update#107]. + - Add support for libmount 2.39. The behaviour change was not + intended and will be changed in 2.39.1 (see + [gh#util-linux/util-linux#2326], but it was easy to fix it + anyway. + - Honor LIBMOUNT_DEBUG variable for additional output. + +------------------------------------------------------------------- +Mon May 8 17:38:24 UTC 2023 - Ignaz Forster + +- Version 4.2.1 + - Implement "apply" command to switch into new snapshot directly + [jsc#PED-3912] + - Use new snapper functionality to set default snapshot - this + makes it possible to execute hooks as requested in + [poo#127160], [gh#openSUSE/transactional-update#85] and + [gh#openSUSE/transactional-update#105]. + - Don't hardcode GRUB2 [gh#openSUSE/transactional-update#100] / + [poo#127154] + - Fix cleanup handler + - Fix unmounting temporary mounts + - Prevent loosing track of snapshots in certain rollback + scenarios - these would not be marked for deletion otherwise + - Document "notify" reboot method +- Minimal required snapper version is 0.8.10 now, for the new + snapper functionality there is a backwards compatibility layer. +- Conflict with health-checker < 1.8 - the "good" snapshot + detection of GRUB cannot rely on transactional-update any more + due to the new apply command +- Depend on usrmerge for apply command + +------------------------------------------------------------------- +Thu Mar 23 11:52:21 UTC 2023 - Ignaz Forster + +- Version 4.1.5 + - Add support for configuration file snippets + +------------------------------------------------------------------- +Fri Mar 10 14:05:37 UTC 2023 - Ignaz Forster + +- Version 4.1.4 + - Workaround for broken Tumbleweed package libfdisk1 + +------------------------------------------------------------------- +Wed Feb 8 15:14:26 UTC 2023 - Ignaz Forster + +- Version 4.1.3 + - Suppress SELinux relabelling output in quiet mode + - Documentation readability improvements + +------------------------------------------------------------------- +Mon Jan 23 13:54:11 UTC 2023 - Ignaz Forster + +- Version 4.1.2 + - Don't try to mount user mounts if they don't exist [boo#1207366] + +------------------------------------------------------------------- +Wed Jan 18 16:56:16 UTC 2023 - Ignaz Forster + +- Version 4.1.1 + - Mount user specific binddirs last: Prevously the internal mounts would + potentially overwrite user bind mounts [boo#1205011] + - selinux: Relabel shadowed /var files during update to make sure they + don't interfere with the update [boo#1205937] + - Clean up /var/lib/overlay more aggressively [boo#1206947] + - tukit: Merge /etc overlay into parent if --discard is used together + with --continue - previously the files were incorrectly always merged + with the currently running system + - status: do not execute the status command if experimental + - Don't delete created mount point dirs any more + - Small code optimizations + +------------------------------------------------------------------- +Fri Sep 30 12:39:17 UTC 2022 - Ignaz Forster + +- Version 4.1.0 + - t-u: Add a "setup-kdump" command; implements [jsc#PED-1441] + - Export TRANSACTIONAL_UPDATE_ROOT (the path to the snapshot) in + the update environment; implements [jsc#PED-1078] + - Add support for "notify" reboot method for desktop use + [gh#openSUSE/transactional-update#93] + - Fix kdump initrd recreation detection; the check was performed in the + active snapshot instead of the target snapshot + - Document register command [bsc#1202900] + - Avoid unnecessary snapshots for register command [bsc#1202901] + - Various optimizations for register command + - Remove bogus error message when triggering reboot + - Rework /etc overlay documentation in "The Transactional Update Guide" + - Fix incorrect manpage formatting + - Remove leftover "salt" reboot method in configuration example file + - Replace deprecated std::mem_fn with lambdas + +------------------------------------------------------------------- +Thu Sep 1 14:03:58 UTC 2022 - Stefan Schubert + +- Migration of logrotate configuration to /usr/etc: Saving user + changed configuration files in /etc and restoring them while + an RPM update. + +------------------------------------------------------------------- +Mon Aug 22 15:14:24 UTC 2022 - Fabian Vogt + +- Version 4.0.1 + - create_dirs_from_rpmdb: Just warn if no default SELinux context found + [gh#openSUSE/transactional-update#88], [bsc#1188215] + - create_dirs_from_rpmdb: Don't update the rpmdb cookie on failure + [gh#openSUSE/transactional-update#88] + - Handle directories owned by multiple packages + [gh#openSUSE/transactional-update#90], [bsc#1188215] + +------------------------------------------------------------------- +Tue Aug 2 14:32:35 UTC 2022 - Ignaz Forster + +- Version 4.0.0 + - Last minute interface change: Changed "List" method of Snapshot D-Bus + interface to return a map of properties instead of a comma separated + list of strings; this will allow retrieving the snapshot properties + even if they contain a comma in their value [boo#1202147] + - Remove "Snapshot.hpp" as a public API for now - all public + functionality is part of SnapshotManager.hpp + - Add header file documentation for SnapshotManager.hpp + - Add method to delete snapshot + [gh#openSUSE/transactional-update#52] + - Allow setting description of snapshot + [gh#openSUSE/transactional-update#55] + - create_dirs_from_rpmdb: set SELinux file context of missing directories + [gh#openSUSE/transactional-update#84], [bsc#1197242] + - Fix broken logrotate due to typo in config file + [gh#openSUSE/transactional-update#87] + - create_dirs_from_rpmdb: Fix handling return code of create_dirs() + [gh#openSUSE/transactional-update#86] + - Fix broken "shell" prompt after selfupdate + - Add documented D-Bus interface definition files + - Add tukit_sm_get_current and tukit_sm_get_default to C interface + - Fixed typos + +------------------------------------------------------------------- +Tue Jun 21 08:02:24 UTC 2022 - Stefan Schubert + +- Moved logrotate files from user specific directory /etc/logrotate.d + to vendor specific directory /usr/etc/logrotate.d. + +------------------------------------------------------------------- +Tue May 17 07:59:57 UTC 2022 - Ignaz Forster + +- Version 4.0.0~rc4 + - Fix building with GCC 12 + - Fix stack overflow with very long commands / ids [bsc#1196149] + - Use separate mount namespace for chroot, allowing overwriting + the bind mounts from the update environment - this could have + lead to data loss of the bind mount previously + - Fix C error and exception handling for snapshots + +------------------------------------------------------------------- +Tue May 3 10:21:35 UTC 2022 - Ignaz Forster + +- Version 4.0.0~rc3 + - Add Snapshot interface + - Reworked signal handling: All public signals are sent from the + main thread now, keeping the same sender for everything + - Implement D-Bus call "Execute" for Transactions + - Implement interface for listing Snapshots + - Implement Reboot interface + - Fix bug when using --continue on old snapshots + - Fix hypothetical integer overflow in snapshot list [bsc#1196826] + - Fix wrong sort order in status command + [gh#openSUSE/transactional-update#80] + +------------------------------------------------------------------- +Sun Mar 6 17:46:14 UTC 2022 - Ignaz Forster + +- Version 4.0.0~rc2 + - Fix missing prompt in "shell" command [bsc#1196580] + - Add output of tukit commands to log file + - Fix compilation error with GCC12 [boo#1194876] + - Fixed (non-critical) security review comments [boo#1196149] + - Fixed selfupdate + - Code cleanup + +------------------------------------------------------------------- +Fri Nov 22 18:05:54 UTC 2021 - Ignaz Forster + +- Version 4.0.0~rc1 + This release is API, but not ABI compatible with previous releases; + existing applications will have to be recompiled against this new version. + Major features: + - Introduces a D-Bus service to access the libtukit API via the + org.opensuse.tukit.Transaction interface + - Introduces a C binding via libtukit.h. + Other changes: + - t-u: Rework --quiet handling to make sure no output is shown even in + error cases; this is necessary for automation, e.g. with Salt. + [gh#openSUSE/transactional-update#73] + - tukit: Allow storing command output into variable by introducing a new + optional parameter for "execute" and "callExt". + - Replace multiple and non-standalone occurenses of {} in "callExt" + argument. + - Split transactional-update.timer into transactional-update.timer + and transactional-update-cleanup.timer; the later will clean up + old snapshots even when the system does not do automatic updates. + - tukit: Remove legacy alias "setDiscard" for "setDiscardIfUnchanged". + - Throw exception if snapshot is not found. + - Fix various compiler warnings +- Update spec file: + - Include tukitd D-Bus daemon + - Only install one version of the library (as there are no breaking API + changes yet) + - Add %pre scriplets for systemd services + - Replace %systemd_postun scriptlets with %systemd_postun_with_restart + to satisfy rpmlint checks + - Add transactional-update log file as %ghost file + +------------------------------------------------------------------- +Fri Nov 19 16:58:21 UTC 2021 - Ignaz Forster + +- Version 3.6.2 + - Bind mount root file system snapshot on itself, this makes the + temporary directory in /tmp unnecessary; also fixes [boo#1188110] + to return the correct snapshot's working directory via API call. + - Use separate mount namespace for transactional-update; this should + fix several applications that fail to run if a mount point has the + 'unbindable' mount flag set + +------------------------------------------------------------------- +Wed Nov 10 14:55:06 UTC 2021 - Ignaz Forster + +- Version 3.6.1 + - Fix rsyncing /etc into the running system with + --drop-if-no-change [bsc#1192242] + +------------------------------------------------------------------- +Fri Oct 22 17:53:36 UTC 2021 - Ignaz Forster + +- Version 3.6.0 + - Simplify mount hierarchy by just using a single slave bind + mount as the root of the update environment; this may avoid the + error messages of failed unmounts + May fix [boo#1191945] + +------------------------------------------------------------------- +Tue Oct 12 09:42:57 UTC 2021 - Ignaz Forster + +- Version 3.5.7 + Various fixes affecting Salt support: + - t-u: Don't squash stderr messages into stdout + - t-u: Correctly handle case when the snapshot has been deleted due to + using --drop-if-no-change: Don't show reboot messages and avoid an awk + error message [bsc#1191475] + - tukit: Make inotify handler less sensitive / ignore more directories + [bsc#1191475] + +------------------------------------------------------------------- +Thu Sep 23 23:12:28 UTC 2021 - Ignaz Forster + +- Version 3.5.6 + - tukit: Add S/390 bootloader support [bsc#1189807] + - t-u: support purge-kernels with t-u patch [bsc#1190788] + +------------------------------------------------------------------- +Fri Sep 17 14:02:17 UTC 2021 - Ignaz Forster + +- Version 3.5.5 + - t-u: Use tukit for SUSEConnect call [bsc#1190574] + Correctly registers repositories + +------------------------------------------------------------------- +Sat Sep 11 21:21:09 UTC 2021 - Ignaz Forster + +- Version 3.5.4 + - tukit: Fix resolved support [boo#1190383] + +------------------------------------------------------------------- +Mon Sep 6 10:04:50 UTC 2021 - Ignaz Forster + +- Version 3.5.3 + - t-u: Purge kernels as part of package operations + Required for live patching support [bsc#1189728] + +------------------------------------------------------------------- +Mon Aug 30 17:17:29 UTC 2021 - Ignaz Forster + +- Version 3.5.2 + - tukit: Fix overlay syncing errors with SELinux [bsc#1188648] + - Don't print message for `shell` with --quiet + [gh#openSUSE/transactional-update#69] + +------------------------------------------------------------------- +Tue Aug 3 12:41:41 UTC 2021 - Ignaz Forster + +- Version 3.5.1 + - t-u: Disable status file generation by default + The new experimental `status` command requires the availability of + /etc/YaST2/control.xml, which is not present on all systems. Hide the + creation of the corresponding status file behind a new EXPERIMENTAL_STATUS + option to try out this functionality. + - Increase library version + +------------------------------------------------------------------- +Tue Aug 3 07:37:36 UTC 2021 - Ignaz Forster + +- Add tukit.conf to spec file + +------------------------------------------------------------------- +Mon Aug 2 15:58:09 UTC 2021 - Ignaz Forster + +- Version 3.5.0 + - Add alias setDiscardIfUnchanged for setDiscard. The old method name + wasn't really clear and will be removed if we should have an API break + in the future + - Replace mkinitrd with direct dracut call [boo#1186213] + - tukit: Add configuration file support (/etc/tukit.conf) + - Allow users to configure additional bind mounts (see /usr/etc/tukit.conf + for an example and limitations) [bsc#1188322] + - Add 'transactional-update status' call. This is a POC for obtaining a + hash of a system to verify its integrity. The functionality is still + experimental! + - Internal bugfixes / optimizations + +------------------------------------------------------------------- +Sun Jun 13 23:18:28 UTC 2021 - Ignaz Forster + +- Version 3.4.0 + - Apply SElinux context on /etc in transaction [boo#1185625], [boo#1185766] + [bsc#1186842], [boo#1186775] + - Implement inotify handling in C instead of Bash; this makes the + --drop-if-no-change option work on SLE Micro [bsc#1184529] + - Use `tukit call` for up, dup and patch to allow resuming an update after + zypper updated itself in the snapshot [bsc#1185226] + - Fix obsolete output type messages in initrd [boo#1177149] + - Make different base snapshot warning more visible [bsc#1185224] + +------------------------------------------------------------------- +Thu Mar 25 22:13:59 UTC 2021 - Ignaz Forster + +- 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], [bsc#1192302] + +------------------------------------------------------------------- +Fri Mar 12 13:45:09 UTC 2021 - Ignaz Forster + +- Revert inotify-tools dependency: The package is not available in + SLE. This will probably have to be implemented as a native C + version. + +------------------------------------------------------------------- +Fri Mar 12 13:08:04 UTC 2021 - Ignaz Forster + +- Version 3.2.2 + - Don't skip patches with rebootSuggested flag [bsc#1183442] + +------------------------------------------------------------------- +Wed Mar 10 15:14:03 UTC 2021 - Ignaz Forster + +- 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 + +- Requires inotify-tool to have --drop-if-no-change available + +------------------------------------------------------------------- +Tue Mar 2 23:58:27 UTC 2021 - Ignaz Forster + +- 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 + of the bind mount. + - Fix --drop-if-no-change [boo#1182525] + - Check whether self-updated version is executable (e.g. on noexec /tmp) + [bsc#1173842] + - Fix overlay synchronisation with SELinux (again) + - Always overwrite supplemental files (e.g. for network configuration) + even if they exist in the snapshot already [boo#1182544] + - Improve logging and error messages + +------------------------------------------------------------------- +Wed Feb 17 08:44:18 UTC 2021 - Ignaz Forster + +- Version 3.1.4 + - SELinux: Fix syncing of SELinux attributes when using overlays + - SELinux: Tag the overlay directory itself (again) + +------------------------------------------------------------------- +Mon Feb 15 13:10:39 UTC 2021 - Ignaz Forster + +- Version 3.1.3 + - Fix overlay syncing on SELinux systems + - Fix resuming transactions where the parent does not exist any more + +------------------------------------------------------------------- +Fri Feb 12 12:29:27 UTC 2021 - Ignaz Forster + +- Version 3.1.2 + - libtukit: Report when application was terminated due to a signal, and + return the signal number as a return value. This will cause the + transaction to be aborted when called via `execute`. + - libtukit: Set PATH variable for internal commands to fixed value to + find the helper applications, as in some environments such as PolicyKit + PATH wouldn't be set. + - Fix compiler warnings + +------------------------------------------------------------------- +Tue Feb 9 21:15:52 UTC 2021 - Ignaz Forster + +- Version 3.1.1 + - Fix hang in tukit on aarch64 [bsc#1181844] + - Prevent deletion of snapshots when resuming a snapshot where no + transaction is open + - Make tukit work in non-dbus environments [boo#1181934] + +------------------------------------------------------------------- +Tue Feb 2 13:53:20 UTC 2021 - Ignaz Forster + +- Version 3.1.0 + - t-u: Support installing RPMs from the user's directory again + - Adapt selfupdate to new packaging + - Implement signal handling + - Remove empty text files + +------------------------------------------------------------------- +Mon Feb 1 09:20:44 UTC 2021 - Ignaz Forster + +- Add libselinux build time dependency +- Remove RPM version check + +------------------------------------------------------------------- +Mon Feb 1 08:36:36 UTC 2021 - Ignaz Forster + +- Fix libstdc++ filesystem ABI incompatibility by using newer gcc + version on old distributions. [boo#1181582] + +------------------------------------------------------------------- +Thu Jan 28 14:25:53 UTC 2021 - Neal Gompa + +- Rework packaging based on Fedora packaging to separate all the + components to remove the intrinsic requirement for Zypper + +------------------------------------------------------------------- +Wed Jan 27 10:13:53 UTC 2021 - Ignaz Forster + +- Version 3.0.0 + - This release changes the internal structure, but should be + identical to the previous release feature wise. + - Major parts of the previous Bash only application have been + rewritten in C++ with the goal to provide an API around + transactions; the transactional-update script is using that + new interface internally already, however the API should + be considered experimental for now - if you are interested to + use it, please notify us in + https://github.com/openSUSE/transactional-update/issues/52 + - A new tool called "tukit" provides a C++ tool that can be + wrapped by scripts to leverage the functionality. Please + consider it experimental for now, the commands may still change. + - Bugfixes: + - Implement support for system offline update [boo#1180808] + - Add statistics files to update environment [boo#1173282] + +------------------------------------------------------------------- +Mon Nov 9 08:30:54 UTC 2020 - Ignaz Forster + +- Version 2.38.3 + - SELinux: Make synchronisation work for both pre-SELinux + snapshots and later snapshots; SELinux support should be ready + for most tasks now. + +------------------------------------------------------------------- +Fri Oct 30 08:45:46 UTC 2020 - Ignaz Forster + +- Version 2.28.2 + - SELinux: Exclude security.selinux attribute from rsyncing (again) + +------------------------------------------------------------------- +Thu Oct 29 15:05:24 UTC 2020 - Ignaz Forster + +- Version 2.28.1 + - SELinux: Fixed changing the wrong grub configuration file + - SELinux: Move /.autorelabel file to writeable location + +------------------------------------------------------------------- +Thu Oct 22 12:20:38 UTC 2020 - Ignaz Forster + +- Version 2.28 + - Add 'setup-selinux' command for easy setup of a SELinux system + - Allow complex commands for the 'run' command + - SELinux: Fix /etc / overlay labeling + +------------------------------------------------------------------- +Wed Oct 14 09:32:15 UTC 2020 - Ignaz Forster + +- Version 2.27 + - Add support for network systemd-resolvd network connections in t-u + environment + - Mount /var/lib/ca-certificates read-write to prevent SELinux error + - Prevent calling transactional-update from within transactional-update + +------------------------------------------------------------------- +Sat Sep 26 14:50:12 UTC 2020 - Ignaz Forster + +- Version 2.26 + - Fix broken sync for second snapshot [boo#1176989] + - Add new options to allow separate cleanup of snapshots and overlays + - Check for existence of inotifywait before using it + - Check that mount options don't exceed maximum length + +------------------------------------------------------------------- +Mon Sep 21 16:17:12 UTC 2020 - Ignaz Forster + +- Version 2.25.1 + - Fix inotify watcher setup + - Use log_{info,error} for more messages to avoid messing up Salt logs + +------------------------------------------------------------------- +Mon Sep 21 14:09:41 UTC 2020 - Ignaz Forster + +- Version 2.25 + - Reduce number of overlays: + Instead of using transparent overlays for all previous layers only add the + previous snapshot's overlay; this will greatly reduce the number of + overlays while still making sure that /etc changes in the running system + will be visible in the next snapshot + - When using --drop-if-no-change synchronize potential /etc changes with + running system + - Exclude all non-root-fs mounts from inotify watcher + +------------------------------------------------------------------- +Wed Aug 12 10:06:11 UTC 2020 - Ignaz Forster + +- Version 2.24.1 + - SELinux: adjust labels for etc, fstab and grub.cfg + +------------------------------------------------------------------- +Thu Aug 6 08:32:11 UTC 2020 - Ignaz Forster + +- Version 2.24 + - Add partial SELinux support + +------------------------------------------------------------------- +Fri Jul 31 16:11:04 UTC 2020 - Ignaz Forster + +- Version 2.23 + - Add "run" command to be able to execute a single command in a new snapshot + - Add "--drop-if-no-change" option to discard snapshots if no changes were + perfomed (BETA, required for Salt integration) + - Removed previous CaaSP Salt support (gh#openSUSE/transactional-update#33) + - Avoid "file not found" message on systems without /var subvol + +------------------------------------------------------------------- +Thu Jul 23 13:17:47 UTC 2020 - Thorsten Kukuk + +- Remove unused attr requires +- Change bc to file requires + +------------------------------------------------------------------- +Tue Jun 23 15:39:12 UTC 2020 - Ignaz Forster + +- Version 2.22 + - Use pkgconf to determine installation paths + - Enable SSL connections in update shell + [boo#1149131] & [boo#1133891] & [boo#1192078] + +------------------------------------------------------------------- +Mon Apr 6 08:02:55 UTC 2020 - Ignaz Forster + +- Version 2.21.1 + - Rework error messages on failing umount [boo#1168389] + +------------------------------------------------------------------- +Mon Mar 30 12:09:34 UTC 2020 - Ignaz Forster + +- Update to version 2.21 + - Use slave mounts for /proc, /sys & /dev + +------------------------------------------------------------------- +Thu Mar 26 08:21:24 UTC 2020 - Ignaz Forster + +- Update to version 2.20.4 + - Mount efivarfs on EFI systems to make sure the bootloader will be installed + correctly [boo#1162320] + - Fix removal of existing overlay directories + +------------------------------------------------------------------- +Fri Mar 13 12:10:02 UTC 2020 - Ignaz Forster + +- Add dependencies to btrfsprogs, zypper and snapper - most of the + functionality is not usable if those applications are not + installed. [boo#1166502] + +------------------------------------------------------------------- +Tue Mar 3 16:34:26 UTC 2020 - Ignaz Forster + +- Update to version 2.20.3 + - Reintroduce compatibility with RPM < 4.15 for inclusion in + SLE / Leap 15.2 + - Prepare for removal of /var/lib/alternatives [jsc#SLE-9101] + +------------------------------------------------------------------- +Wed Feb 26 09:58:23 UTC 2020 - Ignaz Forster + +- Update to version 2.20.2 + - Use full names for zypper options [bsc#1164543] + - Ignore /var/lib/rpm in shadowed file output + - Optimize create-dirs-from-rpmdb + +------------------------------------------------------------------- +Tue Jan 7 10:52:39 UTC 2020 - Ignaz Forster + +- Update to version 2.20.1 + - Add missing documentation about --continue option + - Avoid error message about missing fstab file on first snapshot creation. + [boo#1160213] + +------------------------------------------------------------------- +Fri Nov 8 10:27:10 UTC 2019 - Ignaz Forster + +- Update to version 2.20 + - Add the option `--continue` to extend an existing snapshot. This can be + used to perform multiple operations before rebooting into the new state. + [gh#openSUSE/transactional-update#16] + - Make sure the dracut service to print warnings on /etc overlay conflicts + also runs in the pre-made images. + - Add "none" reboot method + - Remove conflicting overlay artifacts in case an existing overlay directory + will be reused + +------------------------------------------------------------------- +Wed Sep 25 15:13:35 UTC 2019 - Ignaz Forster + +- Update to version 2.17 + - Provide network in shell on systems where resolv.conf is pointing to /run + directly [boo#1151081] + - Print new snapshot number at the end + - Always mount /root subvolume when using shell command to preserve history + +------------------------------------------------------------------- +Mon Sep 9 19:36:59 UTC 2019 - Ignaz Forster + +- Update to version 2.16 + - Use default command if options, but no command was given [boo#1146116] + - Make sure only one process appears in `ps` output [boo#1111897] + - Move update check: If a new repository is added (and + ZYPPER_AUTO_IMPORT_KEYS is set) adding the new repository key won't fail + any more + - Avoid unnecessary snapshots / reboots by detecting zypper operations + without changes more reliably (e.g. when installing an already installed + package) + - Update the manpage accordingly + - Bugfixes: + - Ignore commented lines in fstab when checking for shadowed files + - Avoid warning when copying network config +- Remove Perl dependency +- Building documentation requires Python 3 now + +------------------------------------------------------------------- +Wed Jun 5 15:15:09 UTC 2019 - Ignaz Forster + +- Update to version 2.15 + - Move description of interactiveness [boo#1132438] + - Enable network during update [boo#1137890] + - Add compatibilty with new overlayfs versions [boo#1140057] + - Allow updates of the bootloader on EFI systems [boo#1139015] + - Add support for /boot/writable [boo#1138725] + +------------------------------------------------------------------- +Mon Apr 29 12:20:51 UTC 2019 - Ignaz Forster + +- Update to version 2.14.2 + - Prevent unnecessary error message on systems not installed with + YaST (e.g. KIWI) + +------------------------------------------------------------------- +Wed Apr 17 08:37:18 CEST 2019 - kukuk@suse.de + +- Add requires for bc, needed for some calculations + +------------------------------------------------------------------- +Mon Mar 25 14:53:12 UTC 2019 - Ignaz Forster + +- Update to version 2.14.1 + - Improve non-root fs changes checker based on feedback + - Disable snapper's zypper plugin during transactional-update run +- Allow parallel installation with snapper's zypper plugin (useful on + read-write systems). + +------------------------------------------------------------------- +Fri Mar 15 10:45:52 UTC 2019 - Ignaz Forster + +- Update to version 2.14 + - Warn user if contents of /var have been changed during update + - Noteworthy: swapped position of upperdir and lowerdir in fstab for better + readability + - Major update to the transactional-update guide + +------------------------------------------------------------------- +Mon Mar 4 10:40:21 CET 2019 - kukuk@suse.de + +- Update to version 2.13.2 + - add hooks for telemetrics + +------------------------------------------------------------------- +Thu Feb 14 16:26:54 UTC 2019 - iforster@suse.com + +- Update to version 2.13.1 + - Bugfix: Clean up empty /etc snapshot directories again +- Use official release files from GitHub for building + +------------------------------------------------------------------- +Thu Feb 14 12:14:47 UTC 2019 - iforster@suse.com + +- Update to version 2.13 + - Fix a serious data loss problem (deleting all files in /etc + overlays) in case /var/lib/overlay/etc is not part of any + snapshot any more. + - Avoid error message in case a system has no /etc/fstab.sys + +------------------------------------------------------------------- +Mon Jan 28 19:05:42 UTC 2019 - iforster@suse.com + +- Update to version 2.12 + - Implements support for needs-restart (Fate#326451) + - Adds easy rollback to last known working snapshot by using "last" + as the snapshot number + - Migrate /etc/fstab.sys entires to /etc/fstab for systemd being + able to create mount units; this will prevent errors on unmount + - Remove implicit --no-allow-vendor-change - this option can be + configured in zypper's configuration file now + - Add support for mounting the /etc overlay file system as a systemd + unit in /etc/fstab on a read-only system (replacing /etc/fstab.sys + in the long run) + - Various bugfixes: + - Only remove /etc overlays on read-only root file systems + [boo#1122455] + - Disable "Persistent" flag in systemd timer unit to prevent + updates during or immediately after the boot phase + - Don't set global zypper options during migration - this is not + supported by the migration plugin + - Fix error handling when interrupting while rsync is running + - Filter out security.selinux attributes during rsync + +------------------------------------------------------------------- +Sat Nov 17 09:06:44 UTC 2018 - Jan Engelhardt + +- Use noun phrase in summary. + +------------------------------------------------------------------- +Mon Nov 12 14:27:24 UTC 2018 - iforster@suse.com + +- Update to version 2.11 + - Update man page to explain new /etc overlay handling + - Add special handling for migrating away from old overlay directory + - Read default update method for systemd service from config file +- Add package "transactional-update-zypp-config" to prevent accidental + transactional-update uninstallation on transactional systems + (boo#1111319) +- Use "up" for systemd service on non-rolling release distributions + (boo#1111321) + +------------------------------------------------------------------- +Thu Oct 4 12:42:35 UTC 2018 - iforster@suse.com + +- Update to version 2.10 + - Introduce /etc overlays + - Each root file system snapshot now has a dedicated /etc overlay in + /var/lib/snapshots//etc + - Changes in older snapshots will be visible in newer snapshots (if + the file hasn't been changed in both snapshots), but not the other + way around; this makes it possible to roll back to a previous + snapshot even if the configuration is broken + - The /etc state of the oldest active snapshot will be synchronized + into the new snapshot to prevent ever growing overlays + - Removed creation of /etc backup snapshots + - Removed complex overlayfs cleanup handling during dracut early boot; + only thing left is to output a warning if files have been changed + in old and new overlay after snapshot creation + - Unused overlays will be removed during "cleanup" operation + - Add compatibility with snapper >= 0.7.0 + - Correctly detect BTRFS ID when using multiple snapper configurations + - Fix disappearing prompt in "shell" command when application was updated + - Prevent accidental rollback on fast reboots (boo#1111786) + - Use zypper attribute packages-to-change if available (boo#1105992 & + boo#1097619) + - Add kexec as reboot alternative + - Added explicit --with-doc / --without-doc build configure opttions for + enforcing or excluding documentation build + - Removed precompiled documentation (boo#1088676) + - Added more dependency checks to configure script + - Small improvements to documentation + - Restored compatibility with older rsync versions not supporting the -x + filter + - Small bugfixes for cleanup in error situations + - Fix possible incorrect detection of snapshots numbers during cleanup + - Mention parent in snapshot description +- Add dependencies for documentation build (boo#1088676) + +------------------------------------------------------------------- +Mon Aug 20 15:09:44 UTC 2018 - iforster@suse.com + +- Update to version 2.6 + - Add --interactive and --non-interactive options to change the default + interactivity for zypper calls. For previously non-interactive calls (e.g. + dup) these options makes it possible to pick the correct solution in case + of conflicts or make sure that a script will never be stuck at an input + prompt. + - Add kured reboot support + - Tries to clean up temporary files and mount points if transactional-update + quits unexpectedly + - Remove trancactional-update-helper (replaced by zypper options) + - Create /var/lib/zypp if not available (boo#1104452) + - Robustify parsing zypper output (boo#1105992) + - Various small fixes +- Changed permissions of systemd script again + +------------------------------------------------------------------- +Fri Jun 15 12:05:24 UTC 2018 - iforster@suse.com + +- Update to version 2.5 + - Support for overlayfs attributes like trusted.overlay.opaque - this will + avoid disappearing configuration files on system updates + - Documentation update + - Only sync /etc if it's on an overlayfs mount + - Use correct locale for zypper - thus updating locale specific packages and + avoiding "empty" updates where transactional-update didn't see the change +- Add dependency to attr +- Fix permissions of systemd script + +------------------------------------------------------------------- +Tue Jun 5 17:07:25 CEST 2018 - kukuk@suse.de + +- Update to version 2.4 + - Bug fix release + +------------------------------------------------------------------- +Mon May 14 16:16:08 UTC 2018 - iforster@suse.com + +- Update to version 2.3 + - Reformat help text / synopsis + - More detailled output (use --quiet for less output) + - Log all error messages into log file + - Avoid potential lock file race condition on self update + - Accept package names with whitespace + - Don't wait for user input during self-update + - Fix broken error message output when creating new snapshot without reboot + - Fix erroneous mounting of stale grub mounts + +------------------------------------------------------------------- +Wed May 2 08:39:18 UTC 2018 - iforster@suse.com + +- Update to version 2.2 + - Fix security issue in self update [boo#1091316] + - Create dirs in /var more reliably by sorting the list +- Rebuild initrd (needed since 2.0) + +------------------------------------------------------------------- +Thu Apr 26 15:14:36 CEST 2018 - kukuk@suse.de + +- Update to version 2.1 + - Cleanup the code cleaning up /etc + +------------------------------------------------------------------- +Tue Apr 24 14:23:41 CEST 2018 - kukuk@suse.de + +- Update to version 2.0 + - Create missing directories from rpm database during boot + - Merge /etc overlay with root subvolume during update + +------------------------------------------------------------------- +Fri Apr 20 15:57:21 CEST 2018 - kukuk@suse.de + +- Update to version 1.29 + - Implement self-update + - Disable optical media on dup + - Ignore certain zypper return codes + +------------------------------------------------------------------- +Tue Apr 3 08:51:33 UTC 2018 - rbrown@suse.com + +- Add conflicts with snapper-zypp-plugin + +------------------------------------------------------------------- +Sat Mar 17 19:48:44 UTC 2018 - rbrown@suse.com + +- Require perl-HTML-Parser (needed since 1.26) [boo#1085764] + +------------------------------------------------------------------- +Mon Mar 12 13:19:49 CET 2018 - kukuk@suse.de + +- Update to version 1.28 + - Adjust for latest grub2 + +------------------------------------------------------------------- +Tue Mar 6 13:32:38 CET 2018 - kukuk@suse.de + +- Update to version 1.27 + - Fallback to snapper without dbus support if dbus fails + - Add workaround for update-alternatives + - Add support for /usr/etc/transactional-update.conf + +------------------------------------------------------------------- +Fri Feb 23 12:01:53 UTC 2018 - kukuk@suse.com + +- Use %license instead of %doc [bsc#1082318] + +------------------------------------------------------------------- +Wed Jan 31 16:14:14 CET 2018 - kukuk@suse.de + +- Update to version 1.26 + - Auto accept repo keys config option + - Detect broken snapshots after abort + - Ignore user deleted snapshots + - Include all error messages in main log file + - Add configuration file + - Correctly implement migration of major OS versions + - Default reboot strategy is configuration option + - Salt option is deprecated + +------------------------------------------------------------------- +Tue Jan 9 11:42:20 CET 2018 - kukuk@suse.de + +- Update to version 1.25 + - preliminary SELinux support + - support for seperate /var subvolume + +------------------------------------------------------------------- +Tue Dec 5 19:38:47 UTC 2017 - kukuk@suse.de + +- Update to version 1.24 + - Don't save unused snapshots if we may delete them again. + Partly fixes [bsc#1071038] + - Copy passwd, group and shadow to /usr/etc if modified + +------------------------------------------------------------------- +Fri Nov 17 14:54:33 CET 2017 - kukuk@suse.de + +- Update to version 1.23 + - Fix re-registration in rollback case + - Fix problems with updating the grub2 bootloader + - Add support for migration of products with SCC/SMT + - Re-add support to re-write bootloader + [bsc#1068933] + +------------------------------------------------------------------- +Tue Nov 7 16:34:28 CET 2017 - kukuk@suse.de + +- Update to version 1.22 + - Rewrite cleanup code to be more aggressive + +------------------------------------------------------------------- +Fri Oct 27 13:52:56 CEST 2017 - kukuk@suse.de + +- Update to version 1.21 + - Reset salt grains even if no update was found + +------------------------------------------------------------------- +Wed Sep 13 11:24:28 CEST 2017 - kukuk@suse.de + +- Update to version 1.20 + - Improve documentation + - Add pkg update option + +------------------------------------------------------------------- +Fri Jun 30 09:58:51 CEST 2017 - kukuk@suse.de + +- Update to version 1.19 + - Add 'shell' option for debugging and testing + +------------------------------------------------------------------- +Wed Jun 28 14:13:27 CEST 2017 - kukuk@suse.de + +- Update to version 1.18 + - Auto accept product license in non-interactive mode + + +------------------------------------------------------------------- +Tue Jun 27 09:12:58 CEST 2017 - kukuk@suse.de + +- Update to version 1.17 + - copy modified bootloader config into snapshot + - unit file cleanup, no change of behavior + +------------------------------------------------------------------- +Mon Jun 26 14:21:38 CEST 2017 - kukuk@suse.de + +- Update to version 1.16 + - internal changes [bsc#1045942] + +------------------------------------------------------------------- +Thu Jun 1 15:56:56 CEST 2017 - kukuk@suse.de + +- Update to version 1.15 + - Rename option ptf to pkg + - Add option to set salt grains + +------------------------------------------------------------------- +Fri Apr 21 11:24:54 CEST 2017 - kukuk@suse.de + +- Update to version 1.14 + - Fix check of return values of commands in pipes [bsc#1034900] + +------------------------------------------------------------------- +Tue Mar 21 10:35:17 CET 2017 - kukuk@suse.de + +- Update to version 1.12 + - minor bug fixes + +------------------------------------------------------------------- +Thu Mar 2 13:20:36 CET 2017 - kukuk@suse.de + +- Update to version 1.11 + - use --no-allow-vendor-change with "zypper dup" + - update manual page + +------------------------------------------------------------------- +Mon Feb 13 14:33:13 CET 2017 - kukuk@suse.de + +- Update to version 1.10 + - implement and document rollback option + +------------------------------------------------------------------- +Tue Feb 7 08:04:50 CET 2017 - kukuk@suse.de + +- Update to version 1.9 + - fix umounting of special filesystems and subvolumes + - fix interactive installation of PTFs [bsc#1023026] + - fix dependencies of systemd service + +------------------------------------------------------------------- +Wed Feb 1 17:51:32 CET 2017 - kukuk@suse.de + +- Add Requires for lsof and fuser + +------------------------------------------------------------------- +Wed Feb 1 14:50:37 CET 2017 - kukuk@suse.de + +- Update to version 1.8 + - fix references in html docu + - build kdump initrd if we build standard initrd, too + +------------------------------------------------------------------- +Mon Jan 30 11:20:26 CET 2017 - kukuk@suse.de + +- Update to version 1.7 + - build html docu, too + +------------------------------------------------------------------- +Sun Jan 29 13:27:08 UTC 2017 - kukuk@suse.de + +- Update to version 1.6 + - Add support for kdump [bsc#1018098] + +------------------------------------------------------------------- +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 + +------------------------------------------------------------------- +Mon Dec 19 10:37:59 CET 2016 - kukuk@suse.de + +- Update to version 1.3 + - Add initrd option + +------------------------------------------------------------------- +Thu Dec 15 10:38:58 CET 2016 - kukuk@suse.de + +- Do some spec file cleanup + +------------------------------------------------------------------- +Mon Dec 12 10:18:28 CET 2016 - kukuk@suse.de + +- Update to version 1.2 + - suppport ro-subvolume with overlayfs + +------------------------------------------------------------------- +Tue Dec 6 10:24:19 CET 2016 - kukuk@suse.de + +- Update to version 1.1 + - bug fix release + - implement lock + +------------------------------------------------------------------- +Wed Nov 23 16:36:20 CET 2016 - kukuk@suse.de + +- Update to version 1.0 + - implement and document PTF options + +------------------------------------------------------------------- +Mon Nov 21 13:35:50 CET 2016 - kukuk@suse.de + +- Update to version 0.99 + - Support for rebootmgr + - Write real manual page + +------------------------------------------------------------------- +Mon Nov 21 12:02:44 CET 2016 - kukuk@suse.de + +- Add empty directory + /etc/systemd/system/transactional-update.timer.d/ + so to make it easier to override transactional-update.timer + entries. + +------------------------------------------------------------------- +Thu Nov 17 15:53:00 CET 2016 - kukuk@suse.de + +- Update to version 0.90 + - Finish normal options + - Implement support for PTFs + +------------------------------------------------------------------- +Sun Nov 6 12:52:50 UTC 2016 - kukuk@suse.com + +- Disable restart on update for post install scripts + +------------------------------------------------------------------- +Sun Nov 6 10:27:01 UTC 2016 - kukuk@suse.de + +- Implement activating the new snapshot as new root filesystem + +------------------------------------------------------------------- +Fri Nov 4 14:19:49 CET 2016 - kukuk@suse.de + +- Initial version + diff --git a/transactional-update.check b/transactional-update.check new file mode 100644 index 0000000..a1c52d9 --- /dev/null +++ b/transactional-update.check @@ -0,0 +1 @@ +requires:transactional-update diff --git a/transactional-update.spec b/transactional-update.spec new file mode 100644 index 0000000..4be1001 --- /dev/null +++ b/transactional-update.spec @@ -0,0 +1,323 @@ +# +# spec file for package transactional-update +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2021 Neal Gompa +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global somajor 4 +%global libprefix libtukit +%global libname %{libprefix}%{somajor} +%global devname %{libprefix}-devel + +# Compatibility macros +%{!?_distconfdir: %global _distconfdir %{_prefix}%{_sysconfdir}} + +Name: transactional-update +Version: 4.5.0 +Release: 0 +Summary: Transactional Updates with btrfs and snapshots +License: GPL-2.0-or-later AND LGPL-2.1-or-later +Group: System/Base +URL: https://github.com/openSUSE/transactional-update +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Source1: transactional-update.check + +BuildRequires: autoconf +BuildRequires: autoconf-archive +BuildRequires: automake +BuildRequires: docbook-xsl-stylesheets +BuildRequires: fdupes +%if %{?suse_version} <= 1500 +BuildRequires: gcc10-c++ +%else +BuildRequires: gcc-c++ +%endif +BuildRequires: libtool +BuildRequires: libzypp +BuildRequires: make +BuildRequires: suse-module-tools +BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(dracut) +BuildRequires: pkgconfig(libeconf) +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(mount) +BuildRequires: pkgconfig(rpm) +BuildRequires: pkgconfig(systemd) +BuildRequires: pkgconfig(udev) +# Cannot use python3dist() names yet... +BuildRequires: libxml2-tools +BuildRequires: python3-lxml +BuildRequires: w3m +BuildRequires: xsltproc +# XXX libsolv never sees the rpmlib provides fulfilled +Requires: (compat-usrmerge-tools or rpmlib(X-CheckUnifiedSystemdir)) +Requires: /usr/bin/bc +Requires: dracut-transactional-update = %{version}-%{release} +Requires: logrotate +Requires: lsof +# psmisc is needed because of fuser +Requires: psmisc +Requires: tukit = %{version}-%{release} +Requires: zypper +# Parameter --drop-if-no-change requires it +Recommends: inotify-tools +Recommends: rebootmgr +Suggests: tukitd = %{version}-%{release} +Conflicts: health-checker < 1.8 + +%description +transactional-update is a tool to update a system in an atomic +way with zypper, btrfs and snapshots. + +%package -n tukit +Summary: Tool for doing transactional updates using Btrfs snapshots +License: GPL-2.0-or-later +Group: System/Base +Requires: %{libname} = %{version}-%{release} +Conflicts: transactional-update < 3.0.0 + +%description -n tukit +tukit is a simple tool to make changes to a system in an atomic way +with btrfs and snapshots. + +%package -n dracut-%{name} +Summary: Dracut module for supporting transactional updates +License: GPL-2.0-or-later +Group: System/Boot +Supplements: (tukit and kernel) +Requires: tukit = %{version}-%{release} +BuildArch: noarch +Conflicts: transactional-update < 3.0.0 + +%description -n dracut-%{name} +This package contains the dracut modules for handling early boot aspects +for transactional updates. + +%package -n %{libname} +Summary: Library for doing transactional updates using Btrfs snapshots +License: LGPL-2.1-or-later +Group: System/Libraries +Requires: btrfsprogs +Requires: rsync +Requires: snapper >= 0.8.10 + +%description -n %{libname} +This package contains the libraries required for programs to do +transactional updates using btrfs snapshots. + +%package -n tukitd +Summary: D-Bus controlling service for transactional updates +License: GPL-2.0-or-later +Group: System/Libraries +Requires: %{libname} = %{version}-%{release} +Requires: dbus-1 + +%description -n tukitd +This package provedes the D-Bus service to access %{libname}'s +functionality to manage transactional systems. + +%package -n %{devname} +Summary: Development files for tukit library +License: LGPL-2.1-or-later +Group: Development/Libraries/C and C++ +Provides: tukit-devel = %{version}-%{release} +Provides: tukit-devel = %{version}-%{release} +Requires: %{libname} = %{version}-%{release} + +%description -n %{devname} +This package contains the files required to develop programs to do +transactional updates using btrfs snapshots. + +%package zypp-config +Summary: Zypper rule to prevent uninstallation of transactional-update +License: GPL-2.0-or-later AND LGPL-2.1-or-later +Group: System/Base +BuildArch: noarch +Requires: transactional-update = %{version}-%{release} + +%description zypp-config +Adds a zypper rule to prevent accidental uninstallation of +transactional-update. + +%prep +%autosetup -p1 + +%build +%if %{?suse_version} <= 1500 +export CXX=g++-10 +%endif +autoreconf -fiv +%configure --with-doc --docdir=%{_docdir}/%{name} --disable-static +%make_build + +# Use "up" for non-rolling releases +%if (%{defined sle_version} && %{undefined is_susecasp}) || 0%{?suse_version} == 1600 +sed -i 's/^UPDATE_METHOD=.*/UPDATE_METHOD=up/' etc/transactional-update.conf +%endif + +%install +%make_install + +%fdupes %{buildroot}%{_mandir} + +# Install zypp config files +mkdir -p %{buildroot}%{_sysconfdir}/zypp/systemCheck.d/ +install -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/zypp/systemCheck.d/ + +# Delete libtool cruft +rm -rf %{buildroot}%{_libdir}/*.la + +# Delete unwanted HTML documentation +rm -rf %{buildroot}%{_docdir}/%{name}/*.html + +# move logrotate files from /etc/logrotate.d to /usr/etc/logrotate.d +%if 0%{?suse_version} > 1500 +mkdir -p %{buildroot}%{_distconfdir}/logrotate.d +mv %{buildroot}/%{_sysconfdir}/logrotate.d/transactional-update %{buildroot}%{_distconfdir}/logrotate.d +%endif + +%pre +%systemd_pre %{name}.service %{name}.timer +%systemd_pre %{name}-cleanup.service %{name}-cleanup.timer +%if 0%{?suse_version} > 1500 +# Prepare for migration of logrotate configuration to /usr/etc; save any old .rpmsave +for i in logrotate.d/transactional-update ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||: +done +%endif + +%post +%systemd_post %{name}.service %{name}.timer +%systemd_post %{name}-cleanup.service %{name}-cleanup.timer + +%if 0%{?suse_version} > 1500 +%posttrans +# Migration of logrotate configuration to /usr/etc, restore just created .rpmsave +for i in logrotate.d/transactional-update ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||: +done +%endif + +%preun +%systemd_preun %{name}.service %{name}.timer +%systemd_preun %{name}-cleanup.service %{name}-cleanup.timer + +%postun +%systemd_postun_with_restart %{name}.service %{name}.timer +%systemd_postun_with_restart %{name}-cleanup.service %{name}-cleanup.timer + +%pre -n tukit +%systemd_pre create-dirs-from-rpmdb.service + +%post -n tukit +%systemd_post create-dirs-from-rpmdb.service + +%preun -n tukit +%systemd_preun create-dirs-from-rpmdb.service + +%postun -n tukit +%systemd_postun_with_restart create-dirs-from-rpmdb.service + +%pre -n tukitd +%systemd_pre tukitd.service + +%post -n tukitd +%systemd_post tukitd.service + +%preun -n tukitd +%systemd_preun tukitd.service + +%postun -n tukitd +%systemd_postun_with_restart tukitd.service + +%post -n dracut-%{name} +%regenerate_initrd_post + +%posttrans -n dracut-%{name} +%regenerate_initrd_posttrans + +%postun -n dracut-%{name} +%regenerate_initrd_post + +%post -n %{libname} -p /sbin/ldconfig + +%postun -n %{libname} -p /sbin/ldconfig + +%files +%license COPYING +%doc NEWS +%doc %{_docdir}/%{name}/transactional-update.txt +%if 0%{?suse_version} > 1500 +%{_distconfdir}/logrotate.d/transactional-update +%else +%config(noreplace) %{_sysconfdir}/logrotate.d/transactional-update +%endif +%{_unitdir}/transactional-update.service +%{_unitdir}/transactional-update.timer +%{_unitdir}/transactional-update-cleanup.service +%{_unitdir}/transactional-update-cleanup.timer +%{_sbindir}/transactional-update +%if %{?suse_version} <= 1500 +%dir %{_distconfdir} +%endif +%{_distconfdir}/transactional-update.conf +%{_distconfdir}/tukit.conf +%{_mandir}/man5/transactional-update.conf.5* +%{_mandir}/man8/transactional-update.8* +%{_mandir}/man8/transactional-update.timer.8* +%{_mandir}/man8/transactional-update.service.8* +%ghost %attr(0644,root,root) %{_localstatedir}/log/transactional-update.log + +%files -n tukit +%license COPYING gpl-2.0.txt +%doc README.md NEWS +%{_sbindir}/tukit +%{_sbindir}/create_dirs_from_rpmdb +%{_unitdir}/create-dirs-from-rpmdb.service +%{_mandir}/man5/tukit.conf.5.gz + +%files -n dracut-%{name} +%license COPYING gpl-2.0.txt +%doc README.md NEWS +%dir %{_prefix}/lib/dracut +%dir %{_prefix}/lib/dracut/modules.d +%{_prefix}/lib/dracut/modules.d/50transactional-update/ + +%files -n %{libname} +%license COPYING lgpl-2.1.txt +%{_libdir}/libtukit.so.%{somajor}{,.*} + +%files -n tukitd +%license COPYING gpl-2.0.txt +%{_sbindir}/tukitd +%{_unitdir}/tukitd.service +%{_prefix}/share/dbus-1/system-services/org.opensuse.tukit.service +%{_prefix}/share/dbus-1/system.d/org.opensuse.tukit.conf +%{_prefix}/share/dbus-1/interfaces/org.opensuse.tukit.Snapshot.xml +%{_prefix}/share/dbus-1/interfaces/org.opensuse.tukit.Transaction.xml + +%files -n %{devname} +%license COPYING lgpl-2.1.txt +%{_includedir}/tukit/ +%{_libdir}/libtukit.so +%{_libdir}/pkgconfig/tukit.pc + +%files zypp-config +%config(noreplace) %{_sysconfdir}/zypp/systemCheck.d/transactional-update.check + +%changelog