Skip to content

Commit 0841f17

Browse files
committed
release mock 6.8 and mock-core-configs 45.1
Assisted-By: Claude (anthropic.com)
1 parent 9229399 commit 0841f17

37 files changed

Lines changed: 235 additions & 118 deletions

.tito/packages/mock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.7-1 mock/
1+
6.8-1 mock/

.tito/packages/mock-core-configs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
44.4-1 mock-core-configs/
1+
45.1-1 mock-core-configs/

docs/Release-Notes-6.8.md

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
---
2+
layout: default
3+
title: Release Notes - Mock 6.8
4+
---
5+
6+
## [Release 6.8](https://rpm-software-management.github.io/mock/Release-Notes-6.8) - 2026-08-11
7+
8+
9+
### Breaking changes
10+
11+
- The `%{pkgid}` field has been removed from the `package_state` plugin output
12+
in both `available_pkgs.log` and `installed_pkgs.log`.
13+
14+
### New features
15+
16+
- New `separate_check` config option to run `%check` as a separate rpmbuild
17+
phase (`-bk --short-circuit`). This prevents `%check` scripts from modifying
18+
already built RPM artifacts. Supported values: `off` (default),
19+
`best_effort`, and `enforce`.
20+
21+
- New `system_monitor` plugin for collecting various statistics during the build
22+
phase.
23+
24+
- Build-time opt-in: Polkit support files can be included and installed with
25+
Mock when built `--with=polkit`.
26+
27+
- Bash completion for `--localrepo` now offers directory completions.
28+
29+
- For AlmaLinux targets, Podman container image pulls now pass `--platform`
30+
for x86_64 sub-architecture variants (x86_64_v2, x86_64_v3, x86_64_v4).
31+
This is a temporary workaround for Podman not being able to auto-detect
32+
sub-architecture variants in OCI images. The `oci_platform_map` config
33+
option is set unconditionally in the AlmaLinux templates; this means
34+
that e.g. a v2 bootstrap image is unintuitively pulled even on a v4 host
35+
when the target architecture is x86_64_v2 (normally bootstrap should be
36+
host-native).
37+
38+
- New `pivot_root_chroot` configuration option uses `pivot_root(2)` inside a
39+
private mount namespace to atomically swap the mount-namespace root to the
40+
chroot path. This satisfies the kernel check that blocks
41+
`unshare(CLONE_NEWUSER)` after plain `chroot()`, allowing tools like
42+
pasta/passt that require user namespaces to work inside Mock buildroots.
43+
This is the same approach used by bubblewrap and other container runtimes.
44+
Requires `CAP_SYS_ADMIN` (available in `--privileged` containers); falls back
45+
to plain `chroot()` on failure.
46+
Set `config_opts['pivot_root_chroot'] = True` to enable.
47+
48+
- On newer build hosts (Fedora 44+ and EL 11+), Mock uses the
49+
[`useradd --root` option][issue#1285] instead of `--prefix` to better isolate
50+
it from the host system. Specifically, this correctly resolves
51+
[subuid/subgid issues][issue#1354] (previously, we had to work around this
52+
problem by using in-chroot shadow-utils).
53+
54+
- The `unbreq` plugin now detects if a `BuildRequires` field is not installed on
55+
the system and in that case does not report it as unused. This can happen if
56+
the `BuildRequires` field is a more complex logic formula (e.g. `(foo if bar)`
57+
and `bar` is not installed on the system). This scenario is no longer reported
58+
as a warning but as info.
59+
60+
- System architecture detection now prefers `python3-libdnf5` over the
61+
deprecated `python3-dnf`. If `python3-libdnf5` is not available, Mock falls
62+
back to `python3-dnf`, preserving functionality on both modern and older
63+
systems.
64+
65+
### Bugfixes
66+
67+
- Fix bash completion `--chain` handling — it is an option with no argument, not
68+
a synonym for `--root` ([issue#1729][]).
69+
70+
- The `buildroot_lock` plugin no longer crashes when the bootstrap image is
71+
unavailable. The lockfile is now only populated with bootstrap metadata when
72+
`use_bootstrap_image` is enabled. Also, `--calculate-build-dependencies` no
73+
longer overrides an explicit `--disable-plugin buildroot_lock`
74+
([issue#1758][]).
75+
76+
- Mock now decodes percent-escaped local `file://` repository paths before
77+
checking them for bootstrap bind mounts. This fixes bootstrap package-manager
78+
access to host-local repositories whose paths contain characters such as `@`
79+
and therefore appear escaped in file URIs ([PR#1728][]).
80+
81+
- The existence of `repoquery` is now tested in the bootstrap image instead of
82+
on the host.
83+
84+
- The `--allowerasing` argument is no longer passed to the dnf5 `download`
85+
command, which does not accept it. This invalid argument is now excluded
86+
when invoking dnf `download` operations using `--dnf-cmd` or `--pm-cmd`.
87+
88+
- Fix the `package_state` plugin so `available_pkgs.log` is generated when
89+
`package_manager` is set to `dnf5` or `dnf4`, not only `dnf` or `microdnf`
90+
([#1190][]).
91+
92+
- Podman image pull now has a per-attempt timeout (configurable via
93+
`bootstrap_image_pull_timeout` and `buildroot_image_pull_timeout`, default
94+
120 seconds) to prevent indefinite hangs and allow the retry logic to work.
95+
96+
- Mock now preserves the timestamp of `dnf.conf` and `yum.conf` inside the
97+
chroot when their content has not changed. Previously, every Mock invocation
98+
rewrote these files unconditionally, which — combined with DNF's default
99+
`check_config_file_age=True` — caused repository metadata to be re-downloaded
100+
even when it was still valid ([issue#216][]).
101+
102+
- The `uidManager` is now reloaded with `chrootuid`/`chrootgid` from
103+
config after the configuration is loaded. Previously, privilege
104+
dropping always used the calling user's identity, ignoring the
105+
configured chroot user ([#1731][]).
106+
107+
- Consolidate NS resolver munging logic, which was previously scattered across
108+
multiple locations. This duplication made the logic difficult to follow and
109+
led to bugs, such as the one addressed in [PR#1697][].
110+
111+
- The `--spec` option now works with spec files that have restrictive
112+
permissions (e.g. `0600`). Previously, `shutil.copy2()` preserved the
113+
source permissions inside the chroot, making the file unreadable by the
114+
`mockbuild` user ([#1300][]).
115+
116+
- The `unbreq` plugin no longer caches the mapping of a source RPM file to its
117+
`BuildRequires` fields, fixing a logic error where it would ignore later
118+
automatically generated `BuildRequires` fields when `BuildRequires`
119+
autogeneration is used. Source RPMs are now scanned after each installation
120+
of `BuildRequires` fields.
121+
122+
- The `--verbose` option no longer duplicates the build log output into the root
123+
log.
124+
125+
- Mock defaults were changed to not pass `--allowerasing` option to the
126+
`dnf5 list` command.
127+
128+
- The `mock-hermetic-repo` tool now retries HTTP 503 (Service Unavailable)
129+
responses with exponential backoff, matching the existing retry handling for
130+
other transient HTTP errors. Previously, a single 503 from an upstream
131+
repository (e.g. S3 throttling) would cause the entire RPM download to fail
132+
([PR#1769][]).
133+
134+
### Mock Core Configs changes
135+
136+
- Add the Extensions repo to the Fedora ELN config (disabled by default).
137+
138+
- Use `cdn.opensuse.org` for baseurl repositories, matching the real
139+
distribution.
140+
141+
- Branch Fedora 45 configuration files from Rawhide, per the
142+
[Fedora 45 Schedule](https://fedorapeople.org/groups/schedule/f-45/f-45-all-tasks.html).
143+
144+
- Add configuration for Fedora 45 RISC-V.
145+
146+
- Add Mageia 10 (stable) and Mageia 11 (development) configs. Move Mageia 8
147+
configs to EOL.
148+
149+
- Update openEuler 24.03 LTS chroot to SP4 and fix the source and
150+
update-source metalink repositories across all openEuler templates
151+
(20.03, 22.03, 24.03): the `path=` metalink form does not translate the
152+
`$releasever` dnf variable into the full mirror directory name, so it
153+
resolved to a non-existent path and silently broke `mock --sources`.
154+
155+
### Contributors
156+
157+
Following contributors contributed to this release:
158+
159+
* Andrea Bolognani
160+
* Andrew Lukoshko
161+
* Chris Adams
162+
* Jani Välimaa
163+
* lichaoran
164+
* Lukáš Lipinský
165+
* Marian Koncek
166+
* Miroslav Suchý
167+
* Pavel Raiskup
168+
* Rahman Ajibade
169+
* Scott Hebert
170+
* Scott K Logan
171+
* Simone Caronni
172+
* Tomas Kopecek
173+
* Yaakov Selkowitz
174+
* Yanko Kaneti
175+
176+
Thank you!
177+
178+
[#1190]: https://github.com/rpm-software-management/mock/issues/1190
179+
[#1300]: https://github.com/rpm-software-management/mock/issues/1300
180+
[#1731]: https://github.com/rpm-software-management/mock/issues/1731
181+
[issue#216]: https://github.com/rpm-software-management/mock/issues/216
182+
[issue#1285]: https://github.com/rpm-software-management/mock/issues/1285
183+
[issue#1354]: https://github.com/rpm-software-management/mock/issues/1354
184+
[issue#1729]: https://github.com/rpm-software-management/mock/issues/1729
185+
[issue#1758]: https://github.com/rpm-software-management/mock/issues/1758
186+
[PR#1697]: https://github.com/rpm-software-management/mock/pull/1697
187+
[PR#1728]: https://github.com/rpm-software-management/mock/pull/1728
188+
[PR#1769]: https://github.com/rpm-software-management/mock/pull/1769

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ Versions in Linux distributions:
7070

7171

7272
## Release Notes
73+
* [6.8 and Configs 45.1](Release-Notes-6.8) (2026-08-11) - System monitor plugin, polkit support, pivot_root_chroot, separate %check phase, bugfixes.
7374
* [Configs 44.4](Release-Notes-Configs-44.4) (2026-06-24) - Fedora Rawhide RISC-V, Azure Linux 4.0 beta
7475
* [Configs 44.3](Release-Notes-Configs-44.3) (2026-06-10) - AlmaLinux bootstrap_image_ready, ELN package rename, AlmaLinux x86_64_v2 bootstrap re-enabled, RISC-V 64-bit for Fedora 44.
7576
* [6.7 and Configs 44.2](Release-Notes-6.7) (2026-03-02) - New plugin `expand_spec`, yum support for `--calculate-dependencies`, bugfixes.

mock-core-configs/mock-core-configs.spec

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
%endif
44

55
Name: mock-core-configs
6-
Version: 45.0
6+
Version: 45.1
77
Release: 1%{?dist}
88
Summary: Mock core config files basic chroots
99

@@ -24,7 +24,7 @@ Provides: mock-configs
2424
# distribution-gpg-keys contains GPG keys used by mock configs
2525
Requires: distribution-gpg-keys >= 1.121
2626
# specify minimal compatible version of mock
27-
Requires: mock >= 6.1.test
27+
Requires: mock >= 6.8
2828
Requires: mock-filesystem
2929

3030
Requires(post): coreutils
@@ -156,6 +156,15 @@ fi
156156
%ghost %config(noreplace,missingok) %{_sysconfdir}/mock/default.cfg
157157

158158
%changelog
159+
* Tue Aug 11 2026 Pavel Raiskup <pavel@raiskup.cz> 45.1-1
160+
- branch Fedora 45 from Rawhide
161+
- Document oci_platform_map as a temporary workaround
162+
- update openEuler 24.03 LTS chroot to SP4 and fix source metalink (pkwarcraft@gmail.com)
163+
- add Extensions repos to ELN (yselkowi@redhat.com)
164+
- Add missing fedora-45-riscv64.cfg (abologna@redhat.com)
165+
- Use cdn.opensuse.org for openSUSE baseurls. (negativo17@gmail.com)
166+
- update Mageia configs (wally@mageia.org)
167+
159168
* Wed Jun 24 2026 Pavel Raiskup <pavel@raiskup.cz> 44.4-1
160169
- Fixes #1761: Add Fedora Rawhide RISC-V (jmontleo@redhat.com)
161170
- configs: add Azure Linux 4.0 beta configuration (tobiasb@microsoft.com)

mock/mock.spec

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
Summary: Builds packages inside chroots
2121
Name: mock
22-
Version: 6.7
22+
Version: 6.8
2323
Release: 1%{?dist}
2424
License: GPL-2.0-or-later
2525
# Source is created by
@@ -47,7 +47,7 @@ Requires: polkit
4747

4848
# We know that the current version of mock isn't compatible with older variants,
4949
# and we want to enforce automatic upgrades.
50-
Conflicts: mock-core-configs < 33
50+
Conflicts: mock-core-configs < 45.1
5151

5252
# Requires 'mock-core-configs', or replacement (GitHub PR#544).
5353
Requires: mock-configs
@@ -363,6 +363,37 @@ pylint-3 py/mockbuild/ py/*.py py/mockbuild/plugins/* || :
363363

364364

365365
%changelog
366+
* Tue Aug 11 2026 Pavel Raiskup <pavel@raiskup.cz> 6.8-1
367+
- bump Conflicts to mock-core-configs < 45.1
368+
- Document oci_platform_map as a temporary workaround
369+
- Allow --disable-plugin buildroot_lock with --calculate-build-dependencies
370+
- buildroot_lock: don't inspect bootstrap image when not used
371+
- No --allowerasing for `dnf5 list`
372+
- Include support for polkit (rajibade@amazon.com)
373+
- Add support for isolated %%check phase
374+
- Add pivot_root_chroot option to enable user namespaces (tkopecek@redhat.com)
375+
- fix: add HTTP 503 to retry status_forcelist in mock-hermetic-repo (scoheb@gmail.com)
376+
- unbreq plugin: disable SRPM caching (marian.koncek@mailbox.org)
377+
- unbreq plugin: do not treat not installed packages as unused (marian.koncek@mailbox.org)
378+
- Add system monitor plugin (#1748) (yaneti@declera.com)
379+
- fix: reload uidManager with chrootuid/chrootgid from config
380+
- Don't use --allowerasing with 'dnf download' (logans@cottsay.net)
381+
- fix: add newline at the end of each line of available_pkgs.log (msuchy@redhat.com)
382+
- feat: remove pkgid from package_state plugin output (msuchy@redhat.com)
383+
- add rpm as deps to tox tests (msuchy@redhat.com)
384+
- fix: preserve readable permissions when copying spec files into chroot (#1300) (msuchy@redhat.com)
385+
- fix: add timeout to podman pull to prevent indefinite hangs (#1680) (msuchy@redhat.com)
386+
- bash-completion: localrepo takes a directory arg (linux@cmadams.net)
387+
- bash-completion: chain doesn't take an config arg (linux@cmadams.net)
388+
- fix: --verbose no longer duplicates build log into root log (#1302) (msuchy@redhat.com)
389+
- shadow_utils: useradd --root for newer systems (praiskup@redhat.com)
390+
- generate available_pkgs.log for dnf5/dnf4 package managers (msuchy@redhat.com)
391+
- fix: preserve dnf.conf/yum.conf timestamps when content is unchanged (msuchy@redhat.com)
392+
- feat: add OCI platform support for x86_64 sub-architecture containers (andrew.lukoshko@gmail.com)
393+
- Decode file:// repo paths before bootstrap bind mount (lukas.lipinsky@oracle.com)
394+
- Fix the tool check (tkopecek@redhat.com)
395+
- Refactor NS resolver logic for clarity and consistency
396+
366397
* Tue Mar 03 2026 Pavel Raiskup <pavel@raiskup.cz> 6.7-1
367398
- mock: Use umask 0022 instead of 0002 to avoid strange permissions (ngompa@velocitylimitless.com)
368399
- expand_spec plugin: generating expanded-spec.txt in postdeps hook (yzhu@redhat.com)

releng/release-notes-next/add-support-for-polkit.feature.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

releng/release-notes-next/bash-completion-chain.bugfix.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

releng/release-notes-next/bash-completion-localrepo.feature.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

releng/release-notes-next/buildroot-lock-no-bootstrap-image.bugfix

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)