Skip to content

Latest commit

 

History

History
97 lines (74 loc) · 4.13 KB

Release-Notes-5.3.md

File metadata and controls

97 lines (74 loc) · 4.13 KB
layout title
default
Release Notes - Mock v5.3

Released on 2023-12-13.

Mock 5.3 new features

  • A new plugin to pre-process spec files with rpmautospec has been implemented.

    If this plugin is enabled, mock pre-processes spec files that use rpmautospec features (for automatic release numbering and changelog generation) before building a source RPM.

  • Only run the %prep section once when running %generate_buildrequires multiple times. Previously Mock run %prep repeatedly before each %generate_buildrequires round except for the last one. This was inconsistent and unnecessary slow/wasteful.

    When the original support for %generate_buildrequires landed into Mock, the intention was to only call %prep once. However when Mock added support for multiple rounds of %generate_buildrequires, %prep ended up only being skipped in the final rpmbuild call. This was an oversight. %prep is now only called once, as originally intended.

    Some RPM packages might be affected by the change, especially if a dirty working directory after running %generate_buildrequires affects the results of subsequent rounds of %generate_buildrequires. However, such behavior was undefined and quite buggy even previously, due to the lack of the %prep section in the final rpmbuild call.

    Packages that need to run commands before every round of %generate_buildrequires should place those commands in the %generate_buildrequires section itself rather than %prep.

  • The automatic killing feature for orphan processes within the chroot environment was improved to also provide the user with information about the command-line arguments of the terminated process:

    WARNING: Leftover process 1331205 is being killed with signal 15: daemon --with-arg

  • The info about package management tooling used to install the target buildroot has been updated to provide the info earlier, before the buildroot installation happens. Mock newly informs also about dnf5 presence.

Bugfixes

  • The Bash completion bug in Mock for options accepting multiple arguments, tracked in the long-standing issue, has been resolved through PR#1262.

  • If DNF 5 sees an "interactive" TTY on stdout, it will try to draw progress bars and cause the Mock logs to be garbled. This release brings a fix that simply sets the output of DNF5 to a pipe instead of a PTY.

  • When Mock completes the installation of all the requirements generated by %generate_buildrequries, it calls rpmbuild -ba to perform a final build of the package.

    During the final build, %generate_buildrequries runs again in order to generate a list of BuildRequires to be added to the built SRPM metadata. An arbitrary %generate_buildrequries section may generate different requirements that may not have been installed.

    Previously, the rpmbuild -ba call used the --nodeps option, hence it was possible to successfully build a package with unsatisfiable BuildRequires in the built SRPM metadata.

    When a bootstrap chroot is used, the --nodeps option is no longer used in the final rpmbuild -ba call. If %generate_buildrequries attempts to generate new unsatisfied requirements during the final build, the build will fail. When a bootstrap chroot is not used, the --nodeps option remains because Mock cannot know if the RPM in chroot can read the RPM database.

Following contributors contributed to this release:

  • Evan Goode
  • Jakub Kadlcik
  • Miro Hrončok
  • Orion Poplawski
  • Stephen Gallagher

Thank you!