diff --git a/.tito/packages/mock b/.tito/packages/mock index 0a198f793..d1fe7374f 100644 --- a/.tito/packages/mock +++ b/.tito/packages/mock @@ -1 +1 @@ -5.2-1 mock/ +5.3-1 mock/ diff --git a/docs/Release-Notes-5.3.md b/docs/Release-Notes-5.3.md new file mode 100644 index 000000000..a888bf254 --- /dev/null +++ b/docs/Release-Notes-5.3.md @@ -0,0 +1,97 @@ +--- +layout: default +title: 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][PR#1253]. + + 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][PR#1255] [improved][PR#1268] 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][issue#746], 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](https://github.com/fedora-copr/copr/issues/3040). + 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][issue#1246]. + + When a bootstrap chroot is used, the `--nodeps` option is + [no longer used][PR#1249] 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 Gallagh + +Thank you! + +[issue#746]: https://github.com/rpm-software-management/mock/issues/746 +[PR#1268]: https://github.com/rpm-software-management/mock/pull/1268 +[issue#1246]: https://github.com/rpm-software-management/mock/issues/1246 +[PR#1255]: https://github.com/rpm-software-management/mock/pull/1255 +[PR#1262]: https://github.com/rpm-software-management/mock/pull/1262 +[PR#1249]: https://github.com/rpm-software-management/mock/pull/1249 +[PR#1253]: https://github.com/rpm-software-management/mock/pull/1253 diff --git a/docs/index.md b/docs/index.md index 25a51d7d0..f457d6d88 100644 --- a/docs/index.md +++ b/docs/index.md @@ -69,6 +69,7 @@ Versions in Linux distributions: ## Release Notes +* [5.3](Release-Notes-5.3) (2023-12-13) - New "rpmautospec" plugin added, `%generate_buildrequries` fixes landed. * [Configs 39.3](Release-Notes-Configs-39.3) - Fedora 40+ configuration uses DNF5, Fedora ELN and OpenMandriva fixes. * [Configs 39.2](Release-Notes-39.2) - Fedora ELN and openSUSE fixes. * [5.2](Release-Notes-5.2) (2023-09-27) - Compatibility fix with EPEL 8, logging fixes, `--copyout` files with tilde in name. diff --git a/mock/mock.spec b/mock/mock.spec index 35021d630..2ccaeb1b1 100644 --- a/mock/mock.spec +++ b/mock/mock.spec @@ -9,7 +9,7 @@ Summary: Builds packages inside chroots Name: mock -Version: 5.2.post1 +Version: 5.3 Release: 1%{?dist} License: GPL-2.0-or-later # Source is created by @@ -289,6 +289,17 @@ pylint-3 py/mockbuild/ py/*.py py/mockbuild/plugins/* || : %dir %{_datadir}/cheat %changelog +* Wed Dec 13 2023 Pavel Raiskup 5.3-1 +- orphanskill: log command line arguments of the terminated process +- docs: migrate the community from IRC to Matrix +- dnf5: don't output to a PTY (mail@evangoo.de) +- new rpmautospec plugin (sgallagh@redhat.com, nils@redhat.com) +- fix bash completion with multiple file arguments (orion@nwra.com) +- only %%prep once when running %%generate_buildrequires multiple times (miro@hroncok.cz) +- Dynamic BuildRequires: Prevent generation of unsatisfied dependency (miro@hroncok.cz) +- Identify buildroot package management earlier (praiskup@redhat.com) +- Dump also dnf5 info into logs + * Wed Sep 27 2023 Pavel Raiskup 5.2-1 - Fix '~' user source expansion for --copyout - Compatibility fix with EL 8 diff --git a/releng/release-notes-next/bash-completion-multiple-args.bugfix b/releng/release-notes-next/bash-completion-multiple-args.bugfix deleted file mode 100644 index e2c2a6868..000000000 --- a/releng/release-notes-next/bash-completion-multiple-args.bugfix +++ /dev/null @@ -1,2 +0,0 @@ -The Bash completion bug in Mock for options accepting multiple arguments, -tracked in the [long-standing issue][issue#746], has been resolved through [PR#1262]. diff --git a/releng/release-notes-next/better-orphankill-report.feature b/releng/release-notes-next/better-orphankill-report.feature deleted file mode 100644 index fb18686c1..000000000 --- a/releng/release-notes-next/better-orphankill-report.feature +++ /dev/null @@ -1,5 +0,0 @@ -The automatic killing feature for orphan processes within the chroot environment -[was][PR#1255] [improved][PR#1268] 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` diff --git a/releng/release-notes-next/dnf5-logs-with-no-pty.bugfix b/releng/release-notes-next/dnf5-logs-with-no-pty.bugfix deleted file mode 100644 index 77a230138..000000000 --- a/releng/release-notes-next/dnf5-logs-with-no-pty.bugfix +++ /dev/null @@ -1,4 +0,0 @@ -If DNF 5 sees an "interactive" TTY on stdout, it will try to draw progress bars -and cause the Mock logs to [be garbled](https://github.com/fedora-copr/copr/issues/3040). -This release brings a fix that simply sets the output of DNF5 to a pipe instead -of a PTY. diff --git a/releng/release-notes-next/generate_buildrequires.bug b/releng/release-notes-next/generate_buildrequires.bug deleted file mode 100644 index 70f72b012..000000000 --- a/releng/release-notes-next/generate_buildrequires.bug +++ /dev/null @@ -1,19 +0,0 @@ -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][issue#1246]. - -When a bootstrap chroot is used, the `--nodeps` option is -[no longer used][PR#1249] 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 becasue -Mock cannot know if the RPM in chroot can read the RPM database. diff --git a/releng/release-notes-next/generate_buildrequires_prep.feature b/releng/release-notes-next/generate_buildrequires_prep.feature deleted file mode 100644 index 2a0aaf552..000000000 --- a/releng/release-notes-next/generate_buildrequires_prep.feature +++ /dev/null @@ -1,22 +0,0 @@ -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`. diff --git a/releng/release-notes-next/package-management-logging.feature b/releng/release-notes-next/package-management-logging.feature deleted file mode 100644 index 9a1d595f9..000000000 --- a/releng/release-notes-next/package-management-logging.feature +++ /dev/null @@ -1,3 +0,0 @@ -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. diff --git a/releng/release-notes-next/rpmautospec-plugin.feature b/releng/release-notes-next/rpmautospec-plugin.feature deleted file mode 100644 index ff1d746ac..000000000 --- a/releng/release-notes-next/rpmautospec-plugin.feature +++ /dev/null @@ -1,4 +0,0 @@ -A new plugin to pre-process spec files with rpmautospec [has been implemented](PR#1253). - -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.