Comment out files/directories no longer present in upstream 6.6.4:
- startplasma-wayland binary
- phonon_platform plugin dir
- plasma5support plugin dir
- plasma5support data dir
Also escape macros in commented Requires to suppress RPM warning.
The AlmaLinux 10 mock base config does not create the mockbuild user
inside the chroot, causing 'Failed to resolve user mockbuild' during
SRPM installation. Add explicit user creation via mock --chroot
after --init, and use --scrub=all + --no-clean to prevent stale
state from interfering.
Remove the overcomplicated two-job dynamic matrix setup.
Now a single job determines changed specs with git diff and loops
over them sequentially. Much simpler and less error-prone.
Add a 'changed' job that determines which .spec files were modified
using git diff between push before/after SHAs. The build job now
uses a dynamic matrix (fromJSON) so only changed specs are built.
For workflow_dispatch, all specs are still built.
Cancelled jobs can leave the mock chroot in a corrupted state, causing
either 'Failed to resolve user mockbuild' or missing directories like
/var/lib/mock/custom/root/var. Add --scrub=chroot before build and
--clean flag to --rebuild to always start from a fresh chroot.
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)