deb-mock/docs/Release-Notes-5.5.md
robojerk 4c0dcb2522
Some checks failed
Build Deb-Mock Package / build (push) Successful in 54s
Lint Code / Lint All Code (push) Failing after 1s
Test Deb-Mock Build / test (push) Failing after 36s
enhance: Add comprehensive .gitignore for deb-mock project
- Add mock-specific build artifacts (chroot/, mock-*, mockroot/)
- Include package build files (*.deb, *.changes, *.buildinfo)
- Add development tools (.coverage, .pytest_cache, .tox)
- Include system files (.DS_Store, Thumbs.db, ._*)
- Add temporary and backup files (*.tmp, *.bak, *.backup)
- Include local configuration overrides (config.local.yaml, .env.local)
- Add test artifacts and documentation builds
- Comprehensive coverage for Python build system project

This ensures build artifacts, chroot environments, and development
tools are properly ignored in version control.
2025-08-18 23:37:49 -07:00

128 lines
6.3 KiB
Markdown

---
layout: default
title: Release Notes - Mock 5.5
---
Released on 2024-02-14.
### Mock 5.5 New Features
- New `write_tar` option for `chroot_scan` plugin [added][PR#1324]. Without it,
directory structure is created in `resultdir`. If `write_tar` is set to
`True`, `chroot_scan.tar.gz` tarball will be created instead.
- A new `{% raw %}{{ repo_arch }}{% endraw %}` Jinja2 template (templated-dictionary) is provided
by Mock. This variable is usable for DNF config options denoting URLs like
`baseurl=`, `metalink=`, etc. Namely, it can be used instead of the DNF-native
`$basearch` variable which [doesn't work properly for all the
distributions][issue#1304]. The new `config_opts['repo_arch_map']` option has
been added too, if additional tweaks with `repo_arch` template need to be done.
- Previously, only the file sizes were reported by the hw_info plugin:
~~~
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/luks-3aa4fbe3-5a19-4025-b70c-1d3038b76bd4 399G 9.1G 373G 3% /
/dev/mapper/luks-3aa4fbe3-5a19-4025-b70c-1d3038b76bd4 399G 9.1G 373G 3% /
~~~
Newly, [also file system type is reported][issue#1263]:
~~~
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/luks-3aa4fbe3-5a19-4025-b70c-1d3038b76bd4 btrfs 399G 9.1G 373G 3% /
/dev/mapper/luks-3aa4fbe3-5a19-4025-b70c-1d3038b76bd4 btrfs 399G 9.1G 373G 3% /
~~~
### Mock 5.5 Bugfixes
- The Bash completion script has been fixed to properly complete arguments
of [multi-arg options][issue#1279] like `--install` or `--chain`. This
bug-fix is a follow-up for fix related to [issue#746][].
- Mock [has been][PR#1322] [fixed][commit#27dde5da] so that it no longer
inadvertently changes the group ownership of the in-chroot $HOME directory
to the wrong group ID. In previous versions of Mock, the group ownership
was changed to the effective group ID of the user on the host that
executed Mock. This could confuse some tools during the build process, as
they might want to create similarly owned files at the `rpmbuild` time
(but that assumption would be incorrect, such GID doesn't exist
in-chroot). Now, Mock changes the files to the `mockbuild:mock`
ownership, where the `mock` group ID is always 135 (the same GID on host
and in-chroot). This matches the effective GID for the `rpmbuild`
process, ensuring that the tools executed during the build process have
full control over such files.
While on this, Mock was also [optimized][commit#db64d468202] to do this
ownership change before, and only if, the `rpmbuild` process is started
(so e.g. plain `mock --chroot` commands do not touch the file ownership at
all).
- The `mock` package has been fixed to depend on precisely the same version
of `mock-filesystem` sub-package (product of the same rpm build). This is
to protect against incompatible Mock sub-package installations.
- Mock parses the DNF configuration specified in `config_opts["dnf.conf"]` itself
to perform some post-processing tasks, such as bind-mounting the on-host repo
directories into the bootstrap chroot based on this DNF config. In previous
versions of Mock, there was an issue where it failed to parse the DNF config if
some of the DNF options contained the '%' symbol. This was due to Python's
ConfigParser raising an %-interpolation exception that was ignored but Mock, but
resulting in Mock ignoring the rest of the config file and finishing without
performing the mentioned bind-mounts. This bug has been fixed, and the '%' sign
is no longer considered to be a special Python ConfigParser character.
- The `root_cache` plugin is designed to invalidate the cache tarball whenever the
corresponding Mock configuration changes (any file in the list
`config_opts['config_paths']` changes). This cache invalidation mechanism had
been broken since Mock v3.2 when we rewrote the configuration file loader and
inadvertently broke the `config_opts['config_paths']`. The config loader [has
now been fixed][PR#1322], and the cache invalidation works again as expected.
### Mock Core Configs 40.1 changes
- Configuration files for Fedora 40 have been branched from Rawhide,
according to the [Fedora 40 Schedule](https://fedorapeople.org/groups/schedule/f-40/f-40-all-tasks.html).
- Mageia 7 configs [marked as end-of-life][PR#1316].
- Mageia config files started using the `{% raw %}{{ repo_arch }}{% endraw %}` option to fix the
[cross-arch builds][issue#1317].
- The OpenMandriva i686 chroots [have been marked as end-of-life][PR#1315], fixing
[issue#987][] and [issue#1012][].
- [Added][PR#1283] a config option called "use_host_shadow_utils", to account for situations where
users have host shadow-utils configurations that cannot provision or destroy users and
groups in the buildroot; one example of this kind of configuration is using
FreeIPA-provided subids on the buildhost. The option defaults to True since mock has made a conscious
design decision to prefer using the host's shadow-utils, and we hope that this is a
temporary workaround. Upstream issue is being tracked [here](https://github.com/shadow-maint/shadow/issues/897).
**Following contributors contributed to this release:**
* Jakub Kadlcik
* Jani Välimaa
* Martin Jackson
* Tomas Kopecek
* Vít Ondruch
Thank you!
[commit#db64d468202]: https://github.com/rpm-software-management/mock/commit/db64d468202
[issue#1012]: https://github.com/rpm-software-management/mock/issues/1012
[commit#27dde5da]: https://github.com/rpm-software-management/mock/commit/27dde5da
[PR#1324]: https://github.com/rpm-software-management/mock/pull/1324
[PR#1322]: https://github.com/rpm-software-management/mock/pull/1322
[issue#987]: https://github.com/rpm-software-management/mock/issues/987
[PR#1315]: https://github.com/rpm-software-management/mock/pull/1315
[PR#1283]: https://github.com/rpm-software-management/mock/pull/1283
[issue#1263]: https://github.com/rpm-software-management/mock/issues/1263
[issue#746]: https://github.com/rpm-software-management/mock/issues/746
[issue#1317]: https://github.com/rpm-software-management/mock/issues/1317
[issue#1304]: https://github.com/rpm-software-management/mock/issues/1304
[issue#1279]: https://github.com/rpm-software-management/mock/issues/1279
[PR#1316]: https://github.com/rpm-software-management/mock/pull/1316