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

6.3 KiB

layout title
default Release Notes - Mock 5.5

Released on 2024-02-14.

Mock 5.5 New Features

  • New write_tar option for chroot_scan plugin added. 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. 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:

    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 like --install or --chain. This bug-fix is a follow-up for fix related to issue#746.

  • Mock has been fixed 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 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, 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.

  • Mageia 7 configs marked as end-of-life.

  • Mageia config files started using the {% raw %}{{ repo_arch }}{% endraw %} option to fix the cross-arch builds.

  • The OpenMandriva i686 chroots have been marked as end-of-life, fixing issue#987 and issue#1012.

  • Added 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.

Following contributors contributed to this release:

  • Jakub Kadlcik
  • Jani Välimaa
  • Martin Jackson
  • Tomas Kopecek
  • Vít Ondruch

Thank you!