GitHub archive URLs without a filename fragment download as just the
version number (e.g. 6.6.4.tar.gz), which confuses %setup when it tries
to cd into the expected %{name}-%{version} directory. Add
#/%{name}-%{version}.tar.gz suffix to ensure correct local filenames
matching the extracted directory names.
The included alma+epel-10-x86_64.cfg sets config_opts['root'], which
overrides --root custom and causes mock to reuse the old cached chroot
where mockbuild user was missing. Explicitly set config_opts['root'] after
the include to force a fresh custom root.
When using -r /path/to/custom.cfg, mock fails to resolve the mockbuild
user because the config isn't in the standard /etc/mock/ directory.
Copy the generated config to /etc/mock/custom.cfg and reference it with
--root custom instead.
The --init/--shell/--no-clean approach caused a corrupted RPM database
in the chroot. Instead, generate a custom mock config that includes
both the Forgejo package registry and the xlibre Copr repos directly
in config_opts['yum.conf'] before the chroot is created. This is the
standard, reliable way to add extra repositories to mock.
sonic-win.spec requires xlibre-xserver-devel which is only available in
the xlibre Copr repository. Download and inject this alongside the
existing Forgejo package registry repo before mock --rebuild.
- Build all three spec files on push via matrix strategy
- Use mock (alma+epel-10-x86_64) for clean isolated buildroot
- Inject Forgejo Package Registry as DNF repo inside mock chroot
- Derive exact SRPM path from rpmspec to avoid stale package matches
- Upload built RPMs to Forgejo Package Registry
- Clean up mock-results after each job (always)
- Bump all specs to 6.6.4-1 and fix Source0 tag (drop v-prefix)