Warning: Permanently added '2620:52:6:1161:dead:beef:cafe:c116' (ED25519) to the list of known hosts. You can reproduce this build on your computer by running: sudo dnf install copr-rpmbuild /usr/bin/copr-rpmbuild --verbose --drop-resultdir --task-url https://copr.fedorainfracloud.org/backend/get-build-task/11161007-fedora-rawhide-x86_64 --chroot fedora-rawhide-x86_64 Version: 1.10 PID: 4929 Logging PID: 4931 Task: {'allow_user_ssh': False, 'appstream': False, 'background': False, 'build_id': 11161007, 'buildroot_pkgs': [], 'chroot': 'fedora-rawhide-x86_64', 'enable_net': False, 'fedora_review': False, 'git_hash': 'c376b0ec09cd732d0b6fe1199597bba69bd91816', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/eyildizemre/migr/migr', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'migr', 'package_version': '0.1.1-1', 'project_dirname': 'migr', 'project_name': 'migr', 'project_owner': 'eyildizemre', 'repo_priority': None, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/eyildizemre/migr/fedora-rawhide-x86_64/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': None, 'repo_gpgcheck': False}], 'sandbox': 'eyildizemre/migr--eyildizemre', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'storage': 1, 'submitter': 'eyildizemre', 'tags': [], 'task_id': '11161007-fedora-rawhide-x86_64', 'timeout': 18000, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/eyildizemre/migr/migr /var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/eyildizemre/migr/migr', '/var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr'... Running: git checkout c376b0ec09cd732d0b6fe1199597bba69bd91816 -- cmd: ['git', 'checkout', 'c376b0ec09cd732d0b6fe1199597bba69bd91816', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr rc: 0 stdout: stderr: Note: switching to 'c376b0ec09cd732d0b6fe1199597bba69bd91816'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at c376b0e automatic import of migr Running: dist-git-client sources cmd: ['dist-git-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr rc: 0 stdout: stderr: INFO: Reading stdout from command: git rev-parse --abbrev-ref HEAD INFO: Reading stdout from command: git rev-parse HEAD INFO: Reading sources specification file: sources INFO: Downloading migr-0.1.1.tar.gz tail: /var/lib/copr-rpmbuild/main.log: file truncated INFO: Reading stdout from command: curl --help all INFO: Calling: curl -H Pragma: -H 'Accept-Encoding: identity' -o migr-0.1.1.tar.gz --location --connect-timeout 60 --retry 3 --retry-delay 10 --remote-time --show-error --fail --retry-all-errors https://copr-dist-git.fedorainfracloud.org/repo/pkgs/eyildizemre/migr/migr/migr-0.1.1.tar.gz/md5/ca92c75b80264f7bd350718983b1b6e2/migr-0.1.1.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 0.98M 100 0.98M 0 0 7.38M 0 0 INFO: Reading stdout from command: md5sum migr-0.1.1.tar.gz Running (timeout=18000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr/migr.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1792167799.393859 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 6.9 starting (python version = 3.14.5, NVR = mock-6.9-1.fc44), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr/migr.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1792167799.393859 -r /var/lib/copr-rpmbuild/results/configs/child.cfg Start(bootstrap): init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish(bootstrap): init plugins Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr/migr.spec) Config(fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Mock Version: 6.9 INFO: Mock Version: 6.9 Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1792167799.393859/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata INFO: Guessed host environment type: unknown INFO: Using container image: registry.fedoraproject.org/fedora:rawhide INFO: Pulling image: registry.fedoraproject.org/fedora:rawhide INFO: Tagging container image as mock-bootstrap-c68db30a-a2cb-43d9-a186-55adfc1e428e INFO: Checking that a5edc76f79448546267223481743308eb2566b66f019ec071fe295ee6868e039 image matches host's architecture INFO: Copy content of container a5edc76f79448546267223481743308eb2566b66f019ec071fe295ee6868e039 to /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1792167799.393859/root INFO: mounting a5edc76f79448546267223481743308eb2566b66f019ec071fe295ee6868e039 with podman image mount INFO: image a5edc76f79448546267223481743308eb2566b66f019ec071fe295ee6868e039 as /var/lib/containers/storage/overlay/8db1a22ff28cbed2fa350950c25bbc5899e8f4d3b387f9bcfc514eac7d8125c5/merged INFO: umounting image a5edc76f79448546267223481743308eb2566b66f019ec071fe295ee6868e039 (/var/lib/containers/storage/overlay/8db1a22ff28cbed2fa350950c25bbc5899e8f4d3b387f9bcfc514eac7d8125c5/merged) with podman image umount INFO: Removing image mock-bootstrap-c68db30a-a2cb-43d9-a186-55adfc1e428e INFO: Package manager dnf5 detected and used (fallback) INFO: Not updating bootstrap chroot, bootstrap_image_ready=True Start(bootstrap): creating root cache Finish(bootstrap): creating root cache Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1792167799.393859/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf5 detected and used (direct choice) INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-6.1.0-1.fc46.x86_64 rpm-sequoia-1.10.3-1.fc46.x86_64 dnf5-5.4.6.0-1.fc46.x86_64 dnf5-plugins-5.4.6.0-1.fc46.x86_64 Start: installing minimal buildroot with dnf5 Updating and loading repositories: fedora 100% | 20.6 MiB/s | 22.3 MiB | 00m01s Copr repository 100% | 2.8 KiB/s | 3.0 KiB | 00m01s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash x86_64 0:5.3.20-1.fc46 fedora 8.5 MiB bzip2 x86_64 0:1.0.8-24.fc45 fedora 95.0 KiB coreutils x86_64 0:9.12-1.fc46 fedora 6.3 MiB cpio x86_64 0:2.15-10.fc45 fedora 1.1 MiB diffutils x86_64 0:3.12-6.fc45 fedora 1.6 MiB fedora-release-common noarch 0:46-0.1 fedora 4.6 KiB findutils x86_64 1:4.11.0-2.fc45 fedora 1.9 MiB gawk x86_64 0:5.4.1-1.fc45 fedora 2.2 MiB glibc-minimal-langpack x86_64 0:2.44.9000-5.fc46 fedora 0.0 B grep x86_64 0:3.12-4.fc45 fedora 1.0 MiB gzip x86_64 0:1.15-1.fc46 fedora 445.2 KiB info x86_64 0:7.3-3.fc45 fedora 372.4 KiB patch x86_64 0:2.8-6.fc46 fedora 226.6 KiB redhat-rpm-config noarch 0:345-4.fc46 fedora 184.2 KiB rpm-build x86_64 0:6.1.0-1.fc46 fedora 312.1 KiB sed x86_64 0:4.10-2.fc45 fedora 866.5 KiB shadow-utils x86_64 2:4.20.0-2.fc46 fedora 3.9 MiB tar x86_64 2:1.35-9.fc45 fedora 3.0 MiB unzip x86_64 0:6.0-71.fc45 fedora 441.8 KiB util-linux x86_64 0:2.42.4-2.fc46 fedora 3.7 MiB which x86_64 0:2.25-2.fc45 fedora 83.6 KiB xz x86_64 1:5.8.4-1.fc46 fedora 1.4 MiB Installing dependencies: R-srpm-macros noarch 0:1.3.7-3.fc45 fedora 3.5 KiB add-determinism x86_64 0:0.7.3-3.fc45 fedora 2.2 MiB alternatives x86_64 0:1.33-6.fc45 fedora 62.1 KiB ansible-srpm-macros noarch 0:1-22.fc45 fedora 35.7 KiB audit-libs x86_64 0:4.2.1-2.fc45 fedora 390.5 KiB binutils x86_64 0:2.47.50-15.fc46 fedora 24.5 MiB build-reproducibility-srpm-macros noarch 0:0.7.3-3.fc45 fedora 1.2 KiB bzip2-libs x86_64 0:1.0.8-24.fc45 fedora 80.5 KiB ca-certificates noarch 0:2026.2.90_v9.0.317-1.fc46 fedora 2.6 MiB cmake-srpm-macros noarch 0:4.3.0-5.fc45 fedora 524.0 B coreutils-common x86_64 0:9.12-1.fc46 fedora 11.5 MiB crypto-policies noarch 0:20260713-2.gitc42da77.fc45 fedora 134.3 KiB curl x86_64 0:8.23.0-1.fc46 fedora 486.1 KiB cyrus-sasl-lib x86_64 0:2.1.28-37.fc45 fedora 2.3 MiB debugedit x86_64 0:5.3-3.fc45 fedora 220.8 KiB dwz x86_64 0:0.17-3.fc45 fedora 291.1 KiB ed x86_64 0:1.22.6-1.fc46 fedora 150.9 KiB efi-srpm-macros noarch 0:6-9.fc45 fedora 40.3 KiB elfutils x86_64 0:0.196-1.fc46 fedora 3.2 MiB elfutils-debuginfod-client x86_64 0:0.196-1.fc46 fedora 79.9 KiB elfutils-libelf x86_64 0:0.196-1.fc46 fedora 1.4 MiB elfutils-libs x86_64 0:0.196-1.fc46 fedora 719.6 KiB erlang-srpm-macros noarch 0:0.4.0-1.fc46 fedora 2.0 KiB fedora-gpg-keys noarch 0:46-0.3 fedora 130.3 KiB fedora-release noarch 0:46-0.1 fedora 0.0 B fedora-release-identity-basic noarch 0:46-0.1 fedora 664.0 B fedora-repos noarch 0:46-0.3 fedora 4.9 KiB fedora-repos-rawhide noarch 0:46-0.3 fedora 2.2 KiB file x86_64 0:5.48-3.fc46 fedora 101.9 KiB file-libs x86_64 0:5.48-3.fc46 fedora 12.3 MiB filesystem x86_64 0:3.18-59.fc45 fedora 112.0 B filesystem-srpm-macros noarch 0:3.18-59.fc45 fedora 38.2 KiB fips-provider x86_64 0:1.5.3-1.fc46 fedora 4.8 MiB fonts-srpm-macros noarch 1:5.0.0-4.fc45 fedora 55.8 KiB forge-srpm-macros noarch 0:0.4.0-5.fc45 fedora 38.9 KiB fpc-srpm-macros noarch 0:1.3-17.fc45 fedora 144.0 B gap-srpm-macros noarch 0:2-3.fc45 fedora 2.1 KiB gdb-minimal x86_64 0:17.2-6.fc46 fedora 14.2 MiB gdbm-libs x86_64 1:1.26-1.fc46 fedora 134.2 KiB ghc-srpm-macros noarch 0:1.10-2.fc45 fedora 792.0 B glibc x86_64 0:2.44.9000-5.fc46 fedora 7.2 MiB glibc-common x86_64 0:2.44.9000-5.fc46 fedora 1.0 MiB glibc-gconv-extra x86_64 0:2.44.9000-5.fc46 fedora 7.7 MiB gmp x86_64 1:6.3.0-6.fc45 fedora 815.2 KiB gnat-srpm-macros noarch 0:7-3.fc45 fedora 1.0 KiB gnome-srpm-macros noarch 0:1.0-2.fc45 fedora 3.5 KiB gnulib-l10n noarch 0:20241231-4.fc45 fedora 655.0 KiB gnupg2 x86_64 0:2.4.9-18.fc45 fedora 6.5 MiB gnupg2-dirmngr x86_64 0:2.4.9-18.fc45 fedora 630.1 KiB gnupg2-gpg-agent x86_64 0:2.4.9-18.fc45 fedora 678.8 KiB gnupg2-gpgconf x86_64 0:2.4.9-18.fc45 fedora 253.8 KiB gnupg2-keyboxd x86_64 0:2.4.9-18.fc45 fedora 201.3 KiB gnupg2-verify x86_64 0:2.4.9-18.fc45 fedora 356.3 KiB gnutls x86_64 0:3.8.13-5.fc46 fedora 3.8 MiB go-srpm-macros noarch 0:3.8.0-3.fc45 fedora 61.9 KiB gpgverify noarch 0:2.2-5.fc45 fedora 8.7 KiB ima-evm-utils-libs x86_64 0:1.6.2-12.fc45 fedora 56.6 KiB jansson x86_64 0:2.14-5.fc45 fedora 89.0 KiB java-srpm-macros noarch 0:1-9.fc45 fedora 870.0 B json-c x86_64 0:0.18-9.fc45 fedora 82.7 KiB kernel-srpm-macros noarch 0:1.0-30.fc45 fedora 1.9 KiB keyutils-libs x86_64 0:1.6.3-8.fc45 fedora 54.2 KiB krb5-libs x86_64 0:1.22.2-9.fc45 fedora 2.4 MiB libacl x86_64 0:2.4.0-2.fc45 fedora 43.9 KiB libarchive x86_64 0:3.8.9-2.fc46 fedora 1.0 MiB libassuan x86_64 0:2.5.7-6.fc45 fedora 163.9 KiB libattr x86_64 0:2.6.0-2.fc45 fedora 24.3 KiB libblkid x86_64 0:2.42.4-2.fc46 fedora 282.3 KiB libbrotli x86_64 0:1.2.0-6.fc45 fedora 865.0 KiB libcap x86_64 0:2.78-2.fc45 fedora 208.2 KiB libcap-ng x86_64 0:0.9.6-1.fc46 fedora 68.8 KiB libcbor x86_64 0:0.14.0-3.fc45 fedora 83.5 KiB libcom_err x86_64 0:1.47.4-2.fc45 fedora 63.0 KiB libcurl x86_64 0:8.23.0-1.fc46 fedora 1.1 MiB libeconf x86_64 0:0.7.9-4.fc45 fedora 64.8 KiB libevent x86_64 0:2.1.13-1.fc46 fedora 980.7 KiB libfdisk x86_64 0:2.42.4-2.fc46 fedora 392.3 KiB libffi x86_64 0:3.8.0-1.fc46 fedora 95.5 KiB libfido2 x86_64 0:1.17.0-6.fc46 fedora 256.5 KiB libfsverity x86_64 0:1.7-4.fc45 fedora 24.4 KiB libgcc x86_64 0:16.2.1-2.fc46.1 fedora 270.7 KiB libgcrypt x86_64 0:1.12.4-1.fc46 fedora 1.7 MiB libgomp x86_64 0:16.2.1-2.fc46.1 fedora 577.5 KiB libgpg-error x86_64 0:1.61-2.fc45 fedora 953.9 KiB libidn2 x86_64 0:2.3.8-4.fc45 fedora 556.4 KiB libksba x86_64 0:1.8.1-1.fc46 fedora 431.9 KiB liblastlog2 x86_64 0:2.42.4-2.fc46 fedora 37.6 KiB libmount x86_64 0:2.42.4-2.fc46 fedora 408.9 KiB libnghttp2 x86_64 0:1.69.0-6.fc46 fedora 166.1 KiB libnghttp3 x86_64 0:1.18.0-1.fc45 fedora 163.4 KiB libpfm x86_64 0:4.14.1-2.fc46 fedora 2.4 MiB libpkgconf x86_64 0:2.5.1-2.fc45 fedora 90.1 KiB libpsl x86_64 0:0.23.3-1.fc46 fedora 80.4 KiB libselinux x86_64 0:3.11-5.fc46 fedora 205.2 KiB libselinux-utils x86_64 0:3.11-5.fc46 fedora 306.0 KiB libsemanage x86_64 0:3.11-4.fc46 fedora 320.6 KiB libsepol x86_64 0:3.11-2.fc45 fedora 866.1 KiB libsmartcols x86_64 0:2.42.4-2.fc46 fedora 188.5 KiB libssh x86_64 0:0.12.2-1.fc45 fedora 725.7 KiB libssh-config noarch 0:0.12.2-1.fc45 fedora 277.0 B libstdc++ x86_64 0:16.2.1-2.fc46.1 fedora 3.1 MiB libtasn1 x86_64 0:4.21.0-2.fc45 fedora 176.6 KiB libtool-ltdl x86_64 0:2.6.2-1.fc46 fedora 70.0 KiB libunistring x86_64 0:1.1-12.fc45 fedora 1.7 MiB libusb1 x86_64 0:1.0.30-2.fc45 fedora 180.1 KiB libuuid x86_64 0:2.42.4-2.fc46 fedora 37.2 KiB libverto x86_64 0:0.3.2-13.fc45 fedora 25.3 KiB libxcrypt x86_64 0:4.5.2-4.fc45 fedora 293.2 KiB libxml2 x86_64 0:2.15.4-1.fc46 fedora 1.7 MiB libzstd x86_64 0:1.5.7-6.fc45 fedora 956.1 KiB linkdupes x86_64 0:0.7.3-3.fc45 fedora 782.1 KiB lua-libs x86_64 0:5.5.1-2.fc46 fedora 298.0 KiB lua-srpm-macros noarch 0:1-18.fc45 fedora 1.3 KiB lz4-libs x86_64 0:1.10.0-5.fc45 fedora 165.3 KiB meson-srpm-macros noarch 0:1.12.1-2.fc46 fedora 1.7 KiB mpfr x86_64 0:4.2.2-4.fc45 fedora 849.2 KiB ncurses-base noarch 0:6.6-3.fc45 fedora 329.7 KiB ncurses-libs x86_64 0:6.6-3.fc45 fedora 969.1 KiB nettle x86_64 0:4.0-5.fc45 fedora 801.9 KiB ngtcp2 x86_64 0:1.22.1-3.fc45 fedora 334.3 KiB ngtcp2-crypto-ossl x86_64 0:1.22.1-3.fc45 fedora 51.6 KiB npth x86_64 0:1.8-5.fc45 fedora 49.5 KiB ocaml-srpm-macros noarch 0:11-4.fc45 fedora 1.9 KiB openblas-srpm-macros noarch 0:2-23.fc46 fedora 124.0 B openldap x86_64 0:2.6.15-1.fc46 fedora 683.4 KiB openssl-libs x86_64 1:4.0.3-1.fc46 fedora 6.7 MiB p11-kit x86_64 0:0.26.5-1.fc45 fedora 2.6 MiB p11-kit-trust x86_64 0:0.26.5-1.fc45 fedora 478.4 KiB package-notes-srpm-macros noarch 0:0.20-2.fc45 fedora 1.6 KiB pam-libs x86_64 0:1.7.2-4.fc45 fedora 134.5 KiB pcre2 x86_64 0:10.47-1.fc45.2 fedora 718.5 KiB pcre2-syntax noarch 0:10.47-1.fc45.2 fedora 281.9 KiB perl-srpm-macros noarch 0:1-65.fc45 fedora 861.0 B pkgconf x86_64 0:2.5.1-2.fc45 fedora 92.7 KiB pkgconf-m4 noarch 0:2.5.1-2.fc45 fedora 14.3 KiB pkgconf-pkg-config x86_64 0:2.5.1-2.fc45 fedora 989.0 B policycoreutils x86_64 0:3.11-2.fc45 fedora 892.9 KiB popt x86_64 0:1.19-11.fc45 fedora 136.7 KiB publicsuffix-list-dafsa noarch 0:20260624-2.fc45 fedora 71.3 KiB pyproject-srpm-macros noarch 0:1.24.0-1.fc46 fedora 3.4 KiB python-srpm-macros noarch 0:3.15-2.fc45 fedora 51.6 KiB qt5-srpm-macros noarch 0:5.15.18-3.fc45 fedora 500.0 B qt6-srpm-macros noarch 0:6.11.2-1.fc46 fedora 472.0 B readline x86_64 0:8.3-7.fc46 fedora 515.6 KiB redhat-systemd-presets noarch 0:102-3.fc45 fedora 1.0 KiB redhat-systemd-presets-common noarch 0:102-3.fc45 fedora 16.9 KiB rpm x86_64 0:6.1.0-1.fc46 fedora 3.1 MiB rpm-build-libs x86_64 0:6.1.0-1.fc46 fedora 288.3 KiB rpm-libs x86_64 0:6.1.0-1.fc46 fedora 1.1 MiB rpm-plugin-selinux x86_64 0:6.1.0-1.fc46 fedora 11.9 KiB rpm-sequoia x86_64 0:1.10.3-1.fc46 fedora 2.4 MiB rpm-sign-libs x86_64 0:6.1.0-1.fc46 fedora 39.6 KiB rust-srpm-macros noarch 0:28.5-2.fc45 fedora 5.5 KiB selinux-policy noarch 0:45.21-1.fc46 fedora 32.1 KiB selinux-policy-targeted noarch 0:45.21-1.fc46 fedora 19.0 MiB setup noarch 0:2.15.1-2.fc45 fedora 725.6 KiB sqlite-libs x86_64 0:3.53.4-1.fc45 fedora 1.6 MiB systemd-libs x86_64 0:262-3.fc46 fedora 2.8 MiB systemd-standalone-sysusers x86_64 0:262-3.fc46 fedora 981.3 KiB tpm2-tss x86_64 0:4.2.0-1.fc45 fedora 1.7 MiB tree-sitter-srpm-macros noarch 0:0.4.6-2.fc45 fedora 8.6 KiB util-linux-core x86_64 0:2.42.4-2.fc46 fedora 1.5 MiB xxhash-libs x86_64 0:0.8.4-1.fc46 fedora 94.0 KiB xz-libs x86_64 1:5.8.4-1.fc46 fedora 221.7 KiB zig-srpm-macros noarch 0:1-9.fc45 fedora 1.3 KiB zip x86_64 0:3.0-46.fc45 fedora 694.1 KiB zlib-ng-compat x86_64 0:2.3.3-6.fc45 fedora 165.6 KiB zstd x86_64 0:1.5.7-6.fc45 fedora 502.6 KiB Installing groups: Buildsystem building group Transaction Summary: Installing: 190 packages Total size of inbound packages is 72 MiB. Need to download 72 MiB. After this operation, 231 MiB extra will be used (install 231 MiB, remove 0 B). [ 1/190] bzip2-0:1.0.8-24.fc45.x86_64 100% | 10.2 MiB/s | 52.3 KiB | 00m00s [ 2/190] coreutils-0:9.12-1.fc46.x86_6 100% | 81.2 MiB/s | 1.3 MiB | 00m00s [ 3/190] bash-0:5.3.20-1.fc46.x86_64 100% | 111.3 MiB/s | 1.9 MiB | 00m00s [ 4/190] cpio-0:2.15-10.fc45.x86_64 100% | 28.6 MiB/s | 292.5 KiB | 00m00s [ 5/190] diffutils-0:3.12-6.fc45.x86_6 100% | 64.5 MiB/s | 396.6 KiB | 00m00s [ 6/190] fedora-release-common-0:46-0. 100% | 5.9 MiB/s | 18.2 KiB | 00m00s [ 7/190] findutils-1:4.11.0-2.fc45.x86 100% | 79.6 MiB/s | 570.7 KiB | 00m00s [ 8/190] glibc-minimal-langpack-0:2.44 100% | 27.1 MiB/s | 139.0 KiB | 00m00s [ 9/190] grep-0:3.12-4.fc45.x86_64 100% | 58.8 MiB/s | 301.0 KiB | 00m00s [ 10/190] gzip-0:1.15-1.fc46.x86_64 100% | 62.9 MiB/s | 193.3 KiB | 00m00s [ 11/190] info-0:7.3-3.fc45.x86_64 100% | 62.2 MiB/s | 191.2 KiB | 00m00s [ 12/190] patch-0:2.8-6.fc46.x86_64 100% | 27.9 MiB/s | 114.4 KiB | 00m00s [ 13/190] redhat-rpm-config-0:345-4.fc4 100% | 25.4 MiB/s | 78.1 KiB | 00m00s [ 14/190] rpm-build-0:6.1.0-1.fc46.x86_ 100% | 51.5 MiB/s | 158.1 KiB | 00m00s [ 15/190] sed-0:4.10-2.fc45.x86_64 100% | 52.5 MiB/s | 322.8 KiB | 00m00s [ 16/190] shadow-utils-2:4.20.0-2.fc46. 100% | 118.1 MiB/s | 1.4 MiB | 00m00s [ 17/190] tar-2:1.35-9.fc45.x86_64 100% | 70.6 MiB/s | 867.4 KiB | 00m00s [ 18/190] unzip-0:6.0-71.fc45.x86_64 100% | 21.7 MiB/s | 199.6 KiB | 00m00s [ 19/190] which-0:2.25-2.fc45.x86_64 100% | 10.3 MiB/s | 42.2 KiB | 00m00s [ 20/190] xz-1:5.8.4-1.fc46.x86_64 100% | 91.3 MiB/s | 654.4 KiB | 00m00s [ 21/190] gawk-0:5.4.1-1.fc45.x86_64 100% | 84.1 MiB/s | 1.2 MiB | 00m00s [ 22/190] util-linux-0:2.42.4-2.fc46.x8 100% | 70.2 MiB/s | 1.3 MiB | 00m00s [ 23/190] filesystem-0:3.18-59.fc45.x86 100% | 90.8 MiB/s | 1.8 MiB | 00m00s [ 24/190] ncurses-libs-0:6.6-3.fc45.x86 100% | 47.9 MiB/s | 343.7 KiB | 00m00s [ 25/190] glibc-0:2.44.9000-5.fc46.x86_ 100% | 130.9 MiB/s | 2.5 MiB | 00m00s [ 26/190] bzip2-libs-0:1.0.8-24.fc45.x8 100% | 6.1 MiB/s | 43.5 KiB | 00m00s [ 27/190] libacl-0:2.4.0-2.fc45.x86_64 100% | 6.7 MiB/s | 27.5 KiB | 00m00s [ 28/190] gmp-1:6.3.0-6.fc45.x86_64 100% | 62.8 MiB/s | 321.8 KiB | 00m00s [ 29/190] libattr-0:2.6.0-2.fc45.x86_64 100% | 5.9 MiB/s | 18.1 KiB | 00m00s [ 30/190] libcap-0:2.78-2.fc45.x86_64 100% | 28.8 MiB/s | 88.6 KiB | 00m00s [ 31/190] coreutils-common-0:9.12-1.fc4 100% | 123.9 MiB/s | 2.2 MiB | 00m00s [ 32/190] libselinux-0:3.11-5.fc46.x86_ 100% | 20.3 MiB/s | 104.0 KiB | 00m00s [ 33/190] fedora-repos-0:46-0.3.noarch 100% | 3.1 MiB/s | 9.6 KiB | 00m00s [ 34/190] systemd-libs-0:262-3.fc46.x86 100% | 104.3 MiB/s | 961.5 KiB | 00m00s [ 35/190] redhat-systemd-presets-0:102- 100% | 1.7 MiB/s | 8.5 KiB | 00m00s [ 36/190] pcre2-0:10.47-1.fc45.2.x86_64 100% | 90.1 MiB/s | 276.7 KiB | 00m00s [ 37/190] glibc-common-0:2.44.9000-5.fc 100% | 70.3 MiB/s | 431.9 KiB | 00m00s [ 38/190] openssl-libs-1:4.0.3-1.fc46.x 100% | 97.6 MiB/s | 2.3 MiB | 00m00s [ 39/190] R-srpm-macros-0:1.3.7-3.fc45. 100% | 3.6 MiB/s | 11.1 KiB | 00m00s [ 40/190] ed-0:1.22.6-1.fc46.x86_64 100% | 13.9 MiB/s | 85.6 KiB | 00m00s [ 41/190] ansible-srpm-macros-0:1-22.fc 100% | 6.5 MiB/s | 19.8 KiB | 00m00s [ 42/190] build-reproducibility-srpm-ma 100% | 3.5 MiB/s | 10.8 KiB | 00m00s [ 43/190] cmake-srpm-macros-0:4.3.0-5.f 100% | 3.4 MiB/s | 10.3 KiB | 00m00s [ 44/190] dwz-0:0.17-3.fc45.x86_64 100% | 45.3 MiB/s | 139.2 KiB | 00m00s [ 45/190] efi-srpm-macros-0:6-9.fc45.no 100% | 7.0 MiB/s | 21.4 KiB | 00m00s [ 46/190] erlang-srpm-macros-0:0.4.0-1. 100% | 3.2 MiB/s | 10.0 KiB | 00m00s [ 47/190] filesystem-srpm-macros-0:3.18 100% | 12.9 MiB/s | 26.4 KiB | 00m00s [ 48/190] file-0:5.48-3.fc46.x86_64 100% | 16.5 MiB/s | 50.6 KiB | 00m00s [ 49/190] fonts-srpm-macros-1:5.0.0-4.f 100% | 8.8 MiB/s | 27.2 KiB | 00m00s [ 50/190] forge-srpm-macros-0:0.4.0-5.f 100% | 9.6 MiB/s | 19.7 KiB | 00m00s [ 51/190] fpc-srpm-macros-0:1.3-17.fc45 100% | 3.8 MiB/s | 7.8 KiB | 00m00s [ 52/190] gap-srpm-macros-0:2-3.fc45.no 100% | 3.0 MiB/s | 9.3 KiB | 00m00s [ 53/190] ghc-srpm-macros-0:1.10-2.fc45 100% | 2.8 MiB/s | 8.5 KiB | 00m00s [ 54/190] gnat-srpm-macros-0:7-3.fc45.n 100% | 2.8 MiB/s | 8.6 KiB | 00m00s [ 55/190] gnome-srpm-macros-0:1.0-2.fc4 100% | 2.9 MiB/s | 8.8 KiB | 00m00s [ 56/190] go-srpm-macros-0:3.8.0-3.fc45 100% | 9.1 MiB/s | 27.8 KiB | 00m00s [ 57/190] java-srpm-macros-0:1-9.fc45.n 100% | 4.0 MiB/s | 8.3 KiB | 00m00s [ 58/190] kernel-srpm-macros-0:1.0-30.f 100% | 2.7 MiB/s | 8.3 KiB | 00m00s [ 59/190] lua-srpm-macros-0:1-18.fc45.n 100% | 4.2 MiB/s | 8.7 KiB | 00m00s [ 60/190] meson-srpm-macros-0:1.12.1-2. 100% | 3.8 MiB/s | 11.8 KiB | 00m00s [ 61/190] ocaml-srpm-macros-0:11-4.fc45 100% | 4.4 MiB/s | 9.0 KiB | 00m00s [ 62/190] openblas-srpm-macros-0:2-23.f 100% | 7.4 MiB/s | 7.5 KiB | 00m00s [ 63/190] package-notes-srpm-macros-0:0 100% | 5.1 MiB/s | 10.5 KiB | 00m00s [ 64/190] perl-srpm-macros-0:1-65.fc45. 100% | 4.1 MiB/s | 8.4 KiB | 00m00s [ 65/190] pyproject-srpm-macros-0:1.24. 100% | 5.0 MiB/s | 15.4 KiB | 00m00s [ 66/190] python-srpm-macros-0:3.15-2.f 100% | 7.8 MiB/s | 23.9 KiB | 00m00s [ 67/190] qt5-srpm-macros-0:5.15.18-3.f 100% | 2.6 MiB/s | 8.1 KiB | 00m00s [ 68/190] qt6-srpm-macros-0:6.11.2-1.fc 100% | 4.4 MiB/s | 9.1 KiB | 00m00s [ 69/190] tree-sitter-srpm-macros-0:0.4 100% | 6.8 MiB/s | 14.0 KiB | 00m00s [ 70/190] rust-srpm-macros-0:28.5-2.fc4 100% | 2.8 MiB/s | 11.4 KiB | 00m00s [ 71/190] rpm-0:6.1.0-1.fc46.x86_64 100% | 93.0 MiB/s | 571.3 KiB | 00m00s [ 72/190] zig-srpm-macros-0:1-9.fc45.no 100% | 4.3 MiB/s | 8.8 KiB | 00m00s [ 73/190] zip-0:3.0-46.fc45.x86_64 100% | 64.6 MiB/s | 264.6 KiB | 00m00s [ 74/190] debugedit-0:5.3-3.fc45.x86_64 100% | 21.5 MiB/s | 87.9 KiB | 00m00s [ 75/190] elfutils-0:0.196-1.fc46.x86_6 100% | 109.1 MiB/s | 670.0 KiB | 00m00s [ 76/190] elfutils-libelf-0:0.196-1.fc4 100% | 46.6 MiB/s | 238.4 KiB | 00m00s [ 77/190] libarchive-0:3.8.9-2.fc46.x86 100% | 62.2 MiB/s | 446.0 KiB | 00m00s [ 78/190] libgcc-0:16.2.1-2.fc46.1.x86_ 100% | 33.3 MiB/s | 136.6 KiB | 00m00s [ 79/190] popt-0:1.19-11.fc45.x86_64 100% | 16.3 MiB/s | 66.6 KiB | 00m00s [ 80/190] readline-0:8.3-7.fc46.x86_64 100% | 27.9 MiB/s | 228.7 KiB | 00m00s [ 81/190] rpm-build-libs-0:6.1.0-1.fc46 100% | 26.3 MiB/s | 134.8 KiB | 00m00s [ 82/190] libstdc++-0:16.2.1-2.fc46.1.x 100% | 71.5 MiB/s | 1.0 MiB | 00m00s [ 83/190] rpm-libs-0:6.1.0-1.fc46.x86_6 100% | 93.1 MiB/s | 476.6 KiB | 00m00s [ 84/190] zstd-0:1.5.7-6.fc45.x86_64 100% | 46.8 MiB/s | 191.7 KiB | 00m00s [ 85/190] audit-libs-0:4.2.1-2.fc45.x86 100% | 35.0 MiB/s | 143.3 KiB | 00m00s [ 86/190] libeconf-0:0.7.9-4.fc45.x86_6 100% | 11.7 MiB/s | 35.9 KiB | 00m00s [ 87/190] libsemanage-0:3.11-4.fc46.x86 100% | 42.5 MiB/s | 130.5 KiB | 00m00s [ 88/190] libxcrypt-0:4.5.2-4.fc45.x86_ 100% | 32.0 MiB/s | 130.9 KiB | 00m00s [ 89/190] pam-libs-0:1.7.2-4.fc45.x86_6 100% | 19.0 MiB/s | 58.4 KiB | 00m00s [ 90/190] setup-0:2.15.1-2.fc45.noarch 100% | 51.3 MiB/s | 157.6 KiB | 00m00s [ 91/190] xz-libs-1:5.8.4-1.fc46.x86_64 100% | 37.9 MiB/s | 116.5 KiB | 00m00s [ 92/190] mpfr-0:4.2.2-4.fc45.x86_64 100% | 58.2 MiB/s | 357.4 KiB | 00m00s [ 93/190] libblkid-0:2.42.4-2.fc46.x86_ 100% | 26.2 MiB/s | 134.0 KiB | 00m00s [ 94/190] libcap-ng-0:0.9.6-1.fc46.x86_ 100% | 8.5 MiB/s | 34.8 KiB | 00m00s [ 95/190] libfdisk-0:2.42.4-2.fc46.x86_ 100% | 55.2 MiB/s | 169.6 KiB | 00m00s [ 96/190] liblastlog2-0:2.42.4-2.fc46.x 100% | 8.1 MiB/s | 25.0 KiB | 00m00s [ 97/190] libmount-0:2.42.4-2.fc46.x86_ 100% | 43.9 MiB/s | 179.8 KiB | 00m00s [ 98/190] libsmartcols-0:2.42.4-2.fc46. 100% | 28.9 MiB/s | 88.8 KiB | 00m00s [ 99/190] libuuid-0:2.42.4-2.fc46.x86_6 100% | 9.0 MiB/s | 27.7 KiB | 00m00s [100/190] zlib-ng-compat-0:2.3.3-6.fc45 100% | 44.2 MiB/s | 90.4 KiB | 00m00s [101/190] util-linux-core-0:2.42.4-2.fc 100% | 94.9 MiB/s | 582.9 KiB | 00m00s [102/190] ncurses-base-0:6.6-3.fc45.noa 100% | 17.2 MiB/s | 88.1 KiB | 00m00s [103/190] gnulib-l10n-0:20241231-4.fc45 100% | 29.4 MiB/s | 150.4 KiB | 00m00s [104/190] glibc-gconv-extra-0:2.44.9000 100% | 122.5 MiB/s | 1.7 MiB | 00m00s [105/190] libsepol-0:3.11-2.fc45.x86_64 100% | 50.9 MiB/s | 365.2 KiB | 00m00s [106/190] ca-certificates-0:2026.2.90_v 100% | 117.8 MiB/s | 964.7 KiB | 00m00s [107/190] crypto-policies-0:20260713-2. 100% | 19.0 MiB/s | 97.5 KiB | 00m00s [108/190] fedora-gpg-keys-0:46-0.3.noar 100% | 35.1 MiB/s | 143.8 KiB | 00m00s [109/190] fedora-repos-rawhide-0:46-0.3 100% | 2.2 MiB/s | 9.0 KiB | 00m00s [110/190] redhat-systemd-presets-common 100% | 4.3 MiB/s | 13.2 KiB | 00m00s [111/190] fips-provider-0:1.5.3-1.fc46. 100% | 115.6 MiB/s | 1.6 MiB | 00m00s [112/190] pcre2-syntax-0:10.47-1.fc45.2 100% | 26.9 MiB/s | 165.1 KiB | 00m00s [113/190] linkdupes-0:0.7.3-3.fc45.x86_ 100% | 55.2 MiB/s | 339.2 KiB | 00m00s [114/190] add-determinism-0:0.7.3-3.fc4 100% | 82.6 MiB/s | 845.7 KiB | 00m00s [115/190] file-libs-0:5.48-3.fc46.x86_6 100% | 86.4 MiB/s | 884.7 KiB | 00m00s [116/190] curl-0:8.23.0-1.fc46.x86_64 100% | 39.9 MiB/s | 245.2 KiB | 00m00s [117/190] elfutils-libs-0:0.196-1.fc46. 100% | 55.6 MiB/s | 284.9 KiB | 00m00s [118/190] elfutils-debuginfod-client-0: 100% | 15.3 MiB/s | 47.1 KiB | 00m00s [119/190] json-c-0:0.18-9.fc45.x86_64 100% | 15.2 MiB/s | 46.7 KiB | 00m00s [120/190] libpfm-0:4.14.1-2.fc46.x86_64 100% | 67.9 MiB/s | 278.0 KiB | 00m00s [121/190] libzstd-0:1.5.7-6.fc45.x86_64 100% | 44.4 MiB/s | 363.9 KiB | 00m00s [122/190] lz4-libs-0:1.10.0-5.fc45.x86_ 100% | 19.6 MiB/s | 80.4 KiB | 00m00s [123/190] libxml2-0:2.15.4-1.fc46.x86_6 100% | 94.4 MiB/s | 676.7 KiB | 00m00s [124/190] lua-libs-0:5.5.1-2.fc46.x86_6 100% | 47.0 MiB/s | 144.4 KiB | 00m00s [125/190] libgomp-0:16.2.1-2.fc46.1.x86 100% | 77.7 MiB/s | 397.6 KiB | 00m00s [126/190] rpm-sign-libs-0:6.1.0-1.fc46. 100% | 6.6 MiB/s | 26.9 KiB | 00m00s [127/190] rpm-sequoia-0:1.10.3-1.fc46.x 100% | 92.1 MiB/s | 942.6 KiB | 00m00s [128/190] sqlite-libs-0:3.53.4-1.fc45.x 100% | 72.1 MiB/s | 812.1 KiB | 00m00s [129/190] ima-evm-utils-libs-0:1.6.2-12 100% | 14.8 MiB/s | 30.2 KiB | 00m00s [130/190] libfsverity-0:1.7-4.fc45.x86_ 100% | 4.6 MiB/s | 19.0 KiB | 00m00s [131/190] gpgverify-0:2.2-5.fc45.noarch 100% | 3.7 MiB/s | 11.3 KiB | 00m00s [132/190] gnupg2-0:2.4.9-18.fc45.x86_64 100% | 82.6 MiB/s | 1.7 MiB | 00m00s [133/190] gnupg2-dirmngr-0:2.4.9-18.fc4 100% | 45.8 MiB/s | 281.6 KiB | 00m00s [134/190] gnupg2-gpg-agent-0:2.4.9-18.f 100% | 45.8 MiB/s | 281.3 KiB | 00m00s [135/190] gnupg2-keyboxd-0:2.4.9-18.fc4 100% | 31.5 MiB/s | 96.6 KiB | 00m00s [136/190] gnupg2-gpgconf-0:2.4.9-18.fc4 100% | 28.5 MiB/s | 116.5 KiB | 00m00s [137/190] gnupg2-verify-0:2.4.9-18.fc45 100% | 43.0 MiB/s | 176.1 KiB | 00m00s [138/190] libassuan-0:2.5.7-6.fc45.x86_ 100% | 22.3 MiB/s | 68.5 KiB | 00m00s [139/190] libgcrypt-0:1.12.4-1.fc46.x86 100% | 102.7 MiB/s | 631.2 KiB | 00m00s [140/190] libgpg-error-0:1.61-2.fc45.x8 100% | 49.4 MiB/s | 252.9 KiB | 00m00s [141/190] npth-0:1.8-5.fc45.x86_64 100% | 6.2 MiB/s | 25.5 KiB | 00m00s [142/190] libksba-0:1.8.1-1.fc46.x86_64 100% | 33.7 MiB/s | 172.6 KiB | 00m00s [143/190] tpm2-tss-0:4.2.0-1.fc45.x86_6 100% | 63.7 MiB/s | 456.8 KiB | 00m00s [144/190] gnutls-0:3.8.13-5.fc46.x86_64 100% | 118.5 MiB/s | 1.4 MiB | 00m00s [145/190] libusb1-0:1.0.30-2.fc45.x86_6 100% | 13.6 MiB/s | 83.8 KiB | 00m00s [146/190] openldap-0:2.6.15-1.fc46.x86_ 100% | 33.3 MiB/s | 273.0 KiB | 00m00s [147/190] libtasn1-0:4.21.0-2.fc45.x86_ 100% | 24.7 MiB/s | 75.9 KiB | 00m00s [148/190] libidn2-0:2.3.8-4.fc45.x86_64 100% | 34.2 MiB/s | 175.2 KiB | 00m00s [149/190] libunistring-0:1.1-12.fc45.x8 100% | 59.2 MiB/s | 545.8 KiB | 00m00s [150/190] nettle-0:4.0-5.fc45.x86_64 100% | 52.4 MiB/s | 429.7 KiB | 00m00s [151/190] p11-kit-0:0.26.5-1.fc45.x86_6 100% | 68.4 MiB/s | 560.0 KiB | 00m00s [152/190] libevent-0:2.1.13-1.fc46.x86_ 100% | 56.5 MiB/s | 289.4 KiB | 00m00s [153/190] libtool-ltdl-0:2.6.2-1.fc46.x 100% | 7.2 MiB/s | 36.8 KiB | 00m00s [154/190] cyrus-sasl-lib-0:2.1.28-37.fc 100% | 88.7 MiB/s | 817.8 KiB | 00m00s [155/190] libffi-0:3.8.0-1.fc46.x86_64 100% | 11.3 MiB/s | 46.4 KiB | 00m00s [156/190] gdbm-libs-1:1.26-1.fc46.x86_6 100% | 11.7 MiB/s | 60.1 KiB | 00m00s [157/190] alternatives-0:1.33-6.fc45.x8 100% | 9.6 MiB/s | 39.4 KiB | 00m00s [158/190] jansson-0:2.14-5.fc45.x86_64 100% | 15.3 MiB/s | 46.9 KiB | 00m00s [159/190] pkgconf-pkg-config-0:2.5.1-2. 100% | 3.1 MiB/s | 9.5 KiB | 00m00s [160/190] pkgconf-0:2.5.1-2.fc45.x86_64 100% | 12.0 MiB/s | 49.0 KiB | 00m00s [161/190] pkgconf-m4-0:2.5.1-2.fc45.noa 100% | 4.5 MiB/s | 13.8 KiB | 00m00s [162/190] libpkgconf-0:2.5.1-2.fc45.x86 100% | 13.9 MiB/s | 42.6 KiB | 00m00s [163/190] p11-kit-trust-0:0.26.5-1.fc45 100% | 47.6 MiB/s | 146.3 KiB | 00m00s [164/190] fedora-release-0:46-0.1.noarc 100% | 5.8 MiB/s | 11.9 KiB | 00m00s [165/190] systemd-standalone-sysusers-0 100% | 52.9 MiB/s | 433.4 KiB | 00m00s [166/190] xxhash-libs-0:0.8.4-1.fc46.x8 100% | 10.1 MiB/s | 41.3 KiB | 00m00s [167/190] fedora-release-identity-basic 100% | 4.1 MiB/s | 12.7 KiB | 00m00s [168/190] libcurl-0:8.23.0-1.fc46.x86_6 100% | 69.4 MiB/s | 497.5 KiB | 00m00s [169/190] binutils-0:2.47.50-15.fc46.x8 100% | 89.8 MiB/s | 5.2 MiB | 00m00s [170/190] krb5-libs-0:1.22.2-9.fc45.x86 100% | 49.0 MiB/s | 803.1 KiB | 00m00s [171/190] gdb-minimal-0:17.2-6.fc46.x86 100% | 100.8 MiB/s | 4.7 MiB | 00m00s [172/190] libbrotli-0:1.2.0-6.fc45.x86_ 100% | 37.7 MiB/s | 347.3 KiB | 00m00s [173/190] libnghttp2-0:1.69.0-6.fc46.x8 100% | 10.8 MiB/s | 77.2 KiB | 00m00s [174/190] libpsl-0:0.23.3-1.fc46.x86_64 100% | 16.5 MiB/s | 67.7 KiB | 00m00s [175/190] libnghttp3-0:1.18.0-1.fc45.x8 100% | 14.7 MiB/s | 75.1 KiB | 00m00s [176/190] libssh-0:0.12.2-1.fc45.x86_64 100% | 48.2 MiB/s | 295.9 KiB | 00m00s [177/190] ngtcp2-0:1.22.1-3.fc45.x86_64 100% | 51.3 MiB/s | 157.7 KiB | 00m00s [178/190] ngtcp2-crypto-ossl-0:1.22.1-3 100% | 9.1 MiB/s | 27.8 KiB | 00m00s [179/190] keyutils-libs-0:1.6.3-8.fc45. 100% | 10.2 MiB/s | 31.5 KiB | 00m00s [180/190] libcom_err-0:1.47.4-2.fc45.x8 100% | 13.0 MiB/s | 26.6 KiB | 00m00s [181/190] libverto-0:0.3.2-13.fc45.x86_ 100% | 6.8 MiB/s | 21.0 KiB | 00m00s [182/190] publicsuffix-list-dafsa-0:202 100% | 19.9 MiB/s | 61.1 KiB | 00m00s [183/190] libfido2-0:1.17.0-6.fc46.x86_ 100% | 34.8 MiB/s | 107.0 KiB | 00m00s [184/190] libssh-config-0:0.12.2-1.fc45 100% | 2.9 MiB/s | 8.9 KiB | 00m00s [185/190] libcbor-0:0.14.0-3.fc45.x86_6 100% | 9.0 MiB/s | 36.8 KiB | 00m00s [186/190] policycoreutils-0:3.11-2.fc45 100% | 42.5 MiB/s | 261.0 KiB | 00m00s [187/190] selinux-policy-0:45.21-1.fc46 100% | 10.2 MiB/s | 42.0 KiB | 00m00s [188/190] rpm-plugin-selinux-0:6.1.0-1. 100% | 5.8 MiB/s | 17.8 KiB | 00m00s [189/190] libselinux-utils-0:3.11-5.fc4 100% | 24.2 MiB/s | 123.8 KiB | 00m00s [190/190] selinux-policy-targeted-0:45. 100% | 117.6 MiB/s | 6.8 MiB | 00m00s -------------------------------------------------------------------------------- [190/190] Total 100% | 143.7 MiB/s | 71.6 MiB | 00m00s Running transaction Importing OpenPGP key 0x91211FCE: UserID : "Fedora (46) " Fingerprint: D924B10D3E810DABDD8B56B596E7E91491211FCE From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-46-primary The key was successfully imported. Importing OpenPGP key 0x91211FCE: UserID : "Fedora (46) " Fingerprint: D924B10D3E810DABDD8B56B596E7E91491211FCE From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-46-primary The key was successfully imported. Importing OpenPGP key 0xF577861E: UserID : "Fedora (45) " Fingerprint: 4F50A6114CD5C6976A7F1179655A4B02F577861E From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-45-primary The key was successfully imported. Importing OpenPGP key 0x9488FB64: UserID : "Fedora (47) " Fingerprint: B2E766FA50CA6FA2D5ED06FC09D879E09488FB64 From : file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-47-primary The key was successfully imported. [ 1/192] Verify package files 100% | 625.0 B/s | 190.0 B | 00m00s >>> Running %pretrans scriptlet: filesystem-0:3.18-59.fc45.x86_64 >>> Finished %pretrans scriptlet: filesystem-0:3.18-59.fc45.x86_64 >>> [RPM] failed to open /var/lib/mock/fedora-rawhide-x86_64-1792167799.393859/root/etc/group for id/name lookup: No such file or directory [ 2/192] Prepare transaction 100% | 2.3 KiB/s | 190.0 B | 00m00s [ 3/192] Installing libgcc-0:16.2.1-2. 100% | 133.0 MiB/s | 272.4 KiB | 00m00s [ 4/192] Installing redhat-systemd-pre 100% | 0.0 B/s | 1.5 KiB | 00m00s [ 5/192] Installing redhat-systemd-pre 100% | 0.0 B/s | 18.1 KiB | 00m00s [ 6/192] Installing libssh-config-0:0. 100% | 0.0 B/s | 816.0 B | 00m00s [ 7/192] Installing publicsuffix-list- 100% | 70.3 MiB/s | 72.0 KiB | 00m00s [ 8/192] Installing fedora-release-ide 100% | 898.4 KiB/s | 920.0 B | 00m00s [ 9/192] Installing fedora-gpg-keys-0: 100% | 29.6 MiB/s | 181.7 KiB | 00m00s [ 10/192] Installing fedora-repos-rawhi 100% | 0.0 B/s | 2.5 KiB | 00m00s [ 11/192] Installing fedora-repos-0:46- 100% | 0.0 B/s | 5.9 KiB | 00m00s [ 12/192] Installing fedora-release-com 100% | 7.8 MiB/s | 8.0 KiB | 00m00s [ 13/192] Installing fedora-release-0:4 100% | 13.5 KiB/s | 124.0 B | 00m00s >>> Running sysusers scriptlet: setup-0:2.15.1-2.fc45.noarch >>> Finished sysusers scriptlet: setup-0:2.15.1-2.fc45.noarch >>> Scriptlet output: >>> Creating group 'adm' with GID 4. >>> Creating group 'audio' with GID 63. >>> Creating group 'cdrom' with GID 11. >>> Creating group 'clock' with GID 103. >>> Creating group 'dialout' with GID 18. >>> Creating group 'disk' with GID 6. >>> Creating group 'floppy' with GID 19. >>> Creating group 'ftp' with GID 50. >>> Creating group 'games' with GID 20. >>> Creating group 'input' with GID 104. >>> Creating group 'kmem' with GID 9. >>> Creating group 'kvm' with GID 36. >>> Creating group 'lock' with GID 54. >>> Creating group 'lp' with GID 7. >>> Creating group 'mail' with GID 12. >>> Creating group 'man' with GID 15. >>> Creating group 'mem' with GID 8. >>> Creating group 'nobody' with GID 65534. >>> Creating group 'render' with GID 105. >>> Creating group 'root' with GID 0. >>> Creating group 'sgx' with GID 106. >>> Creating group 'sys' with GID 3. >>> Creating group 'tape' with GID 33. >>> Creating group 'tty' with GID 5. >>> Creating group 'users' with GID 100. >>> Creating group 'utmp' with GID 22. >>> Creating group 'video' with GID 39. >>> Creating group 'wheel' with GID 10. >>> Creating user 'adm' (adm) with UID 3 and GID 4. >>> Creating group 'bin' with GID 1. >>> Creating user 'bin' (bin) with UID 1 and GID 1. >>> Creating group 'daemon' with GID 2. >>> Creating user 'daemon' (daemon) with UID 2 and GID 2. >>> Creating user 'ftp' (FTP User) with UID 14 and GID 50. >>> Creating user 'games' (games) with UID 12 and GID 100. >>> Creating user 'halt' (halt) with UID 7 and GID 0. >>> Creating user 'lp' (lp) with UID 4 and GID 7. >>> Creating user 'mail' (mail) with UID 8 and GID 12. >>> Creating user 'nobody' (Kernel Overflow User) with UID 65534 and GID 65534. >>> Creating user 'operator' (operator) with UID 11 and GID 0. >>> Creating user 'root' (Super User) with UID 0 and GID 0. >>> Creating user 'shutdown' (shutdown) with UID 6 and GID 0. >>> Creating user 'sync' (sync) with UID 5 and GID 0. >>> [ 14/192] Installing setup-0:2.15.1-2.f 100% | 32.5 MiB/s | 731.3 KiB | 00m00s >>> [RPM] /etc/hosts created as /etc/hosts.rpmnew [ 15/192] Installing filesystem-0:3.18- 100% | 1.8 MiB/s | 253.6 KiB | 00m00s [ 16/192] Installing pkgconf-m4-0:2.5.1 100% | 14.4 MiB/s | 14.7 KiB | 00m00s [ 17/192] Installing pcre2-syntax-0:10. 100% | 138.8 MiB/s | 284.3 KiB | 00m00s [ 18/192] Installing gnulib-l10n-0:2024 100% | 161.6 MiB/s | 661.9 KiB | 00m00s [ 19/192] Installing coreutils-common-0 100% | 296.4 MiB/s | 11.6 MiB | 00m00s [ 20/192] Installing ncurses-base-0:6.6 100% | 57.8 MiB/s | 355.3 KiB | 00m00s [ 21/192] Installing bash-0:5.3.20-1.fc 100% | 197.1 MiB/s | 8.5 MiB | 00m00s [ 22/192] Installing glibc-common-0:2.4 100% | 43.2 MiB/s | 1.0 MiB | 00m00s [ 23/192] Installing glibc-gconv-extra- 100% | 216.3 MiB/s | 7.8 MiB | 00m00s [ 24/192] Installing glibc-0:2.44.9000- 100% | 146.5 MiB/s | 7.2 MiB | 00m00s [ 25/192] Installing ncurses-libs-0:6.6 100% | 190.4 MiB/s | 974.9 KiB | 00m00s [ 26/192] Installing glibc-minimal-lang 100% | 0.0 B/s | 124.0 B | 00m00s [ 27/192] Installing zlib-ng-compat-0:2 100% | 162.5 MiB/s | 166.4 KiB | 00m00s [ 28/192] Installing bzip2-libs-0:1.0.8 100% | 79.7 MiB/s | 81.6 KiB | 00m00s [ 29/192] Installing libgpg-error-0:1.6 100% | 44.6 MiB/s | 959.7 KiB | 00m00s [ 30/192] Installing readline-0:8.3-7.f 100% | 252.8 MiB/s | 517.7 KiB | 00m00s [ 31/192] Installing libstdc++-0:16.2.1 100% | 308.6 MiB/s | 3.1 MiB | 00m00s [ 32/192] Installing libzstd-0:1.5.7-6. 100% | 233.7 MiB/s | 957.4 KiB | 00m00s [ 33/192] Installing elfutils-libelf-0: 100% | 360.7 MiB/s | 1.4 MiB | 00m00s [ 34/192] Installing libassuan-0:2.5.7- 100% | 161.8 MiB/s | 165.7 KiB | 00m00s [ 35/192] Installing libgcrypt-0:1.12.4 100% | 277.7 MiB/s | 1.7 MiB | 00m00s [ 36/192] Installing gmp-1:6.3.0-6.fc45 100% | 266.1 MiB/s | 817.4 KiB | 00m00s [ 37/192] Installing libacl-0:2.4.0-2.f 100% | 43.6 MiB/s | 44.7 KiB | 00m00s [ 38/192] Installing systemd-libs-0:262 100% | 307.8 MiB/s | 2.8 MiB | 00m00s [ 39/192] Installing libuuid-0:2.42.4-2 100% | 37.3 MiB/s | 38.2 KiB | 00m00s [ 40/192] Installing popt-0:1.19-11.fc4 100% | 46.6 MiB/s | 143.3 KiB | 00m00s [ 41/192] Installing xz-libs-1:5.8.4-1. 100% | 108.8 MiB/s | 222.8 KiB | 00m00s [ 42/192] Installing sqlite-libs-0:3.53 100% | 269.8 MiB/s | 1.6 MiB | 00m00s [ 43/192] Installing npth-0:1.8-5.fc45. 100% | 49.4 MiB/s | 50.6 KiB | 00m00s [ 44/192] Installing elfutils-libs-0:0. 100% | 234.8 MiB/s | 721.3 KiB | 00m00s [ 45/192] Installing libblkid-0:2.42.4- 100% | 276.6 MiB/s | 283.3 KiB | 00m00s [ 46/192] Installing libsepol-0:3.11-2. 100% | 282.3 MiB/s | 867.1 KiB | 00m00s [ 47/192] Installing gnupg2-gpgconf-0:2 100% | 13.9 MiB/s | 255.9 KiB | 00m00s [ 48/192] Installing pcre2-0:10.47-1.fc 100% | 234.4 MiB/s | 720.0 KiB | 00m00s [ 49/192] Installing libselinux-0:3.11- 100% | 100.8 MiB/s | 206.4 KiB | 00m00s [ 50/192] Installing grep-0:3.12-4.fc45 100% | 45.6 MiB/s | 1.0 MiB | 00m00s [ 51/192] Installing sed-0:4.10-2.fc45. 100% | 38.8 MiB/s | 874.9 KiB | 00m00s [ 52/192] Installing findutils-1:4.11.0 100% | 78.3 MiB/s | 2.0 MiB | 00m00s [ 53/192] Installing libxcrypt-0:4.5.2- 100% | 144.5 MiB/s | 295.9 KiB | 00m00s [ 54/192] Installing json-c-0:0.18-9.fc 100% | 82.0 MiB/s | 83.9 KiB | 00m00s [ 55/192] Installing libtasn1-0:4.21.0- 100% | 87.1 MiB/s | 178.5 KiB | 00m00s [ 56/192] Installing libunistring-0:1.1 100% | 289.1 MiB/s | 1.7 MiB | 00m00s [ 57/192] Installing libidn2-0:2.3.8-4. 100% | 45.8 MiB/s | 562.6 KiB | 00m00s [ 58/192] Installing crypto-policies-0: 100% | 22.3 MiB/s | 159.5 KiB | 00m00s [ 59/192] Installing xz-1:5.8.4-1.fc46. 100% | 52.8 MiB/s | 1.4 MiB | 00m00s [ 60/192] Installing libmount-0:2.42.4- 100% | 200.2 MiB/s | 410.0 KiB | 00m00s [ 61/192] Installing gnupg2-verify-0:2. 100% | 19.4 MiB/s | 357.7 KiB | 00m00s [ 62/192] Installing mpfr-0:4.2.2-4.fc4 100% | 207.7 MiB/s | 850.9 KiB | 00m00s [ 63/192] Installing gawk-0:5.4.1-1.fc4 100% | 82.5 MiB/s | 2.2 MiB | 00m00s [ 64/192] Installing dwz-0:0.17-3.fc45. 100% | 15.9 MiB/s | 292.5 KiB | 00m00s [ 65/192] Installing libksba-0:1.8.1-1. 100% | 212.1 MiB/s | 434.4 KiB | 00m00s [ 66/192] Installing unzip-0:6.0-71.fc4 100% | 21.7 MiB/s | 445.3 KiB | 00m00s [ 67/192] Installing file-libs-0:5.48-3 100% | 536.7 MiB/s | 12.3 MiB | 00m00s [ 68/192] Installing file-0:5.48-3.fc46 100% | 5.6 MiB/s | 103.4 KiB | 00m00s [ 69/192] Installing diffutils-0:3.12-6 100% | 65.2 MiB/s | 1.6 MiB | 00m00s [ 70/192] Installing libattr-0:2.6.0-2. 100% | 24.7 MiB/s | 25.2 KiB | 00m00s [ 71/192] Installing libeconf-0:0.7.9-4 100% | 64.9 MiB/s | 66.4 KiB | 00m00s [ 72/192] Installing libcap-ng-0:0.9.6- 100% | 69.0 MiB/s | 70.6 KiB | 00m00s [ 73/192] Installing audit-libs-0:4.2.1 100% | 191.9 MiB/s | 393.1 KiB | 00m00s [ 74/192] Installing pam-libs-0:1.7.2-4 100% | 133.7 MiB/s | 136.9 KiB | 00m00s [ 75/192] Installing libcap-0:2.78-2.fc 100% | 11.0 MiB/s | 213.3 KiB | 00m00s [ 76/192] Installing libsemanage-0:3.11 100% | 157.4 MiB/s | 322.4 KiB | 00m00s [ 77/192] Installing libsmartcols-0:2.4 100% | 185.2 MiB/s | 189.6 KiB | 00m00s [ 78/192] Installing lua-libs-0:5.5.1-2 100% | 146.2 MiB/s | 299.4 KiB | 00m00s [ 79/192] Installing libffi-0:3.8.0-1.f 100% | 94.6 MiB/s | 96.9 KiB | 00m00s [ 80/192] Installing p11-kit-0:0.26.5-1 100% | 90.9 MiB/s | 2.6 MiB | 00m00s [ 81/192] Installing alternatives-0:1.3 100% | 3.5 MiB/s | 63.6 KiB | 00m00s [ 82/192] Installing p11-kit-trust-0:0. 100% | 16.2 MiB/s | 480.1 KiB | 00m00s [ 83/192] Installing ngtcp2-0:1.22.1-3. 100% | 164.0 MiB/s | 335.8 KiB | 00m00s [ 84/192] Installing util-linux-core-0: 100% | 58.2 MiB/s | 1.5 MiB | 00m00s [ 85/192] Installing liblastlog2-0:2.42 100% | 4.3 MiB/s | 39.8 KiB | 00m00s [ 86/192] Installing zip-0:3.0-46.fc45. 100% | 31.0 MiB/s | 698.0 KiB | 00m00s [ 87/192] Installing gnupg2-keyboxd-0:2 100% | 22.0 MiB/s | 202.5 KiB | 00m00s [ 88/192] Installing libpsl-0:0.23.3-1. 100% | 79.6 MiB/s | 81.5 KiB | 00m00s [ 89/192] Installing tar-2:1.35-9.fc45. 100% | 102.6 MiB/s | 3.0 MiB | 00m00s [ 90/192] Installing linkdupes-0:0.7.3- 100% | 38.3 MiB/s | 783.5 KiB | 00m00s [ 91/192] Installing libselinux-utils-0 100% | 14.9 MiB/s | 320.4 KiB | 00m00s [ 92/192] Installing libfdisk-0:2.42.4- 100% | 192.0 MiB/s | 393.2 KiB | 00m00s [ 93/192] Installing fips-provider-0:1. 100% | 322.0 MiB/s | 4.8 MiB | 00m00s [ 94/192] Installing openssl-libs-1:4.0 100% | 304.5 MiB/s | 6.7 MiB | 00m00s [ 95/192] Installing coreutils-0:9.12-1 100% | 135.2 MiB/s | 6.4 MiB | 00m00s [ 96/192] Installing ca-certificates-0: 100% | 1.5 MiB/s | 2.5 MiB | 00m02s [ 97/192] Installing gzip-0:1.15-1.fc46 100% | 20.0 MiB/s | 450.7 KiB | 00m00s [ 98/192] Installing util-linux-0:2.42. 100% | 75.1 MiB/s | 3.8 MiB | 00m00s [ 99/192] Installing policycoreutils-0: 100% | 24.3 MiB/s | 921.4 KiB | 00m00s [100/192] Installing selinux-policy-0:4 100% | 1.0 MiB/s | 34.5 KiB | 00m00s [101/192] Installing selinux-policy-tar 100% | 141.6 MiB/s | 15.2 MiB | 00m00s [102/192] Installing rpm-sequoia-0:1.10 100% | 271.9 MiB/s | 2.4 MiB | 00m00s [103/192] Installing libfsverity-0:1.7- 100% | 24.8 MiB/s | 25.4 KiB | 00m00s [104/192] Installing libevent-0:2.1.13- 100% | 240.4 MiB/s | 984.5 KiB | 00m00s [105/192] Installing ngtcp2-crypto-ossl 100% | 51.3 MiB/s | 52.5 KiB | 00m00s [106/192] Installing libusb1-0:1.0.30-2 100% | 8.9 MiB/s | 181.8 KiB | 00m00s >>> Running sysusers scriptlet: tpm2-tss-0:4.2.0-1.fc45.x86_64 >>> Finished sysusers scriptlet: tpm2-tss-0:4.2.0-1.fc45.x86_64 >>> Scriptlet output: >>> Creating group 'tss' with GID 59. >>> Creating user 'tss' (Account used for TPM access) with UID 59 and GID 59. >>> [107/192] Installing tpm2-tss-0:4.2.0-1 100% | 208.4 MiB/s | 1.7 MiB | 00m00s [108/192] Installing ima-evm-utils-libs 100% | 56.5 MiB/s | 57.9 KiB | 00m00s [109/192] Installing gnupg2-gpg-agent-0 100% | 23.0 MiB/s | 682.8 KiB | 00m00s [110/192] Installing nettle-0:4.0-5.fc4 100% | 196.5 MiB/s | 805.0 KiB | 00m00s [111/192] Installing gnutls-0:3.8.13-5. 100% | 295.2 MiB/s | 3.8 MiB | 00m00s [112/192] Installing zstd-0:1.5.7-6.fc4 100% | 24.7 MiB/s | 506.1 KiB | 00m00s [113/192] Installing libxml2-0:2.15.4-1 100% | 68.9 MiB/s | 1.7 MiB | 00m00s [114/192] Installing bzip2-0:1.0.8-24.f 100% | 5.4 MiB/s | 99.5 KiB | 00m00s [115/192] Installing add-determinism-0: 100% | 90.0 MiB/s | 2.2 MiB | 00m00s [116/192] Installing build-reproducibil 100% | 0.0 B/s | 1.5 KiB | 00m00s [117/192] Installing cpio-0:2.15-10.fc4 100% | 50.2 MiB/s | 1.1 MiB | 00m00s [118/192] Installing ed-0:1.22.6-1.fc46 100% | 8.3 MiB/s | 153.2 KiB | 00m00s [119/192] Installing patch-0:2.8-6.fc46 100% | 12.4 MiB/s | 228.1 KiB | 00m00s [120/192] Installing libpfm-0:4.14.1-2. 100% | 395.4 MiB/s | 2.4 MiB | 00m00s [121/192] Installing lz4-libs-0:1.10.0- 100% | 162.5 MiB/s | 166.4 KiB | 00m00s [122/192] Installing libarchive-0:3.8.9 100% | 245.5 MiB/s | 1.0 MiB | 00m00s [123/192] Installing libgomp-0:16.2.1-2 100% | 282.7 MiB/s | 578.9 KiB | 00m00s [124/192] Installing libtool-ltdl-0:2.6 100% | 69.5 MiB/s | 71.1 KiB | 00m00s [125/192] Installing gdbm-libs-1:1.26-1 100% | 132.7 MiB/s | 135.9 KiB | 00m00s [126/192] Installing cyrus-sasl-lib-0:2 100% | 93.5 MiB/s | 2.3 MiB | 00m00s [127/192] Installing openldap-0:2.6.15- 100% | 167.8 MiB/s | 687.2 KiB | 00m00s [128/192] Installing gnupg2-dirmngr-0:2 100% | 21.3 MiB/s | 632.8 KiB | 00m00s [129/192] Installing gnupg2-0:2.4.9-18. 100% | 166.7 MiB/s | 6.5 MiB | 00m00s [130/192] Installing gpgverify-0:2.2-5. 100% | 9.2 MiB/s | 9.4 KiB | 00m00s [131/192] Installing jansson-0:2.14-5.f 100% | 88.2 MiB/s | 90.3 KiB | 00m00s [132/192] Installing libpkgconf-0:2.5.1 100% | 89.1 MiB/s | 91.3 KiB | 00m00s [133/192] Installing pkgconf-0:2.5.1-2. 100% | 5.2 MiB/s | 95.2 KiB | 00m00s [134/192] Installing pkgconf-pkg-config 100% | 104.3 KiB/s | 1.8 KiB | 00m00s [135/192] Installing systemd-standalone 100% | 47.9 MiB/s | 981.8 KiB | 00m00s [136/192] Installing rpm-libs-0:6.1.0-1 100% | 219.8 MiB/s | 1.1 MiB | 00m00s [137/192] Installing rpm-sign-libs-0:6. 100% | 0.0 B/s | 40.5 KiB | 00m00s [138/192] Installing rpm-build-libs-0:6 100% | 282.4 MiB/s | 289.2 KiB | 00m00s [139/192] Installing xxhash-libs-0:0.8. 100% | 93.1 MiB/s | 95.4 KiB | 00m00s [140/192] Installing libbrotli-0:1.2.0- 100% | 282.3 MiB/s | 867.3 KiB | 00m00s [141/192] Installing libnghttp2-0:1.69. 100% | 163.3 MiB/s | 167.3 KiB | 00m00s [142/192] Installing libnghttp3-0:1.18. 100% | 161.0 MiB/s | 164.8 KiB | 00m00s [143/192] Installing keyutils-libs-0:1. 100% | 54.3 MiB/s | 55.6 KiB | 00m00s [144/192] Installing libcom_err-0:1.47. 100% | 62.6 MiB/s | 64.1 KiB | 00m00s [145/192] Installing libverto-0:0.3.2-1 100% | 26.4 MiB/s | 27.1 KiB | 00m00s [146/192] Installing krb5-libs-0:1.22.2 100% | 238.7 MiB/s | 2.4 MiB | 00m00s [147/192] Installing libcbor-0:0.14.0-3 100% | 82.9 MiB/s | 84.9 KiB | 00m00s [148/192] Installing libfido2-0:1.17.0- 100% | 126.0 MiB/s | 258.1 KiB | 00m00s [149/192] Installing libssh-0:0.12.2-1. 100% | 236.9 MiB/s | 727.8 KiB | 00m00s [150/192] Installing libcurl-0:8.23.0-1 100% | 271.4 MiB/s | 1.1 MiB | 00m00s [151/192] Installing elfutils-debuginfo 100% | 4.5 MiB/s | 82.2 KiB | 00m00s [152/192] Installing elfutils-0:0.196-1 100% | 109.5 MiB/s | 3.2 MiB | 00m00s [153/192] Installing binutils-0:2.47.50 100% | 240.4 MiB/s | 24.5 MiB | 00m00s [154/192] Installing gdb-minimal-0:17.2 100% | 228.4 MiB/s | 14.2 MiB | 00m00s [155/192] Installing debugedit-0:5.3-3. 100% | 11.5 MiB/s | 224.1 KiB | 00m00s [156/192] Installing curl-0:8.23.0-1.fc 100% | 14.0 MiB/s | 488.7 KiB | 00m00s [157/192] Installing rpm-0:6.1.0-1.fc46 100% | 55.6 MiB/s | 2.5 MiB | 00m00s [158/192] Installing cmake-srpm-macros- 100% | 0.0 B/s | 804.0 B | 00m00s [159/192] Installing efi-srpm-macros-0: 100% | 5.8 MiB/s | 41.3 KiB | 00m00s [160/192] Installing java-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [161/192] Installing lua-srpm-macros-0: 100% | 0.0 B/s | 1.9 KiB | 00m00s [162/192] Installing tree-sitter-srpm-m 100% | 0.0 B/s | 9.6 KiB | 00m00s [163/192] Installing zig-srpm-macros-0: 100% | 0.0 B/s | 1.9 KiB | 00m00s [164/192] Installing filesystem-srpm-ma 100% | 0.0 B/s | 38.9 KiB | 00m00s [165/192] Installing rust-srpm-macros-0 100% | 0.0 B/s | 6.4 KiB | 00m00s [166/192] Installing qt6-srpm-macros-0: 100% | 0.0 B/s | 748.0 B | 00m00s [167/192] Installing qt5-srpm-macros-0: 100% | 0.0 B/s | 776.0 B | 00m00s [168/192] Installing perl-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [169/192] Installing package-notes-srpm 100% | 0.0 B/s | 2.1 KiB | 00m00s [170/192] Installing openblas-srpm-macr 100% | 0.0 B/s | 404.0 B | 00m00s [171/192] Installing ocaml-srpm-macros- 100% | 0.0 B/s | 2.1 KiB | 00m00s [172/192] Installing meson-srpm-macros- 100% | 0.0 B/s | 1.9 KiB | 00m00s [173/192] Installing kernel-srpm-macros 100% | 0.0 B/s | 2.3 KiB | 00m00s [174/192] Installing gnome-srpm-macros- 100% | 0.0 B/s | 4.1 KiB | 00m00s [175/192] Installing gnat-srpm-macros-0 100% | 0.0 B/s | 1.3 KiB | 00m00s [176/192] Installing ghc-srpm-macros-0: 100% | 0.0 B/s | 1.0 KiB | 00m00s [177/192] Installing gap-srpm-macros-0: 100% | 0.0 B/s | 2.7 KiB | 00m00s [178/192] Installing fpc-srpm-macros-0: 100% | 0.0 B/s | 420.0 B | 00m00s [179/192] Installing ansible-srpm-macro 100% | 35.4 MiB/s | 36.2 KiB | 00m00s [180/192] Installing redhat-rpm-config- 100% | 93.0 MiB/s | 190.4 KiB | 00m00s [181/192] Installing forge-srpm-macros- 100% | 39.3 MiB/s | 40.3 KiB | 00m00s [182/192] Installing rpm-build-0:6.1.0- 100% | 14.3 MiB/s | 322.1 KiB | 00m00s [183/192] Installing erlang-srpm-macros 100% | 0.0 B/s | 2.6 KiB | 00m00s [184/192] Installing pyproject-srpm-mac 100% | 0.0 B/s | 4.0 KiB | 00m00s [185/192] Installing fonts-srpm-macros- 100% | 55.7 MiB/s | 57.0 KiB | 00m00s [186/192] Installing go-srpm-macros-0:3 100% | 61.6 MiB/s | 63.0 KiB | 00m00s [187/192] Installing R-srpm-macros-0:1. 100% | 4.3 MiB/s | 4.4 KiB | 00m00s [188/192] Installing python-srpm-macros 100% | 51.7 MiB/s | 52.9 KiB | 00m00s [189/192] Installing rpm-plugin-selinux 100% | 0.0 B/s | 12.9 KiB | 00m00s [190/192] Installing which-0:2.25-2.fc4 100% | 4.2 MiB/s | 85.8 KiB | 00m00s [191/192] Installing shadow-utils-2:4.2 100% | 98.6 MiB/s | 3.9 MiB | 00m00s [192/192] Installing info-0:7.3-3.fc45. 100% | 37.7 KiB/s | 372.8 KiB | 00m10s Complete! Finish: installing minimal buildroot with dnf5 Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: R-srpm-macros-1.3.7-3.fc45.noarch add-determinism-0.7.3-3.fc45.x86_64 alternatives-1.33-6.fc45.x86_64 ansible-srpm-macros-1-22.fc45.noarch audit-libs-4.2.1-2.fc45.x86_64 bash-5.3.20-1.fc46.x86_64 binutils-2.47.50-15.fc46.x86_64 build-reproducibility-srpm-macros-0.7.3-3.fc45.noarch bzip2-1.0.8-24.fc45.x86_64 bzip2-libs-1.0.8-24.fc45.x86_64 ca-certificates-2026.2.90_v9.0.317-1.fc46.noarch cmake-srpm-macros-4.3.0-5.fc45.noarch coreutils-9.12-1.fc46.x86_64 coreutils-common-9.12-1.fc46.x86_64 cpio-2.15-10.fc45.x86_64 crypto-policies-20260713-2.gitc42da77.fc45.noarch curl-8.23.0-1.fc46.x86_64 cyrus-sasl-lib-2.1.28-37.fc45.x86_64 debugedit-5.3-3.fc45.x86_64 diffutils-3.12-6.fc45.x86_64 dwz-0.17-3.fc45.x86_64 ed-1.22.6-1.fc46.x86_64 efi-srpm-macros-6-9.fc45.noarch elfutils-0.196-1.fc46.x86_64 elfutils-debuginfod-client-0.196-1.fc46.x86_64 elfutils-libelf-0.196-1.fc46.x86_64 elfutils-libs-0.196-1.fc46.x86_64 erlang-srpm-macros-0.4.0-1.fc46.noarch fedora-gpg-keys-46-0.3.noarch fedora-release-46-0.1.noarch fedora-release-common-46-0.1.noarch fedora-release-identity-basic-46-0.1.noarch fedora-repos-46-0.3.noarch fedora-repos-rawhide-46-0.3.noarch file-5.48-3.fc46.x86_64 file-libs-5.48-3.fc46.x86_64 filesystem-3.18-59.fc45.x86_64 filesystem-srpm-macros-3.18-59.fc45.noarch findutils-4.11.0-2.fc45.x86_64 fips-provider-1.5.3-1.fc46.x86_64 fonts-srpm-macros-5.0.0-4.fc45.noarch forge-srpm-macros-0.4.0-5.fc45.noarch fpc-srpm-macros-1.3-17.fc45.noarch gap-srpm-macros-2-3.fc45.noarch gawk-5.4.1-1.fc45.x86_64 gdb-minimal-17.2-6.fc46.x86_64 gdbm-libs-1.26-1.fc46.x86_64 ghc-srpm-macros-1.10-2.fc45.noarch glibc-2.44.9000-5.fc46.x86_64 glibc-common-2.44.9000-5.fc46.x86_64 glibc-gconv-extra-2.44.9000-5.fc46.x86_64 glibc-minimal-langpack-2.44.9000-5.fc46.x86_64 gmp-6.3.0-6.fc45.x86_64 gnat-srpm-macros-7-3.fc45.noarch gnome-srpm-macros-1.0-2.fc45.noarch gnulib-l10n-20241231-4.fc45.noarch gnupg2-2.4.9-18.fc45.x86_64 gnupg2-dirmngr-2.4.9-18.fc45.x86_64 gnupg2-gpg-agent-2.4.9-18.fc45.x86_64 gnupg2-gpgconf-2.4.9-18.fc45.x86_64 gnupg2-keyboxd-2.4.9-18.fc45.x86_64 gnupg2-verify-2.4.9-18.fc45.x86_64 gnutls-3.8.13-5.fc46.x86_64 go-srpm-macros-3.8.0-3.fc45.noarch gpg-pubkey-4f50a6114cd5c6976a7f1179655a4b02f577861e-6888bc98 gpg-pubkey-b2e766fa50ca6fa2d5ed06fc09d879e09488fb64-6a6b46b4 gpg-pubkey-d924b10d3e810dabdd8b56b596e7e91491211fce-697c9899 gpgverify-2.2-5.fc45.noarch grep-3.12-4.fc45.x86_64 gzip-1.15-1.fc46.x86_64 ima-evm-utils-libs-1.6.2-12.fc45.x86_64 info-7.3-3.fc45.x86_64 jansson-2.14-5.fc45.x86_64 java-srpm-macros-1-9.fc45.noarch json-c-0.18-9.fc45.x86_64 kernel-srpm-macros-1.0-30.fc45.noarch keyutils-libs-1.6.3-8.fc45.x86_64 krb5-libs-1.22.2-9.fc45.x86_64 libacl-2.4.0-2.fc45.x86_64 libarchive-3.8.9-2.fc46.x86_64 libassuan-2.5.7-6.fc45.x86_64 libattr-2.6.0-2.fc45.x86_64 libblkid-2.42.4-2.fc46.x86_64 libbrotli-1.2.0-6.fc45.x86_64 libcap-2.78-2.fc45.x86_64 libcap-ng-0.9.6-1.fc46.x86_64 libcbor-0.14.0-3.fc45.x86_64 libcom_err-1.47.4-2.fc45.x86_64 libcurl-8.23.0-1.fc46.x86_64 libeconf-0.7.9-4.fc45.x86_64 libevent-2.1.13-1.fc46.x86_64 libfdisk-2.42.4-2.fc46.x86_64 libffi-3.8.0-1.fc46.x86_64 libfido2-1.17.0-6.fc46.x86_64 libfsverity-1.7-4.fc45.x86_64 libgcc-16.2.1-2.fc46.1.x86_64 libgcrypt-1.12.4-1.fc46.x86_64 libgomp-16.2.1-2.fc46.1.x86_64 libgpg-error-1.61-2.fc45.x86_64 libidn2-2.3.8-4.fc45.x86_64 libksba-1.8.1-1.fc46.x86_64 liblastlog2-2.42.4-2.fc46.x86_64 libmount-2.42.4-2.fc46.x86_64 libnghttp2-1.69.0-6.fc46.x86_64 libnghttp3-1.18.0-1.fc45.x86_64 libpfm-4.14.1-2.fc46.x86_64 libpkgconf-2.5.1-2.fc45.x86_64 libpsl-0.23.3-1.fc46.x86_64 libselinux-3.11-5.fc46.x86_64 libselinux-utils-3.11-5.fc46.x86_64 libsemanage-3.11-4.fc46.x86_64 libsepol-3.11-2.fc45.x86_64 libsmartcols-2.42.4-2.fc46.x86_64 libssh-0.12.2-1.fc45.x86_64 libssh-config-0.12.2-1.fc45.noarch libstdc++-16.2.1-2.fc46.1.x86_64 libtasn1-4.21.0-2.fc45.x86_64 libtool-ltdl-2.6.2-1.fc46.x86_64 libunistring-1.1-12.fc45.x86_64 libusb1-1.0.30-2.fc45.x86_64 libuuid-2.42.4-2.fc46.x86_64 libverto-0.3.2-13.fc45.x86_64 libxcrypt-4.5.2-4.fc45.x86_64 libxml2-2.15.4-1.fc46.x86_64 libzstd-1.5.7-6.fc45.x86_64 linkdupes-0.7.3-3.fc45.x86_64 lua-libs-5.5.1-2.fc46.x86_64 lua-srpm-macros-1-18.fc45.noarch lz4-libs-1.10.0-5.fc45.x86_64 meson-srpm-macros-1.12.1-2.fc46.noarch mpfr-4.2.2-4.fc45.x86_64 ncurses-base-6.6-3.fc45.noarch ncurses-libs-6.6-3.fc45.x86_64 nettle-4.0-5.fc45.x86_64 ngtcp2-1.22.1-3.fc45.x86_64 ngtcp2-crypto-ossl-1.22.1-3.fc45.x86_64 npth-1.8-5.fc45.x86_64 ocaml-srpm-macros-11-4.fc45.noarch openblas-srpm-macros-2-23.fc46.noarch openldap-2.6.15-1.fc46.x86_64 openssl-libs-4.0.3-1.fc46.x86_64 p11-kit-0.26.5-1.fc45.x86_64 p11-kit-trust-0.26.5-1.fc45.x86_64 package-notes-srpm-macros-0.20-2.fc45.noarch pam-libs-1.7.2-4.fc45.x86_64 patch-2.8-6.fc46.x86_64 pcre2-10.47-1.fc45.2.x86_64 pcre2-syntax-10.47-1.fc45.2.noarch perl-srpm-macros-1-65.fc45.noarch pkgconf-2.5.1-2.fc45.x86_64 pkgconf-m4-2.5.1-2.fc45.noarch pkgconf-pkg-config-2.5.1-2.fc45.x86_64 policycoreutils-3.11-2.fc45.x86_64 popt-1.19-11.fc45.x86_64 publicsuffix-list-dafsa-20260624-2.fc45.noarch pyproject-srpm-macros-1.24.0-1.fc46.noarch python-srpm-macros-3.15-2.fc45.noarch qt5-srpm-macros-5.15.18-3.fc45.noarch qt6-srpm-macros-6.11.2-1.fc46.noarch readline-8.3-7.fc46.x86_64 redhat-rpm-config-345-4.fc46.noarch redhat-systemd-presets-102-3.fc45.noarch redhat-systemd-presets-common-102-3.fc45.noarch rpm-6.1.0-1.fc46.x86_64 rpm-build-6.1.0-1.fc46.x86_64 rpm-build-libs-6.1.0-1.fc46.x86_64 rpm-libs-6.1.0-1.fc46.x86_64 rpm-plugin-selinux-6.1.0-1.fc46.x86_64 rpm-sequoia-1.10.3-1.fc46.x86_64 rpm-sign-libs-6.1.0-1.fc46.x86_64 rust-srpm-macros-28.5-2.fc45.noarch sed-4.10-2.fc45.x86_64 selinux-policy-45.21-1.fc46.noarch selinux-policy-targeted-45.21-1.fc46.noarch setup-2.15.1-2.fc45.noarch shadow-utils-4.20.0-2.fc46.x86_64 sqlite-libs-3.53.4-1.fc45.x86_64 systemd-libs-262-3.fc46.x86_64 systemd-standalone-sysusers-262-3.fc46.x86_64 tar-1.35-9.fc45.x86_64 tpm2-tss-4.2.0-1.fc45.x86_64 tree-sitter-srpm-macros-0.4.6-2.fc45.noarch unzip-6.0-71.fc45.x86_64 util-linux-2.42.4-2.fc46.x86_64 util-linux-core-2.42.4-2.fc46.x86_64 which-2.25-2.fc45.x86_64 xxhash-libs-0.8.4-1.fc46.x86_64 xz-5.8.4-1.fc46.x86_64 xz-libs-5.8.4-1.fc46.x86_64 zig-srpm-macros-1-9.fc45.noarch zip-3.0-46.fc45.x86_64 zlib-ng-compat-2.3.3-6.fc45.x86_64 zstd-1.5.7-6.fc45.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1792108800 Wrote: /builddir/build/SRPMS/migr-0.1.1-1.fc46.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1792167799.393859/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-ypxc3au0/migr/migr.spec) Config(child) 0 minutes 33 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/migr-0.1.1-1.fc46.src.rpm) Config(fedora-rawhide-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1792167799.393859/root. INFO: reusing tmpfs at /var/lib/mock/fedora-rawhide-x86_64-bootstrap-1792167799.393859/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1792167799.393859/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-6.1.0-1.fc46.x86_64 rpm-sequoia-1.10.3-1.fc46.x86_64 dnf5-5.4.6.0-1.fc46.x86_64 dnf5-plugins-5.4.6.0-1.fc46.x86_64 Finish: chroot init Start: build phase for migr-0.1.1-1.fc46.src.rpm Start: build setup for migr-0.1.1-1.fc46.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1792108800 Wrote: /builddir/build/SRPMS/migr-0.1.1-1.fc46.src.rpm Updating and loading repositories: fedora 100% | 92.5 KiB/s | 36.1 KiB | 00m00s Copr repository 100% | 5.5 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing: gcc x86_64 0:16.2.1-2.fc46.1 fedora 121.8 MiB glibc-static x86_64 0:2.44.9000-5.fc46 fedora 44.4 MiB make x86_64 1:4.4.1-13.fc45 fedora 1.8 MiB Installing dependencies: annobin-docs noarch 0:13.32-1.fc46 fedora 99.7 KiB annobin-plugin-gcc x86_64 0:13.32-1.fc46 fedora 724.5 KiB cpp x86_64 0:16.2.1-2.fc46.1 fedora 42.6 MiB gcc-plugin-annobin x86_64 0:16.2.1-2.fc46.1 fedora 57.1 KiB glibc-devel x86_64 0:2.44.9000-5.fc46 fedora 2.3 MiB kernel-headers x86_64 0:7.3.0-0.rc7.58.fc46 fedora 7.1 MiB libatomic x86_64 0:16.2.1-2.fc46.1 fedora 45.6 KiB libmpc x86_64 0:1.4.1-2.fc45 fedora 168.8 KiB libxcrypt-devel x86_64 0:4.5.2-4.fc45 fedora 31.0 KiB libxcrypt-static x86_64 0:4.5.2-4.fc45 fedora 1.4 MiB Transaction Summary: Installing: 13 packages Total size of inbound packages is 69 MiB. Need to download 69 MiB. After this operation, 222 MiB extra will be used (install 222 MiB, remove 0 B). [ 1/13] make-1:4.4.1-13.fc45.x86_64 100% | 82.1 MiB/s | 588.3 KiB | 00m00s [ 2/13] glibc-static-0:2.44.9000-5.fc46 100% | 91.4 MiB/s | 7.0 MiB | 00m00s [ 3/13] libmpc-0:1.4.1-2.fc45.x86_64 100% | 12.3 MiB/s | 75.7 KiB | 00m00s [ 4/13] libxcrypt-static-0:4.5.2-4.fc45 100% | 28.7 MiB/s | 323.7 KiB | 00m00s [ 5/13] libxcrypt-devel-0:4.5.2-4.fc45. 100% | 7.4 MiB/s | 30.4 KiB | 00m00s [ 6/13] cpp-0:16.2.1-2.fc46.1.x86_64 100% | 129.2 MiB/s | 14.6 MiB | 00m00s [ 7/13] glibc-devel-0:2.44.9000-5.fc46. 100% | 34.8 MiB/s | 677.3 KiB | 00m00s [ 8/13] libatomic-0:16.2.1-2.fc46.1.x86 100% | 7.8 MiB/s | 55.7 KiB | 00m00s [ 9/13] kernel-headers-0:7.3.0-0.rc7.58 100% | 88.2 MiB/s | 1.8 MiB | 00m00s [10/13] annobin-plugin-gcc-0:13.32-1.fc 100% | 53.3 MiB/s | 710.1 KiB | 00m00s [11/13] gcc-plugin-annobin-0:16.2.1-2.f 100% | 14.5 MiB/s | 59.5 KiB | 00m00s [12/13] annobin-docs-0:13.32-1.fc46.noa 100% | 17.0 MiB/s | 87.1 KiB | 00m00s [13/13] gcc-0:16.2.1-2.fc46.1.x86_64 100% | 156.1 MiB/s | 43.3 MiB | 00m00s -------------------------------------------------------------------------------- [13/13] Total 100% | 237.0 MiB/s | 69.2 MiB | 00m00s Running transaction [ 1/15] Verify package files 100% | 51.0 B/s | 13.0 B | 00m00s [ 2/15] Prepare transaction 100% | 433.0 B/s | 13.0 B | 00m00s [ 3/15] Installing libmpc-0:1.4.1-2.fc4 100% | 83.2 MiB/s | 170.4 KiB | 00m00s [ 4/15] Installing cpp-0:16.2.1-2.fc46. 100% | 285.8 MiB/s | 42.6 MiB | 00m00s [ 5/15] Installing annobin-docs-0:13.32 100% | 98.5 MiB/s | 100.8 KiB | 00m00s [ 6/15] Installing libatomic-0:16.2.1-2 100% | 15.2 MiB/s | 46.7 KiB | 00m00s [ 7/15] Installing kernel-headers-0:7.3 100% | 147.3 MiB/s | 7.2 MiB | 00m00s [ 8/15] Installing libxcrypt-devel-0:4. 100% | 16.3 MiB/s | 33.3 KiB | 00m00s [ 9/15] Installing glibc-devel-0:2.44.9 100% | 119.9 MiB/s | 2.4 MiB | 00m00s [10/15] Installing glibc-static-0:2.44. 100% | 452.7 MiB/s | 44.4 MiB | 00m00s [11/15] Installing libxcrypt-static-0:4 100% | 353.1 MiB/s | 1.4 MiB | 00m00s [12/15] Installing make-1:4.4.1-13.fc45 100% | 69.4 MiB/s | 1.8 MiB | 00m00s [13/15] Installing gcc-0:16.2.1-2.fc46. 100% | 335.8 MiB/s | 121.9 MiB | 00m00s [14/15] Installing annobin-plugin-gcc-0 100% | 35.5 MiB/s | 726.2 KiB | 00m00s [15/15] Installing gcc-plugin-annobin-0 100% | 422.1 KiB/s | 58.7 KiB | 00m00s Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1792108800 Wrote: /builddir/build/SRPMS/migr-0.1.1-1.fc46.src.rpm Updating and loading repositories: fedora 100% | 76.2 KiB/s | 36.1 KiB | 00m00s Copr repository 100% | 4.2 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package "gcc-16.2.1-2.fc46.1.x86_64" is already installed. Package "glibc-static-2.44.9000-5.fc46.x86_64" is already installed. Package "make-1:4.4.1-13.fc45.x86_64" is already installed. Nothing to do. Finish: build setup for migr-0.1.1-1.fc46.src.rpm Start: rpmbuild migr-0.1.1-1.fc46.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1792108800 Executing(mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.BcTkwv Creating(rpmbuild.env): /builddir/build/BUILD/migr-0.1.1-build/rpmbuild.env RPM_SOURCE_DIR="/builddir/build/SOURCES" RPM_BUILD_DIR="/builddir/build/BUILD/migr-0.1.1-build" RPM_OPT_FLAGS="-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" RPM_LD_FLAGS="-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes " RPM_ARCH="x86_64" RPM_OS="linux" RPM_BUILD_NCPUS="2" RPM_SPECPARTS_DIR="/builddir/build/BUILD/migr-0.1.1-build/SPECPARTS" export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_BUILD_NCPUS RPM_SPECPARTS_DIR RPM_LD_FLAGS RPM_DOC_DIR="/usr/share/doc" export RPM_DOC_DIR RPM_PACKAGE_NAME="migr" RPM_PACKAGE_VERSION="0.1.1" RPM_PACKAGE_RELEASE="1.fc46" export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE LANG=C.UTF-8 export LANG unset CDPATH DISPLAY ||: unset DEBUGINFOD_URLS ||: unset RPM_CONFIG_DIR ||: RPM_BUILD_ROOT="/builddir/build/BUILD/migr-0.1.1-build/BUILDROOT" export RPM_BUILD_ROOT PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/lib64/pkgconfig:/usr/share/pkgconfig" export PKG_CONFIG_PATH CONFIG_SITE=${CONFIG_SITE:-NONE} export CONFIG_SITE Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Ah1YMc + umask 022 + cd /builddir/build/BUILD/migr-0.1.1-build + cd /builddir/build/BUILD/migr-0.1.1-build + rm -rf migr-0.1.1 + /usr/bin/rpmuncompress -x /builddir/build/SOURCES/migr-0.1.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd migr-0.1.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.vx3fhL + umask 022 + cd /builddir/build/BUILD/migr-0.1.1-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd migr-0.1.1 + /usr/bin/make -O -j2 V=1 VERBOSE=1 migr migr-static gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/selection_match.c -o selection_match.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/selection.c -o selection.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/config.c -o config.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/main.c -o main.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/detect.c -o detect.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/report.c -o report.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/backup_plan.c -o backup_plan.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/packages.c -o packages.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/backup.c -o backup.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/groups.c -o groups.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/flatpak.c -o flatpak.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/console.c -o console.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/dconf_restore.c -o dconf_restore.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/live_state.c -o live_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/utils.c -o utils.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/selfcopy.c -o selfcopy.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/restore.c -o restore.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/fsprobe.c -o fsprobe.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/xdg.c -o xdg.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/manifest.c -o manifest.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/encoding.c -o encoding.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_name.c -o portable_name.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/container.c -o container.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/fileops.c -o fileops.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/metadata.c -o metadata.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/metadata_xattr.c -o metadata_xattr.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_hashset.c -o portable_hashset.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_fsops.c -o portable_fsops.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_prescan.c -o portable_prescan.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_reconcile.c -o portable_reconcile.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable.c -o portable.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_restore_replay.c -o portable_restore_replay.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_restore_orchestrate.c -o portable_restore_orchestrate.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_restore_preflight.c -o portable_restore_preflight.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_restore_shared.c -o portable_restore_shared.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/sidecar.c -o sidecar.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/sidecar_state.c -o sidecar_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/hash.c -o hash.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/sidecar_state_map.c -o sidecar_state_map.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/verify.c -o verify.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/repair.c -o repair.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/source_snapshot.c -o source_snapshot.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/writer_apps.c -o writer_apps.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/subid.c -o subid.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/home_rewrite.c -o home_rewrite.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/selection_match.c -o selection_match_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/podman_state.c -o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/selection.c -o selection_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/main.c -o main_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/config.c -o config_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/detect.c -o detect_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/report.c -o report_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/backup_plan.c -o backup_plan_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/packages.c -o packages_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/backup.c -o backup_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/groups.c -o groups_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/flatpak.c -o flatpak_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/console.c -o console_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/dconf_restore.c -o dconf_restore_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/live_state.c -o live_state_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/utils.c -o utils_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/selfcopy.c -o selfcopy_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/restore.c -o restore_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/fsprobe.c -o fsprobe_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/xdg.c -o xdg_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/manifest.c -o manifest_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/encoding.c -o encoding_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_name.c -o portable_name_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/fileops.c -o fileops_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/container.c -o container_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/metadata_xattr.c -o metadata_xattr_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/metadata.c -o metadata_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_hashset.c -o portable_hashset_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_fsops.c -o portable_fsops_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_prescan.c -o portable_prescan_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_reconcile.c -o portable_reconcile_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable.c -o portable_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_restore_replay.c -o portable_restore_replay_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_restore_orchestrate.c -o portable_restore_orchestrate_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_restore_preflight.c -o portable_restore_preflight_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/portable_restore_shared.c -o portable_restore_shared_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/sidecar.c -o sidecar_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/sidecar_state_map.c -o sidecar_state_map_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/hash.c -o hash_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/sidecar_state.c -o sidecar_state_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/verify.c -o verify_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/source_snapshot.c -o source_snapshot_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/repair.c -o repair_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/writer_apps.c -o writer_apps_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/subid.c -o subid_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/home_rewrite.c -o home_rewrite_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/podman_state.c -o podman_state_static.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -o migr selection_match.o selection.o config.o main.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -static -o migr-static selection_match_static.o selection_static.o config_static.o main_static.o detect_static.o report_static.o backup_static.o backup_plan_static.o packages_static.o groups_static.o flatpak_static.o restore_static.o console_static.o dconf_restore_static.o live_state_static.o utils_static.o selfcopy_static.o fileops_static.o fsprobe_static.o xdg_static.o manifest_static.o encoding_static.o portable_name_static.o container_static.o metadata_static.o metadata_xattr_static.o portable_hashset_static.o portable_prescan_static.o portable_fsops_static.o portable_static.o portable_reconcile_static.o portable_restore_replay_static.o portable_restore_shared_static.o portable_restore_orchestrate_static.o portable_restore_preflight_static.o sidecar_static.o sidecar_state_static.o sidecar_state_map_static.o hash_static.o verify_static.o repair_static.o source_snapshot_static.o writer_apps_static.o home_rewrite_static.o subid_static.o podman_state_static.o /usr/bin/ld.bfd: /tmp/ccZKzZJO.ltrans0.ltrans.o: in function `manifest_set_source_identity.lto_priv.0': /builddir/build/BUILD/migr-0.1.1-build/migr-0.1.1/src/backup.c:1857:(.text+0x8b37): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.PHjs2m + umask 022 + cd /builddir/build/BUILD/migr-0.1.1-build + '[' /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT ++ dirname /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT + mkdir -p /builddir/build/BUILD/migr-0.1.1-build + mkdir /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd migr-0.1.1 + /usr/bin/make install DESTDIR=/builddir/build/BUILD/migr-0.1.1-build/BUILDROOT 'INSTALL=/usr/bin/install -p' PREFIX=/usr install-static install -Dm755 migr /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/bin/migr install -Dm755 migr-static /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/bin/migr-static + /usr/bin/find-debuginfo -j2 --strict-build-id -m -i --build-id-seed 0.1.1-1.fc46 --unique-debug-suffix -0.1.1-1.fc46.x86_64 --unique-debug-src-base migr-0.1.1-1.fc46.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 --remove-section .gnu.build.attributes -S debugsourcefiles.list /builddir/build/BUILD/migr-0.1.1-build/migr-0.1.1 find-debuginfo: starting Extracting debug info from 2 files nm: /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/bin/migr-static: no symbols DWARF-compressing 2 files sepdebugcrcfix: Updated 2 CRC32s, 0 CRC32s did match. Creating .debug symlinks for symlinks to ELF files Copying sources found by 'debugedit -l' to /usr/src/debug/migr-0.1.1-1.fc46.x86_64 find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + COMPRESS='gzip -9 -n' + COMPRESS_EXT=.gz + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j2 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-det --brp -j2 /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT Scanned 12 directories and 93 files, processed 0 inodes, 0 modified (0 replaced + 0 rewritten), 0 unsupported format, 0 errors + /usr/bin/linkdupes --brp /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr Scanned 11 directories and 93 files, considered 93 files, read 0 files, linked 0 files, 0 errors sum of sizes of linked files: 0 bytes Reading /builddir/build/BUILD/migr-0.1.1-build/SPECPARTS/rpm-debuginfo.specpart Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.hyhG2m + umask 022 + cd /builddir/build/BUILD/migr-0.1.1-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd migr-0.1.1 + make test gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DFILEOPS_TEST_HOOKS -DBACKUP_TEST_HOOKS -DNATIVE_VISITED_TEST_HOOKS -c src/fileops.c -o fileops_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DBACKUP_TEST_HOOKS -o tests/test_native_selection tests/test_native_selection.c fileops_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_manifest_selection tests/test_manifest_selection.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_portable_selection tests/test_portable_selection.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_selection tests/test_selection.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -Wl,--wrap=read -Wl,--wrap=__read_chk -Wl,--wrap=waitpid -o tests/test_config tests/test_config.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_detect tests/test_detect.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -c src/report.c -o report_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -Wl,--wrap=readdir -o tests/test_report tests/test_report.c report_test.o selection_match.o selection.o config.o detect.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_pathjoin tests/test_pathjoin.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_fd_limit tests/test_fd_limit.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DUSER_CONTEXT_TEST_HOOKS -c src/utils.c -o utils_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DUSER_CONTEXT_TEST_HOOKS -o tests/test_confirm tests/test_confirm.c utils_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DPACKAGES_TEST_HOOKS -c src/packages.c -o packages_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DGROUPS_TEST_HOOKS -c src/groups.c -o groups_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPACKAGES_TEST_HOOKS -DGROUPS_TEST_HOOKS -Wl,--wrap=malloc -o tests/test_packages tests/test_packages.c packages_test.o groups_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_xdg tests/test_xdg.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_get_dir_size tests/test_get_dir_size.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -Wl,--wrap=read -o tests/test_run_command tests/test_run_command.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DFILEOPS_TEST_HOOKS -DBACKUP_TEST_HOOKS -Wl,--wrap=readlink -o tests/test_special_files tests/test_special_files.c fileops_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_fsprobe tests/test_fsprobe.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -Wl,--wrap=strdup -o tests/test_manifest tests/test_manifest.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_encoding tests/test_encoding.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DPORTABLE_NAME_TEST_HOOKS -c src/portable_name.c -o portable_name_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_NAME_TEST_HOOKS -o tests/test_portable_name tests/test_portable_name.c portable_name_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DCONTAINER_TEST_HOOKS -c src/container.c -o container_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DCONTAINER_TEST_HOOKS -o tests/test_container tests/test_container.c container_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_selfcopy tests/test_selfcopy.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DCONSOLE_TEST_HOOKS -c src/console.c -o console_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DCONSOLE_TEST_HOOKS -o tests/test_console tests/test_console.c console_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_subid tests/test_subid.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_podman_state tests/test_podman_state.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_restore_native tests/test_restore_native.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -Wl,--wrap=syncfs -o tests/test_restore_sync tests/test_restore_sync.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DFILEOPS_TEST_HOOKS -o tests/test_restore_source_read tests/test_restore_source_read.c fileops_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DBACKUP_TEST_HOOKS -c src/backup.c -o backup_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DBACKUP_TEST_HOOKS -o tests/test_backup_source_read tests/test_backup_source_read.c backup_test.o fileops_test.o selection_match.o selection.o config.o detect.o report.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o tests/test_backup_source_read.c: In function ‘run_backup_capture_race’: tests/test_backup_source_read.c:632:19: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 632 | (void)write(ready[1], &skipped, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DBACKUP_TEST_HOOKS -DFILEOPS_TEST_HOOKS -o tests/test_vscode_capture tests/test_vscode_capture.c backup_test.o fileops_test.o selection_match.o selection.o config.o detect.o report.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DDCONF_RESTORE_TEST_HOOKS -c src/dconf_restore.c -o dconf_restore_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DDCONF_RESTORE_TEST_HOOKS -o tests/test_dconf_restore tests/test_dconf_restore.c dconf_restore_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_live_state tests/test_live_state.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_verify tests/test_verify.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_repair tests/test_repair.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_source_snapshot tests/test_source_snapshot.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DMIGR_ALLOW_UNPRIVILEGED -c src/main.c -o main_unprivileged.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/migr-unprivileged main_unprivileged.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DPORTABLE_CAPTURE_TEST_HOOKS -c src/portable.c -o portable_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DPORTABLE_CAPTURE_TEST_HOOKS -c src/portable_reconcile.c -o portable_reconcile_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DBACKUP_TEST_HOOKS -Wl,--wrap=syncfs -Wl,--wrap=read -o tests/test_backup_sync tests/test_backup_sync.c fileops_test.o portable_test.o portable_reconcile_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DRESTORE_TEST_HOOKS -c src/restore.c -o restore_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DPORTABLE_RESTORE_REPLAY_TEST_HOOKS -c src/portable_restore_replay.c -o portable_restore_replay_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DWRITER_APPS_TEST_HOOKS -c src/writer_apps.c -o writer_apps_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DBACKUP_TEST_HOOKS -DRESTORE_TEST_HOOKS -DPACKAGES_TEST_HOOKS -DGROUPS_TEST_HOOKS -DPORTABLE_RESTORE_REPLAY_TEST_HOOKS -DWRITER_APPS_TEST_HOOKS -o tests/test_restore_dispatch tests/test_restore_dispatch.c restore_test.o portable_restore_replay_test.o backup_test.o packages_test.o groups_test.o writer_apps_test.o selection_match.o selection.o config.o detect.o report.o backup_plan.o flatpak.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_restore_atime tests/test_restore_atime.c restore_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DBACKUP_PLAN_TEST_HOOKS -c src/backup_plan.c -o backup_plan_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DBACKUP_TEST_HOOKS -DBACKUP_PLAN_TEST_HOOKS -DWRITER_APPS_TEST_HOOKS -o tests/test_backup_plan tests/test_backup_plan.c backup_test.o backup_plan_test.o fileops_test.o writer_apps_test.o selection_match.o selection.o config.o detect.o report.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DMETADATA_XATTR_TEST_HOOKS -c src/metadata_xattr.c -o metadata_xattr_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DMETADATA_XATTR_TEST_HOOKS -Wl,--wrap=flistxattr -o tests/test_metadata_contract tests/test_metadata_contract.c metadata_xattr_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_metadata_snapshots tests/test_metadata_snapshots.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_sidecar tests/test_sidecar.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DSIDECAR_TEST_HOOKS -c src/sidecar.c -o sidecar_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DSIDECAR_TEST_HOOKS -o tests/test_sidecar_state tests/test_sidecar_state.c sidecar_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DSIDECAR_STATE_TEST_HOOKS -c src/sidecar_state.c -o sidecar_state_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DSIDECAR_STATE_TEST_HOOKS -c src/sidecar_state_map.c -o sidecar_state_map_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_sidecar_scale tests/test_sidecar_scale.c sidecar_state_test.o sidecar_state_map_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_portable_hashset tests/test_portable_hashset.c selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DPORTABLE_PRESCAN_TEST_HOOKS -DPORTABLE_NAME_TEST_HOOKS -c src/portable_prescan.c -o portable_prescan_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_PRESCAN_TEST_HOOKS -DPORTABLE_NAME_TEST_HOOKS -o tests/test_portable_capture tests/test_portable_capture.c portable_prescan_test.o portable_name_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -o tests/test_portable_capture_scale tests/test_portable_capture_scale.c portable_test.o portable_reconcile_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_CAPTURE_TEST_HOOKS -DSIDECAR_TEST_HOOKS -o tests/test_portable_prepare tests/test_portable_prepare.c portable_test.o portable_reconcile_test.o sidecar_test.o sidecar_state_test.o sidecar_state_map_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DNATIVE_VISITED_TEST_HOOKS -o tests/test_native_reconcile_scale tests/test_native_reconcile_scale.c fileops_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DNATIVE_VISITED_TEST_HOOKS -o tests/test_native_hardlink_scale tests/test_native_hardlink_scale.c fileops_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_CAPTURE_TEST_HOOKS -o tests/test_portable_collision_scale tests/test_portable_collision_scale.c portable_test.o portable_reconcile_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_CAPTURE_TEST_HOOKS -o tests/test_portable_hardlink_scale tests/test_portable_hardlink_scale.c portable_test.o portable_reconcile_test.o sidecar_state_test.o sidecar_state_map_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_CAPTURE_TEST_HOOKS -DSIDECAR_TEST_HOOKS -o tests/test_portable_resume tests/test_portable_resume.c portable_test.o portable_reconcile_test.o sidecar_test.o sidecar_state_test.o sidecar_state_map_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_CAPTURE_TEST_HOOKS -o tests/test_portable_reconcile tests/test_portable_reconcile.c portable_test.o portable_reconcile_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_CAPTURE_TEST_HOOKS -o tests/test_portable_reconcile_scale tests/test_portable_reconcile_scale.c portable_test.o portable_reconcile_test.o sidecar_state_test.o sidecar_state_map_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable_restore_replay.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DPORTABLE_RESTORE_PREFLIGHT_TEST_HOOKS -c src/portable_restore_preflight.c -o portable_restore_preflight_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DMETADATA_TEST_HOOKS -c src/metadata.c -o metadata_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DMETADATA_TEST_HOOKS -DPORTABLE_RESTORE_PREFLIGHT_TEST_HOOKS -o tests/test_portable_restore_preflight tests/test_portable_restore_preflight.c portable_restore_replay_test.o portable_restore_preflight_test.o metadata_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_shared.o portable_restore_orchestrate.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_RESTORE_REPLAY_TEST_HOOKS -Wl,--wrap=syncfs -o tests/test_portable_restore_replay tests/test_portable_restore_replay.c portable_restore_replay_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DBACKUP_TEST_HOOKS -DMETADATA_TEST_HOOKS -o tests/test_portable_restore_orchestrate tests/test_portable_restore_orchestrate.c portable_restore_replay_test.o metadata_test.o backup_test.o selection_match.o selection.o config.o detect.o report.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o portable_name.o container.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_shared.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -MMD -MP -DPORTABLE_RESTORE_ADDRESS_TEST_HOOKS -DPORTABLE_NAME_TEST_HOOKS -c src/portable_restore_shared.c -o portable_restore_shared_test.o gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -I src -pthread -DPORTABLE_RESTORE_ADDRESS_TEST_HOOKS -DPORTABLE_NAME_TEST_HOOKS -o tests/test_portable_restore_invariant tests/test_portable_restore_invariant.c portable_restore_replay_test.o portable_restore_shared_test.o portable_name_test.o selection_match.o selection.o config.o detect.o report.o backup.o backup_plan.o packages.o groups.o flatpak.o restore.o console.o dconf_restore.o live_state.o utils.o selfcopy.o fileops.o fsprobe.o xdg.o manifest.o encoding.o container.o metadata.o metadata_xattr.o portable_hashset.o portable_prescan.o portable_fsops.o portable.o portable_reconcile.o portable_restore_orchestrate.o portable_restore_preflight.o sidecar.o sidecar_state.o sidecar_state_map.o hash.o verify.o repair.o source_snapshot.o writer_apps.o home_rewrite.o subid.o podman_state.o ./tests/test_detect :: Phase 0: distro detection (unit) v Debian (ID=debian) -> Debian/Ubuntu v Fedora (ID=fedora) -> Fedora/RHEL v Arch (ID=arch) -> Arch v Pop!_OS (ID_LIKE=ubuntu debian) -> Debian/Ubuntu v elementary (ID_LIKE=ubuntu) -> Debian/Ubuntu v Raspberry Pi OS (ID_LIKE=debian) -> Debian/Ubuntu v Nobara (ID_LIKE=fedora) -> Fedora/RHEL v Garuda (ID_LIKE=arch) -> Arch v ID beats ID_LIKE -> Fedora/RHEL v ID beats ID_LIKE (reversed order) -> Fedora/RHEL v openSUSE stays unknown (zypper unsupported) -> Unknown v no ID field at all -> Unknown v empty file -> Unknown v PRETTY_NAME without its quotes v PRETTY_NAME unquoted v no PRETTY_NAME v empty PRETTY_NAME v missing file -> Unknown ./tests/test_manifest_selection manifest selection tests: 0 failures ./tests/test_native_selection Error: could not back up /tmp/migr-native-selection-SvpG7E/home/Documents: open the folder: Input/output error native selection: 0 failures ./tests/test_portable_selection R3 mismatched resume: rc=-1, container_unchanged=1 R3 mismatched fresh: rc=-1, container_unchanged=1, manifest_absent=1, data_absent=1 R3 equivalent selections: resume_rc=0 R3 annotation control: fresh_rc=0, resume_rc=0, self=1, network=1 portable selection: 0 failures ./tests/test_selection Error: the backup destination is inside /tmp/migr-selection-1niJnR/home, which this backup would capture. Writing a backup into a tree it is copying makes the copy consume itself; choose a destination outside every selected root. Error: could not resolve included path Error: could not resolve included path Error: could not resolve included path Error: could not resolve included path Error: backup roots overlap: /tmp/migr-selection-1niJnR/home/extra and /tmp/migr-selection-1niJnR/home/extra/child selection tests: 0 failures ./tests/test_config Error: invalid:1: unknown or misplaced section Error: invalid:1: unknown or misplaced section Error: invalid:1: path outside include/exclude section Error: invalid:2: path outside include/exclude section Error: invalid:2: repeated scope Error: invalid:3: repeated subsection Error: invalid:3: invalid or oversized path Error: invalid:3: invalid or oversized path Error: invalid:3: invalid or oversized path Error: invalid:3: invalid or oversized path Error: invalid:3: invalid or oversized path Error: invalid:3: invalid or oversized path Error: invalid:4: unknown or misplaced section Error: nul:1: config contains NUL Error: limit:0: config exceeds size limit Error: path-limit:3: invalid or oversized path Error: rule-limit:4099: too many rules Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot read regular config snapshot Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: config changed while reading Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:1: path outside include/exclude section Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: editor removed the config or left a non-regular file Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: editor failed Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: editor failed Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: invalid editor quoting or argument limit Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: editor failed Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: editor command too long Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: invalid editor quoting or argument limit Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot resolve config file Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot prepare regular config file Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot read regular config snapshot Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot prepare regular config file Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot read regular config snapshot Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot prepare regular config file Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot resolve config file Error: /tmp/migr-config-cFbwFM/home space/migr/migr.conf:0: cannot prepare regular config file config tests: 0 failures ./tests/test_report :: report measurement (unit) v the nested directory readdir call is made to fail v plain report reports a readdir failure instead of under-counting v a file is removed after readdir returns it v a vanished file leaves its root in the report ./tests/test_pathjoin :: path_join (unit) v simple -> "abc/de" v empty name -> "abc/" v nested name -> "/home/u/.config/x" v root parent avoids double slash -> "/leaf" v exact fit (size 7) -> "abc/de" v one byte short (size 6) -> refused (-1) v far too small (size 2) -> refused (-1) v span prefix -> "dir/foo" v span full length -> "dir/name" v span truncates -> refused (-1) v trailing slash dropped -> "/media/Storage" v repeated trailing slashes dropped -> "Storage" v no trailing slash unchanged -> "/media/x" v root stays root -> "/" v trim truncates -> refused (-1) ./tests/test_fd_limit :: raise_fd_limit (unit) v fixture: read the starting open-file limit v fixture: the soft limit can be set below the hard limit v fixture: the soft limit is now below the hard limit v raise_fd_limit restores the soft limit to the hard limit v raise_fd_limit never changes the hard limit itself v raise_fd_limit is idempotent once already at the ceiling fd limit tests: 0 failure(s) ./tests/test_confirm ok: a kept log holds the run as printed, without colors, with a redrawn line as last drawn, and the log-only lines ok: a log is readable by its owner only ok: a log that is not kept goes away with the folder made for it, and the folder holding it keeps the times the run gave it ok: every folder made only for a log that is not kept goes away ok: the newest ten logs are kept ok: a log that cannot be created takes back the folders made for it ok: SUDO_UID resolves the matching local uid, primary gid, and home ok: matching passwd record with malformed gid is rejected ok: duplicate local passwd uid is rejected for identity resolution ok: matching malformed passwd record is rejected for identity resolution ok: invalid local home rejects sudo identity resolution ok: missing local passwd uid is rejected for identity resolution ok: a uid resolves to its local login name ok: a uid with no local entry has no name ok: a uid shared by two local entries has no name ok: an entry with an empty name has no name ok: ordinary invocation returns HOME unchanged ok: ordinary invocation rejects a missing HOME ok: ordinary invocation rejects an empty HOME ok: ordinary invocation rejects HOME that cannot fit PATH_MAX ok: non-root invocation ignores inherited SUDO_UID and keeps HOME ok: SUDO_UID ignores elevated HOME and selects the invoking user's home ok: SUDO_UID resolution does not require ambient HOME ok: SUDO_UID and passwd UID use the same decimal parser ok: malformed SUDO_UID case 1 fails without HOME fallback ok: malformed SUDO_UID case 2 fails without HOME fallback ok: malformed SUDO_UID case 3 fails without HOME fallback ok: malformed SUDO_UID case 4 fails without HOME fallback ok: malformed SUDO_UID case 5 fails without HOME fallback ok: malformed SUDO_UID case 6 fails without HOME fallback ok: malformed SUDO_UID case 7 fails without HOME fallback ok: malformed SUDO_UID case 8 fails without HOME fallback ok: the reserved uid_t -1 value is rejected ok: missing local passwd UID fails closed ok: duplicate local passwd UID is rejected as ambiguous ok: matching malformed passwd record fails closed ok: matching passwd record with empty home is rejected ok: matching passwd record with relative home is rejected ok: matching passwd record with PATH_MAX-overflowing home is rejected ok: valid passwd home containing spaces is preserved exactly ok: unrelated malformed passwd records do not manufacture a match ok: missing passwd database fails closed ok: progress ticker starts for stop regression ok: progress ticker reports a live worker after start ok: progress ticker accepts a synchronized snapshot ok: progress ticker state can be locked for fault injection ok: progress ticker state unlocks after fault injection ok: resolved ticker thread error does not fail stop after join ok: successful ticker stop clears ticker state ok: progress line below the fallback width is unchanged ok: progress line at columns minus one is unchanged ok: progress line beyond the fallback width is clamped to columns minus one ok: a message ends the progress line before it, and only once ok: bare Enter accepts the default-yes prompt ok: default-yes prompt displays [Y/n] ok: bare Enter declines the existing default-no prompt ok: default-no prompt still displays [y/N] ok: explicit n overrides default yes ok: explicit y overrides default no ok: whitespace-only input accepts default yes ok: whitespace-only input keeps default no ok: true EOF declines even when yes is displayed as the default ok: true EOF declines the default-no prompt ./tests/test_packages :: kernel-pinned module packages are left out of the list v per-kernel kmod-* builds are dropped; akmod and meta packages stay v an unterminated final kernel-pinned line is dropped too :: write_container_text_file_at (unit) v fixture: text-artifact container directory is created v fixture: text-artifact container directory opens v a complete text artifact is created with exact contents v no content clears a stale artifact and reports the tolerable empty state v fixture: read the file size limit v fixture: cap the file size v fixture: restore the file size limit v a failed write is an error with its cause, and leaves no truncated list v fixture: hardlink target file is created v fixture: hostile control slot is a hardlink v a hostile hardlink is removed, not followed or overwritten :: package_token_is_safe (unit) v a plain package name is safe v a name with digits/hyphen is safe v a token starting with '-' is rejected v a long-option-shaped token is rejected v an empty token is rejected v a NULL token is rejected :: read_package_list (unit) v fixture: normal package list opens v normal list leaves had_error clear v normal list preserves every package v normal list preserves package order and names v fixture: legacy package list opens v legacy list leaves had_error clear v legacy install entry is kept and deinstall entry is skipped v fixture: option-shaped package list opens v rejected option-shaped tokens are not read errors v option-shaped tokens never enter the package list v fixture: growth package list opens v fixture: growth list is written and rewound v growth path leaves had_error clear v growth path preserves more than 256 packages in order v fixture: directory fd opens for stream-error case v fixture: directory fd becomes a readable stream v fixture: directory read produces a stream error v stream read error sets had_error v stream read error does not invent package entries :: restore_packages (unit) :: restore_packages uses one native install transaction Packages 0 of 2 are already installed; installing 2 (this may take a while)... 2 installed, 0 skipped. v Debian fixture runs through the package restore path v Debian uses one full two-package batch with the canonical prefix v Debian reads installed state before and after the transaction v Debian successful batch leaves nothing to do by hand Packages 0 of 2 are already installed; installing 2 (this may take a while)... 2 installed, 0 skipped. v Fedora fixture runs through the package restore path v Fedora uses one full two-package batch with the canonical prefix v Fedora reads installed state before and after the transaction v Fedora successful batch leaves nothing to do by hand Packages 0 of 2 are already installed; installing 2 (this may take a while)... 2 installed, 0 skipped. v Arch fixture runs through the package restore path v Arch uses one full two-package batch with the canonical prefix v Arch reads installed state before and after the transaction v Arch successful batch leaves nothing to do by hand :: restore_packages derives skips from final package state v fixture: 455-package sparse-unavailable set is constructed Packages 0 of 455 are already installed; installing 455 (this may take a while)... 441 installed, 14 skipped. v Fedora sparse-unavailable fixture runs v Fedora keeps the single install on the canonical package-manager prefix v Fedora sends the expected number of targets in its only install call v Fedora reads installed state before and after, with no adaptive retries v Fedora leaves exactly the 14 packages absent from final state to do by hand v fixture: 455-package sparse-unavailable set is constructed Packages 0 of 455 are already installed; installing 455 (this may take a while)... 441 installed, 14 skipped. v Arch sparse-unavailable fixture runs v Arch keeps the single install on the canonical package-manager prefix v Arch sends the expected number of targets in its only install call v Arch reads installed state before and after, with no adaptive retries v Arch leaves exactly the 14 packages absent from final state to do by hand v Arch omits unavailable sync-db targets from the one install transaction Packages 0 of 3 are already installed; installing 3 (this may take a while)... 2 installed, 1 skipped. v nonzero install-transaction fixture runs v a non-availability install failure is classified from final state, not command exit status Packages 1 of 2 are already installed; installing 1 (this may take a while)... 2 installed, 0 skipped. v an already-installed Arch package need not be available in sync databases to count as restored Packages 1 of 2 are already installed; installing 1 (this may take a while)... 1 installed, 1 skipped. v Debian final-state accounting accepts only installed dpkg states Packages 0 of 3 are already installed; installing 3 (this may take a while)... 2 installed, 1 skipped. v Debian sends apt-get only what its repositories have, foreign architectures included, and lists the rest Packages No network connection; not installing. 1 installed, 1 skipped. v offline, nothing is installed and the missing packages are listed to install once the system is online :: restore_packages leaves installed packages out of the transaction and marks them explicit Packages 2 of 3 are already installed; installing 1 (this may take a while)... 3 installed, 0 skipped. v only the missing package reaches the package manager v an installed package not marked explicit is marked, once Packages 2 installed, 0 skipped. v Debian with everything installed and marked runs no package manager command Packages 2 installed, 0 skipped. v Debian marks installed packages with its own command Packages 2 installed, 0 skipped. v Fedora with everything installed and marked runs no package manager command Packages 2 installed, 0 skipped. v Fedora marks installed packages with its own command Packages 2 installed, 0 skipped. v Arch with everything installed and marked runs no package manager command Packages 2 installed, 0 skipped. v Arch marks installed packages with its own command :: restore_packages leaves packages that bring kernel modules to What's left (D103) Packages 0 of 4 are already installed; installing 1 (this may take a while)... 1 installed, 3 skipped. v Fedora installs the rest and lists a driver, what pulls it, and dkms itself Packages 0 of 2 are already installed; installing 1 (this may take a while)... 1 installed, 1 skipped. v Debian lists a driver that needs dkms through another package Packages 0 of 4 are already installed; installing 2 (this may take a while)... 2 installed, 2 skipped. v Arch follows the packages that need dkms or a kernel by name Packages 0 installed, 1 skipped. v without the list of such packages nothing is installed :: restore_packages on a distribution it does not support Packages v nothing is installed or queried v the todo points to packages.txt and counts its packages rror: Could not query packages that bring kernel modules: run the query: it exited with status 1 Warning: migr does not install packages on Fedora Linux 46 (Rawhide Prerelease). Error: Could not allocate package install batch: Is a directory Error: Could not add eyildizemre to the saved groups: run usermod: it exited with status 6 Error: Could not match the saved group memberships against this system: Success 0;34m:: restore_packages reports an error when the batch argv allocation fails v fixture: temp container directory is created v fixture: packages.txt is created v fixture: container directory opens Packages 0 installed, 4096 skipped. v fixture: the simulated batch-argv allocation failure actually fired v restore_packages reports an error instead of silently claiming 0 installed, 0 skipped :: groups_collect (unit) v group fixture is written v only groups whose member list names the user are listed, in file order, without malformed lines or unsafe names v a user in no group gets an empty list, not a failure v a group's gid is looked up by its name v a group listed twice, absent, or with a malformed gid has none v an unreadable group file yields no list and no gid :: restore_groups (unit) v the user is added in one usermod to the saved groups the system has and does not list them in yet v the summary names the groups added and the ones this system lacks, with the command for later, and skips saved names no system could have v a dry run says which groups it would add and runs nothing v a failed usermod fails the step v nothing runs when the user is already in every saved group v an administrators' group this system names differently is not left to the user v an unresolved user fails the step without running usermod v an empty list needs no user and changes nothing v a backup without groups.txt is skipped silently :: restore_flatpak_apps (unit) v missing apps are installed with one call per remote the system has, skipping installed apps and unsafe names v the summary names apps that did not install and gives the command for a remote the system lacks v a dry run says what it would install and installs nothing v offline, nothing is installed and the missing apps are listed with their command v without flatpak the apps are listed, not a failure v a backup without flatpak-apps.txt is skipped silently :: restore_flatpak_apps: flathub (unit) v a missing flathub is added from its own address before the installs, and its applications install v a dry run says it would add flathub and install from it v when adding fails, its applications are listed after the exact command that adds it v offline, flathub is not added and the command is listed v a flathub this system turned off stays off, with the command that turns it on packages tests: 0 failure(s) ./tests/test_xdg :: xdg_resolve (unit) v fixture: home without config is created v missing config uses XDG fallbacks v every absent key resolves to its English fallback v fixture: fallback-only home is removed v a HOME too long for the config path but not the fallback is reported as failure v config path overflow is not converted into fallback paths v fixture: config-open-error home is created v fixture: .config is a regular file v non-ENOENT config open failure is reported v config open failure is not converted into fallback paths v fixture: config-open-error home is removed v fixture: configured home is created v fixture: mixed XDG config is written v configured and absent XDG keys resolve together v $HOME-relative XDG value expands against the supplied home v absolute XDG value is preserved exactly v unmentioned XDG keys still use fallbacks v fixture: configured home is removed v fixture: stream-error home is created v fixture: user-dirs.dirs is a directory v stream read failure is reported v stream failure is not converted into fallback paths v fixture: stream-error home is removed xdg tests: 0 failure(s) ./tests/test_get_dir_size :: get_dir_size (unit) v fixture: regular file is created v regular file size is added to the existing accumulator v fixture: symlink and target are created v fixture: symlink and target sizes are distinguishable v symlink contributes its own lstat size, not target size v fixture: recursive directory tree is created v fixture: directory sizes are readable v directory recursion sums directory and regular-file sizes v fixture: empty directory is created v fixture: empty directory size is readable v clean readdir EOF succeeds for an empty directory v fixture: nonexistent path is addressable v nonexistent path is reported as a failure v fixture: unreadable subdirectory is created v unreadable subdirectory makes recursive measurement fail get_dir_size tests: 0 failure(s) ./tests/test_run_command :: run_command (unit) v a command that cannot be run prints nothing of its own v a captured command that cannot be run prints nothing of its own v what migr printed comes before the command's output v what migr printed comes before a captured command's stderr v a successful command exits 0 v a failing command's exit code is propagated v a nonexistent binary's failed exec is reported as the child's exit(1) :: run_command_capture (unit) v captured stdout matches the command's real output v a failing command with no output still null-terminates and reports its exit code v captured output is truncated safely while preserving the child's exit code v output far exceeding both the capture buffer and the pipe buffer still reports the child's real exit code, not a SIGPIPE-death -1 v a read() interrupted mid-capture by EINTR is retried, not treated as EOF v a NULL output buffer is rejected before anything is spawned v a zero-size output buffer is rejected before anything is spawned :: run_command_errors (unit) v only the command's errors are kept, with its exit code v errors longer than the buffer keep their end v a missing errors buffer is rejected before anything is spawned :: run_command_capture_with (unit) v env entries are added and replace inherited ones v a replaced name appears exactly once in the child's environment v a malformed env entry is rejected before anything is spawned v an identity drop without a home is rejected before spawning v stdin data reaches the child v empty stdin data gives the child an immediate EOF v large stdin is fed while stdout is drained, without deadlock v a child that ignores its stdin cannot kill migr with SIGPIPE, and the signal mask is restored run_command tests: 0 failure(s) ./tests/test_special_files Warning: skipping socket (runtime-only): /tmp/migr_native_visited_O2mA2i/source/sock Warning: skipping character device node: /dev/null Warning: skipping socket (runtime-only): /tmp/migr_special_iXXyiL/src/source.socket Warning: skipping character device node: /dev/null :: backup capture walker (unit) :: native hardlink capture (unit) v native hardlink source pair is present v native hardlink source pair shares one inode v nested native hardlink capture succeeds v nested native hardlink capture preserves the destination inode v native hardlink representative metadata is preserved v native hardlink capture resumes an existing pair v resume keeps both native hardlink names linked v cross-root native hardlink capture succeeds v native hardlinks remain linked across capture roots v native hardlink identity accepts matching device and inode v native hardlink identity rejects an inode mismatch v native hardlink identity rejects a device mismatch :: native hardlink capture interruption/resume (unit) v native hardlink capture is interrupted after one member v interruption leaves exactly one native hardlink destination member v native hardlink resume seeds existing representatives before walking v native hardlink capture resumes after root-order reversal v native hardlink interruption/resume preserves one destination inode :: native hardlink restore interruption/resume (unit) v native hardlink restore is interrupted after one member v restore interruption leaves exactly one hardlink destination member v native restore resume seeds existing representatives before walking v native restore resumes the reversed sibling without failure v previously restored representative is not reported as failed v native restore interruption/resume preserves one destination inode :: native capture visited paths (unit) v native capture with visited tracking succeeds v visited set records the root object v visited set records a regular file v visited set records a nested directory v visited set records a nested regular file without a leading slash v visited set records a symlink v visited set records a FIFO v visited set excludes a skipped socket v visited set excludes a skipped device node v visited set does not add a leading slash to relative paths :: native stale reconciliation (unit) v native reconciliation fixture is captured v stale scan and deletion succeeds after a clean capture v selective reconciliation removes only the unvisited file v reconciliation removes an unvisited subtree recursively v a scan error prevents every deletion in that run v a deletion failure is reported while later stale entries are attempted v the deletion failure says what was being done and errno v an empty source directory records its root object v a visited root is preserved while its stale child is removed v an unvisited skipped root and its stale subtree are removed v a non-directory root can be captured for reconciliation v a non-directory root is left untouched v a missing root is treated as an empty reconciliation target v FIFO is recreated as a FIFO v FIFO permissions are preserved v an existing destination FIFO of the right type is accepted on resume v FIFO contributes no payload bytes v Unix socket is skipped without creating a destination v Unix socket contributes no payload bytes v /dev/null is available as the device-node fixture v device node is skipped without creating a destination v device node contributes no payload bytes v a symlink at the final destination address is replaced, not written through v the file outside the destination is unchanged by that replacement v an intermediate destination symlink is replaced, not descended through v the file outside the destination is unchanged by that replacement either v a regular file is captured v an existing regular file with matching size and mtime is resumed past v a destination file that does not match the source is captured again v a symlink is captured as a symlink v an existing symlink with the identical target is resumed past v an existing symlink with a different target is replaced v a readlink() that fills the whole buffer is refused, not silently truncated v the truncation fixture actually fired v an existing destination directory of the right type is accepted on resume v resuming into it still writes the source's own children v a regular file where a directory belongs is replaced v a directory where a regular file belongs is replaced with its contents v a directory where a FIFO belongs is replaced v an older copy that cannot be removed is named with errno v an unreadable file is named with what failed and errno v backup_capture_at refuses a NULL context v backup_capture_at refuses a restore context v portable representation is refused, not run as a native clone v an invalid destination fd is refused v a destination path with an empty, ".", or ".." component is refused v a destination path in a folder is captured, the folder created v a symlink in place of that folder is refused, not descended through v no refused call wrote a destination ./tests/test_fsprobe :: fsprobe (unit) v all supported -> native v a missing capability -> portable v case-insensitive target -> portable, not native v a destination that can't hardlink -> portable, not native v an operational error -> refusal v error outranks unavailable -> refusal v an unknown status -> refusal (fail closed, not native) v an unset (never-probed) capability -> refusal, not native v NULL profile -> refusal v NULL out -> refusal v a refused profile leaves *out unchanged v fsprobe runs successfully on a usable root v every capability has a valid status (observed verdict: native) :: fsprobe: fd primitive stays on the opened directory after a path swap v fd-anchored probe rejects an invalid root fd v fixture: open the probe root before swapping its path v fixture: replace the original path with a different object v fd-anchored probe succeeds on the originally opened directory v fd-anchored probe leaves the borrowed root fd open v all probe artifacts were created and removed under the opened directory v the swapped-in path was not used as the probe anchor v fixture: remove the swapped-in object v fixture: remove the original probe root v fixture: recreate the probe root for later checks v timestamp probe root opens by fd v timestamp probe fixture times are set v timestamp probe fixture times are readable v fd-anchored timestamp probe runs and reports nsec policy v fd-anchored timestamp probe restores anchor core times v timestamp probe rejects an invalid root fd v probe root is readable after fsprobe v fsprobe leaves no residue in the destination v probe root removed cleanly ./tests/test_manifest :: manifest (unit) :: versioned manifest: missing v no manifest.txt at all -> MISSING :: versioned manifest: full round trip v manifest_write_v1 succeeds v written manifest reads back as VALID v version round-trips v representation round-trips v scope round-trips v sidecar_version round-trips v source identity presence round-trips v machine_id round-trips v source_uid round-trips v source_gid round-trips v the subordinate ID ranges round-trip (D93) v a VERSION=1 source HOME round-trips v self-binary presence round-trips v ARCH round-trips after source identity v an absent NETWORK_CONFIG field remains absent v SELINUX round-trips (D94) v root_count round-trips v root 0 id round-trips v root 0 policy round-trips v root 0 payload_path round-trips v root 0 source_path survives '=', tab, newline, '%%', and a non-UTF-8 byte v root 0 restore_path round-trips v root 1 id round-trips v root 1 policy round-trips v MANUAL_NATIVE root carries no restore address v a manifest without SOURCE_GID or SOURCE_HOME is written v a manifest without SOURCE_GID or SOURCE_HOME reads back without them :: versioned manifest: no source identity v zero-root manifest without identity writes v reads back as VALID v absent identity round-trips as absent v a manifest without ARCH remains valid and has no self binary v portable representation round-trips v non-zero sidecar_version round-trips v zero roots leaves roots NULL :: versioned manifest: ARCH without source identity v a manifest can write ARCH without the optional source identity pair v ARCH directly before ROOT_COUNT parses as VALID v ARCH does not imply source identity v ARCH round-trips without source identity v ROOT_COUNT remains aligned after optional ARCH lookahead :: versioned manifest: NETWORK_CONFIG without ARCH v a manifest can write NETWORK_CONFIG without ARCH v NETWORK_CONFIG directly before ROOT_COUNT parses as VALID v NETWORK_CONFIG does not imply a bundled migr binary v NETWORK_CONFIG=1 round-trips without ARCH v ROOT_COUNT remains aligned after optional NETWORK_CONFIG lookahead :: versioned manifest: legacy detection v fixture: an unversioned manifest.txt can be written v an unversioned XDG-key manifest -> LEGACY, not MALFORMED v legacy_manifest_read still parses its own output v legacy_manifest_read still recovers the source-locale basename v a KEY=value line whose key matches none of the six is MALFORMED, not LEGACY v a lone 'VERSION=1' (e.g. the magic line lost to corruption) is MALFORMED, not LEGACY v an empty existing manifest.txt is MALFORMED, not LEGACY :: legacy manifest: strdup() failure during read v fixture: an unversioned manifest.txt can be written v fixture: the simulated strdup() allocation failure actually fired v legacy_manifest_read reports the allocation failure distinctly, not as 0 (success) v the key whose value could not be duplicated is still left NULL, same safe fallback the caller already relies on :: versioned manifest: unknown version v an unrecognized VERSION -> UNKNOWN_VERSION, not MALFORMED or MISSING :: versioned manifest: malformed content is refused, never guessed v truncated: no root line at all where one was declared v unknown POLICY value v '%%' not followed by two hex digits v a trailing '%%' with no hex digits is refused v a trailing '%%' with only one hex digit is refused v '%%00' (an embedded NUL) is refused, not silently truncated v HOME_RELATIVE without a RESTORE field v MANUAL_NATIVE carrying a forbidden RESTORE field v trailing content after the declared root count v duplicate root id v MACHINE_ID without a paired SOURCE_UID v an unsupported ARCH value is malformed, not silently skipped v NETWORK_CONFIG accepts only the additive value 1 v ROOT_COUNT beyond the resource-exhaustion ceiling v SIDECAR_VERSION beyond INT_MAX is refused, not wrapped negative v SOURCE_UID beyond uid_t's range is refused, not wrapped to 0 v SELINUX accepts only the value 1 v a SOURCE_SUBUID range of no IDs is refused v unrelated non-KEY=value content is refused, not classified LEGACY v a line far longer than the bounded read buffer :: versioned manifest: a raw embedded NUL byte in a line is refused, not silently truncated v an embedded NUL well short of the line-length bound is refused :: versioned manifest: decoded path overflow is refused v a decoded SOURCE reaching PATH_MAX is refused, not truncated :: versioned manifest: IO error is distinct from missing/legacy v a backup_dir too long to join -> IO_ERROR, not MISSING v fixture: create manifest.txt as a directory v manifest.txt being a directory -> IO_ERROR, not LEGACY v fixture cleanup: remove the directory :: versioned manifest: write refuses an inconsistent Manifest v a HOME_RELATIVE root without has_restore_path is refused, not written v two roots sharing an id are refused, not written v m.version != MANIFEST_CURRENT_VERSION is refused, not silently written as v1 v a non-hex machine_id is refused, not written verbatim v a negative sidecar_version is refused, not written as -1 v an unsupported self-binary architecture is refused by the writer v fixture: a valid manifest writes successfully v the invalid write attempt is refused v the pre-existing valid manifest is untouched and still reads as VALID :: versioned manifest: resume identity includes bundled migr v otherwise identical manifests have equal resume identity v a partial without a bundled migr cannot resume an include-self backup v a bundled migr with a different architecture changes resume identity v matching bundled-migr state preserves resume identity :: versioned manifest: resume identity includes network config v a plain partial cannot resume an include-network-config backup v matching network-config state preserves resume identity :: versioned manifest: UPDATED records when the backup was taken v a manifest writes UPDATED after NETWORK_CONFIG v UPDATED round-trips, and the lines after it stay aligned v a manifest without UPDATED reads as unrecorded :: versioned manifest: install identity ignores the selection v another scope, root table, or extras is still the same install v another user is not v another machine is not v another representation is not v a backup without a source identity is not :: versioned manifest: fd-relative writer v fixture: the container directory opens v manifest_write_v1_at succeeds v what it wrote reads back as VALID through the fd reader v the root table round-trips through the fd writer v manifest_write_v1 succeeds on the same model v the fd and pathname writers produce byte-identical output v fixture: manifest.txt is a symlink to another file v manifest_write_v1_at replaces a symlinked manifest.txt with a file v the symlink's target is unchanged v fixture: manifest.txt.new is a symlink to another file v a symlinked manifest.txt.new is refused v the symlink's target is still unchanged v an invalid container fd is refused v a NULL manifest is refused ./tests/test_encoding :: encoding (unit) :: encoding: manifest-path problem bytes round-trip v problem bytes encode successfully v encoded problem bytes decode successfully v decoded bytes match the original exactly :: encoding: malformed manifest-path values are refused v bad hex escape is refused v trailing percent with no hex digits is refused v trailing percent with one hex digit is refused v decoded NUL is refused :: encoding: decoded path overflow is refused v decoded value reaching PATH_MAX is refused, not truncated :: encoding: encoded output overflow is refused v encoded output that cannot fit is refused :: encoding: component N-1 rules v a slash is always percent-encoded in a component v only the final byte of a.. is encoded v only the final byte of a... is encoded v a literal percent is percent-encoded v a slash round-trips through component encoding v a.. round-trips through component encoding v a... round-trips through component encoding v a literal percent round-trips through component encoding v a valid 2-byte UTF-8 sequence passes through unchanged v a well-formed UTF-8 component round-trips v a valid E0 3-byte UTF-8 sequence passes through unchanged v a well-formed UTF-8 component round-trips v a valid general 3-byte UTF-8 sequence passes through unchanged v a well-formed UTF-8 component round-trips v a valid ED 3-byte UTF-8 sequence passes through unchanged v a well-formed UTF-8 component round-trips v a valid F0 4-byte UTF-8 sequence passes through unchanged v a well-formed UTF-8 component round-trips v a valid general 4-byte UTF-8 sequence passes through unchanged v a well-formed UTF-8 component round-trips v a valid F4 4-byte UTF-8 sequence passes through unchanged v a well-formed UTF-8 component round-trips v an overlong 2-byte sequence is escaped byte-by-byte v a lone continuation byte is escaped v a truncated UTF-8 sequence is escaped byte-by-byte v a surrogate-range sequence is escaped byte-by-byte v an out-of-range sequence is escaped byte-by-byte v an overlong sequence round-trips through escapes v a lone continuation byte round-trips through escapes v a truncated sequence round-trips through escapes v a surrogate-range sequence round-trips through escapes v an out-of-range sequence round-trips through escapes :: encoding: raw-name corpus acceptance gate v raw-name corpus entry encodes successfully v raw-name corpus entry has no hostile raw suffix or punctuation v raw-name corpus entry round-trips v raw-name corpus entry encodes successfully v raw-name corpus entry has no hostile raw suffix or punctuation v raw-name corpus entry round-trips v raw-name corpus entry encodes successfully v raw-name corpus entry has no hostile raw suffix or punctuation v raw-name corpus entry round-trips v raw-name corpus entry encodes successfully v raw-name corpus entry has no hostile raw suffix or punctuation v raw-name corpus entry round-trips :: encoding: component injectivity v literal %2E and a trailing dot have distinct encodings v literal %2F and a slash have distinct encodings v literal %2E decodes back to its own input v a trailing dot decodes back to its own input v literal %2F decodes back to its own input v a slash decodes back to its own input :: encoding: component decoder is fail-closed v a raw slash is refused by the component decoder v a raw space is refused by the component decoder v a raw lone continuation byte is refused by the component decoder v a raw trailing dot is refused by the component decoder, since the encoder always escapes it (%%2E) v a raw trailing dot after other dots is still refused v a non-trailing dot decodes normally ./tests/test_portable_name :: portable physical name: fitting representation v safe ASCII stays byte-for-byte unchanged v spaces and punctuation use the existing component encoding v a trailing dot keeps the existing component encoding v valid UTF-8 stays literal when the encoded name fits v invalid UTF-8 bytes retain lossless percent encoding v a fitting collision suffix uses canonical D21 spelling :: portable physical name: exact shortening vector v 255 exclamation bytes match the fixed repository-FNV vector v the shortening marker is 16-digit uppercase hexadecimal :: portable physical name: percent-escape boundary v an overflowing percent-encoded component is shortened v the prefix stops before a percent escape that would be split v unused sub-token budget is left unused rather than truncating an escape :: portable physical name: UTF-8 boundaries v a 2-byte UTF-8 code point is never split v a 3-byte UTF-8 code point is never split v a 4-byte UTF-8 code point is never split :: portable physical name: collision suffix budgeting v suffix growth reduces the retained encoded prefix before mapping v collision number 1 stays canonical and within NAME_MAX v UINT64_MAX is canonically suffixed and rebudgeted without overflow :: portable physical name: deterministic mapping v mapping is byte-identical when call order is reversed :: portable physical name: forced fingerprint collision v the mapper adds no hidden discriminator for equal fingerprints :: portable physical name: invalid inputs v a NULL logical component fails with empty output v an empty logical component is refused v dot is refused as a component v dot-dot is refused as a component v an embedded path separator is refused v a raw component longer than NAME_MAX is refused v a NULL output pointer is refused All portable physical-name tests passed ./tests/test_container :: container (unit) :: container: the first reservation is named after its owner v reserve succeeds v final_name is migr- v partial_name is final_name + ".partial" v first reservation has no suffix :: container: taken names advance to the dated name, then to -2 v fixture: first reservation v fixture: first reservation has suffix 0 v the second is named after the local date v the third on the same day gets -2 :: container: owner characters some filesystems reject become '_' v migr-john.doe-2_x v migr-a_b_c_d v migr-_hidden v migr-_ v migr-abcdefghijabcdefghijabcdefghijab :: container: reserve_fd stays on the opened destination after a path swap v fixture: open the destination root before swapping its path v fixture: replace the destination path with a different directory v reserve_fd succeeds against the originally opened destination v reserve_fd leaves the borrowed destination fd open v reserve_fd claims its partial under the opened destination v fixture: open the swapped-in destination v reserve_fd does not claim a partial under the swapped path v fixture: recreate the destination root for later checks :: container: a pre-existing final name advances to the next suffix, untouched v fixture: pre-create the final name for suffix 0 v reserve succeeds by skipping the taken suffix v suffix 0's final was taken, so suffix 1 was claimed instead v the pre-existing final directory is untouched :: container: two same-second reservations claim distinct partials v fixture: a child reported ready at the start gate v fixture: a child reported ready at the start gate v fixture: released both children from the start gate v fixture: received a child's result v fixture: received a child's result v both children exited cleanly v both concurrent reservations succeeded v the two concurrent reservations claimed suffixes {0,1}, not the same one :: container: losing the flock race to a concurrent adopt-scan advances the suffix instead of failing v reserve retries the next suffix instead of failing when it loses the flock race v fixture: the simulated concurrent holder actually acquired the lock v the contended suffix-0 partial is left on disk, not unlinked out from under its holder :: container: successful finalize removes the partial name and creates the final v fixture: reserve v finalize succeeds v the handle reports CONTAINER_STATE_FINALIZED v the .partial name no longer exists v the final name now exists v the finalized container retains its payload :: container: a pre-rename sync failure leaves the partial untouched v fixture: reserve v an invalid payload fd makes finalize fail closed before rename v the handle remains PARTIAL after a pre-rename sync failure v the partial name remains after a pre-rename sync failure v the final name is not created after a pre-rename sync failure :: container: finalize refuses to replace an existing final, leaving the partial intact v fixture: reserve v fixture: a concurrent finalize already claimed the final name v finalize refuses rather than replacing the existing final v the handle remains a valid PARTIAL state after refusal v the partial is left in place after a refused finalize :: container: finalize rejects an empty or already-finalized handle v finalize on a zeroed handle is refused v fixture: reserve v fixture: finalize once v finalizing an already-finalized handle is refused :: container: close releases the handle but leaves the partial on disk v fixture: reserve v the partial directory still exists after close() v the handle itself is reset to empty (dir_fd/partial_fd == -1) :: container: close on a zero-initialized handle never touches fd 0/1 v fd 0 (stdin) is still open after closing a zeroed handle v fd 1 (stdout) is still open after closing a zeroed handle :: container: NULL/missing arguments are rejected without crashing v reserve with a NULL out is rejected v reserve with a NULL dest_root is rejected v reserve_fd with an invalid dest_root_fd is rejected v reserve with a NULL owner is rejected v adopt with a NULL out is rejected v adopt with a NULL dest_root is rejected v adopt with a NULL wanted_identity is rejected v adopt_fd with an invalid dest_root_fd is rejected v adopt with a NULL owner is rejected v finalize(NULL) is rejected v close(NULL) does not crash :: container: adopt refuses a caller with no source identity, before any scan v an invocation without a source identity can never adopt anything :: container: adopt resumes a matching partial and keeps its verified inode v fixture: reserve v fixture: write a matching manifest v fixture: stat the reserved directory v a partial with a matching manifest is adopted v adopted handle names the same partial v fixture: rename the adopted partial externally v stat the adopted fd after the external rename v the adopted fd still refers to the same inode after an external rename :: container: adopt_fd stays on the opened destination after a path swap v fixture: reserve a partial for fd adoption v fixture: write the matching manifest v fixture: open the destination root before swapping its path v fixture: replace the destination path with a different directory v adopt_fd finds the matching partial under the opened destination v adopt_fd leaves the borrowed destination fd open v adopt_fd returns the expected partial name v adopt_fd opened the candidate under the opened destination v fixture: open the swapped-in destination v adopt_fd does not scan the swapped path v fixture: recreate the destination root for later checks :: container: adopt_fd keeps the borrowed fd open on an ambiguous failure v fixture: reserve the first matching partial v fixture: write the first matching manifest v fixture: reserve the second matching partial v fixture: write the second matching manifest v fixture: open the destination root for the failing adopt v adopt_fd refuses two matching partials without guessing v adopt_fd leaves the borrowed destination fd open after failure :: container: a partial still locked by a live handle is not adopted v fixture: reserve v fixture: write a matching manifest v the only matching partial is locked, so nothing is adopted :: container: two unlocked exact matches make adoption ambiguous v fixture: reserve first v fixture: write manifest into first v fixture: reserve second v fixture: second reservation collided to a distinct suffix v fixture: write the identical manifest into second v two unlocked exact matches are refused as ambiguous, not guessed at :: container: adopt rejects another install's backup v fixture: reserve a container v fixture: write the variant manifest v a representation mismatch is not adopted v fixture: reserve a container v fixture: write the variant manifest v a sidecar_version mismatch is not adopted v fixture: reserve a container v fixture: write the variant manifest v a machine_id mismatch is not adopted v fixture: reserve a container v fixture: write the variant manifest v a source_uid mismatch is not adopted v fixture: reserve a container v fixture: write the variant manifest v a candidate without a source identity is not adopted :: container: the same install's backup is adopted after its selection changed (scope/source_path/payload_path/policy/restore_path) v fixture: reserve v fixture: write the candidate's root table v a source_path-only difference is adopted v fixture: reserve v fixture: write the candidate's root table v a payload_path-only difference is adopted v fixture: reserve v fixture: write the candidate's root table v a policy (and has_restore_path) difference is adopted v fixture: reserve v fixture: write the candidate's root table v a restore_path value difference is adopted :: container: a finished backup of the same install is updated under .updating v fixture: reserve v fixture: publish a finished backup v fixture: stat it v it is adopted and renamed to its .updating name v the same directory is held, and no finished name is left meanwhile v an .updating name is in progress, not finished v a new reservation does not take the name being updated v finalizing publishes it under its finished name again v another install's finished backup is left alone :: container: another install's finished backup is offered, and adopted only by name v fixture: publish another install's backup v it is counted as another install's, with its name, time and size v for its own install it is that install's, with its size v a backup in another format is not offered v without a choice it is not adopted v chosen for another format, it is not adopted v chosen by name, it is adopted for an update v one left being updated is not offered v one being updated keeps its size for its own install v fixture: leave a first backup unfinished v an unfinished first backup counts no size :: container: an interrupt before any change leaves the backup finished v fixture: publish a finished backup v an interrupted run puts the finished name back while guarded v once unguarded, an interrupt leaves the .updating name :: container: missing/legacy/malformed/unknown-version manifests are not adopted v fixture: reserve a container v a partial with no manifest.txt at all is not adopted v fixture: reserve a container v a partial with a malformed manifest is not adopted v fixture: reserve a container v a partial with a legacy manifest is not adopted v fixture: reserve a container v a partial with an unknown manifest version is not adopted :: container: an unreadable candidate fails the whole adopt closed, even with a match present v fixture: reserve a genuinely matching container v fixture: write its matching manifest v fixture: create a bogus file candidate v the unreadable bogus candidate fails the scan closed, not just skips itself :: container: adopt ignores directory entries outside the exact naming grammar v fixture: create a name outside the grammar v fixture: give it a fully matching manifest v fixture: create a name outside the grammar v fixture: give it a fully matching manifest v fixture: create a name outside the grammar v fixture: give it a fully matching manifest v fixture: create a name outside the grammar v fixture: give it a fully matching manifest v fixture: create a name outside the grammar v fixture: give it a fully matching manifest v fixture: create a name outside the grammar v fixture: give it a fully matching manifest v fixture: create a name outside the grammar v fixture: give it a fully matching manifest v none of the grammar-violating names are recognized as candidates, despite matching manifests :: container: public name classifiers match the reserve/finalize grammar v a NULL name is not partial v a NULL name is not final v an empty name is not partial v an empty name is not final v a genuine .partial container name is recognized v a genuine .partial container name is recognized v a genuine .partial container name is recognized v a genuine .partial container name is recognized v a genuine finalized container name is recognized v a genuine finalized container name is recognized v a genuine finalized container name is recognized v a genuine finalized container name is recognized v a name outside the exact grammar is not treated as partial v a name outside the exact grammar is not treated as partial v a name outside the exact grammar is not treated as partial v a name outside the exact grammar is not treated as partial v a name outside the exact grammar is not treated as partial v a name outside the exact grammar is not treated as partial v a name outside the exact grammar is not treated as final v a name outside the exact grammar is not treated as final v a name outside the exact grammar is not treated as final v a name outside the exact grammar is not treated as final v a name outside the exact grammar is not treated as final :: container: manifest_read_v1_at refuses non-regular objects without blocking v fixture: reserve a container v fixture: create manifest.txt as a directory v manifest.txt as a directory is refused as malformed v fixture cleanup: remove the directory v fixture: create manifest.txt as a symlink v manifest.txt as a symlink is refused as malformed v fixture cleanup: remove the symlink v fixture: create manifest.txt as a FIFO v manifest.txt as a FIFO with no writer is refused as malformed, without blocking v fixture cleanup: remove the FIFO v fixture: create a Unix domain socket v fixture: bind the socket to manifest.txt's path v manifest.txt as a Unix domain socket is refused as malformed v fixture cleanup: remove the socket :: manifest: resume identity comparison ignores root order v identical root sets compare equal regardless of on-disk/in-memory order v a genuinely different root set compares unequal v NULL a is handled without crashing v NULL b is handled without crashing :: container: the list of files to copy again round-trips v a written list reads back with every item v an item is found by its root and path, and only that item v a list cut short is refused v a removed list reads as empty, and removing it again is fine ./tests/test_selfcopy :: selfcopy: real static and dynamic binaries v the real migr-static validates as static v the real migr-static reports x86_64 from e_machine v validation leaves the static binary offset at zero v the real dynamic migr is rejected by its PT_INTERP header v a rejected dynamic binary leaves no architecture result :: selfcopy: sibling locator and path refusals v an absent sibling migr-static is reported as not found v the absent-file result leaves no descriptor or architecture v the locator validates a static ELF sibling v the successful locator returns the open binary and architecture v the returned descriptor remains positioned at offset zero v a directory at the sibling path is not accepted as an ELF binary v the directory refusal leaves no descriptor open v O_NOFOLLOW refuses a symlink at the sibling path v the symlink refusal leaves no descriptor open :: selfcopy: malformed ELF bounds v a short file is rejected before reading an ELF header v a full-size header with the wrong ELF magic is rejected v a program-header table extending past EOF is rejected v a program-header entry smaller than Elf64_Phdr is rejected v overflow in the program-header extent is rejected v an unsupported ELF class is rejected rather than half-parsed v an unsupported ELF byte order is rejected rather than half-parsed :: selfcopy: architecture mapping v a supported e_machine maps to its manifest architecture name v a supported e_machine maps to its manifest architecture name v a supported e_machine maps to its manifest architecture name v a supported e_machine maps to its manifest architecture name v an unknown e_machine is refused v an unknown architecture leaves no architecture result selfcopy tests passed ./tests/test_console :: a restore leaves only the one graphical session v the invoker's Wayland session, next to a greeter and a closing one, is the only one v a session of another user than the invoker is not taken v a terminal the desktop's service manager started is on the desktop v another user's service manager is not the invoker's desktop v a process outside a session and the service manager stays in place v a session logind does not list stays in place v an SSH or console login stays in place v with another user's desktop open, the restore stays in place v so does one from a terminal the service manager started v without a desktop of the invoker's own, the restore stays in place :: the console is the first free one above the gettys v with nothing open, tty7 v a display manager on tty7 moves it to tty8 v with tty7 to tty15 open, there is none :: a source path reaches the service as written v each $ is doubled so systemd expands nothing v a path that does not fit is refused :: the text screen starts only on the code it shows v the code shown starts the restore That is not the code. Type 472 and press Enter: That is not the code. Type 472 and press Enter: That is not the code. Type 472 and press Enter: v empty lines and a wrong code ask again; spaces around it count That is not the code. Type 472 and press Enter: v Enter alone, or nothing, until the time runs out does not start it v the end of input without the code does not start it :: an unanswered text screen is noted once for the next run v with no earlier attempt there is nothing to say v a timed-out attempt is reported to the next run v and only once console tests passed ./tests/test_subid :: a user's ranges are read as the shadow tools list them v lines by name and by uid, in file order; malformed and overflowing lines are passed over v a user without ranges has none v a missing file gives no ranges :: the manifest's text of the ranges reads back the same v start:count pairs, comma-separated v a malformed, empty-count, overflowing, or overlong list is refused v an empty text is no ranges :: a container user keeps its place among the IDs v the same offset in the other system's range v positions continue across ranges v and back v an ID outside the ranges is not the containers' v a position the new ranges do not reach has no ID subid tests passed ./tests/test_podman_state :: containers.json names each container's writable layer v both layers, and not the image layer quoted in the metadata v each container's first name v a text it cannot read names no containers :: the containers' state is left out, images and volumes are not v the database, whichever podman wrote v the container registry and everything below it v each container's writable layer v the short link of a writable layer v image layers, their links, images, volumes, and the layer list stay :: layers.json keeps only the layers that were restored v the rewritten file keeps its mode and times v a layer whose folder was left out is dropped, the rest kept byte for byte v with every folder there, nothing changes v a list it cannot read is an error and stays as it is v without layers.json there is nothing to do podman state tests passed ./tests/test_restore_native Error: /tmp/restore_dst_W9eiCu/note.txt is a symbolic link, which restore does not write through. Move it aside and run the restore again. :: restore_native_at (unit) :: restore_native_at: an intermediate destination symlink escape is rejected v fixture: create an intermediate destination symlink pointing outside dest_root v preflight refuses the intermediate destination symlink v restoring through an intermediate destination symlink is refused v nothing was smuggled into the symlink's real target v the sentinel file outside dest_root is byte-for-byte unchanged :: restore_native_at: an existing final destination symlink is rejected v fixture: dest leaf is a pre-existing symlink to an outside file v restoring a file onto an existing destination symlink is refused v the symlink's real target is byte-for-byte unchanged v the destination symlink itself is left in place, never replaced :: restore_native_at: the backup's symlink replaces a file or symlink at its place v fixture: a folder where the link goes v fixture: the backup's symlink, and the new system's symlinks with another target and with the same one v a symlink with another target is replaced by the backup's v the replaced symlink's target is never written through v a symlink with the same target stays the backup's symlink v a file is replaced by the backup's symlink v a folder is not removed for the backup's symlink :: restore_native_at: an intermediate source symlink redirect is rejected v fixture: an intermediate source symlink points outside source_root v source status reports an unsafe intermediate symlink as an error v preflight refuses the intermediate source symlink v reading through an intermediate source symlink is refused v nothing was written to the destination :: restore_native_at: a genuine source leaf symlink is recreated by target string, not followed v fixture: create the source symlink v a dangling leaf symlink is a present source object v an absent final component is reported as missing v restoring a genuine symlink object succeeds v the destination is itself a symlink, never a followed/resolved file v fixture: readlink the recreated symlink v the recreated symlink's target string exactly matches the source's, absolute-and-'..' included :: restore_native_at: lexically invalid relative addresses are rejected without any mutation v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v a leading '/' in source_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v a leading '/' in destination_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v a leading '..' component in source_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v a leading '..' component in destination_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v an interior '..' component in source_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v an interior '..' component in destination_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v an empty interior component ("a//b") in source_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v a trailing slash in destination_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel v fixture: create nested source root v fixture: create nested destination root v fixture: create source a/ v a bare '.' component in source_rel is rejected v no mutation occurred in dest_root for this rejected address v an absolute destination address did not write outside dest_root v a parent destination address did not alter its outside sentinel :: restore_native_at: a normal nested tree of files and directories restores correctly v fixture: mkdir proj v fixture: mkdir proj/sub v fixture: mkdir proj/sub2 (left empty) v restoring the nested tree succeeds v the nested file's content matches the source v the empty nested directory was recreated :: restore_native_metadata_inventory_at: counts every entry it checks v fixture: mkdir proj v fixture: mkdir proj/sub v the inventory succeeds v proj, proj/sub and proj/sub/file.txt are counted and reported :: restore_native_at: a folder made on the way to the destination belongs to its parent's owner (skipped: needs root) :: restore_native_at: hardlinked payload files relink to one destination inode v fixture: create hardlink payload directory v fixture: create two hardlinked payload files v fixture: set representative mode on the source inode v the restore fixture's payload files share one source inode v native restore creates a hardlink map v restoring a payload with hardlinked files succeeds v both hardlinked payload paths restore as regular files v native restore relinks both hardlink names to one destination inode v native restore preserves mode and ownership through the shared inode v relinked hardlink payload files preserve their content v native restore carries the representative xattr to both hardlink names :: restore_native_at: a failed hardlink representative never poisons the inode map v fixture: create the failed-representative hardlink pair v fixture: place a wrong-type destination at the representative address v a representative type failure is reported before map insertion v the sibling can become a new representative after that failure v a failed representative leaves the later sibling independent v the wrong-type representative destination remains untouched :: restore_native_at: native accepts every filename byte unencoded (D19) v restoring a filename containing space, colon, percent, and 0xFF succeeds v the native destination contains the byte-identical problem name v readdir observes the original native filename bytes, without encoding :: restore_native_at: an existing regular file resumes (matching) or is overwritten (stale) v fixture: set a known mtime on the source file v first restore succeeds v the file was copied correctly v fixture: restore dest's mtime to match source exactly v second restore (matching size/mtime) succeeds v a dest file matching source's size and mtime is left alone (resumed), not re-copied v fixture: make dest's mtime stale v third restore (stale dest) succeeds v a dest file with a stale mtime is overwritten with the source's content :: restore_native_at: a normal FIFO restores as a FIFO v fixture: create a source FIFO v restoring a FIFO succeeds v the destination is a genuine FIFO :: restore_native_at: existing destination objects must have the source type v fixture: create source directory v fixture: create source FIFO v fixture: put a directory where a regular file would be restored v regular-to-directory replacement is refused v directory-to-regular replacement is refused v FIFO-to-regular replacement is refused v the refusal names the item and says what stands in its place v the wrong-type destination directory remains intact v the directory target's regular-file sentinel remains intact v the FIFO target's regular-file sentinel remains intact :: restore_native_at: a failure names the item, the step, and errno v fixture: a folder in the backup and its place on the new system v fixture: the place cannot be written to v the file that could not be written is named with errno v fixture: make the place writable again :: restore_native_at: a socket inside a restored directory is skipped, not failed v fixture: create a source directory v fixture: create a socket fd v fixture: socket path fits sun_path v fixture: bind the socket into proj/ v restoring a directory containing a socket still succeeds overall v the sibling regular file was still restored v no destination object was created for the skipped socket :: restore_native_at: a device node is skipped without a destination v /dev/null is available as a character-device fixture v restoring the device-node fixture succeeds by skipping it v skipping the device node creates no destination object :: restore_native_at: caller-owned root fds remain open and unchanged v fixture: record both root fd identities v a successful restore completes v both caller root fds survive a successful restore v an unsafe restore request is refused v both caller root fds survive a refused restore :: Warning: skipping socket (runtime-only): sock Warning: skipping character device node: null [0m restore_native_at: an empty relative address means the root object itself v an empty relative address on both sides restores the root directory itself (docs/DECISIONS.md D16) v the root directory's own contents were restored :: restore_native_preflight_at: nesting past the depth limit is refused, not crashed on v excessive payload nesting is refused instead of exhausting the stack :: restore_native_at_report: a guard-clause failure deep in the tree is attributed to its own nested path, not the restore root v excessive payload nesting is still refused with a real report attached v exactly one failure is recorded, not one per ancestor directory v the failure is not misattributed to the restore root itself v the failure is attributed to the actual deeply nested entry that hit the depth limit :: restore_native_at: an invalid or mismatched CloneContext is refused v a NULL ctx is refused v a CLONE_BACKUP operation is refused v a CLONE_PORTABLE_SIDECAR representation is refused v a negative source_root_fd is refused v a negative destination_root_fd is refused ./tests/test_restore_sync :: native restore report accumulates bytes and syncs across files v production periodic sync interval is 512 MiB v native restore report accumulates across smaller files and syncs once :: native restore aborts when periodic sync fails v a failed periodic sync aborts native restore and records failure ./tests/test_restore_source_read :: native restore source-read refusals (unit) v source regular fixture is readable v regular-source O_NOATIME refusal has a distinct validate status v directory-source O_NOATIME refusal has a distinct validate status v validate refusal creates no destination entries v validate refusal leaves source timestamps unchanged v apply fixture source is readable v apply-time source refusal propagates its distinct status v apply refusal reports zero applied and the failing entry v apply refusal creates no destination entry v apply refusal leaves source timestamps unchanged v partial-restore source timestamps are readable v apply-time refusal remains distinct after an earlier successful entry v partial restore reports one applied entry and its failing entry v partial restore leaves the destination tree for the applied entry v partial refusal leaves source timestamps unchanged v foreign destination group enters the ownership profile v destination ownership probe rejects an unavailable foreign group, naming the folder, the owner, the step, and errno ./tests/test_backup_source_read :: native backup source-safe-read tests - all cases skipped: root and an unprivileged nobody identity are required ./tests/test_vscode_capture ok: identity environment replaces HOME, drops XDG base-dir overrides, and keeps other entries in order ok: identity environment adds HOME when the caller has none ok: overrides replace inherited entries and may re-set a dropped name ok: identity environment rejects a non-absolute home ok: identity environment rejects a missing home ok: without SUDO_UID, VS Code capture keeps the invoking identity ok: identity capture without an absolute home fails before forking ok: set inherited SUDO_UID for unprivileged regression ok: non-root capture ignores SUDO_UID and does not drop identity ok: invalid target identity exits before the command can execute - root-only successful identity drop and sudo selection skipped: the test process is not running as root 1 VS Code capture case(s) skipped ./tests/test_dconf_restore :: dconf restore into a running session v without a session bus the restored file is left as the result v no dconf command runs without a session v without a session, settings naming the old home are rewritten v the rewritten dump is compiled into the same restored file, URIs and quoted paths alike, longer names untouched v the private work directory is removed v without a session the dump's runtime directory is a folder of the work directory, not the user's, which is gone v a database with nothing to rewrite stays as restored v nothing is compiled for it v a failed compile is reported and leaves the restored file v a session without dconf installed is reported as unavailable v a running session gets the backup's settings loaded v the dump reads a private copy of the backup through its own profile v the dump uses the user's runtime directory, not the invoker's v the load receives the whole dump over the user's session bus v the private work directory is removed v a running session gets the rewritten settings loaded v the load carries the paths of this system's home, and the file is left to the session v a failed dump is reported v a failed dump loads nothing and still cleans up v a failed load is reported v the failed step is dconf load, with its exit status v a dump larger than the limit is rejected, and says so v a truncated dump is never loaded v an empty database applies nothing v an empty dump is not loaded v an invalid database fd is rejected ./tests/test_live_state :: confirmed live desktop state paths v gvfs-metadata and everything below it is live v the dconf user database is live v Podman's storage lock is live v the rest of Podman's storage is not v a sibling sharing the prefix is not live v the same logical path under another root is not live v a parent of a live path is not itself live v missing arguments are never live ./tests/test_verify :: migr verify :: verify: an intact portable backup v every item of an intact backup matches its capture record v when the backup was taken is shown before verifying it :: verify: a backup it may not write v a read-only journal is verified v verify leaves every file in the container in place :: verify: damaged payloads are named v a same-size content change is reported as a content difference v a symlink placeholder with content is reported v a truncated file is reported with both sizes v restoring the damaged bytes makes the backup verify again v a missing directory and the file inside it are both reported :: verify: backups it cannot check are refused v an incomplete journal is refused and named :: verify: a native backup against its source v every file and symlink of an intact native backup matches v same-size damage is reported as a content difference v a backup file of another size is reported with both sizes v a symlink pointing elsewhere is reported v copying the source again makes the backup verify v a source changed since the backup is counted, not reported v a change whose modification time was set back is not taken for damage v without its source a native backup cannot be checked verify tests passed ./tests/test_repair :: migr repair :: repair: an intact journal needs no repair v an intact journal is reported as such and no copy is left behind :: repair: a damaged file record v the damaged record is skipped and its path is reported as lost v every other item survives with its digest and no claim is open v the repaired copy verifies against its copied payload v the original journal is left exactly as it was :: repair: a damaged directory record v a directory whose record was lost is re-created, losing nothing v the directory takes its parent's mode and keeps its children :: repair: a re-created directory with a collision suffix v its collision suffix is recovered from the physical leaf :: repair: a damaged directory CLAIM v items that depend on a lost CLAIM are left out and listed once :: repair: a journal cut short v a lost root directory record is re-created from its payload :: repair: refusals v the repaired copy is never written inside the damaged backup v the repaired copy is never written next to the damaged backup v a damaged header is refused and leaves nothing behind repair tests passed ./tests/test_source_snapshot :: source snapshot helpers v mountinfo octal escapes decode to the real path v a path without a full escape is left as it is v without root no snapshot is attempted and nothing is noted source snapshot tests passed ./tests/test_backup_sync :: native periodic capture sync v production periodic sync interval is 512 MiB v native sync fires once when one file crosses the interval v native sync counter accumulates across smaller files v native zero sync interval remains disabled v native capture aborts when periodic sync fails :: native capture rejects a short source read v a short read is rejected instead of reported as a successful capture v the short-copy fixture leaves source metadata unchanged and copies no payload bytes :: portable capture rejects a short source read v a short read with an unchanged source fails instead of being kept as a changed file :: native capture retries a read() interrupted by EINTR v a read() interrupted by EINTR is retried instead of aborting the capture v the interrupted copy still produces the complete payload :: portable periodic capture sync v portable sync fires once when one file crosses the interval v portable sync counter accumulates across smaller files v portable zero sync interval remains disabled v portable capture aborts when periodic sync fails ./tests/test_restore_dispatch :: restore dispatch (unit) :: restore dispatch: an absent manifest.txt routes to the legacy path v restore succeeds with no manifest.txt present v the legacy section header appears v the v1 section header does not appear :: restore dispatch: an unversioned XDG-key manifest routes to the legacy path v restore succeeds with an old-style XDG-key manifest.txt v the legacy section header appears v the v1 section header does not appear :: restore dispatch: an unrecognized manifest version refuses the whole restore v restore refuses an unrecognized manifest version v the legacy path is never attempted v the v1 path is never attempted :: restore dispatch: a malformed v1 manifest refuses the whole restore v restore refuses a malformed v1 manifest v the legacy path is never attempted v the v1 path is never attempted :: restore dispatch: a ".partial" source is refused before manifest dispatch v restore refuses a .partial-named source directory v the refusal names the reason: an in-progress/abandoned container :: restore dispatch: a canonical final-container name requires a v1 manifest v a finalized versioned name without manifest.txt is refused v the error identifies the missing versioned control artifact v the manifest-absent container is not guessed to be legacy v a finalized versioned name carrying a legacy manifest is refused v the error identifies the contradictory version boundary v the canonical versioned container never enters the legacy walker :: restore dispatch: portable v1 payload is never interpreted as a native tree v fixture: write a valid portable v1 manifest v portable v1 restore is refused while its replay path is absent v the refusal identifies the portable preflight path v portable payload never reaches the native root walker :: restore dispatch: running applications that own restored settings are named v only the target user's known writers are named, once per path they own v an open Flatpak app is named by its app id and owns its ~/.var/app directory, once for all its processes :: restore dispatch: the backup user's items go to the restoring user v a portable restore gives them to the restoring user (native case needs root; skipped) :: restore dispatch: container users keep their place among the new IDs v as many IDs as before need nothing from the user (moving owners needs root; skipped) v fewer IDs than before are named at the end, with how many :: restore dispatch: containers of another home are left out, images and volumes kept v native: the database, the container, its layer and link are left out v native: the image, its link, and the volume stay, and layers.json lists only the image's layer v native: the left-out container is named at the end v native: containers made where SELinux ran are left out where it does not v native: in the same home, everything is restored v portable: the database, the container, its layer and link are left out v portable: the image, its link, and the volume stay, and layers.json lists only the image's layer v portable: the left-out container is named at the end v portable: the summary counts what was left out v portable: containers made where SELinux ran are left out where it does not v portable: in the same home, everything is restored :: restore dispatch: native desktop state follows the new home v GTK bookmarks point at the new home's folders v the new system's user-dirs.dirs is kept :: restore dispatch: an open application's settings are restored last v asked at the end, s leaves the open application's settings out while everything else is restored v with no one to answer, the settings are restored anyway, with a note v Enter checks again while the application is still open, and c restores the settings anyway :: restore dispatch: a native restore restores open applications' settings last v the open applications are named before the prompt and asked about at the end v s leaves out a folder inside a root and whole roots, VS Code's extensions included, while everything else is restored v with no one to answer, both are restored anyway, with a note, and every item is counted once, the late ones included v the folder holding the late settings keeps its restored modification time v Enter checks again while they are still open, and c restores them anyway :: restore dispatch: a legacy restore holds back an open browser's profile too v s leaves the profile out of the legacy .mozilla item :: restore dispatch: what is left to do by hand ends the run and stays next to the backup v the run ends with the number of packages left to install by hand and says where the list naming them is kept v the same list is written next to the backup v a long list is counted on screen and named in the copy, one package per line v a restore with nothing left to do removes the old list :: restore dispatch: a restored login keyring asks for a new login v a portable restore that brings the keyring says so v a native restore over the new system's keyring says so v a dry run does not v a restore that leaves the login keyring alone does not :: restore dispatch: a native restore hands its dconf database to the session step v fixture: write the native dconf manifest v the native restore writes the dconf database v the backed-up database is handed to the running-session step :: restore dispatch: packages still run after a verification mismatch v fixture: write portable manifest for verification mismatch v fixture: commit portable sidecar for verification mismatch v the mismatch is listed and the restore fails with status 2 v packages are still restored once every file was applied v a running writer is named before the confirmation prompt v a later write by another program is listed, not failed, and the restore exits 1 :: portable replay failure identifies its entry v fixture: write portable manifest for replay failure reporting v fixture: commit portable sidecar for replay failure v portable replay summary identifies the failing entry and cause v restore final summary preserves the failing entry and cause v reported replay conflict leaves the existing destination untouched :: restore dispatch: every v1 root must have its declared payload v fixture: write a valid v1 manifest without its declared payloads v missing declared payloads refuse the versioned restore v the missing automatic root is reported v the missing manual root is reported v restore never advertises a nonexistent MANUAL_NATIVE payload v payload validation fails before the root walker starts :: restore dispatch: a valid v1 manifest restores HOME_RELATIVE/XDG roots and reports MANUAL_NATIVE v fixture: write a valid v1 manifest via the real writer v restore succeeds on a valid v1 manifest v the v1 section header appears v the legacy path is never attempted v the HOME_RELATIVE root is previewed at its recorded restore address v the XDG root is previewed against the target locale's resolved directory v the restore-by-hand section appears v the MANUAL_NATIVE root's id is listed v the MANUAL_NATIVE root's recorded source path is listed (docs/DECISIONS.md D16) v the MANUAL_NATIVE root's backup payload location is listed :: restore dispatch: an empty HOME_RELATIVE restore_path addresses $HOME itself (docs/DECISIONS.md D16) v fixture: write a valid v1 manifest with an empty restore_path v restore succeeds v an empty restore_path previews as the home directory itself, not a trailing-slash address :: restore dispatch: VERSION=2 ownership and target-map refusals v fixture: write a valid VERSION=2 selection manifest v a delegated child planted in the parent payload is refused before replay v fixture: write the VERSION=2 target-collision manifest v distinct selected entries mapping to one target are refused before confirmation v VERSION=2 target collision leaves the destination untouched :: restore dispatch: VERSION=2 payload depth is bounded v fixture: write the deep VERSION=2 manifest v an over-deep payload is refused cleanly with its manifest root named :: restore dispatch: VERSION=2 HOME_RELATIVE restore destination overflow names its root v fixture: write a VERSION=2 manifest whose HOME_RELATIVE root has a restore_path too long to join onto HOME v restore refuses when a HOME_RELATIVE restore destination cannot be joined onto $HOME v the overflow names the offending manifest root instead of failing silently (P4) :: restore dispatch: versioned restore freezes XDG target addresses for the invocation v fixture: write the VERSION=2 frozen-map manifest v fixture: add a hardlink inside the mapped XDG root v fixture: set mapped XDG root metadata v dry-run maps Documents using the target configuration present at invocation start v live restore uses the same Documents address after restoring user-dirs.dirs v hardlink seeding and directory metadata use the frozen mapped destination v fixture: write the VERSION=2 conflicting-retarget manifest v restored XDG configuration cannot redirect a later root into the CONFIG_0 destination :: restore dispatch: disjoint roots inspect every payload entry v fixture: write the disjoint-root payload-entry manifest v regular file v fixture: write the disjoint-root payload-entry manifest v symlink :: restore dispatch: disjoint roots inspect bind-mounted aliases v fixture: write the bind-alias payload-entry manifest v bind-mounted aliases name both roots and the unchanged destination :: restore dispatch: byte-sensitive directories keep ASCII-case-distinct names v fixture: write the ASCII-case restore manifest v ordinary byte-sensitive directories restore ASCII-case-distinct entries :: utility: restore progress speed is a cumulative average, not the last-interval rate v speed during a stall reflects the (tiny) average so far v speed after a burst is total_bytes / elapsed since start (10000), not the burst-only rate v speed after a burst is nowhere near the burst-only interval rate v zero bytes restored yields zero speed v non-positive elapsed time yields zero speed :: restore dispatch: live progress ticker is joined before optional restore steps v fixture: write the live-progress restore manifest v forced live progress leaves the restore result intact v the restore-only progress force installs the real display path v the files step ends on its totals, without a current path v a live restore joins its progress ticker before returning v package restore starts only after the progress ticker is joined :: restore dispatch: packages.txt does not require root preflight v fixture: write the package-restore manifest v packages.txt does not stop an unprivileged restore before mutation v recognized package restore reaches the sudo-prefixed install hook :: native restore identity graph: nested bind-mounted descendants keep route-specific views v equal root identity does not substitute another route's descendant fd :: restore dispatch: differing mount ids do not make aliases disjoint v fixture: write the differing-mount-id collision manifest v equal inode identity still refuses a collision before mutation :: restore dispatch: versioned destinations collide by resolved identity v fixture: write the VERSION=1 Shared/Alias collision manifest v VERSION=1 Shared/Alias duplicate files name both roots and the destination before refusing v fixture: write the nested non-directory root manifest v a file root nested below a directory root triggers the entry walk and refuses before mutation v fixture: write the VERSION=1 duplicate-directory alias manifest v distinct empty source directories cannot both own metadata for one aliased target v fixture: write the converging missing-suffix manifest v routes from different existing ancestors converge in memory before a missing suffix is created v fixture: write the HOME/XDG alias convergence manifest v HOME-relative and XDG routes converging through an alias refuse before mutation :: restore dispatch: resolved namespace order preserves legitimate nested aliases v fixture: write the three-level nested alias manifest v fixture: hardlink one payload across manifest roots v fixture: set distinct metadata on the three physical levels v non-conflicting nested alias targets restore with cross-root hardlink identity intact v directory metadata follows physical child-before-parent order despite alias spelling lengths :: restore dispatch: VERSION=2 nested-root directory metadata order v fixture: write the nested VERSION=2 selection manifest v fixture: set distinct root directory modes v fixture: set distinct root directory timestamps v child replay cannot perturb final HOME or child directory metadata :: native restore free-space preflight and hardlink estimate v fixture: write a valid v1 manifest for the space preflight v fixture: inspect the native payload directory size v native restore estimate counts directory size and a hardlink group only once v native dry-run refuses before confirmation when space is insufficient v native live restore refuses before confirmation when space is insufficient v native space refusal leaves the destination untouched :: network config privilege preflight: nonempty saved config refuses before consent v a nonempty saved network configuration is a standalone root requirement v network privilege refusal precedes consent and destination mutation v an unprivileged dry run previews and notes the root requirement :: network config privilege preflight: foreign ownership and network config share one refusal v foreign ownership and network configuration are reported together :: network config: backend isolation (2, -1, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable :: network config: backend isolation (4, -1, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable :: network config: backend isolation (7, -1, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v only NetworkManager invokes the reload hook, exactly once v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable :: network config: backend isolation (7, 1, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v only NetworkManager invokes the reload hook, exactly once v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v unwritable backend identifies the saved source in an informational note :: network config: backend isolation (7, -1, 1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v only NetworkManager invokes the reload hook, exactly once v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v a corrupt backend source is identified while healthy backends succeed :: network config: backend isolation (7, -1, -1, 1) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v dry-run emits no live apply instructions :: network config: backend isolation (0, -1, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v missing backend directories are distinct from a missing network directory :: network config: backend isolation (2, -1, 1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v a corrupt backend source is identified while healthy backends succeed v a corrupt sole backend is not also reported as entirely missing :: network config: backend isolation (8, -1, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v manual restart identifies the value the user must substitute v each manual backend emits its own hint only when applicable :: network config: backend isolation (16, -1, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v manual restart identifies the value the user must substitute :: network config: backend isolation (8, -1, 3, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v a corrupt backend source is identified while healthy backends succeed v a corrupt sole backend is not also reported as entirely missing :: network config: backend isolation (16, -1, 4, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v a corrupt backend source is identified while healthy backends succeed v a corrupt sole backend is not also reported as entirely missing :: network config: backend isolation (31, -1, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v only NetworkManager invokes the reload hook, exactly once v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v manual restart identifies the value the user must substitute v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v manual restart identifies the value the user must substitute :: network config: backend isolation (31, -1, -1, 1) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v no automatic reload without live NetworkManager files v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v each manual backend emits its own hint only when applicable v dry-run emits no live apply instructions :: network config: backend isolation (31, 3, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v only NetworkManager invokes the reload hook, exactly once v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v manual restart identifies the value the user must substitute v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v manual restart identifies the value the user must substitute v unwritable backend identifies the saved source in an informational note :: network config: backend isolation (31, 4, -1, 0) v only missing backends or corrupt sources fail restore v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v each backend restores only its own saved bytes with its fixed mode v only NetworkManager invokes the reload hook, exactly once v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v manual restart identifies the value the user must substitute v each manual backend emits its own hint only when applicable v manual apply explains the interruption risk v manual restart identifies the value the user must substitute v unwritable backend identifies the saved source in an informational note :: network config: wpa_supplicant backup-to-restore round trip Estimated backup size: 16B Destination free space: 139.4G Backing up to: /tmp/network_roundtrip_backup_wMy6oB/migr-mockbuild.partial Finalizing (syncing to disk)... Location: /tmp/network_roundtrip_backup_wMy6oB/migr-mockbuild Network configuration Captured wpa_supplicant under /tmp/network_roundtrip_backup_wMy6oB/migr-mockbuild/network/. This may include secrets such as WiFi passwords, PSKs, or VPN keys, stored as plain text. Anyone with access to this backup can read them. v production backup publishes a container for the sole backend OK: Backup complete: 1 item in the backup OK: Backup complete: 1 item in the backup v restore consumes the actual backup layout and preserves network bytes and mode v the round trip provides manual apply guidance without invoking automatic reload :: network config: netctl backup-to-restore round trip Estimated backup size: 16B Destination free space: 139.4G Backing up to: /tmp/network_roundtrip_backup_6UeF0Q/migr-mockbuild.partial Finalizing (syncing to disk)... Location: /tmp/network_roundtrip_backup_6UeF0Q/migr-mockbuild Network configuration Captured netctl under /tmp/network_roundtrip_backup_6UeF0Q/migr-mockbuild/network/. This may include secrets such as WiFi passwords, PSKs, or VPN keys, stored as plain text. Anyone with access to this backup can read them. v production backup publishes a container for the sole backend v restore consumes the actual backup layout and preserves network bytes and mode v the round trip provides manual apply guidance without invoking automatic reload :: network config: live restore copies regular files and reloads NetworkManager v live restore succeeds when the network destination is writable v an existing connection file is replaced with the saved bytes as 0600 v a 0755 saved connection file is created 0600, as NetworkManager requires v non-regular network backup entries are skipped v reload runs nmcli connection reload once, sets the source crypto policy, then restarts wpa_supplicant so Wi-Fi uses it v the live restore reports the number of applied connection files v the changed crypto policy is reported with the command to undo it :: network: restore waits for a connection before packages v the restore finishes, packages included v the network configuration is restored, then the wait names the network being connected, then packages install v the connected network is named once it is online v the restore finishes, packages included v with nothing to connect to, the wait says so once, gives up at the limit, and installs nothing v the restore finishes, packages included v an online system waits for nothing and prints nothing :: restore dispatch: restored roots get the policy's SELinux labels v a portable restore relabels the root it restored v a native restore relabels the root it restored v a dry run relabels nothing v a failed relabel is an error of the restore :: network config: each backend gets its fixed file mode v live restore of networkd and wpa_supplicant files succeeds v networkd configuration stays readable by systemd-network (0644) v a networkd .netdev that can hold keys is not world-readable (0640) - .netdev group assignment skipped: requires root v wpa_supplicant configuration holding keys is written 0600 v without NetworkManager the wpa_supplicant restart hint is shown v with NetworkManager running the wpa_supplicant files need no restart :: network config: dry-run previews without touching the destination v network dry-run succeeds v network dry-run previews the manifest-driven destination v network dry-run does not create the destination directory v network dry-run never invokes the reload command v a matching crypto policy prints nothing v a different crypto policy is previewed and not set :: network config: a failed reload or crypto policy warns without failing restore v a failed reload or crypto policy does not mark an otherwise successful restore failed v reload failure emits the best-effort warning v a failed crypto policy warns with the command to run v the failing path still receives the exact commands, and a policy not set restarts nothing v a failed wpa_supplicant restart warns without failing restore :: network config: one bad destination entry does not cost the remaining files v an unexpected per-file failure marks the overall restore failed v the failed connection file is identified v later regular connection files are still restored v reload still runs after at least one connection file was restored :: network config: an empty saved directory is a no-op v an empty saved network directory does not require root v an empty saved network directory remains a no-op v an empty saved network directory does not create the destination v an empty saved network directory does not reload NetworkManager :: network config: an unavailable destination is informational v an unavailable network destination does not mark the overall restore failed v the note explains that the saved connections remain in the backup v an unapplied network restore does not invoke reload :: network config: NETWORK_CONFIG=1 requires network/ to exist v a manifest that declares network configuration but lacks network/ fails v the inconsistent backup is diagnosed explicitly ./tests/test_restore_atime OK: Restore complete: 4 items restored OK: Restore complete: 4 items restored :: restore source atime (public dispatch) :: public legacy restore preserves directory and symlink atime v legacy restore completes successfully v legacy directory was restored v legacy symlink was restored v legacy nested symlink was restored v legacy source directory atime is unchanged after both passes v legacy destination directory atime matches the validation snapshot v legacy destination symlink atime matches the validation snapshot v legacy nested destination symlink atime matches the validation snapshot :: public v1 restore preserves directory and symlink atime v v1 restore completes successfully v v1 directory was restored v v1 symlink was restored v v1 nested symlink was restored v v1 source directory atime is unchanged after both passes v v1 destination directory atime matches the validation snapshot v v1 destination symlink atime matches the validation snapshot v v1 nested destination symlink atime matches the validation snapshot ./tests/test_metadata_contract Warning: skipping socket (runtime-only): /tmp/migr_metadata_contract_weNLzb/source/entry Warning: skipping socket (runtime-only): entry Warning: skipping character device node: /dev/null Warning: skipping character device node: null :: native file-kind metadata contract (entry gate) v regular capture result v regular capture object type v regular capture mode v regular capture atime/mtime v regular capture resume result v regular capture resume skips matching size/mtime v regular restore result v regular restore object type v regular restore mode v regular restore atime/mtime v regular restore resume result v regular restore resume skips matching size/mtime v directory capture result v directory capture object type v directory capture mode v directory capture atime/mtime v directory capture child exists v directory restore result v directory restore object type v directory restore mode v directory restore atime/mtime v directory restore child exists v symlink capture result v symlink capture object type v symlink capture link target v symlink capture link times v symlink capture reapply object type v symlink capture reapply link target v symlink capture reapply link times v symlink restore result v symlink restore object type v symlink restore link target v symlink restore link times v symlink restore replaces an existing final symlink (D96) v symlink a rerun leaves the same symlink target and modification time v fifo capture result v fifo capture object type v fifo capture mode v fifo capture atime/mtime v fifo restore result v fifo restore object type v fifo restore mode v fifo restore atime/mtime v socket capture result v socket capture skips without a destination v socket restore result v socket restore skips without a destination v device capture result v device capture skips without a destination v device restore result v device restore skips without a destination v coarse initial capture result v coarse coarse resume capture result v coarse coarse timestamp policy recopies same-size content v coarse-seed coarse seed source pair shares one inode v coarse-seed coarse seed inspection completes without adopting the destination v coarse-seed coarse seed capture processes both hardlink members v coarse-seed coarse seed recopy keeps the source content and hardlink identity v helpers apply rejects an invalid fd v helpers apply rejects a NULL desired stat v helpers symlink apply rejects an invalid directory fd v helpers profile probe rejects a NULL profile set v helpers profile collection rejects an invalid anchor fd v helpers an empty profile set needs no live probe v helpers snapshot records a stat v helpers snapshot lookup finds the recorded object v helpers snapshot matches unchanged metadata v helpers source comparison accepts identical stats v helpers helper fixture fd closes cleanly v group-cache first non-primary gid is classified privilege-relevant v group-cache cached lookup preserves the privilege classification v group-cache repeat lookup reuses the loaded supplementary groups v group-cache fixture fd closes cleanly v xattr-gate no namespace flags are a true no-op v xattr-gate the no-op gate creates no scratch entry v xattr-gate regular user namespace v xattr-gate the kind probe leaves no scratch entry v xattr-gate directory user namespace v xattr-gate the kind probe leaves no scratch entry - xattr-gate skipped: symlink user namespace v xattr-gate the kind probe leaves no scratch entry v xattr-gate the capability fixture fd closes cleanly v xattr-regression security-only payload is not refused by the capability gate v xattr-regression the regression payload is restored v xattr-regression the regression report is successful v xattr-security-tolerance applying an empty xattr set tolerates an unremovable auto-assigned security.* attribute v xattr-security-tolerance the untouched security.* attribute keeps its original value v xattr-selinux-label capture leaves the SELinux label out (D92) v xattr-selinux-label a recorded label is neither written nor counted as skipped v xattr-selinux-label the destination's own label is not removed v xattr-selinux-label the destination keeps the label it had v xattr-security-set an unprivileged security.* set refusal is tolerated and reported - xattr-trusted skipped: trusted xattrs are unavailable v split fd wrapper result v split fd split result v split fd results are equivalent v split symlink wrapper result v split symlink split result v split symlink results are equivalent - foreign skipped: requires root to create a foreign-owned fixture - xattr skipped: automatic security labels are outside this xattr round-trip fixture v short-list a list shorter than its reported size is read as it is v short-list portable capture reads a list shorter than its size too v xattr-race applying an empty set to an untouched symlink succeeds v xattr-race a leaf swapped mid-window is detected, not silently accepted metadata contract passed (4 skipped) ./tests/test_metadata_snapshots :: MetadataSnapshots (unit) v recording a new object succeeds v lookup finds the recorded object by (dev, ino) v first record of an object succeeds v re-recording the same (dev, ino) succeeds without duplicating v the array holds exactly one entry after a duplicate record v fixture: one object is recorded v an object that was never recorded is not found v three objects sharing one half of the key each record separately v all three are stored as distinct entries v (dev=1, ino=400) resolves to its own entry v (dev=2, ino=400) is not confused with (dev=1, ino=400) v (dev=1, ino=401) is not confused with (dev=1, ino=400) v recording 500 distinct objects succeeds throughout growth v the array holds exactly one entry per distinct object v every object recorded before a rehash is still found correctly after it v record rejects a NULL snapshots pointer v record rejects a NULL stat pointer v find rejects a NULL snapshots pointer v find rejects a NULL stat pointer MetadataSnapshots tests: 0 failure(s) ./tests/test_sidecar :: sidecar header and record round trip v temporary sidecar is reset v canonical header writes v header bytes are byte-exact v CLAIM writes v ENTRY writes v binary XATTR writes v ENTRY_COMMIT writes v DELETE writes v complete log parses successfully v all records round-trip through the callback v clean EOF boundary is the complete file v parser allocation remains within the published budget :: sidecar writer validation and ceilings v ceiling fixtures allocate v root id at its ceiling is accepted v root id over ceiling is refused v invalid entry does not truncate the existing file v path at its ceiling is accepted v path over ceiling is refused v physical leaf at its ceiling is accepted v physical leaf over its ceiling is refused v xattr name and value at their ceilings are accepted v xattr name over ceiling is refused v xattr value over ceiling is refused v xattr count at its ceiling is accepted v xattr count over ceiling is refused v numeric lower and upper bounds are accepted v mode over ceiling is refused v nanoseconds over ceiling are refused v NUL-containing fields are refused :: CLAIM writer validation and ceilings v claim ceiling fixtures allocate v claim root id at its ceiling is accepted v claim root id over ceiling is refused v claim logical path at its ceiling is accepted v claim logical path over ceiling is refused v claim physical leaf at its ceiling is accepted v claim physical leaf over ceiling is refused v FIFO claim kind is refused v NUL-containing claim fields are refused :: sidecar v4 physical-leaf contract v root ENTRY accepts an empty logical path and physical leaf v root CLAIM accepts an empty logical path and physical leaf v non-root ENTRY refuses an empty physical leaf v non-root CLAIM refuses an empty physical leaf v reader physical-leaf ceiling fixture allocates v reader accepts a physical leaf at the component ceiling v reader classifies an over-ceiling physical leaf as a limit violation v v3-style joined physical path is corruption in the v4 leaf field v dot physical leaf is semantic corruption v dot-dot physical leaf is semantic corruption v NUL-containing physical leaf is semantic corruption :: collision suffix codec contract v non-empty collision suffix writes v non-empty collision suffix round-trips byte-for-byte v empty collision suffix round-trips as the structural empty field v collision suffix ceiling fixture allocates v collision suffix at its ceiling is accepted v collision suffix over its ceiling is refused v NUL-containing collision suffix is refused :: symlink and hardlink writer validation and round trip v well-formed symlink entry writes v written symlink target round-trips byte-for-byte v empty symlink target is rejected as malformed v symlink hardlink fields are rejected v non-zero symlink size is rejected v a content digest on a non-regular entry is rejected v well-formed hardlink entry writes v hardlink reference fields round-trip byte-for-byte v hardlink missing root reference is rejected v hardlink entry with empty logical reference writes v hardlink entry with empty logical reference round-trips v hardlink xattrs are rejected v hardlink symlink target is rejected v symlink boundary fixture allocates v symlink target at its ceiling is accepted v symlink target over its ceiling is rejected v NUL-containing symlink target is rejected :: sidecar tail recovery and boundaries v valid prefix fixture is built v valid prefix is written v partial DELETE is appended v incomplete EOF record is a truncated tail v tail recovery returns the last committed boundary v claim tail prefix is restored v partial CLAIM is appended v incomplete CLAIM is a truncated tail at the prior boundary v complete CLAIM boundary fixture is written v complete CLAIM advances the valid boundary v prefix is restored v uncommitted group is written v complete group without commit is non-live tail state v uncommitted group boundary stays at the header :: sidecar corruption classification v legacy v1 version fixture is written v unknown version is not treated as an empty sidecar v v2 CLAIM fixture is written v v2 CLAIM is refused at the v5 version boundary v v3 header fixture is written v v3 sidecar is refused at the v5 version boundary v v4 header fixture is written v v4 sidecar without content digests is refused at the v5 boundary v non-canonical version fixture is written v non-canonical version is corruption v non-canonical numeric fixture is written v leading-zero numeric field is corruption v unknown tag fixture is written v unknown record tag is interior corruption v unsupported CLAIM kind fixture is written v FIFO CLAIM kind is corruption v CLAIM inside an open ENTRY group is written v CLAIM inside an open ENTRY group is corruption v out-of-order CLAIM fields are written v out-of-order CLAIM fields are corruption v HARDLINK entry declaring a nonzero xattr_count fixture is written v HARDLINK entry declaring xattrs is corruption, matching the write-side rule :: sidecar symlink grammar v raw symlink record fixture is written v symlink target field parses from a raw record :: sidecar reader path ceiling v reader path ceiling fixture allocates v raw entry at the path ceiling is written v reader accepts a path at its ceiling v raw entry over the path ceiling is written v reader refuses a path over its ceiling :: sidecar total-byte ceiling v oversized sparse fixture is created v sidecar larger than total-byte ceiling is refused before parsing v oversized fixture is removed :: sidecar live-entry ceiling helper v live-entry count at its ceiling is accepted v live-entry count over its ceiling is refused sidecar tests: 0 failure(s) ./tests/test_sidecar_state :: batched entry-group byte and state identity v paired group-identity containers are created v all representative groups append through both paths v batched and incremental paths expose identical map counts v live lookup is identical for a representative group v live lookup is identical for a representative group v live lookup is identical for a representative group v live lookup is identical for a representative group v live lookup is identical for a representative group v live lookup is identical for a representative group v paired group-identity logs close v batched output is byte-identical to the incremental sequence v both byte-identical logs adopt successfully v adopted logs retain identical map counts v adopted live lookup remains identical v adopted live lookup remains identical v adopted live lookup remains identical v adopted live lookup remains identical v adopted live lookup remains identical v adopted live lookup remains identical :: partial batched group recovery v partial-group container is created v partial-group fixture reaches a committed boundary v partial-group fixture closes before interruption v partial group is interrupted inside its combined write v adoption discards the partial group at the prior boundary :: batched group failure and validation atomicity v group-failure container is created v a failed group write poisons without mutating either map v a poisoned log refuses a later append v group-validation container is created v validation failures write no bytes, poison nothing, and leave no pending group v group refuses an existing incremental pending entry without disturbing it :: interleaved claim ordering for batched groups v interleaved-claim container is created v group commit consumes A while the later B claim remains outstanding v interleaved-claim fixture closes before adoption v adoption preserves the matching-key claim ordering :: fresh sidecar and committed live state v slot starts absent v fresh slot is created with a root ancestry claim v fresh log owns a regular fd at the header boundary v ENTRY opens a group v XATTR is appended to the open group v ENTRY_COMMIT publishes the group v one committed entry is live v lookup returns copied entry, empty suffix, xattr, and generation v a later committed group replaces the previous key v last committed state removes old xattrs and wins v DELETE removes the live key v deleted key is absent v fresh log closes cleanly v complete log is adoptable with its committed map v adopted log closes cleanly :: CLAIM replay, consumption, and cancellation v claim slot starts absent v claim fixture is created with a root ancestry claim v CLAIM appends before an entry group v outstanding CLAIM is queryable but not live state v outstanding CLAIM is excluded from live iteration v claim fixture closes before adoption v CLAIM-containing log is adoptable v adoption rebuilds the outstanding CLAIM map v matching ENTRY_COMMIT appends successfully v matching ENTRY_COMMIT consumes the exact CLAIM v DELETE leaves a tombstone after the committed entry v a tombstone and an outstanding CLAIM coexist for one key v tombstone and claim fixture closes v adoption preserves tombstone and CLAIM independently v DELETE cancels the outstanding CLAIM and keeps its tombstone v claim transition log closes v claimless commit fixture is created v claimless ENTRY_COMMIT is refused by the live state map v claimless ENTRY_COMMIT leaves live state unchanged v claimless live fixture closes v mismatching commit fixture is created v mismatching ENTRY_COMMIT is refused by the live state map v mismatching ENTRY_COMMIT leaves only the outstanding CLAIM v mismatching live fixture closes v adoption preserves the claim after rejecting the mismatching tail v DELETE cancels the claim left by a mismatching commit v mismatching commit fixture closes v claimless adoption fixture is created v claimless ENTRY_COMMIT is written for adoption v adoption rejects a claimless ENTRY_COMMIT v mismatching adoption fixture is created v mismatching ENTRY_COMMIT is written for adoption v adoption rejects a mismatching ENTRY_COMMIT v public append rejects a duplicate outstanding CLAIM v duplicate guard log closes v raw duplicate fixture is created v raw fixture closes v identical duplicate CLAIM records are written v identical duplicate CLAIMs are rejected at adoption v raw conflict fixture is created v conflict fixture closes v conflicting CLAIM records are written v conflicting CLAIMs are rejected at adoption :: current tombstone iteration v deleted-foreach slot starts absent v deleted-foreach fixture publishes one live entry v live state is excluded from current-tombstone iteration v DELETE creates current tombstone state v deleted iteration exposes the current tombstone with borrowed v4 identity v deleted iteration propagates callback refusal v a replacement entry supersedes the tombstoned key v replacement removes the old key from current-tombstone iteration v deleted-foreach fixture closes cleanly :: v4 parent chain and physical-leaf identity v v4 parent-chain slot starts absent v v4 parent-chain log is created v root CLAIM and directory ENTRY establish the ancestry anchor v directory CLAIM is accepted below the live root v CLAIM owns its physical leaf independently of caller memory v directory ENTRY consumes the matching directory CLAIM v file CLAIM is accepted below the live directory v nested CLAIM remains addressable through canonical parent state v file ENTRY commits against the matching leaf identity v live ENTRY owns its physical leaf independently of caller memory v v4 parent-chain log closes before adoption v adoption rebuilds the nested v4 leaf identity v adopted v4 parent-chain log closes v root leaf guard fixture is created v state API rejects a root CLAIM carrying a physical leaf v valid root CLAIM still succeeds after the rejected input v state API rejects a root ENTRY carrying a physical leaf v state API rejects a content digest on a directory ENTRY v root leaf guard fixture closes :: v4 parent-state guards and outstanding ancestry v orphan parent fixture is created v non-root state without an address-bearing parent fails closed v orphan parent fixture closes v non-directory parent fixture is created v a non-directory parent cannot anchor child physical addressing v non-directory parent fixture closes v outstanding parent-chain fixture is created v outstanding directory CLAIM can parent a second outstanding CLAIM v outstanding parent chain retains the nested canonical leaf v outstanding parent-chain fixture closes before adoption v adoption preserves the three-level outstanding CLAIM chain v adopted outstanding parent-chain fixture closes :: v4 canonical state outlives joined-path cache limit v long physical ancestry slot starts absent v long physical ancestry starts with a root CLAIM v seventeen component-bounded descendants enter canonical state v joined depth beyond SIDECAR_MAX_PATH remains valid canonical state v long physical ancestry closes before adoption v adoption accepts canonical v4 ancestry beyond the old joined-path limit v adopted long physical ancestry closes :: v3 sidecar refusal at the v4 state boundary v v3 refusal slot starts absent v canonical v3 header fixture is written v v3 state is unusable at the v4 adoption boundary :: append sequence and hardlink validation v old slot is removed v guard fixture is created with a root ancestry claim v commit without an entry is refused v xattr without an entry is refused v guard entry opens v a second entry cannot interrupt an open group v missing xattr is refused at commit v a complete group can be committed after the guard failures v regular entry carrying a stray hardlink reference is refused by the state map v log is not poisoned by the refused entry -- nothing was written v well-formed symlink entry opens a group v symlink entry commits v committed symlink entry is live v live symlink target and collision suffix are copied into the state map v well-formed hardlink entry opens and commits v committed hardlink entry is live v hardlink reference fields are copied into the state map v hardlink entry with empty logical reference is accepted by the state map v empty hardlink logical reference is stored correctly v hardlink missing root reference is refused by the state map v hardlink xattrs are refused by the state map v hardlink symlink target is refused by the state map v guard log closes v adopted state retains symlink and hardlink entries v adopted symlink target and collision suffix remain byte-exact v adopted hardlink reference fields remain byte-exact v adopted empty hardlink logical reference remains valid v adopted guard log closes :: adopt validates hardlink records independently v adopt fixture slot is absent v raw hardlink+xattr fixture bypasses the writer validator v adoption rejects hardlink xattrs v malformed adopt fixture is removed :: slot classification and no-follow policy v slot is absent for adoption v missing sidecar is distinguished from an unusable one v symlink target fixture is created v slot symlink fixture is created v slot symlink is refused without following it v directory slot fixture is created v directory slot is unusable v directory slot is removed v FIFO slot fixture is created v FIFO slot is rejected without blocking v FIFO slot is removed v socket slot fixture is allocatable v socket slot fixture is bound v socket slot is refused :: adoption truncates only an EOF tail v tail slot is absent v tail log is created with a root ancestry claim v tail log receives a committed prefix v committed prefix boundary is statable v tail log closes v incomplete DELETE is appended v the journal with a tail is statable v a rewrite file left by an interrupted adoption is planted v a read-only open refuses the tail and changes nothing v truncated tail is resumable at the last boundary v adoption drops the incomplete tail v the recovered prefix is a new file, not the old one shrunk in place v no rewrite file remains after adoption v committed state survives tail recovery v recovered log closes v a complete but uncommitted group is appended v uncommitted group is discarded at adoption v adopted log accepts a new group after discarding the tail v tail log closes after resumed append :: unusable content and hardlink refusal v corruption slot is absent v interior corruption fixture is written v corrupt fixture is statable v interior corruption is not resumable v unusable content is not truncated v corrupt fixture is removed v hardlink sentinel is created v hardlinked sidecar fixture is written v sidecar is hardlinked to the sentinel v hardlink has two names v hardlinked sidecar is rejected v hardlink sentinel is left untouched :: compaction rewrites the journal to its live state v a journal without dead records is left as it is v a journal mostly made of dead records is rewritten smaller v the rewritten journal adopts with every live item and no claims, its directory first although it was committed last v each item keeps its last state, in the order it was appended v no rewrite file is left behind v a journal with a claim pending is left as it is sidecar state tests: 0 failure(s) ./tests/test_sidecar_scale :: salted live-state hash scale :: sidecar live-entry ceiling helper v live-entry count at its ceiling is accepted v live-entry count over its ceiling is refused :: state-map key remains root plus logical path v map-key fixture slot resets v map-key fixture creates two independent ancestry roots v identical logical paths under different roots remain distinct keys v first root/logical key retains its own leaf value v second root/logical key retains its independent leaf value v map-key fixture closes v map-key fixture is removed :: entry tombstone collision persistence v collision fixture slot resets v collision fixture creates the required v4 ancestry roots v collision fixture commits the entry later deleted v collision fixture records the deletion v deleted entry retains one used entry-map slot v deleted entry metadata is available before colliding inserts v new keys with the tombstone probe index are committed v probe collisions do not reuse the deleted entry slot v collision fixture closes before adoption v adoption preserves the colliding tombstone and its metadata v adopted collision fixture closes v collision fixture is removed :: entry tombstone rehash persistence v rehash fixture slot resets v rehash fixture creates the required v4 ancestry roots v rehash fixture commits the entry later deleted v rehash fixture records the deletion v 40 new entries commit while deleted state remains stored v a capacity-growing rehash carries the deleted entry v rehash fixture closes before adoption v adoption preserves the rehashed tombstone v adopted rehash fixture closes v rehash fixture is removed :: entry tombstone resurrection accounting v resurrection fixture slot resets v resurrection fixture creates the required v4 ancestry roots v resurrection fixture commits the original entry v resurrection fixture records the deletion v the deleted key is committed again v resurrection restores live state without growing used count v a genuinely new key commits after resurrection v a genuinely new key grows the entry-map used count by one v resurrection fixture closes v resurrection fixture is removed :: entry-map churn probe bound v churn fixture slot resets v churn fixture creates the required v4 ancestry root churn probes=11422 inputs=1024 v commit-delete churn leaves no live entries v commit-delete churn retains each distinct tombstone v churn probes remain bounded linearly v churn probes remain far below quadratic work v churn fixture closes v churn fixture is removed v large fixture starts with an absent sidecar v large fixture creates a fresh sidecar with its v4 ancestry root v 50,000 committed entries are live v reverse lookups find every live entry probes=67809 entries=50000 v lookup probes remain bounded linearly v lookup probes are far below quadratic work v scale log closes cleanly v 50,000-entry log is adoptable with its live map v adopted map retains its first key v adopted map retains its last key v adopted scale log closes cleanly sidecar scale tests: 0 failure(s) ./tests/test_portable_hashset :: portable_hashset (unit) v visited_add inserts a new entry v visited_add reports a duplicate instead of reinserting v visited_contains finds the inserted entry v visited_add grows the table instead of failing when _locate reports full but count says there is room v visited_add actually grew the table's capacity v the recovered entry is actually findable afterward v visited_add accepts a root_id exactly at SIDECAR_MAX_ROOT_ID v visited_add accepts a logical path exactly at SIDECAR_MAX_PATH v visited_add rejects a root_id one byte over SIDECAR_MAX_ROOT_ID, matching inode_map_find_or_insert's identical bound v visited_add rejects a logical path one byte over SIDECAR_MAX_PATH, matching inode_map_find_or_insert's identical bound v prescan_inode_set_find_or_insert inserts a new inode v prescan_inode_set_find_or_insert reports a duplicate v prescan_inode_set_find_or_insert grows the table instead of failing when _locate reports full but count says there is room v prescan_inode_set_find_or_insert actually grew the table's capacity v the recovered inode is actually findable afterward v inode_map_find_or_insert inserts a new representative v inode_map_find_or_insert reports a hardlink member v inode_map_find_or_insert grows the table instead of failing when _locate reports full but count says there is room v inode_map_find_or_insert actually grew the table's capacity v the recovered entry is actually findable afterward portable_hashset tests: 0 failure(s) ./tests/test_portable_capture :: portable capture core :: portable entry helpers v entry_from_stat accepts a symlink target v symlink entry preserves kind, zero size, and target bytes v symlink entry without a target is rejected v symlink entry with an empty target is rejected v entry_from_stat records the source's nanoseconds v entry_from_stat builds a zero-byte HARDLINK record v a HARDLINK record with non-empty xattrs is rejected v a HARDLINK record with one missing reference is rejected v a HARDLINK reference containing NUL is rejected v entries_equal accepts identical symlink targets v entries_equal rejects different physical leaves v entries_equal rejects different symlink targets v entries_equal accepts an identical xattr v entries_equal rejects a changed xattr value v entries_equal rejects a changed xattr name v entries_equal rejects a different xattr count v entries_equal accepts the same xattrs in a different order :: portable capture takes the critical roots first v the critical root is captured before the one listed ahead of it :: physical path joining v physical path joins a parent and encoded leaf v physical path omits the leading slash for an empty parent v physical path refuses a leaf that does not fit v physical path refuses a parent that does not fit :: portable path-component grammar v length-based validation rejects embedded NUL bytes v capture-side validation retains the visible NUL-terminated path :: collision suffix parser contract v collision suffix parser returns the encoded number v collision suffix parser accepts the uint64 ceiling v collision suffix parser rejects zero-padded and lower-case forms :: portable pre-scan report storage v pre-scan report initializes empty v pre-scan report accepts a violation v pre-scan violation fields round-trip v case-collision fields keep a non-empty pair and zero limit/actual v pre-scan examples are bounded while total count remains complete v pre-scan report frees all storage :: ASCII case-fold sibling set v ASCII letters are folded while separators remain unchanged v bytes outside ASCII are preserved byte-for-byte v ASCII folding terminates within a short destination v a fresh folded sibling is inserted v a folded collision returns the first logical path v case-fold sibling set grows through open-addressing rehashes v case-fold sibling set frees every stored path v ASCII skeleton preserves non-letter bytes v skeleton maps non-ASCII bytes to a common placeholder v different ASCII skeletons remain separate candidates v skeleton folding terminates within a short destination :: ASCII case-collision pre-scan v case-insensitive pre-scan reports both ASCII-colliding siblings v resolved collision writes both physical payloads and suffix fields v each captured regular entry records the digest of its bytes v case-sensitive pre-scan permits distinct ASCII siblings v case-sensitive capture keeps both payload names v case pre-scan does not confuse prefixes with collisions v three ASCII case variants count each losing name (total_count == 2) v three-way collision writes every planned physical payload v non-ASCII case folding remains deferred to destination probing :: deterministic case-collision assignment plan v ASCII collision plan keeps the sorted representative and suffixes the loser v direct plan builder exposes collisions without opening the capture gate v three-way collision plan assigns canonical suffixes in byte order v a source name already occupying %7E1 forces the collision plan to use %7E2 v non-ASCII suffix reservation follows destination-backed equivalence v separate payload roots receive independent collision reservations v nested plans include both colliding subtrees and inherit their ancestors' prefixes v capture places a child under its suffixed ancestor - non-ASCII plan is deferred when the measured host is case-sensitive :: mixed pre-scan violation fate v case collision and NAME_MAX shortening are both resolved v mixed resolved diagnostics retain exact NAME_MAX and collision fields v mixed resolved shortening is represented in the canonical plan without mutation v case collision and shortening execute together under canonical leaves :: collision suffix pushes an otherwise-fitting name over NAME_MAX v the fitting sibling keeps the deterministic unsuffixed slot v suffix growth is rebudgeted through the canonical mapper v case collision and shortening remain distinct resolved diagnostics v plan-build pre-scan reporting the overflow does not mutate the container v suffix-induced shortening executes the canonical live assignment :: forced shortened-candidate collision stays deterministic v planner resolves an exact shortened collision without relying on the fingerprint v planner resolves an exact shortened collision without relying on the fingerprint v reversing source creation order leaves prepared membership byte-for-byte stable v reversing source creation order leaves canonical assignments unchanged :: prepared current-source membership v selected address-bearing objects populate prepared membership v prepared membership is independent of sparse collision planning v excluded children stay outside prepared membership v skipped-special children stay outside prepared membership :: prepared shortening plan remains authoritative v prepared plan freezes the injected physical assignments v capture consumes the frozen leaves after the fingerprint override is cleared :: raw component unsigned-byte collision tiebreak v tied candidates are ordered by unsigned raw logical-component bytes :: shortened suffix allocation preserves natural sibling names v generated shortened suffix skips a natural unsuffixed sibling reservation :: shortened ancestor leaves descendant canonical identity stable v descendant canonical leaves stay independent of the shortened ancestor spelling v shortened ancestor capture addresses descendants relative to its canonical leaf :: bounded case-collision report v collision diagnostics stay bounded while the plan keeps every candidate v bounded collision plan is consumed without losing payloads :: bounded shortening report v shortening counts remain exact after diagnostic examples reach the cap :: case-probe group beyond its initial capacity v a case-probe group growing past four retains every plan entry v grown case-probe arrays preserve every logical path exactly once v grown case-probe arrays assign distinct physical leaves :: directory-local case collisions v same names in different directories do not collide v directory-local non-collisions produce no assignment entries v directory-local names are both captured under their own parents :: source-plan mismatch is fail-closed v a plan is built before the source is changed v a planned collision member that disappears is left out and the rest is captured v an ordinary source is frozen in prepared membership without a plan entry v a source child that appears after the pre-scan is left out, never written under an unplanned name v a collision-free source produces no assignment entries v a new case twin absent from the plan aborts capture v an ordinary source has no shortening assignment before mutation v a newly-shortened source child absent from the frozen plan aborts without fallback :: prepared-source drift is checked before relocation mutation v prepared-drift predecessor is captured before the plan changes v prepared resume freezes both ordinary membership and relocation state v a prepared member removed before a resume is left out while the planned relocation still completes :: owned collision names on resume v an unsuffixed predecessor is captured on a case-sensitive verdict v resume consumes the new collision plan for the owned container v resume relocates the owned loser and removes its stale physical name v resume records the owned physical relocation and planned suffix :: resume returns a survivor to an unplanned leaf v collision survivor begins with a planned suffixed assignment v current membership keeps a planned-to-unplanned survivor live and relocates it back to its natural leaf :: collision suffix growth relocates through shortening v long predecessor is captured unsuffixed before the collision exists v suffix growth remaps, removes, and records the relocated shortened leaf exactly :: ancestor relocation preserves descendant canonical leaf v nested predecessor is captured before its parent address changes v ancestor address change cleans the old subtree while the descendant keeps its own leaf identity :: resume renumbers an owned collision predecessor v resume succeeds when a new lexical winner renumbers the owner v resume leaves the winner and the renumbered predecessor intact v resume records both the winner and the renumbered physical path :: absent shortened source is stale, not unplanned v shortened stale fixture is captured v an absent old shortened key is reconciled as stale without manufacturing a current unplanned assignment :: foreign collision payload is not overwritten on resume v foreign-resume predecessor is captured v resume refuses a foreign planned payload instead of overwriting it v foreign payload content remains untouched after refusal :: measured non-ASCII case pre-scan v case-sensitive host measures non-ASCII candidates without refusing v successful candidate probing removes its scratch directory v all-ASCII tree succeeds without attempting a case probe v all-ASCII tree leaves the pre-existing probe marker untouched v an unavailable probe scratch directory fails before mutation v probe failure does not remove an unrelated pre-existing entry :: prescan request input validation v prescan_request refuses a nonzero root count with no roots array v prescan_request refuses a scope outside the manifest enum range :: stale case-probe scratch directory recovers after a crash v capture recovers from a stale case-probe scratch directory instead of failing forever v the stale scratch directory is cleared, not left behind :: encoded payload names and sidecar paths v pre-scan accepts escaped and valid UTF-8 names v payload uses the expected encoded or raw UTF-8 leaf v payload uses the expected encoded or raw UTF-8 leaf v payload uses the expected encoded or raw UTF-8 leaf v payload uses the expected encoded or raw UTF-8 leaf v payload uses the expected encoded or raw UTF-8 leaf v payload uses the expected encoded or raw UTF-8 leaf v payload uses the expected encoded or raw UTF-8 leaf v payload uses the expected encoded or raw UTF-8 leaf v invalid UTF-8 bytes are escaped in the payload name v encoded-name sidecar can be reopened v sidecar preserves each logical name and physical leaf v sidecar preserves each logical name and physical leaf v sidecar preserves each logical name and physical leaf v sidecar preserves each logical name and physical leaf v sidecar preserves each logical name and physical leaf v sidecar preserves each logical name and physical leaf v sidecar preserves each logical name and physical leaf v sidecar preserves each logical name and physical leaf v sidecar preserves an invalid-byte logical name and physical leaf v encoded-name sidecar closes cleanly :: reconcile nested encoded directories v nested encoded directories capture successfully v first encoded directory contains its file v second encoded directory contains its file v nested encoded sidecar can be reopened v first directory keeps its logical path and physical leaf v first nested file keeps its immediate physical leaf v second directory keeps its immediate physical leaf v second nested file keeps its immediate physical leaf v nested encoded sidecar closes cleanly :: encoded name and payload path limits v encoded NAME_MAX expansion is reported as a resolved shortening v shortened NAME_MAX entry is planned under the canonical leaf without mutation v live NAME_MAX shortening captures under the canonical physical leaf v cumulative physical depth is no longer a prescan PATH_MAX refusal v fd-relative capture succeeds beyond cumulative physical PATH_MAX :: pre-scan aggregates shortenings across roots v pre-scan resolves every NAME_MAX expansion across multiple roots v resolved shortening examples retain each root identity v multi-root shortening plans stay root-specific without mutation v identical logical paths remain distinct prepared members across roots :: root payload namespace case-equivalence v ASCII case-equivalent root payload paths are refused before mutation v root namespace refusal leaves the container untouched v plan-build pre-scan reports the root collision without mutation v byte-wise root payload overlap remains refused v distinct root payload paths remain usable without a root suffix v non-ASCII root paths use destination probing or fail closed v duplicate root ids remain refused without introducing a suffix :: root payload probe close failure does not double-close v an injected close() failure inside the root-payload destination probe is reported as a failure, not silently swallowed v the post-loop cleanup does not attempt a second close() on the already-released probe directory fd :: fresh regular and directory capture - symlink xattr fixture unavailable on this filesystem v fresh portable capture succeeds v fresh capture writes a portable sidecar manifest v regular payload is byte-exact under data v symlink payload is an empty regular placeholder v sidecar contains complete groups, symlink target, and xattrs v fresh capture consumes every payload claim :: portable hardlink capture and resume v pre-scan counts a hardlink group once (25 bytes, not 41) v hardlink pair capture succeeds v hardlink sidecar can be reopened v fresh hardlink capture orders and consumes every claim v one hardlink member is regular and the other is HARDLINK v HARDLINK record points to the first-seen representative v HARDLINK record owns an empty placeholder and no xattrs v only the representative carries the shared xattr v regular payload is copied once and HARDLINK payload is empty v a singly-linked file remains REGULAR v fresh hardlink capture leaves no outstanding claims v unchanged hardlink group resumes successfully v resume preserves the hardlink classification v unchanged hardlink resume writes no outstanding claims v resume does not rewrite an unchanged representative payload v changed hardlink metadata is recaptured with claims v hardlink replacement preserves the changed metadata and kinds v hardlink replacement consumes every claim v hardlink replacement keeps CLAIM before each ENTRY :: resume keeps the recorded hardlink representative v resume succeeds with the recorded representative visited second v resume preserves the recorded representative and hardlink reference v resume leaves the representative and placeholder payloads untouched v hardlink placeholder remains present after reconciliation :: portable hardlink groups across roots v pre-scan counts a cross-root hardlink group once v cross-root hardlink capture succeeds v the second root records a cross-root HARDLINK v cross-root HARDLINK references the first root's representative :: portable hardlink groups across roots with a bare-file representative v cross-root hardlink capture succeeds when the representative is a bare-file root v the second root records a cross-root HARDLINK v cross-root HARDLINK references the bare-file representative's empty logical path :: hardlinks under a suffixed collision parent v hardlink capture under a case collision succeeds v hardlink children retain leaf identity below the collided parent v collision planning does not duplicate the hardlink group :: portable capture context capability flags v capture context initializes for flag checks v capture context preserves a case-sensitive verdict v capture context accepts a case-insensitive verdict v capture context preserves a case-insensitive verdict :: replacement ordering and type changes v fresh sidecar context is ready for replacement tests v a new regular root can be appended to the live sidecar v replacement captures the changed regular payload v replacement does not leave the old payload bytes v replacement leaves one live regular entry v replacement log orders DELETE, CLAIM, and ENTRY group v regular-to-directory replacement succeeds v type change replaces the destination inode rather than truncating it v directory replacement captures its child v directory-to-regular replacement succeeds v directory-to-regular replacement removes the old subtree v regular replacement leaves only the new payload bytes v directory-to-regular replacement tombstones old child state v regular-to-symlink replacement succeeds v symlink replacement leaves an empty placeholder v replacement sidecar records the symlink target v all uninterrupted replacement groups consume ordered claims v replacement captures leave no outstanding claims :: stale live root reconciliation v stale-live fixture opens a fresh capture context v stale-live fixture captures a directory root and child v stale-live fixture matches a fresh capture traversal state v stale live root reconciliation removes the recorded subtree v stale root reconciliation tombstones the root and descendant state v stale root reconciliation removes the recorded payload subtree :: special-file policy v fresh sidecar context is ready for special-file tests v regular special-file fixture is captured before replacement v socket is warning-and-skip, not a blocking read v socket replacement tombstones the old committed state v socket skip removes the stale payload v FIFO is fail-closed without opening or blocking :: non-ASCII special-file child policy v non-ASCII special-file child does not abort directory capture v non-ASCII regular sibling remains in the captured payload v non-ASCII socket child remains absent from the payload :: fresh capture refuses an unexplained pre-existing destination v fresh sidecar context is ready for the stray-destination test v fresh capture refuses to overwrite an unexplained stray destination v the foreign content survives untouched, not silently replaced :: fresh preflight boundaries v empty container fixture is created v MANUAL_NATIVE is rejected before portable mutation v a rejected portable plan leaves no manifest portable capture tests: 0 failure(s), 2 skipped ./tests/test_portable_capture_scale Warning: skipping unsupported socket /tmp/migr_portable_capture_xGCVZc/source/socket Warning: skipping unsupported socket söck.sock :: portable visited hash scale v capture of 20,000-file fixture succeeds v ASCII-only directory skips destination read-back v visited set admits the root and every child exactly once probes=62153 entries=20001 v visited probes remain bounded linearly v visited probes remain far below quadratic work v mixed ASCII and UTF-8 fixture captures successfully v UTF-8 names trigger one batched destination read-back v all-ASCII pre-scan performs zero destination case probes v all-ASCII pre-scan creates no case-probe directory v one residual skeleton group performs exactly one probe v successful case probe removes its scratch directory v scale sidecar closes cleanly portable capture scale tests: 0 failure(s) ./tests/test_portable_prepare :: portable capture preparation boundary v prepare succeeds against an unclaimed scratch directory v prepare leaves no manifest, data, sidecar, or probe residue v prepared capture can be freed and reused as a zero object :: portable capture reports chunk-level progress v prepared portable capture with a multi-chunk file succeeds v portable byte accumulation reaches the source size v portable progress callbacks are monotonic and end at the true total :: portable capture failure diagnostics v an errno-bearing capture failure reports its source and errno v a prepared member removed before capture is left out and reported by its source path v a file still changing after every reread is kept as last read and reported v progress counts the bytes of the read kept, not of every read v its entry keeps the times from before the last read, so the next update reads it again v a file written once while it is read is read again and captured as it now is, with nothing to report v a committed entry is available before the failing resume v a failed resume still reports the committed live-entry count :: prepared capture reuses its pre-scan v prepared capture does not run the pre-scan a second time v prepared fresh capture reports its complete live-entry count v the independently adopted sidecar agrees with live_count :: prepared resume live-entry count v an interrupted prepared capture leaves a resumable partial v prepared resume reports adopted plus newly committed entries v resumed sidecar live state matches the total count :: FIFO preparation gate v FIFO is reported as an unsupported kind before capture v FIFO refusal leaves the unclaimed scratch directory untouched v a FIFO selected as the root is rejected before capture v root FIFO refusal leaves the scratch directory untouched :: portable preparation operational failure diagnostics v an unreadable subtree refuses portable preparation v the first operational pre-scan failure retains its path and errno v an operational pre-scan refusal leaves scratch untouched :: skipped special-file preparation policy v socket is counted as informational and does not refuse prepare v socket preparation leaves no scratch residue :: prepared capture entry points reject an invalid prepared object v fresh_prepared_at with a NULL prepared object is rejected v resume_prepared_at with a NULL prepared object is rejected v fresh_prepared_at with a zeroed (never-prepared) object is rejected v resume_prepared_at with a zeroed (never-prepared) object is rejected v an invalid prepared object causes no container mutation v a valid prepared plan is available for the not-ready guard test v fresh_prepared_at rejects a valid plan marked not-ready v a not-ready fresh plan causes no container mutation v a valid prepared plan creates a resumable fixture v resume_prepared_at rejects a valid plan marked not-ready v a not-ready resume plan leaves the resumable state intact :: portable capture tolerates changes in live desktop state v a live file that disappears after the pre-scan is left out v a live file that appears after the pre-scan is left out v a live file that changes during its copy is kept as read v outside the live list, a vanished file is left out and reported v outside the live list, a file that appeared is left out and reported v outside the live list, a file changing on every read is kept as last read and reported portable prepare tests: 0 failure(s), 0 skipped ./tests/test_native_reconcile_scale :: native visited-set scale v large flat capture succeeds capture_probes=50625 entries=20001 v capture-time visited probes remain bounded linearly v capture-time visited probes remain far below quadratic work v reconciliation over the same fixture succeeds reconcile_probes=34815 entries=20001 v reconcile-time visited probes remain bounded linearly v reconcile-time visited probes remain far below quadratic work native visited-set scale tests: 0 failure(s) ./tests/test_native_hardlink_scale :: native hardlink inode-map scale v fresh native hardlink capture succeeds inode_map_probes=38936 entries=10000 v native inode-map probes remain bounded linearly v native inode-map probes remain far below quadratic work v all captured hardlink pairs retain inode identity v 5,000 hardlink groups in one destination directory share a single pooled fd native hardlink inode-map scale tests: 0 failure(s) ./tests/test_portable_collision_scale :: portable collision-resolution scale collision_entries=4000 fs_probes=6002 v large ASCII collision set receives a complete assignment plan v collision-plan probe counter observes every candidate v collision-plan filesystem probes remain bounded linearly v collision-plan filesystem probes remain far below quadratic work distinct_entries=4000 fs_probes=0 v large case-sensitive distinct sibling set keeps the plan sparse v case-sensitive distinct sibling planning performs no filesystem collision probes owned_entries=5002 relocation_scans=5002 removals=1 v resume succeeds after one new sibling changes the collision plan v one new sibling causes exactly one owned-payload removal v resume reports the owned-path scan cost v resume leaves the relocated predecessor and winner claimed_owned_entries=5003 relocation_scans=5003 removals=2 v resume succeeds when the renumbered predecessor is only CLAIMED v live and claimed collision predecessors are each removed once v live plus CLAIM relocation scans remain bounded linearly v live and claimed relocation leave the new and suffixed payloads v claimed relocation consumes the old CLAIM v directory CLAIM relocation handles a committed live descendant v mixed CLAIM relocation preserves the live descendant under the suffix v mixed CLAIM relocation consumes the parent CLAIM owned_entries=3002 descendants=2000 relocation_scans=3002 removals=2001 v nested resume succeeds after one new sibling changes the plan v nested resume removes the directory and every owned descendant v nested resume leaves the suffixed subtree and removes the old one v resume cleans a deep all-CLAIM directory stale_claim_entries=4003 visited_probes=10 v deep CLAIM validation and mutation remain bounded linearly v deep CLAIM work remains far below quadratic traversal v deep stale CLAIM cleanup removes the entire payload subtree v deep stale CLAIM cleanup leaves no outstanding claims v portable resume records a large tombstone set tombstone_entries=3001 visited_probes=5 v tombstone reconciliation remains bounded linearly v tombstone lookup scale reopens the adopted sidecar v present and absent live/deleted/CLAIM lookups stay correct at scale portable collision scale tests: 0 failure(s) ./tests/test_portable_hardlink_scale :: portable hardlink hash scale v hardlink pre-scan succeeds prescan_inode_probes=17650 groups=5000 v pre-scan inode probes remain bounded linearly v fresh hardlink capture succeeds fresh_inode_map_probes=17650 groups=5000 v fresh inode-map probes remain bounded linearly v resume hardlink capture succeeds resume_inode_map_probes=21260 sticky_seed_lstats=5000 groups=5000 v sticky seed performs one lstat per live regular entry v resume inode-map probes remain bounded linearly portable hardlink scale tests: 0 failure(s) ./tests/test_portable_resume :: portable resume and interruption tests :: collision suffix resume identity v a changed collision suffix forces resume replacement v identical empty collision suffixes preserve resume equality :: case-fold collision with an outstanding CLAIM v case-fold renumbering resumes from the claimed predecessor v case-fold renumbering assigns the same suffix on repeated fixtures :: hardlink representative transition with an outstanding CLAIM v a vanished claimed representative is reconciled to its member v hardlink transition keeps the same member assignment on repeat :: resume live-state skip and replacement v fresh partial is available for resume v the committed payload exists before resume v resume adopts the existing sidecar v an unchanged committed regular file is skipped in place v a missing or changed committed payload is recaptured :: resume xattr equivalence (added/changed/removed) v xattr resume fixture is captured v fixture: an xattr is added to the source v resume after adding an xattr succeeds v live sidecar entry carries the added xattr exactly v fixture: the xattr value is changed on the source v resume after changing an xattr value succeeds v live sidecar entry carries the changed xattr value exactly v fixture: the xattr is removed from the source v resume after removing an xattr succeeds v live sidecar entry carries no xattrs after removal :: resume skip for an encoded payload leaf v encoded-name fixture is captured before resume v encoded payload and sidecar exist before resume v resume accepts an unchanged encoded source v unchanged encoded payload is skipped in place :: resume skip for a shortened payload leaf v shortened-name fixture is captured before resume v fresh shortened entry records its canonical leaf with no outstanding claim v resume accepts an unchanged shortened source v unchanged shortened payload and leaf identity stay in place :: symlink resume skip and target replacement v symlink resume fixture has a committed predecessor v symlink placeholder and sidecar exist before resume v initial symlink entry records its target v resume accepts an unchanged symlink v unchanged symlink resume leaves payload and sidecar untouched v a second unchanged symlink resume remains idempotent v repeated unchanged resume appends no sidecar group v fixture exposes the changed symlink target v resume recaptures a changed symlink target v changed symlink gets a fresh group and intact placeholder :: pristine sidecar recovery v SIGKILL after manifest leaves an adoptable boundary v manifest exists while sidecar is still absent v resume creates a sidecar only for the pristine namespace v recovery creates the sidecar slot :: non-pristine sidecar refusal v orphan fixture starts at the manifest boundary v resume refuses a nonempty data namespace without a sidecar v refusal does not silently create a fresh sidecar v refusal leaves the unclaimed payload untouched :: corrupt and unsafe sidecar refusal v unsafe fixture starts at the manifest boundary v a symlink sidecar is unusable rather than followed v unsafe sidecar refusal leaves the missing data namespace absent v an interior-corrupt sidecar is unusable rather than freshened v malformed-sidecar refusal leaves the unrelated target untouched :: truncated sidecar tail recoWarning: skipping unsupported socket /tmp/migr_portable_resume_Kfyrh3/special-kind-change-source/node very v fresh capture creates a complete sidecar v resume truncates an incomplete final sidecar record v tail recovery truncates only the incomplete suffix :: resume rejects outstanding ownership claims v claim-gate fixture has an otherwise complete capture v an outstanding claim is planted after the valid capture v resume fails at the global zero-claim gate v the failed resume leaves the claim and source unchanged :: stale CLAIM kind changes v claimed directory changes to regular with cleanup and DELETE v claimed regular changes to directory with cleanup and DELETE v claimed hardlink changes to regular without retaining the old relation :: repeated stale CLAIM kind-change interruption v repeated kind-change fixture is prepared v SIGKILL after old CLAIM payload removal leaves the CLAIM resumable v the next resume idempotently completes the kind change :: fresh regular CLAIM resume proof v fresh regular fixture has an empty container v fresh regular capture is killed after payload creation v fresh regular interruption leaves one exact outstanding CLAIM v fresh regular capture resumes from its CLAIM v fresh regular payload commits without duplicating its CLAIM :: shortened regular CLAIM resume proof v shortened regular fixture has an empty container v shortened regular capture is killed after its claimed payload is created v interrupted shortened regular records the exact planned leaf in its CLAIM v shortened regular capture resumes from its matching CLAIM v shortened regular resume commits under the same leaf and consumes the CLAIM once :: special-file kind-change CLAIM resume proof v special kind-change fixture has an empty container v regular capture is killed after payload creation before commit v regular interruption leaves one exact outstanding CLAIM v socket resume recognizes an outstanding claim across a kind change v socket skip consumes the claim and removes the stale payload :: fresh symlink CLAIM resume proof v fresh symlink fixture has an empty container v fresh symlink capture is killed after placeholder creation v fresh symlink interruption leaves one exact outstanding CLAIM v fresh symlink capture resumes from its CLAIM v fresh symlink payload commits without duplicating its CLAIM :: fresh hardlink CLAIM resume proof v fresh hardlink fixture has an empty container v fresh hardlink capture is killed after representative creation v fresh hardlink interruption leaves directory and representative CLAIMs v fresh hardlink capture resumes from its CLAIMs v fresh hardlink resume preserves the assigned representative and consumes CLAIMs v fresh empty directory fixture has an empty container v empty directory capture is killed before its ENTRY v empty directory interruption leaves its exact outstanding CLAIM v empty directory capture resumes from its CLAIM v resumed empty directory has payload and exact live entries v fresh nested directory fixture has an empty container v nested directory capture is killed before its first ENTRY v nested directory interruption leaves exact outstanding CLAIMs v nested directory capture resumes from its CLAIMs v resumed nested directory has payload and exact live entries :: shortened directory ancestry CLAIM resume proof v shortened directory fixture has an empty container v shortened directory capture is killed with its ancestry CLAIM chain durable v interrupted shortened directory CLAIM keeps its canonical physical leaf v shortened directory ancestry resumes from its CLAIM chain v shortened directory resume reopens the parent by leaf and addresses the child relative to it :: repeated fresh CLAIM interruption and resume v repeated CLAIM fixture has an empty container v first interruption uses the after-payload-replace boundary v second interruption uses the after-payload-write boundary v repeated interruption retains one CLAIM without a duplicate v final resume consumes the reused CLAIM exactly once :: foreign destination and mismatching CLAIM refusal v foreign-node fixture has a valid sidecar and no CLAIM v a foreign destination is rejected without a CLAIM v no-claim refusal leaves the foreign payload untouched v mismatching-CLAIM fixture has a valid outstanding claim v a mismatching CLAIM does not authorize a foreign destination v mismatching-CLAIM refusal leaves payload and CLAIM intact :: collision relocation interruption boundaries v relocation interruption fixture has an unsuffixed predecessor v before-delete v interrupted relocation leaves the expected durable owner and old payload state v resume recovers the interrupted relocation through exact tombstone and leaf ownership v relocation interruption fixture has an unsuffixed predecessor v after-delete v interrupted relocation leaves the expected durable owner and old payload state v resume recovers the interrupted relocation through exact tombstone and leaf ownership v relocation interruption fixture has an unsuffixed predecessor v after-unlink v interrupted relocation leaves the expected durable owner and old payload state v resume recovers the interrupted relocation through exact tombstone and leaf ownership :: SIGKILL interruption boundaries v interruption fixture has a committed predecessor v delete-before v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v delete-after v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v payload-replace-before v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v payload-replace-after v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v payload-write-before v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v payload-write-after v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v payload-close-before v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v payload-close-after v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v group-before v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v group-after v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v group-middle v a killed capture remains resumable v source remains intact after interruption recovery v interruption fixture has a committed predecessor v group-xattr-middle v a killed capture remains resumable v source remains intact after interruption recovery v xattr set is exact after a mid-group SIGKILL: the partial group did not survive and the retried group is present :: stale xattr does not survive a mid-group SIGKILL v predecessor is committed with the stale xattr v resume is killed mid-group write v interrupted resume recovers v live set is exactly the fresh attribute after recovery (stale attribute gone, no partial leftover) :: symlink SIGKILL interruption boundaries v symlink interruption fixture has a committed predecessor v delete-before v a killed symlink capture remains resumable v resumed symlink capture has the target and placeholder v symlink interruption fixture has a committed predecessor v delete-after v a killed symlink capture remains resumable v resumed symlink capture has the target and placeholder v symlink interruption fixture has a committed predecessor v payload-replace-before v a killed symlink capture remains resumable v resumed symlink capture has the target and placeholder v symlink interruption fixture has a committed predecessor v payload-replace-after v a killed symlink capture remains resumable v resumed symlink capture has the target and placeholder v symlink interruption fixture has a committed predecessor v group-before v a killed symlink capture remains resumable v resumed symlink capture has the target and placeholder v symlink interruption fixture has a committed predecessor v group-after v a killed symlink capture remains resumable v resumed symlink capture has the target and placeholder v symlink interruption fixture has a committed predecessor v group-middle v a killed symlink capture remains resumable v resumed symlink capture has the target and placeholder - symlink xattr interruption fixture unavailable :: directory SIGKILL interruption boundaries v directory interruption fixture has a committed predecessor v group-before v a killed directory capture remains resumable v resumed directory has its payload and metadata entry v directory interruption fixture has a committed predecessor v group-after v a killed directory capture remains resumable v resumed directory has its payload and metadata entry v directory interruption fixture has a committed predecessor v group-middle v a killed directory capture remains resumable v resumed directory has its payload and metadata entry v directory interruption fixture has a committed predecessor v group-xattr-middle v a killed directory capture remains resumable v resumed directory has its payload and metadata entry v directory xattr set is exact after a mid-group SIGKILL :: hardlink SIGKILL interruption boundaries v hardlink interruption fixture has a committed predecessor v delete-before v a killed hardlink capture remains resumable v resumed hardlink group has one REGULAR and one HARDLINK payload v hardlink interruption fixture has a committed predecessor v delete-after v a killed hardlink capture remains resumable v resumed hardlink group has one REGULAR and one HARDLINK payload v hardlink interruption fixture has a committed predecessor v payload-replace-before v a killed hardlink capture remains resumable v resumed hardlink group has one REGULAR and one HARDLINK payload v hardlink interruption fixture has a committed predecessor v payload-replace-after v a killed hardlink capture remains resumable v resumed hardlink group has one REGULAR and one HARDLINK payload v hardlink interruption fixture has a committed predecessor v group-before v a killed hardlink capture remains resumable v resumed hardlink group has one REGULAR and one HARDLINK payload v hardlink interruption fixture has a committed predecessor v group-after v a killed hardlink capture remains resumable v resumed hardlink group has one REGULAR and one HARDLINK payload v hardlink interruption fixture has a committed predecessor v group-middle v a killed hardlink capture remains resumable v resumed hardlink group has one REGULAR and one HARDLINK payload :: resume identity gate v identity fixture is captured v a different source identity cannot adopt the partial portable resume tests: 0 failure(s), 1 skipped ./tests/test_portable_reconcile :: portable stale reconciliation :: stale file reconciliation v initial capture creates a complete file fixture v resume reconciles a source file deleted between runs v deleted file is non-live with retained deletion provenance v deleted file payload is removed from the container :: stale symlink reconciliation v initial capture creates a symlink placeholder v captured symlink has a payload placeholder before deletion v resume reconciles a deleted source symlink v deleted symlink is non-live with retained deletion provenance v deleted symlink placeholder is removed from the container :: stale subtree reconciliation v subtree fixture is captured v resume reconciles a deleted source subtree v deleted subtree payload is removed recursively v deleted subtree directory is no longer live v deleted subtree child is no longer live :: stale subtree deletes descendants before ancestors v stale-order fixture is captured v resume is interrupted immediately after the first stale DELETE v the first stale DELETE tombstones the deepest child while its parent stays live v the interrupted DELETE keeps the old parent chain and child payload reachable v the next resume completes child-before-parent stale cleanup v resumed stale cleanup removes the complete old subtree :: outstanding CLAIM iteration v claim foreach fixture is captured v claim iteration visits only the outstanding claim with its generation :: stale empty CLAIM reconciliation v empty claimed-directory fixture is captured v empty directory becomes an outstanding CLAIM v resume removes an unvisited empty claimed directory v empty CLAIM cleanup leaves zero outstanding claims and a DELETE :: nested stale CLAIM reconciliation v nested claimed-directory fixture is captured v nested directory becomes a CLAIM while its child stays LIVE v resume cleans nested stale LIVE and CLAIM descendants deepest-first v nested cleanup removes every payload and leaves no CLAIM :: foreign child blocks stale CLAIM cleanup v foreign-child claimed-directory fixture is captured v foreign-child directory becomes an outstanding CLAIM v foreign child rejects stale CLAIM reconciliation v foreign-child refusal leaves the whole payload and CLAIM intact :: collision-suffixed CLAIM ownership stays exact v case-colliding children are captured before CLAIM conversion v the fixture contains an owned collision-suffixed physical child v the collision-bearing directory becomes an outstanding CLAIM v a foreign child blocks cleanup even beside collision-suffixed owned children v foreign-child refusal leaves the CLAIM and every owned payload untouched v without the foreign child, parent-relative ownership cleans the suffixed CLAIM subtree :: a payload entry vanishing during validation's directory scan is tolerated, not a hard failure v vanish-during-validation fixture is captured v empty directory becomes an outstanding CLAIM v an entry vanishing between readdir and fstatat during validation does not abort reconciliation v cleanup still completes fully despite the mid-scan disappearance :: a claimed directory vanishing right before validation descends into it is tolerated v vanish-before-validation-descent fixture is captured v empty directory becomes an outstanding CLAIM v the directory vanishing between open_claim_node's stat and validation's own descent does not abort reconciliation v cleanup still completes fully despite the pre-descent disappearance :: a claimed directory vanishing right before mutation descends into it is tolerated v vanish-before-mutation-descent fixture is captured v empty directory becomes an outstanding CLAIM v the directory vanishing between open_claim_node's stat and mutation's own descent does not abort reconciliation v cleanup still completes fully despite the pre-descent disappearance :: remove_payload_relative stays a no-op when an unrelated close() also fails v an absent payload root is still a no-op when the root-parent close also fails v an absent physical parent is still a no-op when the payload-fd close also fails :: capture_directory frees the destination and source fds when fdopendir() fails v the forced fdopendir failure aborts the capture v the failure closes the destination and source fds instead of leaking them :: stale cleanup failure gate v cleanup failure fixture is captured v unlink failure blocks portable finalization v failed cleanup leaves the payload for a later resume v later resume retries and completes the cleanup v retry removes the previously protected payload :: final inventory gate v inventory fixture is captured v uncommitted payload blocks finalization v inventory refusal does not delete an unknown payload :: final inventory resolves collision-suffixed children v final inventory accepts a live child whose physical leaf is collision-suffixed v inventory fixture actually uses a physical spelling different from its logical child v an extra foreign physical child still blocks final inventory v final inventory refuses rather than deleting the foreign child :: tombstone ownership is scoped to its logical parent v tombstone-parent fixture is captured v parent-A deletion leaves recoverable tombstone provenance v the current tombstone records the child under logical parent A v parent-A tombstone cannot authorize the same physical leaf under parent B v parent-scoped tombstone refusal leaves the foreign parent-B node untouched v resume finalizes once the unrelated parent-B node is removed :: ambiguous tombstone ownership is not deletion authority v tombstone-ambiguity fixture is captured v two logical tombstones can retain the same parent-relative physical leaf v ambiguous tombstone parent/leaf lookup fails closed instead of authorizing deletion v tombstone-ambiguity sidecar closes cleanly :: reconciliation SIGKILL boundaries v interruption fixture is captured v resume is killed at the requested reconciliation boundary v interrupted stale key remains non-live v payload state at the interruption boundary is deterministic v resume completes the interrupted reconciliation v resumed reconciliation leaves the expected payload inventory v interruption fixture is captured v resume is killed at the requested reconciliation boundary v interrupted stale key remains non-live v payload state at the interruption boundary is deterministic v resume completes the interrupted reconciliation v resumed reconciliation leaves the expected payload inventory v interruption fixture is captured v resume is killed at the requested reconciliation boundary v interrupted stale key remains non-live v payload state at the interruption boundary is deterministic v resume completes the interrupted reconciliation v resumed reconciliation leaves the expected payload inventory v interruption fixture is captured v resume is killed at the requested reconciliation boundary v payload state at the interruption boundary is deterministic v resume completes the interrupted reconciliation v resumed reconciliation leaves the expected payload inventory portable reconciliation tests: 0 failure(s), 0 skipped ./tests/test_portable_reconcile_scale :: portable reconciliation hash scale v 50,000-entry fixture captures successfully v resume reconciles 25,000 stale entries visited_probes=189355 map_probes=1079491 total=1268846 entries=50001 v reconciliation probes remain bounded linearly v reconciliation probes remain far below quadratic work portable reconciliation scale tests: 0 failure(s) ./tests/test_portable_restore_preflight :: a root entry is named in preflight examples v root-example fixture is created v root-example sidecar is committed v a foreign-owned root entry is listed by its restore name, not blank :: an unusable backup journal is explained v unusable-journal fixture is created v unusable-journal sidecar is committed v a damaged journal is refused and the reason is named v unusable-journal fixture is created v unusable-journal sidecar is committed v a cut short journal is refused and the reason is named :: valid preflight and ownership collection v valid fixture is created v valid sidecar is committed v valid portable state passes preflight v live count and manifest root mapping are reported v profiles are collected without firing the ownership probe v successful preflight leaves the destination untouched :: destination profile walks reuse resolved ancestors v profile-cache fixture is created v profile-cache sidecar is committed v deep sibling profile fixture passes preflight v cached walks preserve existing and missing destination profile state v deep sibling groups need only two profile walks from the HOME anchor :: payload inventory reports live verification progress v payload-progress fixture is created v payload-progress sidecar is committed Error: the backup journal (sidecar.migr) records 1 item whose capture never finished; this backup did not complete v preflight progress covers collection, identity validation, and payload scanning in order :: outstanding claims are rejected before preflight probing v claim-gate preflight fixture is created v claim-gate preflight sidecar has valid live entries v an outstanding claim is planted in the valid sidecar Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar v preflight rejects the claim before destination probing or mutation :: committed key without payload v missing-payload fixture is created v missing-payload state is committed Portable restore preflight refused: 1 violation(s), 2 live entries root ROOT: 2 live, 1 violation(s) preflight example: restored preflight example: missing preflight example: missing v missing payload is refused v a run continuing a checked backup skips the payload scan :: canonical shortened physical leaf preflight v overlong encoded component maps to a shortened physical leaf v shortened-leaf fixture is created v shortened-leaf sidecar is committed v canonical shortened leaf is inventoried without destination mutation v tampered-shortened fixture is created v tampered-shortened sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v non-canonical shortened leaf is refused before payload acceptance :: fd-relative payload depth beyond physical PATH_MAX v deep fixture exceeds the old cumulative physical path envelope v deep physical-path fixture is created v deep fixture remains within the logical path ceiling v deep physical-path sidecar is committed v preflight inventories a valid over-PATH_MAX physical chain fd-relatively :: destination profile refusal is named v destination-symlink fixture is created v destination-symlink sidecar is committed v destination symlink is planted at the incoming target v destination anchor refusal names the offending entry and root v preflight output includes the offending logical path :: destination anchor refusal keeps scanning past the first conflict v destination-symlink-two fixture is created v destination-symlink-two sidecar is committed v destination symlinks are planted at both incoming targets Portable restore preflight refused: 2 violation(s), 3 live entries root ROOT: 3 live, 2 violation(s) preflight example: one preflight example: two v both destination anchor conflicts are recorded in one pass, not just the first :: xattr-bearing entries pass preflight v xattr fixture is created v xattr-bearing sidecar is committed v xattr-bearing entries pass preflight (replay can now apply them) v xattr acceptance preflight leaves the destination untouched :: lexical, mapping, and type refusals v refusal fixture is created v refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v absolute v refusal leaves the destination sentinel untouched v refusal fixture is created v refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v dotdot v refusal leaves the destination sentinel untouched v refusal fixture is created v refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v empty-component v refusal leaves the destination sentinel untouched v refusal fixture is created v refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v physical-mismatch-before-duplicate v refusal leaves the destination sentinel untouched v refusal fixture is created v refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: preflight v file-ancestor v refusal leaves the destination sentinel untouched v refusal fixture is created v refusal sidecar is committed Portable restore preflight refused: 3 violation(s), 2 live entries root ROOT: 0 live, 1 violation(s) preflight example: external-root preflight example: external-root preflight example: ROOT v external-root v refusal leaves the destination sentinel untouched v refusal fixture is created v refusal sidecar is committed v FIFO entry is rejected at the strict claim adoption gate Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: preflight v FIFO unsupported-kind is documented as unreachable after D25 v refusal leaves the destination sentinel untouched v refusal fixture is created v refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v physical-mismatch v refusal leaves the destination sentinel untouched :: parent-prefix and collision-suffix validation v suffixed-tree fixture is created v suffixed-tree sidecar is committed v suffixed ancestor and suffixed leaf pass preflight Portable restore preflight refused: 1 violation(s), 4 live entries root ROOT: 4 live, 1 violation(s) preflight example: restored preflight example: Foo preflight example: dir preflight example: dir/file preflight example: foreign v unknown sibling beneath a suffixed parent is refused locally v suffix-refusal fixture is created v suffix-refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v suffix-lower-e v suffix-refusal fixture is created v suffix-refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v suffix-zero v suffix-refusal fixture is created v suffix-refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v suffix-leading-zero v suffix-refusal fixture is created v suffix-refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v suffix-no-digits v suffix-refusal fixture is created v suffix-refusal sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v suffix-overflow v raw suffix-refusal fixture is created v raw malformed suffix record is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar v suffix-embedded-nul v raw suffix-refusal fixture is created v raw malformed suffix record is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar v suffix-over-ceiling v missing-parent fixture is created v missing-parent sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: preflight v missing parent entry is refused v parent-mismatch fixture is created v parent-mismatch sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar-address v child physical mismatch beneath a suffixed parent is refused v root-suffix fixture is created v root-suffix sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar v root payload entry cannot carry a collision suffix :: payload symlink refusals v root-symlink fixture is created v intermediate payload symlink is planted v root-symlink sidecar is committed Portable restore preflight refused: 1 violation(s), 1 live entry root ROOT: 1 live, 1 violation(s) preflight example: restored preflight example: v intermediate payload symlink is refused without mutation v final-symlink fixture is created v final payload symlink is planted v final-symlink sidecar is committed Portable restore preflight refused: 1 violation(s), 2 live entries root ROOT: 2 live, 1 violation(s) preflight example: restored preflight example: link preflight example: link v final payload symlink is refused without mutation :: malformed and truncated sidecars v malformed fixture is created v interior malformed bytes are planted Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar v interior malformed sidecar is refused before mutation v truncated fixture is created v truncated record is planted Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar v truncated sidecar is refused without destination mutation v oversized fixture is created v oversized sidecar header is created v oversized path field is planted Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar v oversized sidecar is refused without mutation :: decoded NUL and unrepresenError: the backup journal (sidecar.migr) is damaged at byte 15 of 83; everything after that point is unreadable Error: the backup journal (sidecar.migr) could not be parsed at byte 15 Error: the backup journal (sidecar.migr) is damaged at byte 15 of 76; everything after that point is unreadable Error: the backup journal (sidecar.migr) ends in the middle of a record at byte 15; this backup did not finish writing it Error: the backup journal (sidecar.migr) ends in the middle of a record at byte 15; this backup did not finish writing it Error: the backup journal (sidecar.migr) could not be parsed at byte 15 Error: the backup journal (sidecar.migr) is damaged at byte 15 of 58; everything after that point is unreadable Error: Manifest root CHILD entry . and manifest root HOME entry Documents map to the same restore destination: /tmp/migr_portable_restore_v2-destination_SXksqT/home/Documents Error: Manifest root XDG_DOCUMENTS_DIR entry . and manifest root XDG_DOWNLOAD_DIR entry . map to the same restore destination: /tmp/migr_portable_restore_identity-alias-files_XFU7xR/home/Alias Error: Manifest root XDG_DOCUMENTS_DIR entry file and manifest root XDG_DOWNLOAD_DIR entry file map to the same restore destination: /tmp/migr_portable_restore_identity-alias-files_XFU7xR/home/Alias/file Error: Manifest root XDG_DOCUMENTS_DIR entry . and manifest root XDG_DOWNLOAD_DIR entry . map to the same restore destination: /tmp/migr_portable_restore_identity-alias-dirs_31EwF6/home/Alias Error: Manifest root HOME entry . and manifest root XDG_DOCUMENTS_DIR entry new map to the same restore destination: /tmp/migr_portable_restore_identity-missing-suffix_cLARag/home/a/new Error: Manifest root HOME entry . and manifest root XDG_DOCUMENTS_DIR entry home-child map to the same restore destination: /tmp/migr_portable_restore_identity-home-xdg_o6LdpM/home/Alias/home-child ted manifest roots v NUL fixture is created v NUL sidecar header is created v decoded NUL bytes are planted in the record stream Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: sidecar v decoded NUL attempt is refused without mutation v root-gap fixture is created v root-gap sidecar is committed Portable restore preflight refused: 1 violation(s), 1 live entry root ROOT: 1 live, 0 violation(s) root EMPTY: 0 live, 1 violation(s) preflight example: restored preflight example: EMPTY v manifest root with no live entries is refused :: lexical wedge ancestor conflict v file-ancestor-wedge fixture is created v file-ancestor-wedge sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries preflight example: preflight v lexical wedge does not hide a non-directory logical parent :: overlapping manifest root payloads v root-overlap fixture is created v root-overlap sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries root CHILD: 0 live, 1 violation(s) preflight example: CHILD v overlapping manifest roots are refused before payload validation :: overlapping roots with lexical wedge v root-overlap-wedge fixture is created v root-overlap-wedge sidecar is committed Portable restore preflight refused: 1 violation(s), 0 live entries root CHILD: 0 live, 1 violation(s) preflight example: CHILD v lexical wedge does not hide overlapping manifest roots :: root lookup with lexical wedge v root-lookup-wedge fixture is created v root-lookup-wedge sidecar is committed v root lookup succeeds :: VERSION=2 ownership and combined destination mapping v VERSION=2 ownership fixture is created v VERSION=2 ownership manifest is written v VERSION=2 ownership sidecar is committed Portable restore preflight refused: 1 violation(s), 3 live entries root HOME: 2 live, 1 violation(s) root CHILD: 1 live, 0 violation(s) preflight example: Child preflight example: HOME preflight example: Documents v a delegated source entry in the parent root is refused v VERSION=2 destination-collision fixture is created v VERSION=2 destination-collision manifest is written v VERSION=2 destination-collision sidecar is committed Portable restore preflight refused: 1 violation(s), 3 live entries root HOME: 2 live, 1 violation(s) root CHILD: 1 live, 0 violation(s) preflight example: HOME preflight example: Documents preflight example: Documents preflight example: Documents v two selected entries mapping to one destination are refused without mutation :: resolved destination identity collisions v identity alias-file fixture is created v VERSION=1 portable alias-file manifest is written v VERSION=1 portable alias-file sidecar is committed Portable restore preflight refused: 2 violation(s), 4 live entries root XDG_DOCUMENTS_DIR: 2 live, 0 violation(s) root XDG_DOWNLOAD_DIR: 2 live, 2 violation(s) preflight example: Documents preflight example: file preflight example: Downloads preflight example: file preflight example: preflight example: file v Shared/Alias duplicate files refuse while the existing sentinel remains intact v identity empty-directory fixture is created v VERSION=1 portable empty-directory alias manifest is written v empty-directory alias sidecar is committed Portable restore preflight refused: 1 violation(s), 2 live entries root XDG_DOCUMENTS_DIR: 1 live, 0 violation(s) root XDG_DOWNLOAD_DIR: 1 live, 1 violation(s) preflight example: Documents preflight example: Downloads preflight example: v distinct empty source directories cannot own one aliased destination directory v identity missing-suffix fixture is created v converging missing-suffix manifest is written v converging missing-suffix sidecar is committed Portable restore preflight refused: 1 violation(s), 3 live entries root HOME: 1 live, 0 violation(s) root XDG_DOCUMENTS_DIR: 2 live, 1 violation(s) preflight example: a/new preflight example: Documents preflight example: new preflight example: new v different existing ancestors converge on one planned node without creating it v identity HOME/XDG alias fixture is created v HOME/XDG alias convergence manifest is written v HOME/XDG alias convergence sidecar is committed Portable restore preflight refused: 1 violation(s), 3 live entries root HOME: 1 live, 0 violation(s) root XDG_DOCUMENTS_DIR: 2 live, 1 violation(s) preflight example: Shared/home-child preflight example: Documents preflight example: home-child preflight example: home-child v HOME-relative and XDG entries converging through an alias refuse before mutation portable restore preflight tests passed ./tests/test_portable_restore_replay :: deferred application settings are restored last v deferral fixture is created v the caller is asked with the deferred files not yet written v leaving them out writes neither and verification skips them v deferral fixture is created v the caller is asked once, after everything else is in place v restoring them writes the deferred file and its hardlink :: portable verification checks every item after a mismatch v multi-mismatch verification fixture is created v multi-mismatch sidecar is committed Verification found 2 restored items that differ from the backup: ROOT:a (regular file, content differs from the backup) ROOT:c (regular file, content differs from the backup) v verification continues past the first mismatch and counts every one v the first mismatch remains the reported failure :: replay hands back the applied dconf database v dconf handoff fixture is created v replay with a dconf database succeeds v the source HOME's .config/dconf/user payload is handed back v dconf fixture without a source HOME is created v without a recorded source HOME nothing is handed back :: an existing dconf database is kept only for a session load v without a session load, the backed-up database replaces the existing one v with a session load to follow, the existing database is left to it :: portable symlink replay collection validation v well-formed symlink entry is accepted by collection validation v symlink desired stat carries type, ownership, and timestamps v symlink collection fixture is created v well-formed symlink sidecar is committed v collection accepts the symlink before destination validation fails v collection failure leaves the destination untouched v missing-placeholder fixture is created v missing-placeholder sidecar is committed v missing symlink placeholder is rejected during collection v payload-redirect fixture is created v payload placeholder symlink is planted v payload-redirect sidecar is committed v payload placeholder redirect is rejected during collection v empty symlink target is rejected v xattr-bearing symlink entries are valid (replay now applies them) v nonzero symlink size is rejected v oversized symlink target is rejected v a FIFO entry is rejected, not silently treated as regular :: hardlink identity readback validation v matching dev/ino is accepted v mismatched ino is rejected v mismatched dev is rejected :: physical/logical invariant during replay v physical-mismatch fixture is created v physical-mismatch sidecar is committed v replay refuses a mismatched physical path v physical-mismatch refusal leaves the destination untouched :: canonical shortened physical leaf replay v replay fixture maps an overlong encoded component canonically v shortened replay fixture is created v shortened replay sidecar is committed v canonical shortened leaf replays under the original logical name v shortening marker is never exposed as the destination name v suffix-bearing shortened replay mapping is canonical v suffix-shortened replay fixture is created v suffix-shortened replay sidecar is committed v suffix-bearing shortened leaf authenticates during direct replay v tampered shortened replay fixture is created v tampered shortened replay sidecar is committed v tampered shortened leaf is refused before destination mutation :: deep parent-relative payload replay v deep replay fixture crosses the joined compatibility-cache ceiling v deep parent-relative replay fixture is created v deep replay fixture remains within the logical path ceiling v deep parent-relative replay sidecar is committed v deep physical ancestry replays exact bytes under the logical path :: parent-prefix and collision-suffix replay v suffixed replay fixture is created v suffixed replay sidecar is committed v suffixed ancestor state passes preflight v suffixed ancestor and suffixed leaf replay successfully v child beneath a suffixed directory is restored by logical name v suffixed physical leaf is not exposed at the destination v suffix-refusal replay fixture is created v suffix-refusal replay sidecar is committed v suffix-lower-e v suffix-refusal replay fixture is created v suffix-refusal replay sidecar is committed v suffix-zero v suffix-refusal replay fixture is created v suffix-refusal replay sidecar is committed v suffix-leading-zero v suffix-refusal replay fixture is created v suffix-refusal replay sidecar is committed v suffix-no-digits v suffix-refusal replay fixture is created v suffix-refusal replay sidecar is committed v suffix-overflow v raw suffix-refusal replay fixture is created v raw malformed suffix replay record is committed v suffix-embedded-nul v raw suffix-refusal replay fixture is created v raw malformed suffix replay record is committed v suffix-over-ceiling v missing-parent replay fixture is created v missing-parent replay sidecar is committed v missing parent entry is refused during replay v parent-mismatch replay fixture is created v parent-mismatch replay sidecar is committed v child physical mismatch beneath a suffixed parent is refused during replay v root-suffix replay fixture is created v root-suffix replay sidecar is committed v root payload entry cannot carry a collision suffix :: normal replay and exact metadata v normal replay fixture is created v normal replay sidecar is committed v normal state passes preflight v all live entries replay successfully v regular payload content is restored v root directory metadata is applied post-order v nested directory metadata is applied post-order v regular metadata is applied exactly v unrelated destination content remains untouched :: restore truncates a longer existing regular file v destination-truncation fixture is created v destination-truncation sidecar is committed v destination-truncation state passes preflight v restore overwrites the existing regular file v restored regular file has no stale trailing bytes :: a folder made on the way to a root belongs to the home's owner - intermediate folder owner skipped: needs root :: portable restore verifies regular content after replay v regular verification fixture is created v regular destination bytes are read back exactly once v verification boundary callback runs before destination readback v same-size corruption fixture is created Verification found 1 restored item that differs from the backup: ROOT:file (regular file, content differs from the backup) v same-size post-copy corruption is a restore failure v a content mismatch is described as such, not as an I/O error v truncation verification fixture is created 1 restored item was changed by other programs after it was restored; not errors: ROOT:file v a file truncated after it was restored is reported as changed by another program, not as a failure v later-write verification fixture is created 1 restored item was changed by other programs after it was restored; not errors: ROOT:file v a file another program rewrote after restore is not a failure v later-write verification fixture is created 1 restored item was changed by other programs after it was restored; not errors: ROOT:file v a file another program removed after restore is not a failure v later-write verification fixture is created 1 restored item was changed by other programs after it was restored; not errors: ROOT:file v a file whose size changed after restore, even with its times kept, is not a failure v damaged backup payload fixture is created Verification found 1 restored item that differs from the backup: ROOT:file (regular file, the backup's copy changed after it was captured) v a backup payload that changed after capture fails verification v the mismatch is described as damage to the backup itself v verification opt-out fixture is created v verification opt-out skips readback and its boundary callback :: portable verification refuses destination symlink replacement v verification leaf-replacement fixture is created Verification found 1 restored item that differs from the backup: ROOT:file (regular file, verify restored destination path: Input/output error) v verification rejects a final symlink without following it v verification parent-replacement fixture is created Verification found 1 restored item that differs from the backup: ROOT:nested/file (regular file, verify restored destination path: Not a directory) v verification refuses an intermediate symlink without following it :: portable restore verifies symlink target bytes v symlink verification fixture is created v restored symlink target passes post-copy verification v symlink verification preserves the restored timestamps v symlink target-mismatch fixture is created Verification found 1 restored item that differs from the backup: ROOT:link (symlink, content differs from the backup) v changed symlink target is a verification failure :: portable restore verifies hardlinks by inode identity v hardlink verification fixture is created v hardlink alias is verified without hashing its content again v hardlink identity-mismatch fixture is created Verification found 1 restored item that differs from the backup: ROOT:alias (hardlink, verify restored hardlink: Input/output error) v same-byte replacement cannot impersonate a hardlink alias :: live desktop state is excluded only from verification v live-state verification-exclusion fixture is created v excluded live-state files are restored before verification v gvfs-metadata descendants are omitted from readback and accounting v post-replay live-state mutation does not become a false failure v live-state fill fixture is created v live state already written by a service is kept, and the missing live file is filled in v console live-state fixture is created v without a running session, the backup's live state replaces what is there v verification-prefix boundary fixture is created Verification found 1 restored item that differs from the backup: BUILTIN_LOCAL_SHARE:gvfs-metadata-x (regular file, content differs from the backup) v a similarly named sibling remains content-verified v verification-root boundary fixture is created Verification found 1 restored item that differs from the backup: BUILTIN_DOT_CONFIG:gvfs-metadata/root (regular file, content differs from the backup) v the same logical path under another root remains verified :: additional confirmed live state is excluded only from verification v additional live-state verification fixture is created v dconf/user is restored but omitted from content verification v additional live-state verification fixture is created v gnome-shell/application_state is restored but omitted from content verification v additional live-state verification fixture is created v flatpak descendants are restored but omitted from content verification v additional live-state verification fixture is created v Text Editor state descendants are restored but omitted from content verification v additional live-state boundary fixture is created Verification found 1 restored item that differs from the backup: BUILTIN_LOCAL_SHARE:flatpak-notes (regular file, content differs from the backup) v flatpak-notes remains content-verified despite the flatpak rule v additional live-state boundary fixture is created Verification found 1 restored item that differs from the backup: BUILTIN_LOCAL_SHARE:gnome-shell-extra (regular file, content differs from the backup) v gnome-shell-extra remains content-verified despite the gnome-shell rule :: known desktop-state files rewrite a changed HOME (VERSION=2) v changed-HOME rewrite fixture is created v changed-HOME desktop-state replay succeeds v GTK bookmarks rewrite only exact source-HOME path components v recent-files XBEL rewrites the source HOME without structural parsing v rewritten restore progress still counts source payload bytes :: known desktop-state files rewrite a changed HOME (VERSION=1) v changed-HOME rewrite fixture is created v changed-HOME desktop-state replay succeeds v GTK bookmarks rewrite only exact source-HOME path components v recent-files XBEL rewrites the source HOME without structural parsing v rewritten restore progress still counts source payload bytes :: known desktop-state files translate source XDG roots per key v per-key XDG rewrite fixture is created v per-key XDG desktop-state replay succeeds v longest per-key XDG prefixes beat the generic HOME fallback :: known desktop-state files stay verbatim when HOME is unchanged v same-HOME rewrite fixture is created v same-HOME desktop-state replay succeeds v same-HOME files remain byte-for-byte unchanged :: desktop-state replay does not guess an unrecorded source HOME v no-SOURCE_HOME rewrite fixture is created v desktop-state replay succeeds without source HOME v files remain byte-for-byte unchanged without SOURCE_HOME :: portable restore report accumulates bytes and syncs across files v portable sync fixture is created v portable sync sidecar is committed v portable restore report accumulates across smaller files and syncs once :: portable restore aborts when periodic sync fails v portable sync-failure fixture is created v portable sync-failure sidecar is committed v a failed periodic sync aborts portable restore and records failure v portable restore failure reason formats kind, step, and errno :: outstanding claims are rejected before replay v claim-gate replay fixture is created v claim-gate replay sidecar has valid live entries v an outstanding claim is planted in the valid sidecar v replay rejects the claim before collecting or mutating entries v claim-gate replay leaves the destination untouchedError: Manifest root XDG_DOWNLOAD_DIR entry . and manifest root XDG_DOCUMENTS_DIR entry . map to the same restore destination: /tmp/migr_portable_replay_Xb2Mry/home/Shared :: replay applies the payload's exact xattr set v xattr replay fixture is created v xattr-bearing sidecar is committed v xattr state passes preflight v xattr-bearing entries replay successfully v payload xattr is applied to the destination :: replay reconciles stale and changed destination xattrs v xattr reconciliation fixture is created v xattr reconciliation sidecar is committed v xattr reconciliation passes preflight v first replay applies the payload xattr set v fixture: a stale destination xattr is planted v fixture: the payload xattr name is set to a different value v second replay succeeds over the same destination v changed destination xattr is overwritten to the payload value v stale destination xattr is removed by exact-set reconciliation :: pre-mutation gate refuses a trusted.* payload v gate-refusal fixture is created v trusted.* sidecar is committed v gate refuses a trusted.* payload v gate refusal applies nothing and reports one failure v gate refusal leaves the destination sentinel untouched v gate refusal never creates the entry's destination path :: pre-mutation gate does not refuse a security.*-only payload v security-only fixture is created v security.*-only sidecar is committed v security.*-only payload passes the gate and reaches replay :: per-entry payload revalidation v payload-swap fixture is created v payload-swap sidecar is committed v payload-swap state passes preflight v payload replacement is caught after reporting prior progress v entries before the swapped payload remain applied v rejected payload has no destination file v payload-swap refusal leaves the sentinel untouched :: tombstoned state is not replayed v tombstone fixture is created v tombstone sidecar is committed v tombstoned state passes preflight without payload v only the live root is replayed v tombstoned entry is not resurrected :: hardlink post-link identity check catches a reference swapped after the pre-link validation v hardlink race fixture is created v hardlink race sidecar is committed v hardlink race state passes preflight v the reference swapped between validation and linkat is detected instead of silently accepted v the swap actually took effect between validation and linkat :: portable replay enforces resolved destination identity v direct replay alias-collision fixture is created v direct replay VERSION=1 alias manifest is written v direct replay alias sidecar is committed v direct replay refuses aliased duplicate files before any target content changes v nested alias replay fixture is created v nested alias VERSION=1 manifest is written v nested alias sidecar with a cross-root hardlink is committed v non-conflicting nested aliases pass portable preflight v nested alias replay preserves cross-root hardlink identity v nested alias replay finalizes directory metadata by resolved namespace depth :: portable replay: byte-sensitive directories keep ASCII-case-distinct names v ASCII-case fixture is created v ASCII-case sidecar is committed v ordinary byte-sensitive directory passes portable preflight v ordinary byte-sensitive directory restores both ASCII-case-distinct entries :: portable restore identity graph: nested bind-mounted descendants keep route-specific views v nested mount-view fixture is created rror: Manifest root XDG_DOWNLOAD_DIR entry shared/file and manifest root XDG_DOCUMENTS_DIR entry shared/file map to the same restore destination: /tmp/migr_portable_replay_tHi6Tk/home/Documents/shared/file Error: Manifest root XDG_DOWNLOAD_DIR entry shared and manifest root XDG_DOCUMENTS_DIR entry shared map to the same restore destination: /tmp/migr_portable_replay_tHi6Tk/home/Documents/shared 0;32mv portable replay resolves descendants through the current route :: portable replay: differing mount ids do not make aliases disjoint v differing-mount-id fixture is created v differing-mount-id manifest is written v differing-mount-id sidecar is committed v portable preflight refuses the collision before mutation :: VERSION=2 replay uses combined destination order across roots v VERSION=2 replay fixture is created v VERSION=2 replay manifest is written v VERSION=2 replay sidecar is committed v VERSION=2 nested roots pass portable preflight v VERSION=2 replay maps both roots to their recorded target destinations v directory metadata is finalized deepest-first across VERSION=2 roots :: replay_copy_bytes rejects what it cannot faithfully represent v a source that fits is copied exactly v a source that fits exactly at the boundary is copied exactly v a source that doesn't fit is rejected, not truncated v a source with an embedded NUL is rejected, not silently misrepresented as a shorter string :: collection failure reasons do not invent errno v logical collection failures name their check without a fabricated errno 1 portable restore replay test(s) skipped all portable restore replay tests passed ./tests/test_portable_restore_orchestrate :: invalid request still zero-initializes the report v a request with a NULL manifest is refused v the report is zero-initialized even on the parameter-validation early return, not left holding stack garbage :: end-to-end portable restore orchestration v normal orchestration fixture is created v nested directory fixture records source directory sizes v normal orchestration sidecar is committed Estimated restore size: 136B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 3 applied v confirmation, probe, replay, and summary complete successfully v probe runs before the first persistent destination mutation v portable payload content is restored v regular metadata uses the measured exact-nsec policy v nested directory metadata is applied post-order v unrelated destination content remains untouched :: portable restore preserves the destination user-dirs state v user-dirs preservation fixture is created v user-dirs preservation manifest is committed v user-dirs preservation sidecar is committed v user-dirs.dirs is excluded from applied content and counted separately v destination user-dirs.dirs remains byte-for-byte untouched v portable summary names preserved local state separately :: metadata preflight detail is for -v v without -v the preflight detail is not printed v with -v it is :: portable security.* xattr tolerance orchestration v security.* tolerance fixture is created v security.* tolerance sidecar is committed v preflight accepts the entry carrying security.* v security.* set refusal does not abort portable replay v the confirmation is the ordinary one; only the summary counts skipped attributes v the final portable summary reports the tolerated attributes v portable replay preserves content when security.* is skipped :: end-to-end portable hardlink replay v hardlink orchestration fixture is created v hardlink orchestration sidecar is committed v hardlink payload placeholder starts as an empty regular file Estimated restore size: 16B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 3 applied v hardlink replay succeeds with a complete summary v hardlink destination shares the representative inode and content v hardlink uses the representative's metadata without reapplying it v hardlink payload placeholder remains untouched :: portable restore rerun over its own links v link rerun fixture is created v link rerun sidecar is committed Estimated restore size: 27B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 4 applied v the first restore applies the symlink and the hardlink Estimated restore size: 27B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 4 applied v a rerun accepts the symlink and hardlink it already restored v the rerun keeps the hardlink on the representative inode v the rerun keeps the symlink target and reapplies its metadata :: portable restore puts the backup's symlink in place of a file or another symlink Estimated restore size: 27B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 4 applied v a symlink with another target is replaced, metadata included Estimated restore size: 27B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 4 applied v a file is replaced, metadata included :: portable restore refuses a foreign hardlink name v foreign hardlink fixture is created v foreign hardlink sidecar is committed Estimated restore size: 27B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 4 applied v the first restore succeeds v the restored hardlink name is removed Estimated restore size: 27B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore stopped at ROOT:alias: 2 applied, 1 failed (hardlink, check destination: File exists) v a hardlink name on another inode is still a conflict v the conflicting file is left untouched :: failed replay still finalizes prepared directories v failed replay fixture is created v failed replay sidecar is committed Estimated restore size: 11B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore stopped at ROOT:alias: 1 applied, 1 failed (hardlink, check destination: File exists) v replay stops at the conflicting entry and reports it v a directory created before the failure gets its recorded metadata v the prepared root directory gets its recorded metadata too :: a confirmation hook asks in place of the question v confirmation fixture is created v confirmation sidecar is committed v a dry run asks nothing and does not call the hook v a dry run names each root by where it goes, not by its id Estimated restore size: 16B Destination free space: 139.4G v the hook's no restores nothing, whatever the input says Estimated restore size: 16B Destination free space: 139.4G Files Portable restore complete: 2 applied v the hook's yes restores without reading the input :: portable hardlink cross-root reference v cross-root hardlink fixture is created v cross-root manifest is committed v cross-root hardlink sidecar is committed Estimated restore size: 18B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 4 applied v cross-root hardlink replay succeeds v cross-root hardlink shares the referenced inode :: portable hardlink rejects an invalid XDG reference root v invalid-XDG hardlink fixture is created v invalid-XDG hardlink manifest is committed v invalid-XDG hardlink sidecar is committed v an unresolved XDG hardlink reference is refused before replay :: portable XDG destination orchestration v XDG destination fixture is created v XDG destination manifest is committed v XDG destination sidecar is committed Estimated restore size: 34B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 4 applied v portable XDG restore completes for both roots v XDG roots restore under their resolved directories without flattening :: portable XDG missing-destination anchor cache v missing-XDG destination fixture is created v missing-XDG destination sidecar is committed Estimated restore size: 27B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 3 applied v portable XDG restore creates and reuses a missing destination v cached parent anchor restores every entry to the new XDG directory :: portable parent cache distinguishes destination bases v mixed-base parent-cache fixture is created v mixed-base parent-cache manifest is committed v mixed-base parent-cache sidecar is committed Estimated restore size: 54B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 7 applied v mixed-base restore completes with one bounded parent cache v same parent prefix never crosses the HOME and XDG base descriptors :: portable payload parent cache preserves directory identity v payload parent-cache fixture is created v payload parent-cache sidecar is committed Estimated restore size: 64B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 7 applied v payload parent-cache restore completes v cached payload parents preserve same-name contents by directory :: malformed portable hardlink references v missing-reference fixture is created v malformed hardlink sidecar is committed Estimated restore size: 16B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore stopped at ROOT:alias: 0 applied, 1 failed (hardlink, resolve hardlink entry) v a hardlink with a missing reference is refused before replay v self-reference fixture is created v malformed hardlink sidecar is committed Estimated restore size: 16B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore stopped at ROOT:alias: 0 applied, 1 failed (hardlink, resolve hardlink entry) v a self-referencing hardlink is refused before replay v non-regular-reference fixture is created v malformed hardlink sidecar is committed Estimated restore size: 0B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore stopped at ROOT:alias: 0 applied, 1 failed (hardlink, resolve hardlink entry) v a hardlink targeting a directory is refused before replay :: end-to-end portable symlink replay v symlink orchestration fixture is created v symlink fixture records its source directory size v symlink orchestration sidecar is committed v symlink participates in the full preflight inventory Estimated restore size: 78B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 2 applied v confirmation, probe, and symlink replay complete successfully v symlink probe runs before its destination is created v destination symlink target and no-follow metadata are exact v symlink metadata never follows and changes its target v empty payload placeholder remains an untouched regular file :: symlink ownership probe rejection v symlink ownership fixture is created v symlink ownership sidecar is committed v symlink ownership manifest is readable v foreign symlink ownership reaches the metadata profile v foreign symlink ownership is refused before confirmation by the restore privilege preflight v ownership rejection leaves no destination mutation :: portable symlink destination conflict v symlink conflict fixture is created v symlink conflict sidecar is committed Portable restore preflight refused: 1 violation(s), 2 live entries root ROOT: 2 live, 1 violation(s) preflight example: link v an existing folder is refused before anything is restored v the refusal leaves the existing folder intact :: confirmation followed by probe rejection v probe-rejection fixture is created v probe-rejection sidecar is committed v the restore privilege preflight refuses before confirmation or probe v the refusal leaves the destination untouched before replay v probe rejection leaves no named destination entry v probe rejection leaves no descriptor residue :: dry-run orchestration v dry-run fixture is created v dry-run sidecar is committed Note: the real restore needs root. Run it with sudo. Estimated restore size: 16B Destination free space: 139.4G Would restore: restored (3 items) v dry-run returns the preflight summary without replay v dry-run fires no probe and performs no destination mutation :: portable restore free-space preflight v space-preflight fixture is created v space-preflight sidecar is committed v portable live restore refuses before confirmation when space is insufficient v portable dry-run refuses before preview when space is insufficient v portable space refusal leaves the destination untouched :: coarse destination timestamp policy v coarse-policy fixture is created v coarse-policy sidecar is committed Estimated restore size: 16B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files Portable restore complete: 2 applied v coarse-policy replay completes v coarse policy canonicalizes both timestamps to zero nanoseconds :: direct portable restore network-config privilege preflight v direct-network-privilege fixture is created v direct-network-privilege fixture is populated Error: This restore needs root: it would restore items owned by a different user. Rerun the same migr command with sudo. Error: Manifest root ROOT entry link conflicts with an existing directory at restore destination: /tmp/migr_portable_orchestrate_KE6nac/home/restored/link Error: This restore needs root: it would restore items owned by a different user. Rerun the same migr command with sudo. v portable orchestration refuses nonempty network config before consent v portable network privilege refusal leaves the destination untouched Error: This restore needs root: it would restore items owned by a different user. Rerun the same migr command with sudo. v an unprivileged portable dry run previews and notes the root requirement :: direct portable restore complete outcome v direct-complete fixture is created v direct-complete sidecar is committed Estimated restore size: 16B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files v direct orchestration reports a complete restore distinctly v direct complete outcome leaves restored content :: direct portable restore dry-run outcome v direct-dry-run fixture is created v direct-dry-run sidecar is committed Note: the real restore needs root. Run it with sudo. Estimated restore size: 16B Destination free space: 139.4G Would restore: restored (2 items) v direct orchestration reports a dry-run distinctly v direct dry-run performs no destination mutation :: direct portable restore cancelled outcome v direct-cancelled fixture is created v direct-cancelled sidecar is committed Estimated restore size: 16B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: v direct orchestration reports cancellation distinctly v cancelled direct restore performs no destination mutation :: direct portable restore error outcome v direct-error fixture is created v direct-error sidecar is committed v direct orchestration reports probe failure distinctly v direct probe failure performs no destination mutation :: direct portable restore timestamp probe failure v direct-timestamp-probe-failure fixture is created v direct-timestamp-probe-failure sidecar is committed v destination home is made read-only Estimated restore size: 16B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: v direct orchestration reports the timestamp probe failure with the live count already discovered by preflight, not zero v direct timestamp probe failure performs no destination mutation :: direct portable restore timestamp measurement v direct-timestamp fixture is created v direct-timestamp sidecar is committed v host destination reports exact timestamp support Estimated restore size: 16B Destination free space: 139.4G This will restore files to your home directory. Continue? [y/N]: Files v direct orchestration ignores an injected timestamp policy and uses its measurement all portable restore orchestration tests passed ./tests/test_portable_restore_invariant Error: could not measure how precisely the destination keeps file times: Permission denied No destination was changed. :: canonical physical-leaf authentication v safe ASCII leaf authenticates v punctuation and spaces authenticate through component encoding v trailing dot authenticates through its canonical escape v valid UTF-8 remains literal in the canonical leaf v canonical collision suffix authenticates through the mapper v one-byte physical-leaf tampering is rejected v invalid nonzero UTF-8 byte authenticates through %XX encoding :: shortened physical-leaf authentication v hard-coded shortening vector authenticates exactly v tampered shortening fingerprint is rejected v mapper produces a suffix-bearing shortened vector v suffix-bearing shortened leaf authenticates with mapper rebudgeting :: root and collision-suffix semantics v root mapping permits a non-directory kind with empty leaf/suffix v root with a physical leaf is rejected v root with a collision suffix is rejected v non-canonical collision suffix is rejected v non-canonical collision suffix is rejected v non-canonical collision suffix is rejected v non-canonical collision suffix is rejected v non-canonical collision suffix is rejected v non-canonical collision suffix is rejected v non-canonical collision suffix is rejected v maximum uint64 collision suffix is representable v large canonical collision suffix authenticates :: logical-parent topology is iteration-independent v non-root entry without its logical parent is rejected and cleaned up v child beneath a non-directory logical parent is rejected v root-directory-child chain succeeds even when vector order is reversed v successful index teardown releases its full budget :: physical sibling ownership is parent-local v forced fingerprint creates two individually canonical equal candidates v equal canonical physical leaves under one parent are rejected v sibling ambiguity remains rejected when vector order is reversed v the same physical leaf may be reused beneath different logical parents v parent-local uniqueness test releases index storage v invalid vector input fails without allocating index state :: destination casefold lookup is folded-name indexed v casefold-index fixture directory is created v casefold-index fixture directory opens as an anchor v casefold-index graph registers its destination ancestry v folded-name index still identifies the real ASCII-case sibling conflict v casefold conflict lookup examines only folded-name bucket members v two already-existing case variants retain the existing pair-skip semantics v casefold-index anchor closes cleanly v casefold-index fixture directory is removed portable restore invariant passed PATH="/builddir/build/BUILD/migr-0.1.1-build/migr-0.1.1/tests/stubs:$PATH" ./tests/test_backup_plan :: backup root planner (unit) :: model: --critical plans personal content and persistent user state v critical plan builds v Documents is planned v Downloads is planned v Pictures is planned v Desktop is planned under --critical v Videos is NOT planned under --critical v Music is NOT planned under --critical v Projects is NOT planned under --critical v .ssh is planned under --critical v .gnupg is planned under --critical v .gitconfig is planned under --critical v .bashrc is planned under --critical v .profile is planned under --critical v .config is planned under --critical v .local/share is planned under --critical v .local/state is planned under --critical v .local/bin is planned under --critical v .local/lib is planned under --critical v .bash_profile is planned under --critical v .bash_login is planned under --critical v .bash_logout is planned under --critical v .bash_aliases is planned under --critical v .zshenv is planned under --critical v .zprofile is planned under --critical v .zshrc is planned under --critical v .zlogin is planned under --critical v .zlogout is planned under --critical v .inputrc is planned under --critical v .tmux.conf is planned under --critical v .screenrc is planned under --critical v browser profiles are planned under --critical v the .config root absorbs the Chrome descendant in the legacy plan v scope is MANIFEST_SCOPE_CRITICAL :: model: --comprehensive adds Videos/Music only v comprehensive plan builds v Desktop is planned under --comprehensive v Videos is planned under --comprehensive v Music is planned under --comprehensive v Projects is NOT planned under --comprehensive v scope is MANIFEST_SCOPE_COMPREHENSIVE :: model: a genuinely absent built-in is left out of the plan, not an error v a mostly-empty home still builds a plan (missing built-ins are not fatal) v the one present built-in is planned v an absent built-in is simply left out v an absent dotfile is simply left out v an absent browser profile is simply left out v an absent persistent-state root is simply left out v an absent .bash_history is simply left out v an absent .zsh_history is simply left out :: model: a localized XDG source is planned under its canonical id v plan builds with a localized user-dirs.dirs v the localized directory is planned under the canonical XDG_DOCUMENTS_DIR id v its capture_path points at the actual localized directory v its payload folder keeps the localized name :: model: a built-in root has its fixed id/policy/payload/restore fields v plan builds v .ssh is planned v policy is HOME_RELATIVE v payload_path is settings/ and the catalog name v restore_path is the home-relative address v has_restore_path is set v presentation group is DOTFILE v .local/share is planned v .local/share policy is HOME_RELATIVE v .local/share payload_path uses its catalog name v .local/share restore_path is home-relative v .local/share uses the Dotfiles & Config presentation group :: model: payload folders carry names the user can read (D82) v plan builds v a folder of the user's keeps its name at the top of data/ v a path with a hidden component goes in settings/, lowercase and without dots v a user folder named like settings/ takes a suffix v a second root of the same name takes -2 v names that differ only in case collide v characters FAT, exFAT, and NTFS refuse are replaced, a trailing dot dropped v a name that is not UTF-8 falls back to the root's id v a root outside HOME is named after its last component :: selection: built-in .config owns Chromium-family descendants once v selection plan builds with .config and Chrome present v the built-in .config root appears exactly once v Chrome is not emitted as a duplicate descendant root v the collapsed ownership plan validates :: model: an entirely empty home still yields a safe, empty plan v an empty home still builds (a valid zero-root plan) v root_count is 0 :: model: an XDG root and a built-in that alias the same real directory through an ancestor symlink are caught as a duplicate v fixture: make .config a symlink to altconfig v the alias through an ancestor symlink is caught as a duplicate root, not accepted as two v the rejected plan is left safely empty :: model: backup_plan_free() is safe on NULL and on a zero-initialized plan v backup_plan_free(NULL) does not crash v backup_plan_free() on a zero-initialized plan does not crash :: explicit: a relative path normalizes to an absolute capture_path v fixture: realpath the expected target v fixture: save cwd v fixture: chdir into home v a relative explicit path resolves v capture_path is absolute v capture_path matches the real absolute address v fixture: restore cwd :: explicit: 'x', './x', and 'dir/../x' all normalize to the same root and are rejected v fixture: save cwd v fixture: chdir into home v three spellings of the same path are rejected as duplicates v the rejected plan is left safely empty v fixture: restore cwd :: explicit: HOME itself is HOME_RELATIVE with an empty restore_path v fixture: realpath home v HOME itself is a valid explicit root v exactly one root v policy is HOME_RELATIVE v has_restore_path is set v restore_path is empty (the root is $HOME itself) :: explicit: an ordinary root under HOME is HOME_RELATIVE v an ordinary root under HOME is a valid explicit root v policy is HOME_RELATIVE v restore_path is the home-relative address :: explicit: a '$HOME'-plus-suffix sibling is never mistaken for HOME_RELATIVE v fixture: realpath home v fixture: build sibling path v the sibling path is a valid explicit root v a lexical '$HOME2'-style prefix is classified MANUAL_NATIVE, not HOME_RELATIVE :: explicit: a root entirely outside HOME is MANUAL_NATIVE v a root outside HOME is a valid explicit root v policy is MANUAL_NATIVE :: explicit: a HOME-side leaf symlink pointing outside stays HOME_RELATIVE (its target is never followed) v fixture: create the leaf symlink pointing outside HOME v the outward-pointing leaf symlink is a valid explicit root v the symlink OBJECT itself (not its target) is classified HOME_RELATIVE v restore_path is the symlink's own home-relative address :: explicit: a dangling leaf symlink is a valid root v fixture: create a dangling symlink v a dangling leaf symlink is accepted as a valid root v it is classified HOME_RELATIVE like any other object directly under HOME :: explicit: an ancestor symlink that escapes HOME resolves to its real (outside) parent v fixture: create an ancestor sError: duplicate backup root: /tmp/plan_home_g6Kssr/altconfig/google-chrome Error: duplicate backup root: /tmp/plan_home_8ssh6V/x Error: the backup destination is inside /tmp/plan_home_B6XDGC/Documents, which this backup would capture. Writing a backup into a tree it is copying makes the copy consume itself; choose a destination outside every selected root. Error: the backup destination is inside /tmp/plan_home_B6XDGC/Documents, which this backup would capture. Writing a backup into a tree it is copying makes the copy consume itself; choose a destination outside every selected root. Error: the backup destination is inside /tmp/plan_home_B6XDGC/Documents, which this backup would capture. Writing a backup into a tree it is copying makes the copy consume itself; choose a destination outside every selected root. Error: the backup destination is inside /tmp/plan_home_B6XDGC/Documents, which this backup would capture. Writing a backup into a tree it is copying makes the copy consume itself; choose a destination outside every selected root. Error: the backup destination is inside /, which this backup would capture. Writing a backup into a tree it is copying makes the copy consume itself; choose a destination outside every selected root. Error: duplicate backup root: /tmp/plan_home_Upxdyd/x Error: backup roots overlap: /tmp/plan_home_RmI1SP/dir and /tmp/plan_home_RmI1SP/dir/sub Error: could not resolve path: /tmp/plan_home_HDd2o9/sock: Invalid argument ymlink to a directory outside HOME v fixture: realpath realdir v a path through an ancestor symlink is a valid explicit root v resolving the real (outside) parent classifies the root MANUAL_NATIVE v capture_path is the real parent's address, not a lexical join through the symlink name :: explicit: '..' through an ancestor symlink follows real kernel semantics, not lexical cancellation v fixture: create an ancestor symlink to outer/inner v fixture: realpath home v fixture: realpath outer v 'linkdir/..' is a valid explicit root v the kernel resolves the symlink first, then applies '..': the real parent of 'inner', not $HOME v it is NOT lexically cancelled back to $HOME :: explicit: '/' itself is a valid MANUAL_NATIVE root v '/' is accepted by the planner v capture_path is '/' v policy is MANUAL_NATIVE :: explicit: when HOME is '/', every descendant is HOME_RELATIVE v a descendant of '/' is accepted when HOME is '/' v exactly one root v the descendant is HOME_RELATIVE, not MANUAL_NATIVE v the root has an automatic restore address v restore_path is the absolute capture path without its leading slash :: set: a destination equal to or below a selected root is reported as a conflict v the plan builds v fixture: build the prefix-trap sibling v a destination equal to the root itself conflicts v a not-yet-existing destination directly inside the root conflicts v a destination deeper inside the root conflicts v a lexical-prefix sibling of the root is not a conflict v a destination outside every root is not a conflict v fixture: a symlink outside every root pointing to a directory inside one v a destination symlink resolving into a root conflicts, despite living outside it v fixture: a symlink pointing to a directory outside every root v a destination symlink resolving outside every root is still usable v NULL arguments report no conflict rather than crashing v a plan whose only root is '/' builds v with '/' selected, every destination conflicts :: set: an explicit root repeated verbatim is rejected as a duplicate v the same path given twice is rejected v the rejected plan is left safely empty :: set: a directory root and its own descendant are rejected as overlapping v an ancestor/descendant pair is rejected as overlapping v the rejected plan is left safely empty :: set: a leaf-symlink root and an object under its target are NOT a false overlap v fixture: create a leaf symlink to the outside directory v a leaf-symlink root alongside a file under its unresolved target is accepted, not flagged as overlap v both roots are present :: set: reversed argv order produces the identical EXPLICIT_n mapping v forward order builds v reversed order builds v argv order never changes which path gets which EXPLICIT_n id :: set: two explicit roots with the same basename are two distinct roots (planner accepts this) v two files sharing a basename under different directories both plan successfully v both are present as distinct roots :: set: a Unix domain socket cannot be a backup root v fixture: create a Unix domain socket v fixture: bind the socket v a socket is refused as a backup root v the rejected plan is left safely empty :: set: a FIFO is a valid backup root v fixture: create a FIFO v a FIFO is accepted as a backup root v the FIFO is present in the plan :: set: exError: too many backup roots (limit 4096) ceeding MANIFEST_MAX_ROOTS rejects the whole plan v one more root than MANIFEST_MAX_ROOTS rejects the whole plan v the rejected plan is left safely empty :: model: size estimation tolerates a root that vanishes after planning v the two-root estimate fixture builds v the surviving root can be measured v one planned root vanishes before estimation v a vanished root is not an estimation error v a vanished root contributes zero to the estimated total :: model: planning a backup leaves folders' access times as they are v the size estimate v the plan and the list of what it leaves out are built v the Flatpak checks and the list of what is left out :: model: a root the estimate cannot measure is named with errno v the estimate fixture builds v a folder in the root cannot be read v the estimate names the root, the step, and errno v the folder can be read again :: model: size estimation stays anchored to an already-opened directory across a mid-walk ancestor rename v fixture: root/subdir/grandchild.txt is measurable before the race v the ancestor-rename estimate fixture builds v a rename of an already-opened ancestor directory is not an estimation error v the estimate still reflects the original subtree, not whatever now occupies the renamed directory's old name :: model: size estimation rounds regular files and deduplicates hardlinks v fixture: create a hardlinked estimate pair v the allocation estimate fixture builds v rounded regular files and the hardlinked pair contribute once v block size zero disables rounding but keeps hardlink deduplication v block size one disables rounding but keeps hardlink deduplication v the dense hardlink estimate fixture builds v the dense hardlink fixture can be measured v the estimate hash set finds entries across a capacity rehash v backup() displays the raw source estimate v live progress uses the raw source total v the backup ends its progress on the totals, without a current path v dry-run displays the raw source estimate v the free-space fit check still uses the rounded estimate :: production: destination free-space preflight covers refusal, rollback, and normal explicit backups v the refusal fixture source remains measurable v insufficient space refuses both live and dry-run backups v insufficient-space output is identical live and dry-run v the refusal keeps both absolute space summaries v the refusal names the destination v the refusal reports the additional space required v the refusal does not repeat the absolute free-space value v an existing destination receives no container, data, or manifest on refusal v a newly created destination is rolled back on space refusal v a fitting dry-run prints both space summaries and succeeds v a fitting explicit backup prints both summaries and completes :: production: a native update needs space only for what grew, and shows what it checked v the first backup completes v the manifest records the backup's size v a dry-run update asks only for the growth beyond the old backup v the update fits when only its growth fits v update progress shows the checked bytes beside the copied ones :: production: a portable update needs space only for what grew, and shows what it checked v the first backup completes v the manifest records the backup's size v a dry-run update asks only for the growth beyond the old backup v the update fits when only its growth fits v update progress shows the checked bytes beside the copied ones :: production: a native update copies again the files verify found damaged v the backup counts every item it holds v verify lists the damaged file in the backup and says to update it v the update copies it again and removes the list v the backup then verifies :: production: a portable update copies again the files verify found damaged v the backup counts every item it holds v verify lists the damaged file in the backup and says to update it v the update copies it again and removes the list v the backup then verifies :: production: --include-self validates, copies, records, and dry-runs v an absent migr-static fails before creating a destination container v the missing-static refusal names the path and where to read on v a valid static sibling produces a finalized include-self backup v the container-root migr is byte-identical to the validated source binary v the include-self backup manifest remains valid v the manifest records the copied binary architecture v an include-self dry run writes nothing to the destination v the dry run reports the binary and architecture it would copy :: production: a native backup completes when its source changes under it v a file removed before it is read is left out, listed, and the backup still completes with status 1 v a file still changing after every reread is kept as last read and listed v progress counts the bytes of the read kept, not of every read v it keeps the times from before the last read, so the next update reads it again v a file written once while it is read is read again and captured cleanly, with status 0 v fixture: an interrupted run leaves a partial holding the first root's file v a resumed backup drops the stale payload of a file that vanished before it was read :: production: --include-network-config handles multiple network backends v a readable synthetic NetworkManager directory produces a finalized backup v NetworkManager files are copied byte-for-byte under network/networkmanager/ v the system crypto policy name is recorded as network/crypto-policy v connection-file mode bits are preserved on a native destination v a symlinked connection entry is not followed or copied v a non-regular connection entry is skipped v an unreadable non-regular entry is classified and skipped v the network-config backup manifest remains valid v the manifest records NETWORK_CONFIG=1 v NetworkManager completion names the backend and warns about plaintext secrets v odd source entries are reported and skipped v an empty readable backend creates its empty subdirectory and still succeeds v an unrecognized crypto policy file is not recorded v an empty readable backend is still recorded as NETWORK_CONFIG=1 v all-ENOENT backends still produce a successful backup with no network/ v all-ENOENT backends leave NETWORK_CONFIG unset v all-ENOENT completion reports that no supported backend was found v an unreadable backend still refuses when the other backends are absent v the permission refusal names the backend and gives the sudo retry v a non-permission backend probe failure still refuses before capture v a non-permission backend failure does not claim sudo is the remedy v an unreadable network configuration file refuses before container creation v a per-file permission refusal names the connection file and gives the sudo retry v a netplan-only source is captured under network/netplan/ v a netplan-only backup records NETWORK_CONFIG=1 v netplan completion names netplan and warns about plaintext secrets v a systemd-networkd-only source is captured under network/systemd-networkd/ v a systemd-networkd-only backup records NETWORK_CONFIG=1 v systemd-networkd-only completion warns about plaintext secrets (networkd .netdev files can hold a WireGuard private key) v all three present backends produce all three network subdirectories v completion enumerates every backend that was captured v new backends produce a finalized backup v absent backends do not acquire a captured directory v absent backends do not acquire a captured directory v absent backends do not acquire a captured directory v each present backend gets its own directory and exact saved bytes v absent backends do not acquire a captured directory v interface-specific wpa_supplicant configuration is captured v non-conf files, including short names and backup suffixes, are excluded v non-conf files, including short names and backup suffixes, are excluded v non-conf files, including short names and backup suffixes, are excluded v wpa_supplicant reports excluded package helper files v new backend captures record NETWORK_CONFIG=1 v both new backends warn that saved files may contain plaintext secrets v single-backend completion names only that backend v new backends produce a finalized backup v absent backends do not acquire a captured directory v absent backends do not acquire a captured directory v absent backends do not acquire a captured directory v absent backends do not acquire a captured directory v each present backend gets its own directory and exact saved bytes v netctl hooks are skipped as a directory rather than captured recursively v new backend captures record NETWORK_CONFIG=1 v both new backends warn that saved files may contain plaintext secrets v single-backend completion names only that backend v new backends produce a finalized backup v each present backend gets its own directory and exact saved bytes v each present backend gets its own directory and exact saved bytes v each present backend gets its own directory and exact saved bytes v each present backend gets its own directory and exact saved bytes v each present backend gets its own directory and exact saved bytes v interface-specific wpa_supplicant configuration is captured v non-conf files, including short names and backup suffixes, are excluded v non-conf files, including short names and backup suffixes, are excluded v non-conf files, including short names and backup suffixes, are excluded v wpa_supplicant reports excluded package helper files v netctl hooks are skipped as a directory rather than captured recursively v new backend captures record NETWORK_CONFIG=1 v both new backends warn that saved files may contain plaintext secrets v five-backend completion uses commas and a final conjunction v an include-network-config dry run writes nothing v the dry run previews the backend that would be captured :: production: portable pre-scan failures name their cause v an unresolved portable pre-scan violation refuses before container creation v the portable refusal reports only the unresolved path, not a resolved case collision v a dry-run portable pre-scan violation refuses without creating a container v the dry-run portable refusal reports the unresolved path before freeing its report v an operational portable pre-scan failure refuses before container creation v the portable refusal reports the unreadable path and operating-system error :: production: portable journal is read back before publishing v a journal that reads back intact is published v a journal damaged on the drive keeps the backup unpublished v the damaged journal is reported with its offset, not as complete :: production: scoped backups snapshot VS Code extensions and explicit resumes clear stale snapshots v a scoped backup writes the exact deterministic extension snapshot v a successful extension snapshot is reported v a scoped backup saves the user's group memberships v a scoped backup lists the system-wide Flatpak applications v an unavailable or failing code command leaves no snapshot without failing backup v a skipped extension snapshot is reported as a note v fixture leaves a resumable explicit partial before stale-control cleanup v the second explicit run adopts and completes the matching partial v an adopted explicit backup clears a stale VS Code extension snapshot v an adopted explicit backup clears a stale group list v an adopted explicit backup clears a stale Flatpak application list :: utility: duration formatting for progress output v zero seconds format as 00:00 v sub-minute durations keep mm:ss v one minute formats as 01:00 v under an hour formats as mm:ss v one hour formats as h:mm:ss v multi-hour durations preserve minute and second padding :: utility: progress speed is a cumulative average, not the last-interval rate v speed during a stall reflects the (tiny) average so far v speed after a burst is total_bytes / elapsed since start (10000), not the burst-only rate v speed after a burst is nowhere near the burst-only interval rate v zero bytes copied yields zero speed v non-positive elapsed time yields zero speed :: production: live backup progress is chunked, final-flushed, and tty-gated v a multi-chunk live backup succeeds with progress enabled v progress is monotonic and final-flushed at the estimated total v progress overwrites in place and explicit backups omit package output v forced non-tty progress redraws fit the 80-column fallback row v progress output includes elapsed time and speed v shrinking progress lines erase their stale tail v a captured non-tty backup installs no progress callback Estimated backup size: 15B Destination free space: 139.4G Backing up to: /tmp/progress_target_parent_vU1Bjc/joined_progress/migr-mockbuild.partial Copied 15B/15B in 00:00, 59B/s, 139.4G free Finalizing (syncing to disk)... Location: /tmp/progress_target_parent_vU1Bjc/joined_progress/migr-mockbuild v a live backup joins its progress ticker before returning :: production: stalled copy keeps elapsed progress live OK: Backup complete: 1 item in the backup v the injected single-path copy stall still completes v ticker advances elapsed at least twice while copied bytes stay fixed :: production: a missing explicit path refuses the whole backup before the destination exists v backup refuses a missing explicit path v the destination directory was never created :: production: overlapping explicit roots refuse before the destination exists, live and dry-run alike v overlap refused in dry-run v no destination created in dry-run v overlap refused live v no destination created live :: production: a dangling explicit leaf symlink is captured as a symlink, not skipped or dereferenced v fixture: create a dangling symlink v backup succeeds capturing a dangling leaf symlink v a finalized container with a data/ namespace was created v the dangling symlink was captured as a symlink, not skipped or turned into something else :: production: a sudo backup's container belongs to the user who ran sudo v a handover that fails is a warning naming its cause (the rest needs root to hand files to another user) :: production: a second native backup updates the first in place v fixture: remove a backed-up file v the root the new selection lacks is named before it is removed v the same container is updated and published under the same name v a changed file is recopied v a removed file leaves the payload v a root the new selection lacks leaves the payload v the manifest lists the new selection and when it was taken :: production: a second portable backup updates the first in place v fixture: remove a backed-up file v the root the new selection lacks is named before it is removed v the same container is updated and published under the same name v a changed file is recopied v a removed file leaves the payload v a root the new selection lacks leaves the payload v the manifest lists the new selection and when it was taken v the journal keeps the kept root's entries and none of the dropped root's :: production: a native update asks before removing what it does not select v a dry run names the backup it updates and what it would remove v with nobody to answer, the backup is left as it was v on yes, they are removed and the backup is updated v an update that removes nothing asks nothing :: production: a portable update asks before removing what it does not select v a dry run names the backup it updates and what it would remove v with nobody to answer, the backup is left as it was v on yes, they are removed and the backup is updated v an update that removes nothing asks nothing :: production: an update lists a narrowed root and not a widened one v a narrowed root is listed with only what leaves the backup v a widened root is copied again without a question :: production: a native update that fills the destination makes room and goes on v fixture: move a folder to another root v the copies of what left the source go, and the update completes v with nothing gone from the source, the full drive is the error v fixture: move another folder v still full after making room, it fails once v the next run with room completes the backup :: production: a portable update that fills the destination makes room and goes on v fixture: move a folder to another root v the copies of what left the source go, and the update completes v with nothing gone from the source, the full drive is the error v fixture: move another folder v still full after making room, it fails once v the next run with room completes the backup :: production: a native backup of another install is updated only on yes v on yes, it is updated and becomes this install's v with nobody to answer, a new backup is made next to it :: production: a portable backup of another install is updated only on yes v on yes, it is updated and becomes this install's v with nobody to answer, a new backup is made next to it :: production: a portable update does not recopy a file whose metadata alone changed v fixture: set the file's mode v fixture: back up, then change the mode v the new mode is recorded with the same digest, and the payload is not written v a changed file is still copied again :: production: a native update captures a new root under a dropped root's id v both roots are captured, each in its own folder :: production: a portable update captures a new root under a dropped root's id v both roots are captured, each in its own folder :: production: a native update captures a folder made again after its removal v an update after the removal, changed or not, succeeds v the folder is captured again :: production: a portable update captures a folder made again after its removal v an update after the removal, changed or not, succeeds v the folder is captured again :: production: a native backup captures an open application's settings last v the settings' root is named up front and captured after the others, once asked v with nobody to answer, they are captured and the summary says the application was open v Enter checks again and asks again while it is still open v c captures them as they are, with no note v with no application open, nothing waits :: production: a portable backup captures an open application's settings last v the settings' root is named up front and captured after the others, once asked v with nobody to answer, they are captured and the summary says the application was open v Enter checks again and asks again while it is still open v c captures them as they are, with no note v with no application open, nothing waits :: production: another install's backup is left alone v the new install gets its own dated backup; the old one is untouched v the next run updates the new install's backup, not the old one :: production: an update that stops before changing anything keeps the backup as it was v the backup keeps its finished name and content :: production: a native update replaces items whose kind or link changed v the update succeeds v a link with another target is replaced v a file that became a folder is replaced v a folder that became a link is replaced v a separate copy of what is now a hardlink is replaced by the link :: production: a native update splits the copy of a broken hardlink v the update succeeds v each name of a broken hardlink keeps its own content v names that are still one file keep sharing their copy :: production: a native preflight goes on when its source changes under it v a file removed and a folder written during the preflight do not stop the backup :: production: a portable update recopies a missing payload file v fixture: remove an item's payload from a finished backup v the update copies the missing item again, and a stray file does not stop it :: production: repeated updates rewrite a grown journal v the journal is rewritten once it has grown v the next update takes the rewritten journal over :: production: a dangling built-in dotfile symlink is actually captured, not silently dropped v fixture: make .profile a dangling symlink (planner already accepts this as a valid root) v backup succeeds v a normal backup still prints the Packages section v successful backup output carries the OK marker v a finalized container with a data/ namespace was created v the dangling .profile symlink the plan promised to capture actually made it into the backup :: production: scoped shell-history capture requires explicit consent v history fixture builds a critical catalog plan v .bash_history is a critical built-in when present v .zsh_history is a critical built-in when present v declining shell-history capture is a successful cancellation v the consent prompt names both selected history files and shows default yes v decline leaves no backup container behind v true EOF declines the default-yes backup prompt v EOF cancellation leaves no backup container behind v explicit y accepts shell-history capture v accepted shell-history backup publishes a container v accepted backup captures .bash_history v accepted backup captures .zsh_history v bare Enter accepts the displayed default and runs the backup v fixture removes only .zsh_history v single-file prompt names only the history file that is selected v fixture removes .bash_history too v a scoped backup with no history files never prompts v dry-run reports the selected secret-capable history files v dry-run does not prompt even with closed stdin v broad HOME include compiles for the ownership regression v a broader compiled root owns .bash_history in the fixture v the consent gate fires when a broader compiled root owns history v broad-root decline still creates no container v explicit-path history backup is not gated v explicit history backup publishes a container v explicit history path is captured :: production: --comprehensive captures the --critical roots first v the comprehensive plan builds v Videos, Music, and a comprehensive include are the roots only --comprehensive takes v every critical root is captured before the first comprehensive one :: production: a backup with the login keyring asks for the same password v the note ends the run v an excluded keyring gets no note v a dry run gets no note v fixture removes the keyring v a home without a keyring gets no note :: production: a destination that cannot even be inspected does not leak the plan v backup refuses a target it cannot inspect v the refusal names the reason cd tests && bash test.sh migr integration tests :: Phase 1: report ✓ Error/Warning output uses the status helpers. ✓ Captured status output stays free of ANSI escape codes. ✓ '.bashrc' found. ✓ '.ssh' found. ✓ 'Documents' found. ✓ No-flag report output remains byte-for-byte stable. ✓ 'Projects' not found. ✓ 'Projects' found. ✓ 'Desktop' found. ✓ 'Dotfiles & Config' found. ✓ '.profile' found. ✓ '.local/share' found. ✓ 'Firefox' found. ✓ '.profile' not found. ✓ '.mozilla' not found. ✓ 'google-chrome' not found. ✓ 'Critical estimate' found. ✓ Critical scoped report follows the real backup plan. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents/report-depth)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents/report-depth/level1)' not found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/.ssh/config)' not found. ✓ 'Measuring:' not found. ✓ Critical verbose keeps one enriched line per root. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents/report-depth)' found. ✓ 'Measuring:' not found. ✓ Comprehensive verbose keeps one enriched line per root. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents/report-depth)' found. ✓ 'Measuring:' not found. ✓ Default verbose keeps one enriched line per root. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents/report-depth)' not found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents/report-depth)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents/report-depth/level1)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents/report-depth/level1/level2)' not found. ✓ Refused with 'Error: --max-depth must be a non-negative integer.' ✓ Refused with 'Error: --max-depth must be a non-negative integer.' ✓ Refused with 'Error: --max-depth must be a non-negative integer.' ✓ Refused with 'Error: --max-depth applies only to 'report'.' ✓ Refused with 'Error: --max-depth applies only to 'report'.' ✓ Critical summary is exactly one line and is the default scoped summary. ✓ Summary suppresses verbose detail. ✓ Summary suppresses an explicit max-depth breakdown. ✓ .profile contributes to the critical scoped total. ✓ Browser contents contribute to default and explicit critical totals. ✓ 'Comprehensive estimate' found. ✓ 'Desktop' found. ✓ 'Videos' found. ✓ 'Music' found. ✓ 'Projects' not found. ✓ 'Projects' found. ✓ 'Firefox' found. ✓ '.mozilla' not found. ✓ 'google-chrome' not found. ✓ Comprehensive summary is only the formatted total. :: Phase 2: --dry-run ✓ 'Dry run' found. ✓ 'data/Documents' found. ✓ 'data/settings/bashrc' found. ✓ 'Would write manifest.txt' found. ✓ Preview does not claim a specific container name. ✓ No files written to disk. ✓ Native dry-run is unchanged by verbose. :: Phase 2b: conf public command and automatic loading ✓ Scoped report and backup preview leave missing configuration absent. ✓ '/tmp/tmp.lPHw5NkhMC/home/.config/migr/migr.conf' exists. ✓ First conf creates the private empty template. ✓ Refused with 'Error: 'conf' takes no arguments.' ✓ Refused with 'Error: 'conf' does not accept backup/report options.' ✓ Succeeded with 'Commands:': ./migr-unprivileged conf --help ✓ 'Scope config: /tmp/tmp.lPHw5NkhMC/home/.config/migr/migr.conf (1 configured rule)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Downloads)' not found. ✓ 'Scope config: /tmp/tmp.lPHw5NkhMC/home/.config/migr/migr.conf (1 configured rule)' found. ✓ 'Selection policy' found. ✓ 'Excludes: /tmp/tmp.lPHw5NkhMC/home/Downloads' found. ✓ 'Scope config: /tmp/tmp.lPHw5NkhMC/home/.config/migr/migr.conf (1 configured rule)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/Documents)' found. ✓ 'Scope config: /tmp/tmp.lPHw5NkhMC/home/.config/migr/migr.conf (1 configured rule)' found. ✓ 'No active exclusions for this scope.' found. ✓ 'Excludes: /tmp/tmp.lPHw5NkhMC/home/Documents' not found. ✓ 'Scope config: /tmp/tmp.lPHw5NkhMC/home/.config/migr/migr.conf (1 configured rule)' found. ✓ '(/tmp/tmp.lPHw5NkhMC/home/ConfiguredOnly)' found. ✓ Refused with 'path outside include/exclude section' ✓ Refused with 'path outside include/exclude section' ✓ Refused with 'path outside include/exclude section' ✓ Malformed config fails scoped backup before destination creation. ✓ A destination typed with a trailing slash prints single slashes. ✓ Succeeded with 'Dry run mode enabled': ./migr-unprivileged restore /tmp/tmp.lPHw5NkhMC/conf-explicit-dest/migr-mockbuild --dry-run ✓ Succeeded with 'Dry run mode enabled': ./migr-unprivileged restore /tmp/tmp.lPHw5NkhMC/conf-explicit-dest/migr-mockbuild --dry-run --no-verify ✓ Succeeded with 'Note: the real restore needs root. Run it with sudo.': ./migr-unprivileged restore /tmp/tmp.lPHw5NkhMC/conf-explicit-dest/migr-mockbuild --dry-run ✓ Succeeded with 'Restoring from: /tmp/tmp.lPHw5NkhMC/conf-explicit-dest/migr-mockbuild': bash -c cd "$1" && "$2" restore --dry-run _ /tmp/tmp.lPHw5NkhMC/conf-explicit-dest/migr-mockbuild /builddir/build/BUILD/migr-0.1.1-build/migr-0.1.1/tests/migr-unprivileged ✓ 'in /tmp/tmp.lPHw5NkhMC/conf-explicit-dest/migr-mockbuild' found. ✓ Succeeded with 'Restoring from: /tmp/tmp.lPHw5NkhMC/conf-explicit-dest/migr-mockbuild': bash -c cd "$1" && "$2" restore --dry-run _ /tmp/tmp.lPHw5NkhMC /tmp/tmp.lPHw5NkhMC/conf-explicit-dest/migr-mockbuild/migr ✓ Refused with 'Usage: ./migr restore ' ✓ Succeeded with 'Commands:': ./migr-unprivileged --help ✓ conf opens an existing invalid file and validates it after the editor exits. :: Phase 3: backup ✓ 'Finalizing (syncing to disk)...' found. ✓ 'Backup complete' found. ✓ '.bashrc' found. ✓ '.ssh' found. ✓ '.gitconfig' found. ✓ No '.partial' container left behind. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/Documents/note.txt' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/Desktop/keep.txt' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/ssh/config' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/bashrc' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/bash-profile' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/zshrc' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/tmux-conf' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/config/some-marker-file' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/local-share/some-marker-file' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/local-state/some-marker-file' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/local-bin/some-marker-tool' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/local-lib/some-marker-app/some-marker-file' exists. ✓ FIFO preserved as a FIFO. ✓ Symlink preserved. ✓ Absolute symlink copied with target intact. ✓ Symlink target permissions unchanged (source not mutated). ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/firefox/firefox/profile/places.sqlite' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/data/settings/config/google-chrome/Default/Preferences' exists. ✓ Chrome is captured once through the .config owner. ✓ Projects is absent from the built-in critical payload. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/manifest.txt' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_drive/migr-mockbuild/packages.txt' exists. ✓ manifest.txt is a versioned manifest carrying the root table. ✓ Controls stay at the container root, out of data/. ✓ 'Backup complete' found. ✓ 'Note: no VS Code extension list was captured for this backup.' found. ✓ Missing code leaves no VS Code extension snapshot and does not fail backup. ✓ Refused with 'is a migr backup itself; to update it, give the folder that holds it: /tmp/tmp.lPHw5NkhMC/backup_drive.' ✓ Refused with 'is a migr backup itself; to update it, give the folder that holds it: /tmp/tmp.lPHw5NkhMC/backup_drive.' ✓ A refused backup into a backup leaves it as it was. :: Phase 3b: shell-history backup consent ✓ '.bash_history, .zsh_history' found. ✓ '[Y/n]' found. ✓ 'Backup cancelled; no container was created.' found. ✓ Declined history backup creates no container. ✓ '.bash_history, .zsh_history' found. ✓ 'Backup complete' found. ✓ '/tmp/tmp.lPHw5NkhMC/history-consent/accept/migr-mockbuild/data/settings/bash-history' exists. ✓ '/tmp/tmp.lPHw5NkhMC/history-consent/accept/migr-mockbuild/data/settings/zsh-history' exists. :: Phase 4: restore ✓ 'Restore complete' found. Restored ' not found. ✓ 'Log: ' not found. ✓ A clean backup and restore leave no log. ✓ A failed restore keeps its log, with what it printed. ✓ '/tmp/tmp.lPHw5NkhMC/log_home/Documents/note.txt is a symbolic link' found. ✓ '/tmp/tmp.lPHw5NkhMC/link_home/.ssh is a symbolic link, which restore does not write through' found. ✓ '/tmp/tmp.lPHw5NkhMC/link_home/.local is a symbolic link, which restore does not write through' found. ✓ '/tmp/tmp.lPHw5NkhMC/home/Documents/note.txt' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/Desktop/keep.txt' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/.ssh/config' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/.bashrc' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/.config/some-marker-file' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/.local/share/some-marker-file' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/.local/state/some-marker-file' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/.local/bin/some-marker-tool' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/.local/lib/some-marker-app/some-marker-file' exists. ✓ FIFO restored as a FIFO. ✓ '/tmp/tmp.lPHw5NkhMC/home/.mozilla/firefox/profile/places.sqlite' exists. ✓ '/tmp/tmp.lPHw5NkhMC/home/.config/google-chrome/Default/Preferences' exists. :: Phase 5: packages ↷ skipped: no package manager is installed. :: Phase 6: backup error propagation ✓ A failed copy exits non-zero (2), not 0. :: Phase 7: backup --comprehensive ✓ 'Backup complete' found. ✓ 'Main Directories' not found. ✓ Backup output has no empty headings or doubled empty lines. ✓ '/tmp/tmp.lPHw5NkhMC/backup_comprehensive/migr-mockbuild/data/Desktop' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_comprehensive/migr-mockbuild/data/Videos/clip.txt' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_comprehensive/migr-mockbuild/data/Music/song.txt' exists. ✓ '/tmp/tmp.lPHw5NkhMC/backup_comprehensive/migr-mockbuild/data/Documents' exists. :: Phase 8: backup ✓ 'Backup complete' found. ✓ '/tmp/tmp.lPHw5NkhMC/backup_paths/migr-mockbuild/data/Documents/note.txt' exists. ✓ Dotfiles correctly excluded from explicit-paths backup. ✓ packages.txt correctly excluded from explicit-paths backup. ✓ '/tmp/tmp.lPHw5NkhMC/backup_paths/migr-mockbuild/manifest.txt' exists. ✓ The explicit root is recorded with its restore policy. ✓ 'Backup complete' found. ✓ Trailing slash preserved both explicit items. ✓ 'Backup complete' found. ✓ Same-basename explicit roots are kept apart as same.txt and same.txt-2. :: Phase 9: error paths ✓ Correctly exited non-zero: ./migr-unprivileged backup ✓ Correctly exited non-zero: ./migr-unprivileged restore ✓ Correctly exited non-zero: ./migr-unprivileged restore /nonexistent/path ✓ Correctly exited non-zero: ./migr-unprivileged bogus ✓ Correctly exited non-zero: ./migr-unprivileged backup /tmp/tmp.lPHw5NkhMC/backup_drive --critical --comprehensive ✓ Correctly exited non-zero: ./migr-unprivileged backup /tmp/tmp.lPHw5NkhMC/backup_drive --comprehensive /tmp/tmp.lPHw5NkhMC/home/Documents ✓ Correctly exited non-zero: ./migr-unprivileged restore /tmp/tmp.lPHw5NkhMC/backup_drive --comprehensive ✓ Correctly exited non-zero: ./migr-unprivileged backup /tmp/tmp.lPHw5NkhMC/backup_drive --summary ✓ Correctly exited non-zero: ./migr-unprivileged restore /tmp/tmp.lPHw5NkhMC/backup_drive --summary ✓ Refused with 'Error: --dry-run applies only to 'backup' or 'restore'.' ✓ Refused with 'Error: --dry-run applies only to 'backup' or 'restore'.' ✓ Refused with 'Error: --include-self applies only to 'backup'.' ✓ Refused with 'Error: --include-self applies only to 'backup'.' ✓ Succeeded with '--include-self': ./migr-unprivileged --help ✓ Refused with 'Error: --include-network-config applies only to 'backup'.' ✓ Refused with 'Error: --include-network-config applies only to 'backup'.' ✓ Succeeded with '--include-network-config': ./migr-unprivileged --help ✓ Refused with 'Error: --no-verify applies only to 'restore'.' ✓ Refused with 'Error: --no-verify applies only to 'restore'.' ✓ Succeeded with '--no-verify': ./migr-unprivileged --help ✓ Refused with 'Error: 'backup' needs root. Rerun the same migr command with sudo.' ✓ Refused with 'Error: 'restore' needs root. Rerun the same migr command with sudo.' ✓ Succeeded with 'Dry run complete': ../migr backup /tmp/tmp.lPHw5NkhMC/backup_drive --dry-run ✓ Correctly exited non-zero: ./migr-unprivileged restore /tmp/tmp.lPHw5NkhMC/backup_drive /tmp/extra ✓ Refused with 'Usage: ./migr verify ' ✓ Refused with 'Usage: ./migr verify ' ✓ Refused with 'Error: --dry-run applies only to 'backup' or 'restore'.' ✓ Refused with 'Error: --no-verify applies only to 'restore'.' ✓ Succeeded with 'verify [SOURCE]': ./migr-unprivileged --help ✓ Refused with 'Usage: ./migr repair ' ✓ Refused with 'Usage: ./migr repair ' ✓ Refused with 'Usage: ./migr repair ' ✓ Refused with 'Error: --dry-run applies only to 'backup' or 'restore'.' ✓ Succeeded with 'repair ': ./migr-unprivileged --help ✓ Correctly exited non-zero: ./migr-unprivileged report /tmp/somewhere ✓ Refused with 'could not resolve path' ✓ Refused with 'overlap' ✓ Refused with 'overlap' ✓ Succeeded with 'Usage:': ./migr-unprivileged backup --critical --help ✓ Succeeded with 'Usage:': ./migr-unprivileged report --summary --help ✓ Succeeded with 'Usage:': ./migr-unprivileged report --max-depth=2 --help ✓ Succeeded with 'Usage:': ./migr-unprivileged restore --include-self --help ✓ Succeeded with 'Usage:': ./migr-unprivileged restore --include-network-config --help ✓ Succeeded with 'Usage:': ./migr-unprivileged restore --no-verify --help ✓ Succeeded with 'Usage:': ./migr-unprivileged backup --no-verify --help ✓ Succeeded with 'Usage:': ./migr-unprivileged help --critical ✓ Correctly exited non-zero: ./migr-unprivileged backup --critical --comprehensive --help ✓ Succeeded with 'migr 0.1.1': ./migr-unprivileged --version ✓ Succeeded with 'migr 0.1.1': ./migr-unprivileged backup --version :: Phase 10: path truncation safety ✓ Refused with 'HOME path too long' ✓ Refused with 'HOME path too long' ✓ Refused with 'HOME path too long' ✓ An unusable destination is refused identically in dry-run and live (exit 2). ✓ A deep-but-valid destination backs up without a PATH_MAX join. ✓ A deep-but-real HOME previews and restores without a PATH_MAX join. ✓ Legacy restore stops when XDG destinations cannot all be resolved. ✓ A lexically oversized HOME is refused before backup creates a container. :: Phase 11: restore path safety ✓ Dangling payload symlink is previewed and restored as a symlink. ✓ Dry-run and live restore both refuse an intermediate payload symlink. :: Phase 12: versioned (v1) manifest restore dispatch ✓ 'Files' found. ✓ 'Would restore: ~/Documents/project' found. ✓ 'Restore by hand' found. ✓ '/mnt/external/project' found. ✓ 'Restore complete' found. ✓ '/tmp/tmp.lPHw5NkhMC/v1_home/Documents/project/note.txt' exists. ✓ HOME_RELATIVE root content matches the backup payload. ✓ MANUAL_NATIVE root was not auto-restored into home. ✓ '/mnt/external/project' found. ✓ Refused with 'in-progress or abandoned' ✓ Refused with 'does not understand' ✓ A symlinked packages.txt is refused, its target left untouched. ✓ 'Estimated restore size:' found. ✓ 'Destination free space:' found. ✓ 'Error: not enough free space at /tmp/tmp.lPHw5NkhMC/v1_restore_space_home (need ' found. ✓ 'Continue?' not found. ✓ 'Estimated restore size:' found. ✓ 'Destination free space:' found. ✓ 'Error: not enough free space at /tmp/tmp.lPHw5NkhMC/v1_restore_space_home (need ' found. ✓ 'Continue?' not found. ✓ Native restore refuses a sparse payload that exceeds destination space. :: Phase 12b: legacy XDG destination recovery ✓ 'Would restore' found. ✓ Dry-run previews the recovery without creating the missing XDG destination chain. ✓ 'Restore complete' found. ✓ '/tmp/tmp.lPHw5NkhMC/xdg_nested_home/data/Documents/note.txt' exists. ✓ A custom XDG mapping whose parent doesn't exist yet is created and restored into. :: Phase 12a: native restore progress ↷ skipped: 'socat' is not available for the TTY check. :: Phase 13: destination probe (backup preflight) ✓ Refused with 'is not a directory' ✓ Refused with 'is not a directory' ✓ Refused with 'could not probe' ✓ Refused with 'could not probe' ✓ dry-run on read-only dest refuses exactly like a live run ✓ migr-created root rolled back after probe refusal :: Phase 14: versioned container production wiring ✓ No '.partial' container left behind. ✓ A disappeared source file is removed from the resumed final backup. ✓ An incomplete walk leaves stale payload untouched and blocks finalization. ✓ Dry run creates no target, container, data/ or control file. ✓ 'Estimated backup size:' found. ✓ 'Destination free space:' found. ✓ 'does not exist yet; the preview below reflects its parent directory's filesystem instead.' found. ✓ No '.partial' container left behind. ✓ A second backup updated the first one in place. ✓ A destination final symlink is followed for a valid backup. ✓ Source metadata preflight rejected the inaccessible root before reserving a container. :: Phase 15: real-vfat portable dispatch smoke ↷ skipped: root is required for loop and mount setup. :: Phase 16: per-directory casefold name-equivalence refusal ↷ skipped: root is required for ext4 loop and mount setup. :: Phase 17: btrfs source snapshot ↷ skipped: root is required for loop, mount, and snapshot setup. :: Phase 18: make install ✓ '/tmp/tmp.lPHw5NkhMC/install-root/usr/bin/migr' exists. ✓ migr is installed with mode 755. ✓ Succeeded with 'migr ': /tmp/tmp.lPHw5NkhMC/install-root/usr/bin/migr --version ✓ make uninstall removes it. all tests passed + RPM_EC=0 ++ jobs -p + exit 0 Processing files: migr-0.1.1-1.fc46.x86_64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.kot8xu + umask 022 + cd /builddir/build/BUILD/migr-0.1.1-build + cd migr-0.1.1 + DOCDIR=/builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/share/doc/migr + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/share/doc/migr + cp -pr /builddir/build/BUILD/migr-0.1.1-build/migr-0.1.1/README.md /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/share/doc/migr + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.WOC7JI + umask 022 + cd /builddir/build/BUILD/migr-0.1.1-build + cd migr-0.1.1 + LICENSEDIR=/builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/share/licenses/migr + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/share/licenses/migr + cp -pr /builddir/build/BUILD/migr-0.1.1-build/migr-0.1.1/LICENSE /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT/usr/share/licenses/migr + RPM_EC=0 ++ jobs -p + exit 0 Provides: migr = 0.1.1-1.fc46 migr(x86-64) = 0.1.1-1.fc46 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.11)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.25)(64bit) libc.so.6(GLIBC_2.27)(64bit) libc.so.6(GLIBC_2.28)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.32)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIBC_2.34)(64bit) libc.so.6(GLIBC_2.38)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.6)(64bit) libc.so.6(GLIBC_2.7)(64bit) libc.so.6(GLIBC_2.8)(64bit) libc.so.6(GLIBC_2.9)(64bit) libc.so.6(GLIBC_ABI_DT_RELR)(64bit) rtld(GNU_HASH) Processing files: migr-debugsource-0.1.1-1.fc46.x86_64 Provides: migr-debugsource = 0.1.1-1.fc46 migr-debugsource(x86-64) = 0.1.1-1.fc46 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: migr-debuginfo-0.1.1-1.fc46.x86_64 Provides: debuginfo(build-id) = 8eb51d871363971d6035c03eb4b515b4c86eadb7 debuginfo(build-id) = c78e2404400c68ffefbf24156538f85d6a06f9bb migr-debuginfo = 0.1.1-1.fc46 migr-debuginfo(x86-64) = 0.1.1-1.fc46 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: migr-debugsource(x86-64) = 0.1.1-1.fc46 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILD/migr-0.1.1-build/BUILDROOT Wrote: /builddir/build/RPMS/migr-0.1.1-1.fc46.x86_64.rpm Wrote: /builddir/build/RPMS/migr-debugsource-0.1.1-1.fc46.x86_64.rpm Wrote: /builddir/build/RPMS/migr-debuginfo-0.1.1-1.fc46.x86_64.rpm Finish: rpmbuild migr-0.1.1-1.fc46.src.rpm Finish: build phase for migr-0.1.1-1.fc46.src.rpm INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1792167799.393859/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names INFO: Done(/var/lib/copr-rpmbuild/results/migr-0.1.1-1.fc46.src.rpm) Config(child) 3 minutes 24 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run Running RPMResults tool Package info: { "packages": [ { "name": "migr", "epoch": null, "version": "0.1.1", "release": "1.fc46", "arch": "x86_64" }, { "name": "migr", "epoch": null, "version": "0.1.1", "release": "1.fc46", "arch": "src" }, { "name": "migr-debugsource", "epoch": null, "version": "0.1.1", "release": "1.fc46", "arch": "x86_64" }, { "name": "migr-debuginfo", "epoch": null, "version": "0.1.1", "release": "1.fc46", "arch": "x86_64" } ] } RPMResults finished