gpg accepts signatures with expired keys as long as the signature was
made prior to key expiration. But it also changes the status-fd output
format that we grep for the expected key ID. Make sure we look for the
alternate EXPKEYSIG line in the output in that case to find the key ID.
Add gpg commands to the specfile so we verify the package signature
during every rpmbuild. Also ensure that the signature key ID matches
what we expect.
Implement a blocklist, keyid_blocklist. If a keyid (without leading 0x)
in this file matches the signing key for a release, terminate autospec
with an error.
This is intended as a mechanism to block building releases signed with a
known compromised key.
When a package has content in /etc, it is removed silently, this
change adds an etc_files log file in git that shows what files were in
/etc that weren't packaged.
Signed-off-by: William Douglas <william.douglas@intel.com>
Previously support for cmake's find_package parsing was only able to
handle single line entries. This change adds support for multiline
versions and allows for module namespacing (currently qt6 and kf6
support is available).
The change for cmake_modules shows this namespacing in use.
Signed-off-by: William Douglas <william.douglas@intel.com>
Partial migration of patterns to qt6 for failed_commands and
qt_modules. Still more changes needed here but this is a start.
Signed-off-by: William Douglas <william.douglas@intel.com>
Rather than using %qmake, add the definition into autospec. This is
done to allow for using make_command to specify which version of qmake
to use.
Note for now qmake6 is not in PATH and needs a build_prepend addition.
Signed-off-by: William Douglas <william.douglas@intel.com>
Some projects require additional bz2 downloads that are single
compressed files, not tar archives. Detect and extract those with
appropriate bz2 tools instead of tar.
For a given entry like this:
ARCHIVES = https://example.com/download/foo.dat.bz2 src/data
...upstream file is downloaded to:
builddir/build/SOURCES/foo.dat.bz2
...initially extracted as:
builddir/build/BUILD/foo.dat/foo.dat
...and finally copied to
builddir/build/BUILD/<pkg>/src/data/foo.dat
Add export for GOAMD64 and modify where needed in order to support
building optimized binaries using golang.
Signed-off-by: William Douglas <william.douglas@intel.com>
Support APX package builds using the configure patterns (needed to
handle cross compilation via --host option).
Also fixup some flag usage inconsistencies.
Signed-off-by: William Douglas <william.douglas@intel.com>
Add early support for APX builds in autospec. This change also makes
APX disabled by default for now but may revert back to enabled by
default in the future. The APX prefix will be /VA as the arch flag is
not yet finalized. This also may change in the future though for now
there are no plans to move it.
Currently autotools builds are unable to use this as it detects as a
cross compilation.
Currently only C using GCC is supported.
This change also reworks how R language optimized binaries are built
and distributed. They will now work as all the other tooling does with
the /VX prefix.
Signed-off-by: William Douglas <william.douglas@intel.com>
Instead of hard coding flags in each use, add global constants that
are substituted on use (removes a little copypasta and fixes up some
flags that were unintentionally different between build systems).
Signed-off-by: William Douglas <william.douglas@intel.com>
Some packages, especially PIP wheels, install Windows executables.
Introduce an option, allow_exe, with which to permit installing those
executables. Otherwise, explicitly delete them so they're not
inadvertently installed via wildcards later.
Previous code would emit:
SyntaxWarning: invalid escape sequence
Correct this by removing the escapes as they are not necessary.
Also add a missing buildreq that is detected correctly after the
fix.
Signed-off-by: William Douglas <william.douglas@intel.com>
We fixed the real libproxy a while back to query pacrunner itself via
dbus, so pacrunner no longer provides a libproxy shim, nor the
pacrunner-dev package.
Some packages should not be able to be added to any subpkg. Add
handling for this case.
Also as pypi-nose is no longer usable so ban it from being added as a
dependency.
Signed-off-by: William Douglas <william.douglas@intel.com>
Add information about what autospec version was used to create the
spec file.
New header will appear as:
+# autospec version: v2
+# autospec commit: 1234567
With this change we'll restart tagging autospec. Changes that get
tagged (after PR merge, tag likely just pushed via git cli) should be
doing something that would benefit from a larger package ecosystem
rebuild.
Signed-off-by: William Douglas <william.douglas@intel.com>
Not quite the complete overhaul that is needed (specfile flag
generation really could use some unittests) but this change with the
macros change in clr-rpm-config makes the flags more consistent.
This is a functional change so expect flags to be different after this
change but to my testing there weren't any packages broken.
Signed-off-by: William Douglas <william.douglas@intel.com>
Enable the cargo build pattern to handle make_command and
install_macro options. Used in pypi-safetensor to enable cargo
vendoring while still building and installing with the pyproject
config files.
Signed-off-by: William Douglas <william.douglas@intel.com>
When version is not yet found but the name is known, attempt to use
the data after the name (and prior to the extension) as the version.
Signed-off-by: William Douglas <william.douglas@intel.com>