rpminspect 1.10 is now available. The last release was in March of 2022. This release is definitely the largest so far. Nearly 200 individual pull requests and 147 reported issues have been fixed.
The main focus of this release has been stabilization across many packages. We have been running continual tests against all current builds in CentOS Stream 9 to keep finding and fixing bugs. This release has so many stabilization and reporting improvements.
Work on 1.11 has begun. Please file issues and feature requests on the GitHub project page: https://github.com/rpminspect/rpminspect.
General release and build process changes:
- Check the results of meson’s
run_command()
Config file or data/ file changes:
- Clarify the
ignore
block in comments
Changes to the GitHub Actions CI scripts and files:
- Enable Fedora rawhide again for x86_64 and i686
- Do not use a specific actions/checkout version for alpinelinux
- Use
actions/checkout@v3
inalpinelinux.yml
- On alpinelinux, run
git config
to define the safe directory - Run
git config
command on all GitHub Actions jobs - Make sure sh:git is installed for the fedora GHA jobs
- Update the Slackware Linux GHA job
- Build
clamav
with-D ENABLE_JSON_SHARED=ON
on Slackware - opensuse does not use
yum
- Ensure manual install of
rc
on OpenSUSE Leap works - Install
automake
andautomake
for opensuse-leap job - Add
bison
andhtml2text
to opensuse-leapreqs.txt
list
rpminspect(1) changes:
- Add missing format string to
errx()
calls - For fetch-only, do not override the argv counter in the loop
- Match products with dist tags containing periods
- Careful cleanup with
rmtree()
on exit - Honor the
-s
/--suppress
option on json, xunit, and summary modes - Use
errx()
forRI_PROGRAM_ERROR
conditions inrpminspect(1)
- Do not assume
before_product
andafter_product
exist - Improve product release detection for build comparisons
- Restore product release matching for single build analysis
- Handle build comparisons where product release is half known
- Fix handling of the
-s
and-t
command line options
Documentation changes:
- Large set of Doxygen comments in header files
- Add Doxygen comments for
include/readelf.h
- More Doxygen comment headers in
include/
General bug fix in the library or frontend program:
- Normalize the KABI path and do not warn on
access(3)
failures - Do not try to
mmap()
zero length files inread_file()
- Do not use
warn()
ifread_file()
returnsNULL
inget_patch_stats()
- Handle
NULL
result->msg
inoutput_xunit()
- Reset the tmp pointer on
realloc()
instrxmlescape()
- On
stat()
failure inread_file_bytes()
, just returnNULL
- Use
CURLINFO_CONTENT_LENGTH_DOWNLOAD
on older libcurl releases - Correct the reporting of kmod parameter differences
- Do not report fallthrough changes as VERIFY in changedfiles
- Stop resetting the
patch_ignore_list
when reading config files - Honor all per-inspection ignore lists; match path prefix
- Remove temporary files in the changelog inspection
- Carefully filter debug packages in
gather_deprules_by_type()
- Double free removed in
match_fileinfo_mode()
read_file_bytes()
must be restricted toS_ISREG()
files- In rpmdeps, do not report new explicit Requires as VERIFY
- Do not incorrectly report security-related files as new
- Correctly handle addedfiles edge cases
- Security path checking only applies to comparisons in addedfiles
- Missing
free()
calls in the newlist_remove()
function - Use a
long
rather thanint64_t
for the patch number - Correct RPM dependency rule peering
- Prevent double
free()
in the patches inspection - Correct handling of
kmidiff(1)
exit codes - Correctly check for forbidden directories in RPM payloads
- Handle PatchN: lines in spec files with no space after
:
- Address some additional Patch and
%patch
line reading issues strtrim()
andstrsplit()
memory management fixes- Handle more auto deps in the kernel package correctly
- Make sure INFO results in metadata do not fail rpminspect
- Relax the types inspection a bit
- Try
FNM_LEADING_DIR
matches when patterns end in wildcard - Correctly pick up the use of
%autopatch
or%autosetup
strcmp()
->!strcmp()
in the patches inspection- Memory management fix for the changelog inspection
- Remove temporary files in the changelog inspection
- Do not fail runpath when comparing kernel builds
- free
before_output
andafter_output
after using them - Do not fail dsodeps if ELF type is not
ET_DYN
- Tie the annocheck inspection result to reporting severity
- Only report forbidden path additions as VERIFY in addedfiles
- In removedfiles report VERIFY and BAD for security paths
- Account for leading executables in
Exec=
(e.g.,env VAR=VAL
) - Output unified diff correctly in
delta_out()
- Simplify severity reporting in the changedfiles inspection
- Add missing
free(tmp)
calls in the desktop inspection - Minimize
total_width
initialization for download progress bar - Fail if we cannot read RPMs before downloading
- Adjust reporting severity in the permissions inspection
- Prevent repetitive results reporting in types
- Correct rpmdeps inspection reporting levels
- Correct results reporting for the permissions inspection
- Correct results reporting for the types inspection
- Correct results reporting for the filesize inspection
- Allow
NULL
inputs tostrprefix()
andstrsuffix()
- Get per-inspection ignore list working in upstream
- Support per-file allowed lists for the badfuncs inspection
- Use
allowed_arch()
in the arch and subpackages inspections - Remove unnecessary warning from failed
chdir()
call - Process per-inspection ignore blocks first in
init.c
librpminspect feature or significant change:
- Drop dependency on the external
diffstat
command - Remove
init_elf_data()
function - Verify enough local disk space exists before downloading
- Check for enough disk space before unpacking RPMs
- Add
strexitcode()
andRI_INSUFFICIENT_SPACE
exit code - Display insufficient space messages in human readable sizes
- Doxygen comment work but also add and use missing remedy strings
- Update to uthash 2.3.0
- Drop the file count and line count checks in patches
- Default the filesize inspection
size_threshold
to INFO - Rename
init_rpmpeer()
andfree_rpmpeer()
functions - Restrict the annocheck and lto inspections to ELF files
- Simplify the librpm initialization call
- Make the rpmdeps handle expected
config()
autodeps correctly - Adjust how the rpmdeps inspections trims ISA substrings
- Add
list_remove()
function to librpminspect - Expand the patches inspection to verify patches are applied
- Change how debuginfo dirs are matched for files
- Add
strtrim()
function to librpminspect - In
strsplit()
, skip empty string tokens - Replace
rpmDefineMacro
usage withrpmPushMacro
- In diagnostics, display download and unpack space reqs
- Make the kmod inspection report changes as INFO only
- Remove unnecessary
archive_read_open_filename()
warning - Always output diagnostics results even if
-s
specified - Move
./rpminspect.yaml
reading toinit_rpminspect()
- Support optional product release configuration files
- Allow local
rpminspect.yaml
files to extend annocheck options - Use
REG_EXTENDED
inmatch_product()
- In
match_path()
, honor common syntax of/path/to/dir/*
- Add ints to the
BLOCK_
enum in init.c
Test suite commits:
- Adjust the addedfiles tests to handle new default size threshold
- Disable all
MultipleProvidersCompareRPMs
test cases - Fix the
MultipleProvidersCompareRPMs
test cases - Correct the
%autopatch
and%autosetup
test cases - Skip
%autopatch
and%autosetup
tests on systems without lua - Update the
test_addedfiles.py
test cases - Verify automatic ELF Requires handle subpackage changes
- Support optional
rpminspect.yaml
overrides per test - Use
.update()
rather than|=
to merge dicts export QA_RPATHS
from the top levelMakefile
See https://github.com/rpminspect/rpminspect/releases/tag/v1.10 for more information.
Where to get this new release?
Fedora, EPEL 7, and EPEL 8 users can get new builds from the testing updates collection. If you install from the testing update, please consider a thumbs up in Bodhi. Without that it takes a minumum of two weeks for it to appear in the stable repo.