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>
This variable is used in cases like thermald to detect if systemd is
available and, if missing, will cause the systemd units to not be
installed. Detect this not being set and add systemd to the buildreq
in such cases.
Signed-off-by: William Douglas <william.douglas@intel.com>
The string being split isn't doing anything (and creates a warning on
the an implied concatenation) so remove the split.
Signed-off-by: William Douglas <william.douglas@intel.com>
pypi is deprecating the API and doesn't recommend its usage for
integrity checks so stop trying to make use of it in autospec.
Signed-off-by: William Douglas <william.douglas@intel.com>
The previous usage of the %patch macro has been deprecated so update
usage to the supported pattern.
Signed-off-by: William Douglas <william.douglas@intel.com>
When autospec find a requires.txt, set the requirements_path not the
requires_path (renamed to a more fitting pyproject_path). Also fix up
unittests and add a new one for this case.
Signed-off-by: William Douglas <william.douglas@intel.com>
Refactor added two bugs, one for detection path and the other for
calling the wrong function for pyproject file dependency scanning.
Signed-off-by: William Douglas <william.douglas@intel.com>
Some Perl modules include custom build libraries under inc -- make sure
they'll be able to find them by adding the source directory to the
include path when processing Makefile.PL
The %doc directive doesn't really align with autospec usage where
paths are automatically managed into subpackages so stop using it.
Signed-off-by: William Douglas <william.douglas@intel.com>
Enable content to be found under %{buildroot}/{V3,V4} and work
seemlessly with bans, compat, excludes, manual extras and patterns.
Eventually the efi-move.py will be retooled to store content in these
locations so preempt this change in autospec.
Signed-off-by: William Douglas <william.douglas@intel.com>
More of a tidy up change as most images outside of docker will always
have systemd but package checks are happier with it being explicit.
Signed-off-by: William Douglas <william.douglas@intel.com>
The ld path will show /usr/bin/ld in some cases so account for that in
the regex match pattern.
Also include a new style for a missing terminfo lib from trying to
build bcc.
Signed-off-by: William Douglas <william.douglas@intel.com>
When the configure pattern is detected, also try to parse any
configure_ac files found. Too many buildreqs are in configure_ac but
we don't usually want to set the build_pattern as configure_ac when
configure is around as it is fragile.
Signed-off-by: William Douglas <william.douglas@intel.com>
Move addition of vendor config to non-pattern dependent location which
is copied for different builds (avx2/avx512).
Signed-off-by: William Douglas <william.douglas@intel.com>
In cases where cargo_vendoring is used for a Makefile, add the cargo
config.toml snippet for vendoring usage.
Signed-off-by: William Douglas <william.douglas@intel.com>
This change adds the ability to use the cargo build system to build
rust packages. The content being installed will only be the bin
content that is put in ~/.cargo/bin by `cargo install`.
Also fixes up archive handling that was broken in a previous
change.
Signed-off-by: William Douglas <william.douglas@intel.com>
Reorder some items for build pattern detection so that build
requirements for specific patterns are added last. This is to help
prevent build requirements that don't apply to a given pattern from
being added unintentionally.
As part of this remove some outdated bits (catkin and disutils36) that
no longer are used.
Signed-off-by: William Douglas <william.douglas@intel.com>
These patterns are being removed as they are not used or are going to
be reworked.
This change also removes support for multi-versioned packages which
were considered for go and cargo purposes.
Signed-off-by: William Douglas <william.douglas@intel.com>
The 'pypi_' prefix seems to have more issues than without when doing a
pip install so switch to removing the prefix.
Signed-off-by: William Douglas <william.douglas@intel.com>