Previously setuid files would only set ownership to root,root (and no
other attrs). In cases where content should be setuid with different
ownership, the configuration was only set in the attrs file for a
path. Unfortunately filemaps only look at the setuid file to know
which paths to skip over for calling elf-move and so setuid files were
not being accounted for.
This change allows attrs for setuid files to be set, enabling checking
for content with setuid bits more readily in the process.
Signed-off-by: William Douglas <william.douglas@intel.com>
It is easier to use install_append to change content before elf_move
runs than it is to modify content in install_append after elf_move
runs so order them thusly. Could potentially need a new install_append
file that runs after elf_move but so far it isn't needed
Signed-off-by: William Douglas <william.douglas@intel.com>
Optimized files that need to be setuid are difficult to handle, the
filemap would need to be scanned and the files themselves individually
accounted for in the spec file %files section. To work around this
difficulty, don't allow setuid files to be put into the optimized file
contents.
Signed-off-by: William Douglas <william.douglas@intel.com>
If a file addition only failure happens and a quick rebuilt is done,
the build log will be missing test results. Check the previous build
log in that case.
Signed-off-by: William Douglas <william.douglas@intel.com>
In dpdk 20.11.3, the REUSE approach is partially adopted, with the
`LICENSES` directory named `license` instead.
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
This could be improved if we wanted to try and cross check excluded
files from the files list but this is more trouble than it is worth
most likely (usually mostly an issue for compat packages).
Signed-off-by: William Douglas <william.douglas@intel.com>
In cases where the signature file can't be verified as no key can be
found, fallback to other verification methods instead of failing
verification completely.
Signed-off-by: William Douglas <william.douglas@intel.com>
The Clear Linux python ecosystem has migrated the bulk of the pypi
packages to its own package namespace. Update autospec to account for
these changes.
Still needs test fixes but merging for now.
Signed-off-by: William Douglas <william.douglas@intel.com>
Try to avoid doing a full rebuild when the build.log only has new
files in it.
This has a two downsides. The source buildroot needs to be distinct
from the binary buildroot. The built rpms are no longer installable as
rpmbuild flags them.
The upside is packages that take forever to build or don't have
build times improved by ccache will not need a duplicate round for
just adding the files.
The rpms can still be generated in an installable fashion with 'make
build' and the autospec generated rpms can be installed by force
installing if need be.
Signed-off-by: William Douglas <william.douglas@intel.com>
This imporves the ability for pypi ecosystem pyproject packages to
build more consistently. Might consider making this a last attempt if
build fails instead though to avoid adding spurious buildreqs.
Signed-off-by: William Douglas <william.douglas@intel.com>
The pypi automation has learned to add a pypi- prefix to packages from
that ecosystem so make autospec look for that as well. Note the pypi_
being looked for is just our lowercase of pypi-.
Signed-off-by: William Douglas <william.douglas@intel.com>
The pyproject installs are intended to use pip to install but pip
installs need to avoid adding dependencies or caring about what is
currently installed on the system.
Signed-off-by: William Douglas <william.douglas@intel.com>
The python_req_in_filtered_path function was missing skips where the
directory was the last thing in the dirpath (as it matched an ending
slash and there isn't one in that case).
Since we need the full path to the item to scan for dependencies, make
that path first. Then use the full file path as the path to filter
because it will always have an ending slash for the skip portion.
Signed-off-by: William Douglas <william.douglas@intel.com>
The previous changes to the build/runtime requirement detection for
python added a few too many spurious dependencies. This change adds a
few more directories to exclude from searching and makes pyproject
files primary over setup.py files.
Finally we stop parsing requirements.txt and requires.txt files once
we encounter the first '[' as most times the content we care about for
runtime is listed first.
Signed-off-by: William Douglas <william.douglas@intel.com>
This migrates python dependencies (both build and runtime) to use
'pypi()' where possible (when detecting dependencies from setup.py,
setup.cfg, pyproject.toml, requires.txt and requirements.txt).
It also adds a few little cleanups to python detection in order to
make the above work more evenly and removes some python2 cruft.
Signed-off-by: William Douglas <william.douglas@intel.com>
This is a pyprojectism that we don't need to worry about, we'll always
have the toml bits needed with our python version.
Signed-off-by: William Douglas <william.douglas@intel.com>
Enable using an alternate command instead of make. This is useful as
some projects are enabling the use of ninja with cmake for instance.
Signed-off-by: William Douglas <william.douglas@intel.com>
Rework build cargo build pattern to no longer include sources and hack
the cargo config as the goal isn't to package dependencies at this
time.
Also reworks handling of install as cargo install is no longer working
for the buildroot install.
Signed-off-by: William Douglas <william.douglas@intel.com>
Include the ability to have a build_append_once configuration that is
only run once at the top of the build section (before the
build_append, which has gotten a documentation update).
This is motivated by some packages wanting their base build to be
slightly different than the alternate builds.
It is possible instead of this change to instead move to having these
special builds be handled entirely with configuration files or using
another package.
Modified-by: William Douglas <william.douglas@intel.com>
In cases where the requires.txt is generated, the dependency version
override will need to be run over the buildroot and not just the
source root.
Signed-off-by: William Douglas <william.douglas@intel.com>
Enable selectively removing version dependencies for a given set of
python modules. The motiviation for this change is to avoid breaking
package builds when there are packages that often lag pypi in updating
their max version requirements.
Signed-off-by: William Douglas <william.douglas@intel.com>
This reverts commit 124ee37874.
Turns out this isn't quite correct for a few cases and doesn't fix the
issue well enough to continue to fix. Moving to a solution with
mixer-tools instead.
Signed-off-by: William Douglas <william.douglas@intel.com>