Skip to content

Commit

Permalink
Merge branch 'main' into praiskup-branched-key-plus-one
Browse files Browse the repository at this point in the history
  • Loading branch information
xsuchy authored Aug 5, 2024
2 parents 3de8828 + ff71b3d commit c678085
Show file tree
Hide file tree
Showing 84 changed files with 953 additions and 286 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/towncrier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
if $status; then
echo "Thank you for providing the release note snippet!"
else
echo "Please provide release notes snippet, per the instructions"
echo "Please provide a release notes snippet, per the instructions"
echo https://rpm-software-management.github.io/mock/Release-Notes-New-Entry
fi
$status
2 changes: 1 addition & 1 deletion .tito/packages/mock
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.5-1 mock/
5.6-1 mock/
2 changes: 1 addition & 1 deletion .tito/packages/mock-core-configs
Original file line number Diff line number Diff line change
@@ -1 +1 @@
40.2-1 mock-core-configs/
40.6-1 mock-core-configs/
2 changes: 1 addition & 1 deletion .tito/releasers.conf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[fedora-git-all]
releaser = tito.release.FedoraGitReleaser
branches = rawhide f40 f39 f38 epel9 epel8
branches = fedora-all epel9 epel8

[@copr-nightly]
releaser = tito.release.CoprReleaser
Expand Down
10 changes: 10 additions & 0 deletions docs/Plugin-CCache.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,19 @@ The ccache plugin is enabled by default and has the following values built-in:
config_opts['plugin_conf']['ccache_opts']['max_cache_size'] = '4G'
config_opts['plugin_conf']['ccache_opts']['compress'] = None
config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/%(root)s/ccache/u%(chrootuid)s/"
config_opts['plugin_conf']['ccache_opts']['hashdir'] = True

To turn on ccache compression, use the following in a config file:

config_opts['plugin_conf']['ccache_opts']['compress'] = 'on'

The value specified is not important, this just triggers the setting of the CCACHE_COMPRESS environment variable, which is what the ccache program uses to determine if compression of cache elements is desired.

Setting `hashdir` to `False` excludes the build working directory from the hash used to distinguish two
compilations when generating debuginfo. While this allows the compiler cache
to be shared across different package NEVRs, it might cause the debuginfo to be
incorrect.
The option can be used for issue bisecting if running the debugger is
unnecessary. ([issue 1395][]https://github.com/rpm-software-management/mock/issues/1395)
See [ccache documentation](https://ccache.dev/manual/4.10.html#config_hash_dir).
This option is available since Mock 5.7.
75 changes: 75 additions & 0 deletions docs/Release-Notes-5.6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
layout: default
title: Release Notes - Mock 5.6
---

## [Release 5.6](https://rpm-software-management.github.io/mock/Release-Notes-5.6) - 2024-05-14


### New features

- The Bash completion script for Mock has been improved to pre-compile the list of
available Mock options at package build-time. This enhancement significantly
reduces the time required for option completion from approximately 0.5 seconds
(on a reasonably fast laptop) to just 0.05 seconds. [rhbz#2259430][].


### Bugfixes

- When a `mock --chain --recurse` fails to built at least one package, it is
unable to print a list of failed packages and displays `AttributeError: type
object 'FileDownloader' has no attribute 'backmap'` instead. The `original_name`
method of `FileDownloader` class has been fixed, and the chain build results
displayed as expected ([issue#1345][]).
- Don't use the `--allowerasing` parameter for DNF subcommands such as
`repoquery`, `makecache`, `search`, and `info`.
- A missing bash completion script for `mock-parse-buildlog` command [has
been added][PR#1353].
- In the [issue#1257][] it was suggested that we do not change recursively
ownership every run. This was implemented and landed in Mock 5.5.
But in the [issue#1364][] we found that for fresh chroots the homedir
is not writable for unpriv user.
We changed the behaviour that ownership of homedir is changed always (that was
a behaviour prior 5.5 release) and the ownership is changed recursively only for
rebuilds.
- The `nosync` logic was preparing temporary directories even when
`config_opts["nosync"] = False` (meaning nosync was disabled). This logic has
been optimized out. Works around [issue#1351][].
- No more ugly tracebacks for "no space left on device" (and similar
`OSError`s) related to copying built artifacts to `--resultdir`,
[rhbz#2261758][].
- The SCM plugin's option `git_timestamps` has been updated to work with Python 3
and to handle Git repositories with non-Unicode data. ([PR#1355][])


### Mock Core Configs changes

- Add configuration for Circle Linux 9 configurations ([PR#1366][]).
- Add i686 configuration for Mageia Cauldron and Mageia 10, and remove
corresponding i586 configurations ([PR#1360][]).
- The Fedora ELN configuration [has been updated to use DNF5 for Mock chroot
package management][issue#1292].


#### Following contributors contributed to this release:

- Bella Zhang
- David Michael
- Jakub Kadlcik
- Jani Välimaa
- Miroslav Suchý
- Nikita Gerasimov
- Pavel Raiskup
- Takuya Wakazono

[rhbz#2259430]: https://bugzilla.redhat.com/2259430
[issue#1292]: https://github.com/rpm-software-management/mock/issues/1292
[issue#1345]: https://github.com/rpm-software-management/mock/issues/1345
[issue#1351]: https://github.com/rpm-software-management/mock/issues/1351
[issue#1364]: https://github.com/rpm-software-management/mock/issues/1364
[PR#1366]: https://github.com/rpm-software-management/mock/pull/1366
[PR#1353]: https://github.com/rpm-software-management/mock/pull/1353
[issue#1257]: https://github.com/rpm-software-management/mock/issues/1257
[PR#1355]: https://github.com/rpm-software-management/mock/pull/1355
[PR#1360]: https://github.com/rpm-software-management/mock/pull/1360
[rhbz#2261758]: https://bugzilla.redhat.com/2261758
34 changes: 34 additions & 0 deletions docs/Release-Notes-Configs-40.3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
layout: default
title: Release Notes - Mock 40.3
---

## [Release 40.3](https://rpm-software-management.github.io/mock/Release-Notes-40.3) - 2024-04-05


### Mock Core Configs changes

- Mock chroots for CentOS Stream 10 were added.
They only use the Koji buildroot for now.
- The modular repositories have been dropped from Fedora releases,
as Fedora Modularity has been retired, and these repositories
are no longer maintained. ([PR#1340][])
- The modular repositories have been dropped from Fedora Rawhide,
as Fedora Modularity has been retired, and these repositories
are no longer maintained. ([PR#1340][])
- The openSUSE config files have been updated to use the [new `repo_arch` Jinja
template](Release-Notes-5.5) instead of `target_arch`. This change ensures that
the bootstrap-from-image feature works correctly, always choosing the native
architecture (regardless of multilib or forcearch builds). It also ensures that
multilib bootstrap installation works correctly even when the bootstrap image is
OFF.


#### Following contributors contributed to this release:

- Miro Hrončok
- Neal Gompa
- Pavel Raiskup


[PR#1340]: https://github.com/rpm-software-management/mock/pull/1340
15 changes: 15 additions & 0 deletions docs/Release-Notes-Configs-40.5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
layout: default
title: Release Notes - Mock Configs-40.5
---

## [Release Configs-40.5](https://rpm-software-management.github.io/mock/Release-Notes-Configs-40.5) - 2024-06-05


### Mock Core Configs changes

- CentOS Stream 8 is EOL. The repositories has been moved to vault.
The corresponding repo file has been updated with new URL.
- The Fedora 38 configuration files have been marked EOL because [Fedora 38 itself
is EOL](https://fedorapeople.org/groups/schedule/f-40/f-40-all-tasks.html).

13 changes: 13 additions & 0 deletions docs/Release-Notes-Configs-40.6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
layout: default
title: Release Notes - Mock Configs 40.6
---

## [Release Configs 40.6](https://rpm-software-management.github.io/mock/Release-Notes-Configs-40.6) - 2024-06-15


### Mock Core Configs changes

- Mock chroots for CentOS Stream 10 now use the mirrored metalinks.
The Koji buildroot is still available with `--enablerepo=local`.

2 changes: 1 addition & 1 deletion docs/Release-Notes-New-Entry.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ entry, provide a markdown file in the
drop-in directory.

Each drop-in file is markdown, and the filename must have
`<some-unique-text>.<change_category>.md` pattern. The "unique filename" is
`<some-unique-text>.<change_category>` pattern. The "unique filename" is
important, but the name is not used anywhere (choose wisely to not collide with
other changes in the next release). For example, let's have a file

Expand Down
56 changes: 18 additions & 38 deletions docs/Releasing-Mock.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ helps you to setup a correct configuration layout.

## Release checklist overview

0. Make sure all GitHub CI checks are passing for the latest commit

1. change to the correct local branch, e.g. `main`

$ git checkout main
Expand All @@ -33,52 +35,30 @@ helps you to setup a correct configuration layout.

$ git pull --rebase main

3. Prepare a testing machine

It's strongly discouraged to run the test-suite locally, because certain
rather intrusive system configuration is needed (LVM partitions, `/var/lib`
space requirements, etc.). Please allocate some disposable VM (with root
partition of size ">= 60GB"), and run the test-suite there.

The system can be preconfigured using the Ansible playbook provided in the
Mock git repository. Play it like `./integration-tests/setup-box`.

Then just:

$ ssh root@<IP_ADDRESS_OF_TESTED_MACHINE>
# su - mockbuild

3. If you want to propose the PR through a PR, switch to a new branch

4. Install the snapshot version of Mock/configs (to test the right pre-release
version)
$ git checkout -b release-2024-05-15

$ cd mock && cd mock
$ tito build --rpm -i
$ cd ../mock-core-configs
$ tito build --rpm -i
$ cd ..

5. Run the test-suite

$ cd mock/behave
$ behave # the new test-suite
$ cd ../mock # the old test-suite
$ make check 1>/tmp/test-output.txt 2>&1

Fix the test-suite errors first, before moving to the next step.

6. Prepare release notes.
5. Prepare release notes. Use the going-to-be-released version, not
the current version. If you want to release only configs, use
`--config-only`.

$ sudo dnf install towncrier
$ ./releng/generate-release-notes --use-version 5.1
$ vim docs/Release-Notes-5.1.md # modify manually!

Rename release notes for configs from e.g. `Release-Notes-40.3.md`
to `Release-Notes-Configs-40.3.md`.

Don't forget to manually modify ./docs/index.md and mention the new release.

Add list of contributing authors:

$ git log mock-4.1-1..HEAD --format="%aN" mock/ | sort | uniq
$ git log mock-core-configs-38.1-1..HEAD --format="%aN" mock-core-configs/ | sort | uniq

6. Commit all the pending changes

7. On your box (you need push-access rights), tag the git tree:

$ cd ./mock # or cd ./mock-core-configs
Expand Down Expand Up @@ -107,15 +87,15 @@ helps you to setup a correct configuration layout.
tag back (if dropped) 'git tag mock-4.1-1'. Alternatively just `git push`
the commits.

9. Push the git tags upstream
9. Push the git tags upstream, e.g.

$ git push --tags
$ git push origin mock-core-configs-40.4-1

10. Release for EPEL and Fedora

$ # make sure that .tito/releasers.conf is up to date
$ cd ./mock # or mock-core-configs
$ tito release fedora-git-all
$ # make sure that .tito/releasers.conf is up to date
$ cd ./mock # or mock-core-configs
$ tito release fedora-git-all

11. publish tgz

Expand Down
7 changes: 7 additions & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,13 @@ You may also copy and edit an existing configuration file into a new one:

$ cp /etc/mock/fedora-rawhide-x86_64.cfg ~/.config/mock/foo.cfg

The default chroot configuration file is `/etc/mock/default.cfg`, which is
usually a symlink to one of the installed chroot configuration files. You may
create another symlink to an installed configuration file to change the default
chroot config file:

$ ln -s /etc/mock/fedora-rawhide-x86_64.cfg ~/.config/mock/default.cfg

If Koji is already using a config you need, then you can use the Koji client
tool for generating the file:

Expand Down
5 changes: 4 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ Versions in Linux distributions:


## Release Notes
* [Configs 40.6](Release-Notes-Configs-40.6) - CentOS Stream 10 uses mirrored repositories.
* [Configs 40.5](Release-Notes-Configs-40.5) - Fedora 38 moved to EOL. CentOS Stream 8 moved to vault.
* [5.6](Release-Notes-5.6) - Improved performance of bash completion, don't use `--allowerasing` for commands that doesn't provide it, fixed "no space left" tracebacks, new Circle Linux 9 configs, Mageia Cauldron i686, fixed Fedora ELN.
* [Configs 40.3](Release-Notes-Configs-40.3) - Added C10s chroots, Dropped Fedora modular repositories, fix bootstrap from image for openSUSE
* [Configs 40.2](Release-Notes-Configs-40.2) - Fixed Fedora 40 builds that regressed back to `dnf` (instead of expected `dnf5`).
* [5.5](Release-Notes-5.5) (2024-02-14) - The `{{ repo_arch }}` support added, chroot_scan supports tarballs, ownership during `--init` fixed, fixed `root_cache` tarball invalidation problem.
* [5.4](Release-Notes-5.4) (2024-01-04) - Bugfix the rpmautospec plugin.
Expand Down Expand Up @@ -352,4 +356,3 @@ If you use Mock, we'd love to hear from you and add you to this [wiki page](http
* [Increase Mock performance](http://miroslav.suchy.cz/blog/archives/2015/05/28/increase_mock_performance_-_build_packages_in_memory/index.html).
* [RPM Packaging Guide](https://rpm-packaging-guide.github.io/)
* [Modularity Features in Mock](http://frostyx.cz/posts/modularity-features-in-mock)

6 changes: 6 additions & 0 deletions mock-core-configs/etc/mock/centos-stream-10-aarch64.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
config_opts["koji_primary_repo"] = "centos-stream"
include('templates/centos-stream-10.tpl')

config_opts['root'] = 'centos-stream-10-aarch64'
config_opts['target_arch'] = 'aarch64'
config_opts['legal_host_arches'] = ('aarch64',)
6 changes: 6 additions & 0 deletions mock-core-configs/etc/mock/centos-stream-10-ppc64le.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
config_opts["koji_primary_repo"] = "centos-stream"
include('templates/centos-stream-10.tpl')

config_opts['root'] = 'centos-stream-10-ppc64le'
config_opts['target_arch'] = 'ppc64le'
config_opts['legal_host_arches'] = ('ppc64le',)
6 changes: 6 additions & 0 deletions mock-core-configs/etc/mock/centos-stream-10-s390x.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
config_opts["koji_primary_repo"] = "centos-stream"
include('templates/centos-stream-10.tpl')

config_opts['root'] = 'centos-stream-10-s390x'
config_opts['target_arch'] = 's390x'
config_opts['legal_host_arches'] = ('s390x',)
6 changes: 6 additions & 0 deletions mock-core-configs/etc/mock/centos-stream-10-x86_64.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
config_opts["koji_primary_repo"] = "centos-stream"
include('templates/centos-stream-10.tpl')

config_opts['root'] = 'centos-stream-10-x86_64'
config_opts['target_arch'] = 'x86_64'
config_opts['legal_host_arches'] = ('x86_64',)
5 changes: 5 additions & 0 deletions mock-core-configs/etc/mock/circlelinux+epel-9-aarch64.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include('circlelinux-9-aarch64.cfg')
include('templates/epel-9.tpl')

config_opts['root'] = "circle+epel-9-{{ target_arch }}"
config_opts['description'] = 'Circle Linux 9 + EPEL'
5 changes: 5 additions & 0 deletions mock-core-configs/etc/mock/circlelinux+epel-9-ppc64le.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include('circlelinux-9-ppc64le.cfg')
include('templates/epel-9.tpl')

config_opts['root'] = "circle+epel-9-{{ target_arch }}"
config_opts['description'] = 'Circle Linux 9 + EPEL'
5 changes: 5 additions & 0 deletions mock-core-configs/etc/mock/circlelinux+epel-9-s390x.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include('circlelinux-9-s390x.cfg')
include('templates/epel-9.tpl')

config_opts['root'] = "circle+epel-9-{{ target_arch }}"
config_opts['description'] = 'Circle Linux 9 + EPEL'
5 changes: 5 additions & 0 deletions mock-core-configs/etc/mock/circlelinux+epel-9-x86_64.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include('circlelinux-9-x86_64.cfg')
include('templates/epel-9.tpl')

config_opts['root'] = "circle+epel-9-{{ target_arch }}"
config_opts['description'] = 'Circle Linux 9 + EPEL'
6 changes: 6 additions & 0 deletions mock-core-configs/etc/mock/circlelinux-9-aarch64.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
include('templates/circlelinux-9.tpl')

config_opts['root'] = 'circleinux-9-aarch64'
config_opts['description'] = 'Circle Linux 9'
config_opts['target_arch'] = 'aarch64'
config_opts['legal_host_arches'] = ('aarch64',)
6 changes: 6 additions & 0 deletions mock-core-configs/etc/mock/circlelinux-9-ppc64le.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
include('templates/circlelinux-9.tpl')

config_opts['root'] = 'circlelinux-9-ppc64le'
config_opts['description'] = 'Circle Linux 9'
config_opts['target_arch'] = 'ppc64le'
config_opts['legal_host_arches'] = ('ppc64le',)
6 changes: 6 additions & 0 deletions mock-core-configs/etc/mock/circlelinux-9-s390x.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
include('templates/circlelinux-9.tpl')

config_opts['root'] = 'circlelinux-9-s390x'
config_opts['description'] = 'Circle Linux 9'
config_opts['target_arch'] = 's390x'
config_opts['legal_host_arches'] = ('s390x',)
6 changes: 6 additions & 0 deletions mock-core-configs/etc/mock/circlelinux-9-x86_64.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
include('templates/circlelinux-9.tpl')

config_opts['root'] = 'circlelinux-9-x86_64'
config_opts['description'] = 'Circle Linux 9'
config_opts['target_arch'] = 'x86_64'
config_opts['legal_host_arches'] = ('x86_64',)
Loading

0 comments on commit c678085

Please sign in to comment.