General release and build process changes:
- Allow vendor data dir and work dir to be set at build time
- Rephrase the with_annocheck and with_libannocheck help text
- Add a comment to GNUmakefile and put debug options in help
- Use SPDX-License-Identifier in regress/ scripts
- (Requires|Recommends): /usr/bin/annocheck -> annobin-annocheck
- Honor additional 'meson setup' options in 'make setup'
- Set c_std='gnu99' so toml_parse.c will compile
- Generate .tar.gz source archives rather than .tar.xz
- Fix the include subdirectories variables in meson.build
- Correct the check for CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
- Only create tar.gz archives with 'meson dist'
Config file or data/ file changes:
- Update generic config example with remedy override strings
- Exclude libpython3.so from the debuginfo tests
- Note entries with file globbing need single quotes
- Comment out the default empty 'ignore' block in example config
Changes to the GitHub Actions CI scripts and files:
- Ensure the Slackware CI job builds the latest release of clamav
- Add CXXFLAGS="-m32" to the Fedora i386 CI job
- Run shellcheck on all scripts and fix up common errors
- Fix CI test cases on Alpine Linux
- Add '--break-system-packages' to PIP_CMD on Alpine Linux
- Drop CI jobs for Fedora on i386
- OpenSUSE Leap does not give ELOOP on the too many symlinks check
- Use actions/checkout@v4 for the git check part in CI jobs
- Try an older checkout action due to the dynamic node problem
- Split CentOS 7 job out to separate workflow file
- Install valgrind correctly in the Gentoo CI job
- Update the FreeBSD CI job
- Install a /usr/bin/bash symlink in the FreeBSD job
- Just make 'vncdotool' a symlink to true on FreeBSD CI job
- Install tree in prepare block for the FreeBSD CI job
- add .local/bin/ to freebsd build
- Pin version of run-on-arch action for some fedora arches
- Make sure the CI environments all have libtoml
- libtoml lacks a 'make install' target; install manually
- More CI job fixes for the libtoml library
- Drop manual installation of libtoml in CI jobs
- Use system libtoml in Fedora CI jobs
- Add Oracle Linux 9 to the CI job pool
- Drop CFLAGS override from the CentOS 7 CI job
- Fix up failing Slackware Linux CI job
- Fix failing FreeBSD CI job
- Slackware needs the full path to the update-ca-certificates script
- Remove Slackware Linux from the CI pool
- Fix up failing CentOS 7 and Oracle Linux CI jobs
- Remove python3.11-timeout-decorator from OEL8 reqs.txt
- Add RHEL UBI9 as a new CI job
- Drop non-x86_64 test build jobs
- Fix Ubuntu GitHub Actions job
- Add 'file' to reqs.txt for debian-stable and debian-testing
- Match ubi9 CI job correctly in the workflow file
- Fix the RHEL UBI9 job; drop 'cost' from c9s repo definitions
- Remove openssl-fips-provider in UBI9 before updating everything
- Remove CentOS Stream 8 job because it is now EOL
- We can still do test jobs on CentOS 7
- Use -o option on strip(1) in debuginfo tests
- Fix CentOS 7 CI job
- Fix manpage test cases on Gentoo Linux CI jobs
- Use actions/checkout@v4 in amazonlinux.yml and centos8.yml
- Try forcing use of node16 on Amazon Linux job
- Use actions/checkout@v2 on Amazon Linux job
- Try to link node16 to node20 on Amazon Linux
- Move node16 link to main steps in Amazon Linux
- YAML syntax fixes for Amazon Linux job
- Link node16 to node20 for the Amazon Linux job
- Remove CentOS 7 and Amazon Linux 2 from CI jobs
Documentation changes:
- Show pre-commit.yml status in README.md rather than python.yml
General bug fix in the library or frontend program:
- Fix a small error in the strtrim() function
- Recognize source RPM packages in subpackages test
- Modify the license inspection to support new license data spec
- In array(), only return early if key1 is NULL
- Recognize source RPM packages in arch test
- Make sure the license check honors "allowed-*" licenses
- Pass --no-style to the udevadm command in udevrules inspection
- Modify list_trim() so it does not segfault in some instances
- Close memory leaks in lic_cb() in inspect_license.c
- In removedfiles, report removed files at VERIFY on non-rebases
- Close small memory leak in the secrule reading code
- Refactor _is_debug_rpm_helper() to make it somewhat more robust
- Correctly resolve relative symlinks across subpackages
- In the symlinks inspection, honor transitive Requires
- Break out of the transitive explicit Requires check if match
- Verify the transitive list is not NULL before iterating
- Fix the REMEDY_RUNPATH string
- Correctly check for a working 'udevadm' command in udevrules
- Expand file peering code to support VER-REL without dist tag
- Prevent a SIGSEGV in the unicode inspection
- Handle peers with only before RPMs in the symlinks inspection
- Honor case-insensitive SPDX names
- s/capitable/capital/g
- Do not crash if a user-provided config file is empty
- Drop libtoml-devel BR from the spec file
- Build against the system libtoml in Fedora
- Pick the correct remedy string when displaying findings
- Replace asprintf() with xasprintf() in libtoml source code
- annocheck: fix the debuginfo package lookup
- Small fixes and refactorings
- Stop unpacking archive when we receive ARCHIVE_FATAL
- Do not allow skipping of security checks via config file
- Handle params.msg == NULL in permissions inspection
- Properly handle license abbrevs that match SPDX and legacy
- Correctly handle dual SPDX/legacy license identifiers
- Use foreach_peer_file() in inspect_javabytecode()
- Unset DEBUGINFOD_URLS to prevent downloading debuginfo rpms
- Report removedfile findings as INFO except for security paths
- Support %autorelease macro with options in the Release field
- Fix Unicode character detection when UTF-32 is present
- Correctly identify combined legacy and SPDX identifiers
librpminspect feature or significant change:
- Note the summary output mode is now deprecated
- Move array() function from init.c to public librpminspect API
- In list_add(), do not add list entries with empty strings
- Add list_trim() function to librpminspect
- Coding style adjustment in parse_yaml.c
- If key1 or key2 is NULL in array(), just return
- Do not dupe and return empty strings in as_str()
- Split the SPDX and legacy license check in lib_cb()
- License db blocks will be json_type_object not json_type_array
- Do not include diff output in doc inspection for rebased builds
- Honor packages_with_exceptions in the license database file
- Modify headers so they work with C++ projects
- Adjust _is_debug_rpm_helper() for other distributions
- Remove unused 'extralen' variable in joinpath.c
- Eliminate split sentences in reporting messages
- End execstack testing early if there is no after_execstack
- Remove format string parameters from some remedy strings
- Refactor how remedy strings are handled in librpminspect
- Implement option runtime remedy string override support
- Embed libtoml in the source tree
- Move xasprintf() macro into a separate header file
- annocheck: Map el10 product release to the corresponding profile
- Add xalloc.c with wrapper functions for memory allocation
- Use xalloc.c wrapper functions for memory allocation
- Add a "parallel collector" mechanism
- add full_write() utility function
- reduce struct size of rpmfile_entry_t
- Expand shellsyntax to ignore scripts that use 'exec PROG'
- Add strverb() and VERB_MISSING
- Add list_case_contains() to listfuncs.c in librpminspect
New inspections or inspection changes (not bug fixes):
- inspect_virus: reorder code in preparation to parallelization
- inspect_virus: use parallel collector to run clamav on all CPUs
- Report all %changelog differences as RESULT_INFO now
Test suite commits:
- Add license db entries in the new format for the test suite
- Add test cases for the license inspection using the new db format
- s/Ipson/Ipsum/g in test_license.py
- Add --skip-cf-protection for annocheck tests on Fedora
- Add a test case to make sure librpminspect can link with C++ code
- Add test cases for transitive explicit Requires dependencies
- Fix two syntax errors in test_modularity.py
- Exclude Oracle Linux and AlmaLinux from the symlinks ELOOP tests
- Exclude Amazon Linux from the ELOOP symlinks tests
- Exclude CentOS branchs from the ELOOP symlinks checks
- LooseVersion from distutils.version is deprecated; replace it
- Handle older Python 3.x releases without 'packaging' module
- Add comments explaining the try/expect for packaging/distutils
- Fix the Debian testing and stable GitHub Actions CI jobs
- Use newer %patch syntax in test_patches.py
- Update the changelog tests to work with the INFO reporting
- Add disttag test cases for %autorelease with options
- Add unicode test cases for correct UTF-32 detection
General release and build process changes:
- Be sure to use 'sort -V' on git tags in .copr/Makefile
- Use 'sort -V' when determining tags in mkannounce.sh
General release and build process changes:
- check the results of meson's run_command()
- Change clamav-data to Recommends in the spec file (#861)
- Increase libabigail version dependency to 2.1
- Add a Makefile target and script to update uthash.h
- Use SPDX license identifiers in rpminspect.spec.in
- Adjust BuildRequires for libannocheck requirement
- BuildRequires: annobin-libannocheck
- On FreeBSD, look for and add -lintl to the linker args
- Change how test_env is defined.
- Remove unnecessary dependencies from src/meson.build
- On FreeBSD add -D__BSD_VISIBLE to the CFLAGS
- Get strverscmp() from libiberty.a on FreeBSD
- _HAVE_LIBIBERTY -> _FREEBSD_LIBIBERTY
- Fix builds on EPEL >= 7 and Fedora >= 35
- Default to with_annocheck rather than with_libannocheck
- Add BSD-2-Clause to the License list in the spec file
- Some meson.build improvements
- Adjust the CURLINFO_CONTENT_LENGTH_DOWNLOAD_T test
- Add 'BuildRequires: libcdson-devel' to the spec file
- BuildRequires: libcdson-devel
- Support skipping pip package installation in 'make instreqs'
- Update RELEASE instructions
- Rename Makefile to GNUmakefile
- shellcheck fixes for utils/determine-os.sh
- rpminspect requires libabigail >= 2.3
- Check for reallocarray() and only use if available
- Default to REALPATH=grealpath on NetBSD
- Recognize Debian trixie as the Debian testing release
- Use pre-commit
- Don't assume x86_64 in utils/gate.sh
- Have utils/mkannounce.sh read CONTRIBUTING.md
Config file or data/ file changes:
- Clarify the 'ignore' block in comments
- Correct one small comment error in data/security/GENERIC
- Update comments for the annocheck inspection in generic.yaml
- Update the comment for the licensedb setting
- Drop '.gdb_index' from the example debuginfo section list
- Update config file examples with latest security rules
- Drop entries from the example global ignore list
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 in alpinelinux.yml
- On alpinelinux, run git config to define the safe directory
- Run git config command on all GitHub Actions jobs
- Make sure '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 and automake for opensuse-leap job
- Add bison and html2text to opensuse-leap reqs.txt list
- Update GitHub Action yml files with correct branch name
- s/annobin/annobin-annocheck/g for Fedora CI targets
- Prevent RPMTAG_VENDOR override on OpenSUSE Leap jobs
- python3-Pygments added to reqs.txt for opensuse-leap
- Use vbatts/slackware:latest in GitHub Actions (#868)
- Add annobin-annocheck to reqs.txt for almalinux8
- Add Alma Linux 9 job to GHA
- Add detection of Alma Linux 9 to utils/determine-os.sh
- Modify test_annocheck.py a bit for Slackware Linux
- Fix Alma Linux detection is utils/determine-os.sh
- Disable annocheck tests on Amazon Linux 2
- Do not run annocheck inspection tests on CentOS 7
- Run ldconfig as last command in post.sh on Slackware Linux
- Update FreeBSD files in osdeps/freebsd/
- Add annobin-libannocheck to reqs.txt files for Fedora rawhide
- Add annobin-libannocheck to reqs.txt files for Fedora latest
- 32-bit Fedora CI jobs need to install annobin-libannocheck.i686
- The i686 Fedora CI jobs need binutils-devel.i686
- Add more settings to the FreeBSD osdeps files
- Initial GitHub Actions file for FreeBSD CI for rpminspect
- Use latest stable FreeBSD vmaction in FreeBSD CI
- Set PATH environment variable for FreeBSD CI job
- Another slight adjustment on the FreeBSD CI job
- Need to install git explicitly for the FreeBSD CI job
- s/-D with_annocheck/-D with_libannocheck/g in freebsd.yml
- Use 'gmake check' to run the test suite on FreeBSD CI
- Process build and step exit codes on the VM host for FreeBSD
- OK, put exitcodes/ under build/
- Drop verbose tar extract in osdeps/freebsd/post.sh
- Make sure FreeBSD CI gets a 'ksh' symlink
- hostname workaround for rpmbuild on FreeBSD CI
- Slightly different way to add hostname and IP on FreeBSD CI
- Write to /etc/hosts in the correct order in FreeBSD CI
- Do not run FreeBSD CI on pull requests
- Add 'env CRYPTOGRAPHY_DONT_BUILD_RUST=1' to PIP_CMD for fedora
- Fix up the Alpine Linux post.sh script and reqs.txt list
- Fix Slackware Linux CI job
- Do not make the gcovr step fail a CI job
- Do not make the gcovr step fail for the rest of the CI jobs
- Fix Debian stable and testing CI jobs
- Fix Ubuntu latest CI job
- Minor updates to quiet the OpenSUSE Leap CI job
- Remove ALT Linux from the CI job collection
- Fix Gentoo Linux CI job
- Quiet some tar and git operations
- Fix CentOS 7 and CentOS Stream 8 jobs; add CentOS Stream 9
- Use gcc for the FreeBSD CI job
- Pass CRYPTOGRAPHY_DONT_BUILD_RUST=1 to pip on FreeBSD CI job
- Do not run 'rpm --import /etc/pki/rpm-gpg/*' on CentOS jobs
- Update the FreeBSD repo catalog before running the CI job
- Fix the FreeBSD job
- Do not carry the old find-debuginfo.sh for FreeBSD CI
- Install cdson from git on Debian and Ubuntu CI jobs
- Install cdson on various CI jobs
- Install cdson from git on Oracle Linux
- Remove invalid 'cd "${TAG}" || exit 1' lines from post.sh
- Use ninja instead of meson when building cdson
- Install rc and cdson to /usr on Arch Linux
- Fixes for CI job on Oracle Linux 8
- Expand PATH in pre.sh for Debian CI jobs
- Install cdson to /usr for the Amazon Linux CI jobs
- Install cdson on the Slackware Linux CI job
- Install cdson on the Gentoo Linux CI job
- Configure and run freshclan on the Slackware Linux CI job
- Install cdson in the FreeBSD CI job
- Link ninja-build to ninja early in post.sh for Amazon Linux
- Install rpm4 from source on FreeBSD CI job
- shellcheck fixes for osdeps/freebsd/post.sh
- Run 'gmake check' for the test suite in the FreeBSD CI job
- Fix Debian CI job and pip module installation
- Add 'debug' and 'setup-debug' targets to Makefile
- Convert CentOS and FreeBSD jobs to use 'make debug/check'
- s/PYTHONG/PYTHON/g
- Use uraimo/run-on-arch-action@v2 on non-x86 jobs
- Split the Debian jobs in to stable and testing
- Small fix up for the FreeBSD CI job
- CentOS 7 job fixes
- Remove CRYPTOGRAPHY_DONT_BUILD_RUST=1 from Fedora CI defs.mk
- Quote ${ec} in .github/workflows/freebsd.yml
- Run 'make instreqs SKIP_PIP=y ; make' on s390x, ppc64le, aarch64
- Do not run coverage target on FreeBSD CI
- clamav-update.i686 -> clamav-update on Fedora i386 jobs
- Get rpminspect building with clang on FreeBSD 13.1
- More improvements for the FreeBSD CI job
- Skip the virus tests in the FreeBSD CI job
- Use -std=c99 on CentOS 7 jobs
- Fix the Gentoo Linux CI job
- use ShellCheck with SARIF support
- Deal with mandoc upstream server being down
- Remove block that imports gpg-key files for Alma and Rocky Linux
- Remove libdson-devel from osdeps/amzn2/reqs.txt
- Add Rocky Linux 9 job to GitHub Actions
- Account for dnf5 presence in Fedora rawhide
- And fix the Fedora rawhide dnf5 stuff for i386
- Use --break-system-packages on pip command in Arch Linux
- Define a %dist tag on Arch Linux systems
- Define a %dist tag on Alpine Linux systems
- Define a %dist tag on Ubuntu Linux systems
- Define a %dist tag on Debian Linux testing systems
- Define a %dist tag on Debian Linux stable systems
- Define a %dist tag on Slackware Linux systems
- Combine the two ~/.rpmmacros lines on Alpine Linux
- Define a %dist tag on Gentoo Linux systems
- Remove any bad udev rules files on Fedora rawhide
- Remove Rocky Linux from the Extra CI job collection
- Minor GitHub Actions job definition cleanups
- Updates for the FreeBSD CI job in GHA
- Small fixes for the CentOS 7 job
- Replace tox CI job with pre-commit
- Can't use distutils with Python 3.12 on CentOS 7
- Final fixes for the CentOS 7 CI job
- Update mandoc and rc installation
rpminspect(1) changes or improvements related to it:
- 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() for RI_PROGRAM_ERROR conditions in rpminspect(1)
- Do not assume before_product and after_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
- Support Koji task ID number for non-scratch builds
- Small memory leak fix in rpminspect.c for the -w option
- Add the -b/--build-type command line option to rpminspect
- Trim the leading period from the product_release string
- Trim leading period(s) after product release string matching
- Fix double free on ri->product_release
- Report skipped inspections in verbose mode and in results
- Add dynamic HTML viewer
- Add SKIP result type to viewer
- Include string.h for strverscmp()
- Just add the prototype for strverscmp() in libiberty
- On FreeBSD, rpminspect must link with libintl
- Handle missing after_product in get_product_release()
- Removed unnecessary reset of i to 0
- Do not crash when user tries to compare two incompatible builds
- Error out on invalid -w values if wordexp() and/or stat() fail
- Add build NVRs to the diagnostics output section
- Free before_product after performing product string matching
- Fix severity_t enum placement of RESULT_DIAG
Documentation changes:
- Large set of Doxygen comments in header files
- Add Doxygen comments for include/readelf.h
- More Doxygen comment headers in include/
- Expand build input description in the rpminspect(1) man page (#863)
- Adjust git.md category description for cmd
- Add link to rpminspect-report project page
- Update the table of build requirements in README.md
- Add FreeBSD to the list of CI platforms
- Add cdson to the list of requirements in README.md
- Add .readthedocs.yaml
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 in read_file()
- Do not use warn() if read_file() returns NULL in get_patch_stats()
- Handle NULL result->msg in output_xunit()
- Reset the tmp pointer on realloc() in strxmlescape()
- On stat() failure in read_file_bytes(), just return NULL
- 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 to S_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 new list_remove() function
- Use a long rather than int64_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() and strsplit() 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 and after_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 to strprefix() and strsuffix()
- 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
- Round the width variable for the curl progress bar
- Handle RPM payloads with individual entries >2GB
- Small fixes to the 'patches' inspection
- Handle unused parameter on extract_rpm_payload() on old librpm
- Read in capabilities data files correctly
- Report removed patches by checking RPMTAG_PATCHES list
- Do not remove all () substrings from requirements in rpmdeps
- Correctly build the abidiff(1) command line
- Make sure abidiff can find all debuginfo type files
- Use add_abidiff_arg() in the kmidiff inspection
- Get Koji module downloading working consistently
- Handle source packages in get_nevra() (#859) (#860)
- Get reporting severity for removed files w/ WAIVABLE_BY_SECURITY (#862)
- Set XML-RPC size limit to SIZE_MAX (#867)
- Fix errors downloading some module builds (#869)
- When the subpackages inspection succeeds, report an OK message
- Only report multiple subpackages Provides for explicit Requires
- Only report missing explicit Requires for single providers
- Check for completed builds and closed tasks when fetching
- Update XML-RPC handling for getBuild and getTaskInfo
- Read Koji build state after reading the getBuild response
- Small enum and static variable declaration cleanups
- Error on old json-c version with json_object_object_foreach()
- When reading config files, allow value overrides
- Handle Koji XML-RPC failure code 1 when using getTaskInfo
- Remove free() with module input in the upstream inspection
- An unexpected exit of abidiff(1) is a VERIFY result
- Drop unnecessary assert() in the badfuncs inspection
- Various and assorted bug fixes
- Correctly read the capabilities file lines
- More memory management fixes in builds.c
- Adjust now abidiff and kmidiff get --d1/--d2 arguments
- severity_t values should go from best to worst
- In removedfiles, properly report security path removals
- Small fixes for the modularity inspection
- Correctly report abidiff(1) results in the abidiff inspection
- Do not report "New patch file (null) has appeared"
- Small fixes to handle setting some build options to false
- Do not assume SHF_ORDERED and SHF_EXCLUDE are defined
- Match product release to annocheck profile string
- Portability updates for byte swap functions in inspect_javabytecode.c
- Honor with_libcap build time option in inspect_ownership.c
- Portability fix in readfile.c
- GLOB_PERIOD is a GNU extension
- Modify match_path() to work with paths without leading '/'
- Read XMLRPC_TYPE_INT and XMLRPC_TYPE_I8 correctly
- Do not run libannocheck_finish() if libannocheck_init() fails
- If libannocheck_init() fails, just fail the inspection early
- Use libannocheck_get_version() in libannocheck_init() call
- Report symlink destination via readlink() in results
- When building with '-D with_annocheck=true', pass --profile
- Fix build_annocheck_cmd() in inspect_annocheck.c
- In the license inspection, stop at the first db match
- Correct how the debuginfo checks for missing sections
- Improve lostpayload inspection reporting by including arch
- Correct results reporting for capabilities and permissions
- Support systems with libkmod.h in /usr/include/kmod
- Only use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T in curl_get_size()
- Add back support for older libcurl versions
- Modularity support detection
- Report file type changes in the permissions inspection
- Do not incorrectly report missing debuginfo symbols
- Handle kernel and debuginfo packages in 'elf' correctly
- Pass public header directories to abidiff(1) for inspections
- Avoid duplicate --hd1/--hd2 args to abidiff
- Small memory management fix for get_all_arches()
- Use json_object_object_get_ex() in parse_json.c
- Nullify result params after they were freed
- Set CURLOPT_FOLLOWLOCATION in curl_get_size()
- If download space cannot be determined, warn user
- Correctly read rpmdeps section and per-inspection ignores
- Parse the badfuncs->allowed section in YAML config files
- Small memory leak fixed in is_local_build()
- Iterate over multiple licensedb files correctly
- Cannot use warnx() here as it breaks parser output
- Check return value of strdup() in tokenize_license_tag()
- Strip temporary working dir from SRPM files in 'unicode'
- Do not run abidiff inspection on ELF ET_DYN executables
- "downloaded_mbs" -> "download_mbs" in read_cfgfile()
- Check return value of cl_cvdhead() in virus inspection
- Do not infinite loop on an empty rpminspect.yaml file
- Look for user-specified profiles with any support file ending
- Drop FNM_NOESCAPE from politics_driver() fnmatch() call
- elf_getscn() can return NULL in get_elf_section_names()
- Correct the reporting of rpmdeps ignore entries
- Actually hook up the 'ignore' section of 'rpmdeps'
- Prevent double slashes in fullpath in rpmfile_entry_t
- Correctly handle 32-bit x86 packages in the annocheck inspection
- Full fix for eliminating double slashes in fullpath
- Handle patch files with spec file macros in the name
- If read_file() returns NULL, just return 0 macros
- If read() fails in get_jvm_major(), close fd before returning
- Close handles in elf_driver() after kernel module check
- If read() fails in changedfiles_driver(), close fd before returning
- Handle unchanged static_context in modularity test correctly
- Do not translate the values of /data/static_context
- In match_path(), try an fnmatch() early
- Call cap_free() on any allocations made by cap_from_text()
- Trim leading and trailing whitespace from capability strings
- Fix off by one error in strtrim()
- General memory management cleanups in librpminspect
- Remove last , from the politics_field_t enum
- Include libgen.h in init.c (for basename)
- Make DIST_TAG_MARKER something that doesn't halt rpmSpecParse()
- Correct the dup2() calls in the client process.
- Load both *.cld and *.cvd virus database files, if they exist
- Handle manually unpacked source archives in unicode inspection
- Remove temporary extract source trees in the unicode inspection
- Include unistd.h in lib/curl.c
- unicode inspection: Handle unpack- directories from manual extract
- Check owner and group info for setuid/setgid files in ownership
- Some valgrind fixes in the unicode inspection
- Fix a memory bug in the unicode inspection
- Honor additional %patch macro syntax in the patches inspection
- Improve debuginfo and debugsource package detection
- Check peer->before_hdr in removedfiles for debuginfo or debugsource
- Log error if there was a problem converting JSON object to string
- Use RPMTAG_NOT_FOUND macro instead of -1
- General cleanups to address static analysis errors
- Correct two list_free() calls; missing third argument
- Drop the newly introduced third paramter to list_free()
- Correctly delete hash table members
- Correct a SIGSEGV in delta_out when displaying a patch
- Update calls to mime_type(), get_mime_type(), and is_text_file()
- Prevent 'changedfiles' from leaking memory and crashing
- Remaining memory allocation fixes for changedfiles OOM issue
- Handle empty peers list in rpmdeps inspection
- Adjust DEBUGINFO_SUFFIX and DEBUGSOURCE_SUFFIX
- Correct the MIME type exclusion check for the unicode inspection
- Check for debuginfo and debugsource package name suffixes
- "pATH" -> "PATH"
- Guard command output reading in gather_diags()
- Read file modes from the RPM header and not the archive
- Skip debuginfo and debugsource packages for explicit deps
- Set missing result params header in the runpath inspection
- Improve the shellsyntax noun/verb result messages
- Assertion in modularity inspection when a package is removed
- local builds don't have buildtype set
- Prevent false positives in rpmdeps inspection for modules
- Handle subpackages with different Epoch values in rpmdeps
- Skip peers missing an after build in rpmdeps
- Memory leak fix in run_cmd_vp()
- Allow %autorelease as the value in a Release tag
- Read and cache the st_size for hard links
- Use N_() for result strings in the patches inspection
- Adjust some strings for translation purposes
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() and RI_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() and free_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 with rpmPushMacro
- 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 to init_rpminspect()
- Support optional product release configuration files
- Allow local rpminspect.yaml files to extend annocheck options
- Use REG_EXTENDED in match_product()
- In match_path(), honor common syntax of /path/to/dir/*
- Add ints to the BLOCK_ enum in init.c
- Define RESULT_DIAG for diagnostics results reporting
- Support explicit paths for licensedb in the config file
- Remove realloc() call from strtrim()
- Only support RPM payload conversion with newer librpm releases
- Support a new config file block called 'environment'
- Rename abidiff-specific helper functions
- Add headers dir support back to the the abidiff inspection
- Move add_abidiff_arg() to abi.c and make non-static
- When downloading modules, only display Downloading msg once
- Minor fix for the download progress bar alignment (#870)
- Change licensdb to a string_list_t in struct rpminspect
- Support multiple license db files in the config file
- Use section and token macros in init.c
- Report Koji lookup error on stderr when searching
- Add is_elf_executable() to readelf.c
- Define struct buildtypes similar to struct inspect
- When skipping the modularity inspection, explain why
- When skipping the changelog inspection, explain why
- Add the 'debuginfo' inspection
- Refactor code to make better use of list_add()
- Get list of %auto macros from the config file in 'patches'
- Change how RPMs are unpacked when peering happens
- Define VERB_SKIP and NULL_WAIVERAUTH in types.h
- Modify the result reporting functions so waiverauth is optional
- For inspections reporting no issues, do not set waiverauth
- Drop ABI_HEADERS_DIR1 and ABI_HEADERS_DIR2
- Allow profile specification by full path or basename
- Check /data/static_context in modulemd.txt in 'modularity'
- Style update, drop the explicit '!= NULL' check
- Update initialization and data structures for libannocheck
- Switch to using libannocheck for the annocheck inspection
- Include libgen.h everywhere basename(3) is used
- Make a copy of the path before basename(3) is called
- Use execvp() instead of execvpe() in runcmd()
- Correct the regcomp() usage in inspect_manpage.c
- Honor the 'ignore' block under 'abidiff' in rpminspect.yaml
- Bring back support for annocheck(1) in the annocheck inspection
- When an input cannot be found anywhere, tell the user
- Expand xmlrpc fault reporting for getBuild and getTaskInfo
- Improve the failure reporting from gather_builds()
- Disable the check for .gnu_debuglink in non-debuginfo
- Show error code value from libannocheck_run_tests()
- Disable the modularity inspection if librpm lacks support
- Update uthash.h to latest version
- Whitespace changes
- Support initialization from YAML, JSON, or DSON files
- Set CURLOPT_MAXREDIRS to prevent unlimited URL redirections
- Adjust indentation when dumping config data
- Style cleanups and use warn*() functions from err.h
- Small coding style changes in parse_*.c files
- Give more error information in getobj() in parse_json.c
- Ensure first argument to warnx() is a format string
- Make get_all_arches() return a list of fnmatch(3) patterns
- Handle macros in patch file names in the patches inspection
- Improve the error reporting when missing /var/lib/clamav
- Input validation for disttag_driver()
- Initialize after_compliance to NULL
- Expand the struct inspect type to indicate security checks
- Add ignore_rpmfile_entry() function to paths.c
- Modify inspections to ignore ignore lists for security checks
- Remove unused head and tail variables in addedfiles_driver
- Add get_secrule_type() and get_secrule_severity()
- Add support for a 'virus' security rule per file
- Add support for a 'unicode' security rule per file
- Add is_llvm_ir_bitcode() to librpminspect for LTO inspection
- In the lto inspection only check regular files
- Show local rpminspect config file in diagnostics output
- Drop unnecessary warn() from is_llvm_ir_bitcode()
- Remove unnecessary lead up code before list_add() calls
- Minor porting work to get the software building on NetBSD
- Sort inspections alphabetically
- Load *.cld files in addition to *.cvd files for virus scans
- Improve the capabilities inspection reporting
- Minor fixups to the unicode inspection code
- Do not display curl progress bar on non-tty output
- Make error messages more consistent throughout the code
- Rephrase the download failure messages
- Introduce 'udevrules' inspection
- Use BUFSIZ for archive_read_open_filename()
- Define string_hash_t type
- Change how MIME types are collected and stored
- Update API for find_file_peers()
- In module package builds check for a Release tag value substring
- Use execvp() rather than execvpe() in run_cmd()
- In find_cmd(), do not search PATH if cmd contains '/'
- Ignore missing optional commands in gather_diags()
- Split rpmtd functionality out of get_rpm_header_value()
- Add get_rpm_header_num_array_value() function
- Add a 'havesection' function type to the config file parsers
- Extend read_cfgfile() to note if a local config file is in use
- Move config file keywords to macros in init.h
- Simplify the return in json_have_section()
- Drop debugging warnx() from json_parse_file()
- Add support for 'wrapperRPM' builds in Koji
- Add debug_print_result() to librpminspect for results debugging
- Expand the desktop inspection with more configuration opts
- Clean up libxml2 output in the xml inspection
- Parameterize the () and N() macros in rpminspect.h
- When missing ngettext(), have N_() use MSGID_PLURAL
- Check mode+ownership in capabilities inspection
New inspections or inspection changes (not bug fixes):
- Make virus inspection failures WAIVABLE_BY_SECURITY.
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 level Makefile
- Support DIAGNOSTICS as a test result and fix test_upstream
- Set licensedb to a list in baseclass.py
- Add integration tests for annocheck inspection
- Update rpmdeps test cases for the multiple providers case
- Update multiple providers test cases in test_rpmdeps_providers.py
- added integration test for removedfiles inspection
- Add "-fstack-clash-protection -flto" in test_annocheck.py
- Skip annocheck tests if no 'annocheck' executable found
- Modify baseclass.py to support buildtype override by test case
- Handle Alpine Linux special casing in test_abidiff.py
- Add test cases for the 'debuginfo' inspection
- Support KEEP=y when running 'make check'
- Sync up Copyright lines with format used in lib and src
- Update the test suite to handle the new optional waiver_auth
- Fix and enable the removedfiles inspection test cases
- Adjust TestKoji and TestCompareKoji so they be base classes
- Use super().setUp() and super().tearDown() consistently
- Create TestModule and TestCompareModules in baseclass.py
- Improvements and fixes for baseclass.py
- Add 12 new test cases for the modularity inspection
- Remove invalid self.kojidir blocks in some tearDown() functions
- Fix some of the annocheck test cases
- Portability fixes for the test suite on FreeBSD
- Handle buildhost subdomain detection more like librpm
- Handle systems that spell 'x86_64' as 'amd64'
- Apply the timeout decorator on a method, not the whole class
- Switch to check_results() in TestRPMs
- Reduce test license database to only fields used by rpminspect
- Skip debuginfo tests on FreeBSD that do not work
- Drop timeout settings for the virus test cases
- Add back timeout setting to test/meson.build
- Minor Python syntax changes found by Python black
- Add test cases for the new 'virus' security rule type
- Add test cases for the new 'unicode' security rule type
- Modify test_lto.py to work if clang is the compiler
- Skip virus tests on FreeBSD
- Add unit test for humansize.c
- Add unit test for arches.c
- Add test cases for setuid/setgid checks in ownership
- Add test cases to test_patches.py covering %patch macro modes
- Add unit tests for results.c
- Do not check '%patch N' handling for rpm v4.14.x
- Add test cases for the 'udevrules' inspection
- Update expected results from changedfiles tests
- Bad ownership/mode should fail inspect_capabilities
- Skip capabilities tests if rpm lacks %caps support
General release and build process changes:
- check the results of meson's run_command()
- Change clamav-data to Recommends in the spec file (#861)
- Increase libabigail version dependency to 2.1
- Add a Makefile target and script to update uthash.h
- Use SPDX license identifiers in rpminspect.spec.in
- Adjust BuildRequires for libannocheck requirement
- BuildRequires: annobin-libannocheck
- On FreeBSD, look for and add -lintl to the linker args
- Change how test_env is defined.
- Remove unnecessary dependencies from src/meson.build
- On FreeBSD add -D__BSD_VISIBLE to the CFLAGS
- Get strverscmp() from libiberty.a on FreeBSD
- _HAVE_LIBIBERTY -> _FREEBSD_LIBIBERTY
- Fix builds on EPEL >= 7 and Fedora >= 35
- Default to with_annocheck rather than with_libannocheck
- Add BSD-2-Clause to the License list in the spec file
- Some meson.build improvements
- Adjust the CURLINFO_CONTENT_LENGTH_DOWNLOAD_T test
- Add 'BuildRequires: libcdson-devel' to the spec file
- BuildRequires: libcdson-devel
- Support skipping pip package installation in 'make instreqs'
- Update RELEASE instructions
Config file or data/ file changes:
- Clarify the 'ignore' block in comments
- Correct one small comment error in data/security/GENERIC
- Update comments for the annocheck inspection in generic.yaml
- Update the comment for the licensedb setting
- Drop '.gdb_index' from the example debuginfo section list
- Correct documentation of addedfiles.forbidden_path_prefixes
- Fix invalid YAML definition of badfuncs
- Fix invalid YAML definition of javabytecode
- Simplify definition of pathmigration.migrated_paths
- Simplify definition of annocheck.{jobs,extra_opts}
- Simplify definition of products
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 in alpinelinux.yml
- On alpinelinux, run git config to define the safe directory
- Run git config command on all GitHub Actions jobs
- Make sure '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 and automake for opensuse-leap job
- Add bison and html2text to opensuse-leap reqs.txt list
- Update GitHub Action yml files with correct branch name
- s/annobin/annobin-annocheck/g for Fedora CI targets
- Prevent RPMTAG_VENDOR override on OpenSUSE Leap jobs
- python3-Pygments added to reqs.txt for opensuse-leap
- Use vbatts/slackware:latest in GitHub Actions (#868)
- Add annobin-annocheck to reqs.txt for almalinux8
- Add Alma Linux 9 job to GHA
- Add detection of Alma Linux 9 to utils/determine-os.sh
- Modify test_annocheck.py a bit for Slackware Linux
- Fix Alma Linux detection is utils/determine-os.sh
- Disable annocheck tests on Amazon Linux 2
- Do not run annocheck inspection tests on CentOS 7
- Run ldconfig as last command in post.sh on Slackware Linux
- Update FreeBSD files in osdeps/freebsd/
- Add annobin-libannocheck to reqs.txt files for Fedora rawhide
- Add annobin-libannocheck to reqs.txt files for Fedora latest
- 32-bit Fedora CI jobs need to install annobin-libannocheck.i686
- The i686 Fedora CI jobs need binutils-devel.i686
- Add more settings to the FreeBSD osdeps files
- Initial GitHub Actions file for FreeBSD CI for rpminspect
- Use latest stable FreeBSD vmaction in FreeBSD CI
- Set PATH environment variable for FreeBSD CI job
- Another slight adjustment on the FreeBSD CI job
- Need to install git explicitly for the FreeBSD CI job
- s/-D with_annocheck/-D with_libannocheck/g in freebsd.yml
- Use 'gmake check' to run the test suite on FreeBSD CI
- Process build and step exit codes on the VM host for FreeBSD
- OK, put exitcodes/ under build/
- Drop verbose tar extract in osdeps/freebsd/post.sh
- Make sure FreeBSD CI gets a 'ksh' symlink
- hostname workaround for rpmbuild on FreeBSD CI
- Slightly different way to add hostname and IP on FreeBSD CI
- Write to /etc/hosts in the correct order in FreeBSD CI
- Do not run FreeBSD CI on pull requests
- Add 'env CRYPTOGRAPHY_DONT_BUILD_RUST=1' to PIP_CMD for fedora
- Fix up the Alpine Linux post.sh script and reqs.txt list
- Fix Slackware Linux CI job
- Do not make the gcovr step fail a CI job
- Do not make the gcovr step fail for the rest of the CI jobs
- Fix Debian stable and testing CI jobs
- Fix Ubuntu latest CI job
- Minor updates to quiet the OpenSUSE Leap CI job
- Remove ALT Linux from the CI job collection
- Fix Gentoo Linux CI job
- Quiet some tar and git operations
- Fix CentOS 7 and CentOS Stream 8 jobs; add CentOS Stream 9
- Use gcc for the FreeBSD CI job
- Pass CRYPTOGRAPHY_DONT_BUILD_RUST=1 to pip on FreeBSD CI job
- Do not run 'rpm --import /etc/pki/rpm-gpg/*' on CentOS jobs
- Update the FreeBSD repo catalog before running the CI job
- Fix the FreeBSD job
- Do not carry the old find-debuginfo.sh for FreeBSD CI
- Install cdson from git on Debian and Ubuntu CI jobs
- Install cdson on various CI jobs
- Install cdson from git on Oracle Linux
- Remove invalid 'cd "${TAG}" || exit 1' lines from post.sh
- Use ninja instead of meson when building cdson
- Install rc and cdson to /usr on Arch Linux
- Fixes for CI job on Oracle Linux 8
- Expand PATH in pre.sh for Debian CI jobs
- Install cdson to /usr for the Amazon Linux CI jobs
- Install cdson on the Slackware Linux CI job
- Install cdson on the Gentoo Linux CI job
- Configure and run freshclan on the Slackware Linux CI job
- Install cdson in the FreeBSD CI job
- Link ninja-build to ninja early in post.sh for Amazon Linux
- Install rpm4 from source on FreeBSD CI job
- shellcheck fixes for osdeps/freebsd/post.sh
- Run 'gmake check' for the test suite in the FreeBSD CI job
- Fix Debian CI job and pip module installation
- Add 'debug' and 'setup-debug' targets to Makefile
- Convert CentOS and FreeBSD jobs to use 'make debug/check'
- s/PYTHONG/PYTHON/g
- Use uraimo/run-on-arch-action@v2 on non-x86 jobs
- Split the Debian jobs in to stable and testing
- Small fix up for the FreeBSD CI job
- CentOS 7 job fixes
- Remove CRYPTOGRAPHY_DONT_BUILD_RUST=1 from Fedora CI defs.mk
- Quote ${ec} in .github/workflows/freebsd.yml
- Run 'make instreqs SKIP_PIP=y ; make' on s390x, ppc64le, aarch64
- Do not run coverage target on FreeBSD CI
rpminspect(1) changes or improvements related to it:
- 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() for RI_PROGRAM_ERROR conditions in rpminspect(1)
- Do not assume before_product and after_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
- Support Koji task ID number for non-scratch builds
- Small memory leak fix in rpminspect.c for the -w option
- Add the -b/--build-type command line option to rpminspect
- Trim the leading period from the product_release string
- Trim leading period(s) after product release string matching
- Fix double free on ri->product_release
- Report skipped inspections in verbose mode and in results
- Add dynamic HTML viewer
- Add SKIP result type to viewer
- Include string.h for strverscmp()
- Just add the prototype for strverscmp() in libiberty
- On FreeBSD, rpminspect must link with libintl
- Handle missing after_product in get_product_release()
- Removed unnecessary reset of i to 0
- Do not crash when user tries to compare two incompatible builds
Documentation changes:
- Large set of Doxygen comments in header files
- Add Doxygen comments for include/readelf.h
- More Doxygen comment headers in include/
- Expand build input description in the rpminspect(1) man page (#863)
- Adjust git.md category description for cmd
- Add link to rpminspect-report project page
- Update the table of build requirements in README.md
- Add FreeBSD to the list of CI platforms
- Add cdson to the list of requirements in README.md
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 in read_file()
- Do not use warn() if read_file() returns NULL in get_patch_stats()
- Handle NULL result->msg in output_xunit()
- Reset the tmp pointer on realloc() in strxmlescape()
- On stat() failure in read_file_bytes(), just return NULL
- 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 to S_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 new list_remove() function
- Use a long rather than int64_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() and strsplit() 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 and after_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 to strprefix() and strsuffix()
- 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
- Round the width variable for the curl progress bar
- Handle RPM payloads with individual entries >2GB
- Small fixes to the 'patches' inspection
- Handle unused parameter on extract_rpm_payload() on old librpm
- Read in capabilities data files correctly
- Report removed patches by checking RPMTAG_PATCHES list
- Do not remove all () substrings from requirements in rpmdeps
- Correctly build the abidiff(1) command line
- Make sure abidiff can find all debuginfo type files
- Use add_abidiff_arg() in the kmidiff inspection
- Get Koji module downloading working consistently
- Handle source packages in get_nevra() (#859) (#860)
- Get reporting severity for removed files w/ WAIVABLE_BY_SECURITY (#862)
- Set XML-RPC size limit to SIZE_MAX (#867)
- Fix errors downloading some module builds (#869)
- When the subpackages inspection succeeds, report an OK message
- Only report multiple subpackages Provides for explicit Requires
- Only report missing explicit Requires for single providers
- Check for completed builds and closed tasks when fetching
- Update XML-RPC handling for getBuild and getTaskInfo
- Read Koji build state after reading the getBuild response
- Small enum and static variable declaration cleanups
- Error on old json-c version with json_object_object_foreach()
- When reading config files, allow value overrides
- Handle Koji XML-RPC failure code 1 when using getTaskInfo
- Remove free() with module input in the upstream inspection
- An unexpected exit of abidiff(1) is a VERIFY result
- Drop unnecessary assert() in the badfuncs inspection
- Various and assorted bug fixes
- Correctly read the capabilities file lines
- More memory management fixes in builds.c
- Adjust now abidiff and kmidiff get --d1/--d2 arguments
- severity_t values should go from best to worst
- In removedfiles, properly report security path removals
- Small fixes for the modularity inspection
- Correctly report abidiff(1) results in the abidiff inspection
- Do not report "New patch file (null) has appeared"
- Small fixes to handle setting some build options to false
- Do not assume SHF_ORDERED and SHF_EXCLUDE are defined
- Match product release to annocheck profile string
- Portability updates for byte swap functions in inspect_javabytecode.c
- Honor with_libcap build time option in inspect_ownership.c
- Portability fix in readfile.c
- GLOB_PERIOD is a GNU extension
- Modify match_path() to work with paths without leading '/'
- Read XMLRPC_TYPE_INT and XMLRPC_TYPE_I8 correctly
- Do not run libannocheck_finish() if libannocheck_init() fails
- If libannocheck_init() fails, just fail the inspection early
- Use libannocheck_get_version() in libannocheck_init() call
- Report symlink destination via readlink() in results
- When building with '-D with_annocheck=true', pass --profile
- Fix build_annocheck_cmd() in inspect_annocheck.c
- In the license inspection, stop at the first db match
- Correct how the debuginfo checks for missing sections
- Improve lostpayload inspection reporting by including arch
- Correct results reporting for capabilities and permissions
- Support systems with libkmod.h in /usr/include/kmod
- Only use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T in curl_get_size()
- Add back support for older libcurl versions
- Modularity support detection
- Report file type changes in the permissions inspection
- Do not incorrectly report missing debuginfo symbols
- Handle kernel and debuginfo packages in 'elf' correctly
- Pass public header directories to abidiff(1) for inspections
- Avoid duplicate --hd1/--hd2 args to abidiff
- Small memory management fix for get_all_arches()
- Use json_object_object_get_ex() in parse_json.c
- Nullify result params after they were freed
- Set CURLOPT_FOLLOWLOCATION in curl_get_size()
- If download space cannot be determined, warn user
- Correctly read rpmdeps section and per-inspection ignores
- Parse the badfuncs->allowed section in YAML config files
- Small memory leak fixed in is_local_build()
- Iterate over multiple licensedb files correctly
- Cannot use warnx() here as it breaks parser output
- Check return value of strdup() in tokenize_license_tag()
- Strip temporary working dir from SRPM files in 'unicode'
- Do not run abidiff inspection on ELF ET_DYN executables
- "downloaded_mbs" -> "download_mbs" in read_cfgfile()
- Check return value of cl_cvdhead() in virus inspection
- Do not infinite loop on an empty rpminspect.yaml file
- Look for user-specified profiles with any support file ending
- Drop FNM_NOESCAPE from politics_driver() fnmatch() call
- elf_getscn() can return NULL in get_elf_section_names()
- Correct the reporting of rpmdeps ignore entries
- Actually hook up the 'ignore' section of 'rpmdeps'
- Prevent double slashes in fullpath in rpmfile_entry_t
- Correctly handle 32-bit x86 packages in the annocheck inspection
- Full fix for eliminating double slashes in fullpath
- Fix severity_t enum placement of RESULT_DIAG
- Replace bytes_to_str() with strndup()
- Fix overriding external helper commands in init.c
- Fix detection of modularity static_context
- lib/init: constify applicable string arguments
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() and RI_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() and free_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 with rpmPushMacro
- 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 to init_rpminspect()
- Support optional product release configuration files
- Allow local rpminspect.yaml files to extend annocheck options
- Use REG_EXTENDED in match_product()
- In match_path(), honor common syntax of /path/to/dir/*
- Add ints to the BLOCK_ enum in init.c
- Define RESULT_DIAG for diagnostics results reporting
- Support explicit paths for licensedb in the config file
- Remove realloc() call from strtrim()
- Only support RPM payload conversion with newer librpm releases
- Support a new config file block called 'environment'
- Rename abidiff-specific helper functions
- Add headers dir support back to the the abidiff inspection
- Move add_abidiff_arg() to abi.c and make non-static
- When downloading modules, only display Downloading msg once
- Minor fix for the download progress bar alignment (#870)
- Change licensdb to a string_list_t in struct rpminspect
- Support multiple license db files in the config file
- Use section and token macros in init.c
- Report Koji lookup error on stderr when searching
- Add is_elf_executable() to readelf.c
- Define struct buildtypes similar to struct inspect
- When skipping the modularity inspection, explain why
- When skipping the changelog inspection, explain why
- Add the 'debuginfo' inspection
- Refactor code to make better use of list_add()
- Get list of %auto macros from the config file in 'patches'
- Change how RPMs are unpacked when peering happens
- Define VERB_SKIP and NULL_WAIVERAUTH in types.h
- Modify the result reporting functions so waiverauth is optional
- For inspections reporting no issues, do not set waiverauth
- Drop ABI_HEADERS_DIR1 and ABI_HEADERS_DIR2
- Allow profile specification by full path or basename
- Check /data/static_context in modulemd.txt in 'modularity'
- Style update, drop the explicit '!= NULL' check
- Update initialization and data structures for libannocheck
- Switch to using libannocheck for the annocheck inspection
- Include libgen.h everywhere basename(3) is used
- Make a copy of the path before basename(3) is called
- Use execvp() instead of execvpe() in runcmd()
- Correct the regcomp() usage in inspect_manpage.c
- Honor the 'ignore' block under 'abidiff' in rpminspect.yaml
- Bring back support for annocheck(1) in the annocheck inspection
- When an input cannot be found anywhere, tell the user
- Expand xmlrpc fault reporting for getBuild and getTaskInfo
- Improve the failure reporting from gather_builds()
- Disable the check for .gnu_debuglink in non-debuginfo
- Show error code value from libannocheck_run_tests()
- Disable the modularity inspection if librpm lacks support
- Update uthash.h to latest version
- Whitespace changes
- Support initialization from YAML, JSON, or DSON files
- Set CURLOPT_MAXREDIRS to prevent unlimited URL redirections
- Adjust indentation when dumping config data
- Style cleanups and use warn*() functions from err.h
- Small coding style changes in parse_*.c files
- Give more error information in getobj() in parse_json.c
- Ensure first argument to warnx() is a format string
- Make get_all_arches() return a list of fnmatch(3) patterns
- Handle macros in patch file names in the patches inspection
- Improve the error reporting when missing /var/lib/clamav
- Add a common interface for parsers
- Implement YAML parser interface
- init: use new YAML parser for configuration files
- builds: use new parser for extracting rpm filters
- inspect_modularity: use new parser for reading modulemd
- Implement parser interface for JSON
- Use new JSON parser interface for license inspection
- Implement parser interface for DSON
- Support multiple config file formats
New inspections or inspection changes (not bug fixes):
- Make virus inspection failures WAIVABLE_BY_SECURITY.
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 level Makefile
- Support DIAGNOSTICS as a test result and fix test_upstream
- Set licensedb to a list in baseclass.py
- Add integration tests for annocheck inspection
- Update rpmdeps test cases for the multiple providers case
- Update multiple providers test cases in test_rpmdeps_providers.py
- added integration test for removedfiles inspection
- Add "-fstack-clash-protection -flto" in test_annocheck.py
- Skip annocheck tests if no 'annocheck' executable found
- Modify baseclass.py to support buildtype override by test case
- Handle Alpine Linux special casing in test_abidiff.py
- Add test cases for the 'debuginfo' inspection
- Support KEEP=y when running 'make check'
- Sync up Copyright lines with format used in lib and src
- Update the test suite to handle the new optional waiver_auth
- Fix and enable the removedfiles inspection test cases
- Adjust TestKoji and TestCompareKoji so they be base classes
- Use super().setUp() and super().tearDown() consistently
- Create TestModule and TestCompareModules in baseclass.py
- Improvements and fixes for baseclass.py
- Add 12 new test cases for the modularity inspection
- Remove invalid self.kojidir blocks in some tearDown() functions
- Fix some of the annocheck test cases
- Portability fixes for the test suite on FreeBSD
- Handle buildhost subdomain detection more like librpm
- Handle systems that spell 'x86_64' as 'amd64'
- Apply the timeout decorator on a method, not the whole class
- Switch to check_results() in TestRPMs
- Reduce test license database to only fields used by rpminspect
- Skip debuginfo tests on FreeBSD that do not work
- Drop timeout settings for the virus test cases
- Add back timeout setting to test/meson.build
- Minor Python syntax changes found by Python black
- Add regression test for deprecated YAML parsing
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 in alpinelinux.yml
- On alpinelinux, run git config to define the safe directory
- Run git config command on all GitHub Actions jobs
- Make sure '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 and automake for opensuse-leap job
- Add bison and html2text to opensuse-leap reqs.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() for RI_PROGRAM_ERROR conditions in rpminspect(1)
- Do not assume before_product and after_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 in read_file()
- Do not use warn() if read_file() returns NULL in get_patch_stats()
- Handle NULL result->msg in output_xunit()
- Reset the tmp pointer on realloc() in strxmlescape()
- On stat() failure in read_file_bytes(), just return NULL
- 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 to S_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 new list_remove() function
- Use a long rather than int64_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() and strsplit() 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 and after_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 to strprefix() and strsuffix()
- 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() and RI_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() and free_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 with rpmPushMacro
- 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 to init_rpminspect()
- Support optional product release configuration files
- Allow local rpminspect.yaml files to extend annocheck options
- Use REG_EXTENDED in match_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 level Makefile
General release and build process changes:
- Improve call with koji list-targets
- Skip GPG signing the source archives for Copr builds
- Use rpmspec to gather BuildRequires for Copr
- Allow 'python_program' meson configuration option
- Add 'copr-srpm' Makefile target
Config file or data/ file changes:
- Skip *.html files in the xml inspection
- Drop diff(1) command setting from generic.yaml
Changes to the GitHub Actions CI scripts and files:
- Fix pre.sh for Extra CI on Gentoo Linux
- Fix the CentOS 7 Extra CI job
- Small cleanups to the Extra CI definitions
- Fix post.sh for centos 7 Extra CI job
- Expand PATH in post.sh for centos7 Extra CI
- Make sure /usr/local/bin is in the centos7 Extra CI PATH
- Match the matrix.container name correctly in extra-ci.yml
- Support special RPM vendor handling on ALT Linux
- Fix ALT Linux job in Extra CI
- Drop Open Euler stuff from utils/determine-os.sh
- Patch source and build system for FreeBSD
- shellcheck fixes for osdeps post.sh scripts
- Break out the CI and Extra CI configs in to separate files
- "/etc/pkg" -> "/etc/pki" in some GitHub Actions
- Fix /usr/lib/rpm/*/macros modification for ALT Linux
- Pull CentOS images from quay.io, prepare for CentOS 9 Stream
- Add Slackware Linux 15.0 to the GitHub Actions collection
- Use -checkgpg=off with slackpkg initially on Slackware Linux
- More minor fixes to the Slackware Linux GitHub Action
- Just set GPGCHECK=off for the Slackware Linux GitHub Action
- Run 'slackpkg update' before install git and requirements
- Try to instruct slackpkg to, yes, import the GPG key
- Install libxdiff-devel in Fedora-derived GitHub Actions jobs
- Drop libxdiff-devel package installation
- Drop diffutils from all CI job reqs.txt files
rpminspect(1) changes:
- Prevent SIGSEGV when get_product_release() fails
- Default favor_release setting to 'newest'
- Default favor_release setting to 'newest'
- Fix two small memory leaks in rpminspect(1)
- Exit with code 3 if the named profile (-p) is not found
- Fix -Werror=use-after-free findings from gcc 12
- Fix get_product_release() for single build jobs
- Implement the -s/--suppress option in rpminspect
- Do not remove default or user-specified --workdir paths
- Pretend that TTY has 80 columns, if the real width is unknown
Documentation changes:
- Small tweaks to the RELEASE checklist
- Update usage examples in README.md
- Update usage.rst to reflect current inspections
General bug fix in the library or frontend program:
- Make sure is_elf() returns true for ELF archives (*.a)
- Match MIME type on Icons in the desktop inspection
- Report removed files at INFO level in rebase comparisons
- Handle single build runs in is_rebase()
- Handle the -w option correctly for fetch and non-fetch modes
- Code formatting
- Read ABI level blocks with "level N" or "level-N" names
- Ensure summary mode output works for a number of inspections
- Prevent SIGSEGV in rpminspect is the configuration is incomplete
- Prevent SIGSEGV when bad_functions is empty for -D
- Avoid stairstepping the text in summary output mode
- Make sure multiple package providers are collected in rpmdeps
- Correct the name of RPM weak dep macros in deprules.c
- Do not incorrectly report added files for single builds
- Cleaner error reporting when elf_version() returns EV_NONE
- Strip workdir from the Details in shellsyntax reports
- Some build comparisons with missing peers crash 'rpmdeps'
- Close a number of non-fatal memory leaks
- Remove unnecessary free() calls in librpminspect and rpminspect
- Match shared lib Requires correctly & handle multiple Provides
- Handle explicit shared lib deps with %{_isa} notation
- Handle packages that provide automatic shared lib deps
- Correct the addedfiles reporting messages
- Memory management fixes with trim_rich_dep() function
- Minor improvements to delta_out() in librpminspect
- Skip deprule version matching on NULL in expected_deprule_change()
- Change = -> == in an if expression
- Fix three small memory leaks originating in init.c
- Honor explicit Requires deps that use zero-epoch syntax
- Patch a number of non-fatal valgrind findings
- Do not assume peer is not NULL in set_peer()
- Minor librpm interaction fixes for the unicode inspection
- Variable initialization fixes for libxdiff
- YAML parsing error for the failure_severity setting
- Do not call rpmFreeMacros() in load_macros()
librpminspect feature or significant change:
- Expand the emptyrpm inspection to handle %ghost entries
- Replace direct use of "diagnostics" with NAME_DIAGNOSTICS
- Add new 'summary' output mode (#26)
- Final update for librpminspect inspections and summary mode
- Use the -o option on msgunfmt(1) in 'changedfiles'
- Default annocheck results to RESULT_INFO
- Guard capabilities and kmod stuff in inspect.c
- Add 'rpmdeps' inspection
- Support new config file section for 'rpmdeps'
- Add 'rpmdeps' inspection
- Completed 57 test cases for 'rpmdeps' for Requires dependencies
- Set 'addedfiles' to work for single and compare jobs
- Drop use_ignore parameter from foreach_peer_file()
- Remove legacy _FORTIFY_SOURCE check in the elf inspection
- Begin handling of rich dependency syntax in 'rpmdeps'
- Add is_rich_dep() to mark rich dependency strings in deprules
- Use libxdiff instead of relying on /usr/bin/diff
- Add libxdiff directly to the source tree
- Report annocheck failures as RESULT_VERIFY
- Make annocheck failure reporting severity a config file setting
Test suite commits:
- Support older versions of rpmfluff in baseclass.py
- Use the codecs module in test_unicode.py
- Create ProvidedSourceFile for use in test_unicode.py
- Set QA_RPATHS=63 to disable check-rpaths in rpmbuild
- Improve the debugging output for failing tests
- Add test cases for the rpmdeps inspection
- In rpmdeps_requires tests, expect OK and not INFO for two
- Ensure rpmdeps Requires test bins link with test lib
- Skip tests in test_rpmdeps_requires.py that need 'elfdeps'
- Fix a few small bugs in the Alpine Linux post.sh script
- Add six remaining test_rpmdeps_requires.py test cases
- Added 54 tests for Provides dependencies in 'rpmdeps'
- Added 54 tests for Conflicts dependencies in 'rpmdeps'
- Add remaining 270 test cases for the rpmdeps inspection
- Correct weak dep test cases for 'rpmdeps'
- Skip weak dependency rpmdeps test cases for older librpm versions
- Pass --nodeps to rpmbuild in the test suite
- Force the use of %attr for add_installed_directory()
- Skip unexpanded macro test cases on ALT Linux for rpmdeps
- Use '=' and not '>=' for Provides in rpmdeps test cases
- Skip most weak dependency tests on ALT Linux
- Account for ALT Linux including Epoch values in dependencies
- Remove old have_caps_support block from test_capabilities.py
General release and build process changes:
- Updates to how Koji jobs are prepared and submitted
- Add RELEASE checklist
Changes to the GitHub Actions CI scripts and files:
- Add 'make shellcheck' target and update ShellCheck CI job
- Install findutils for the shellcheck GitHub Action
Documentation changes:
- Add changes for the 1.7 release
- Note additional dependencies in README.md
- Reformat OS list in README.md
General bug fix in the library or frontend program:
- Handle unexecutable %prep sections in 'unicode'
- Remove hardcoded maximum version check on Java bytecode
- Correct everything shellcheck found in shell scripts
- Exit the manual_prep_source() child process correctly
- Use archive_read_free() in unpack.c
librpminspect feature or significant change:
- Convert RPM header cache to a hash table, fix leak
Test suite commits:
- Define SimpleSrpmBuild for tests that only need an SRPM
- Add unicode test cases covering rpmSpecBuild() failures
General release and build process changes:
- Update the spec file template
- Drop mkrpmchangelog.sh use for Copr builds
- Remove mkrpmchangelog.sh from the source tree
- Increment version to 1.7
- s/.gz/.xz/ in .copr/Makefile
- Additional Copr build fixes
- Adjust %autosetup line for Copr builds
- Fix output formatting in utils/mkannounce.sh
- Add libicu-devel as a BuildRequires in the spec file
- Add some additional comments to the Makefile
- Add 'MIT' to the project license string
Config file or data/ file changes:
- Add a new 'macrofiles' section to the config file
- Quote forbidden Unicode code points in generic.yaml
- Comment fixes for the 'unicode' section in generic.yaml
Changes to the GitHub Actions CI scripts and files:
- Install the rust package on Alpine Linux
- Add 'cargo' to the reqs.txt list for Alpine Linux
- Install rustc and cargo on all systems now for Python cryptography
- Make sure Fedora CI instances have 'libicu-devel' installed
- Make sure ICU is installed for Extra CI targets
- Disable the Alt Linux job in Extra CI for now
- Enable Alt Linux, disable CentOS 7 in Extra CI
- Set LANG=en_US.UTF-8 when running the test suite
- icu -> icu-dev in reqs.txt for Alpine Linux
- Rename 'x86_64' job category to 'linux'
rpminspect(1) changes:
- Call load_macros() and rpmFreeMacros() from rpminspect
Documentation changes:
- Add CHANGES.md file summarizing changes per release
General bug fix in the library or frontend program:
- Fix small memory leak in macros.c
- Call rpmFreeMacros() after the disttag inspection runs
- TryExec= line parsing for .desktop files
- Remove unnecessary assert() on fname in match_fileinfo_mode
- Do not report 'OK' result in emptyrpm for expected empties
- addedfiles requires a before and after build
- Minor improvement to the text in REMEDY_ADDEDFILES
- Correctly match debuginfo trees to subpackages
- Simiply the copytree() function to remove malloc errors
- Remove unnecessary '()' from function names in error messages
- Allow exitcode parameter to be NULL in run_cmd_vpe()
- Non-zero exit from desktop-file-validate is an error
- Use realloc() instead of reallocarray()
- Remove incorrect free() call in inspect_unicode.c
- Set seen and globalresult in inspect_unicode.c
- Use a long int for linenum and colnum in inspect_unicode.c
- Comment clarification in include/constants.h
- Support rpm < 4.15.0 in the unicode inspection
- Fallback on fedora_name only if the _abbrev fields are empty
librpminspect feature or significant change:
- Support %autorelease and other macros in disttag inspection
- Check subpackages when running the 'desktop' inspection
- Support standard system icons in the 'desktop' inspection
- In 'annocheck', report the commands and exit codes
- Add list_add() to listfuncs() in librpminspect
- Use fork()/execvpe() in runcmd.c instead of popen()
- Modify inspect_annocheck.c to use run_cmd_vpe()
- Allow an optional subdirectory on run_cmd() and run_cmd_vpe()
- Use the new run_cmd_vpe() API in 'abidiff' and 'kmidiff'
- Update all run_cmd() calls to the new API
- Add load_macros() function to macros.c
- Remove code from inspect_disttag.c that's in load_macros()
- Introduce mime_type() function in magic.c
- Change UChar usage to UChar32
- Expand dump_cfg() for the -D debug mode output
- Use u_strchr32() when searching for forbidden code points
- Improve reporting in unicode with prep_source() fails
New inspections or inspection changes (not bug fixes):
- Add the 'unicode' inspection to check source code
Test suite commits:
- Collect subpackages when performing Koji build tests
- Remove musl special handling in test_abidiff.py
- Remove unused 'import subprocess' from test_abidiff.py
- Get the tearDown() functions all working correctly
- Begin test_unicode.py with unicode inspection tests
- Complete test_unicode.py and use different example code
- Add additional known bad unicode test cases
General release and build process changes:
- Expand determine-os.sh to detect Crux Linux and Alt Linux
- Add %find_lang to the package spec file
Changes to the GitHub Actions CI scripts and files:
- Support older libraries on CentOS 7
- Define OPENSSL_VERSION to 0 if it's undefined
- Initial set of changes for Alpine Linux
- Python black formatting fixes
- Install epel-release in pre.sh on centos7
- Pass CRYPTOGRAPHY_DONT_BUILD_RUST=1 to pip on centos7
- Add AlmaLinux 8 to the GitHub Actions extra-ci job
- Restore previous centos7 pip and setuptools behavior
- Add almalinux handling to extra-ci.yml
- s/dnf/yum/g in pre.sh for centos7
- Add an i386 job to extra-ci.yml
- Try using i386 command for the i386 jobs
- Install util-linux for /usr/bin/i386
- Just handle i386 build in the qemu job
- Fix 32-bit builds and add Fedora i686 CI targets
- OS_SUBDIR clean up in the Makefile
- Fixed typo in the Makefile
- Need libffi-devel even for i686 builds
- Set 32-bit build flags in ci.yml
- Fix installing libffi-devel on i686 jobs
- Add Rocky Linux 8 to the Extra CI job collection
- Fix name of Rocky Linux Docker image
- Add missing Amazon Linux CI files
- Amazon Linux lacks glibc-devel.i686, so disable some tests
- Python flake8 and black formatting fixes
- Install tar before git task on amzn
- Correct Amazon Linux name in extra-ci.yml
- Add Mageia Linux to Extra CI
- Must use dnf on Mageia Linux, not yum
- clamav-dd -> clamav-db on Mageia Linux
- Ignore top level docs in CI jobs
- Add Alt Linux coverage to Extra CI
- Remove /usr/lib/rpm/shell.req on Alt Linux
- Remove forced RPMTAG_VENDOR value on Alt Linux
- Install gcovr via pip for Alt Linux
- Add Oracle Linux 8 to the extra-ci collection
- Fix syntax error in utils/determine-os.sh
- Output "oraclelinux" instead of ${ID} for Oracle Linux
- Disable fedora:rawhide in ci.yml
- Support Alt Linux p10 (platform 10)
- Add openEuler Linux 20.03 to the extra-ci collection
- Fix openEuler detection in utils/determine-os.sh
- ShellCheck fixes for determine-os.sh
- Run extra-ci jobs for changes to utils/ files
- Disable openEuler 2.0 in extra-ci
rpminspect(1) changes:
- Handle SIGWINCH in the download progress bar display
- Use sigaction() instead of signal() in rpminspect(1)
- Discontinue realpath() call on argv[0
- Honor -T/-E correctly even with security-focused checks
- Fix the progress bar display problems for '-f -v' mode.
Documentation changes:
- Update the AUTHORS.md file
- Drop mention of LibreSSL from README.md
- Add readthedocs rst source files
- Update translation template
- Link to generic.yaml from configuration.rst
- Mention readthedocs.io in README.md
- Update list of CI Linux distributions in README.md
General bug fix in the library or frontend program:
- Only look at RPMTAG_SOURCE entries for removed sources
- Remove unnecessary empty list check in inspect_upstream.c
- Ignore noarch packages in the 'arch' inspection
- Drop all HEADER_* defines, switch to NAME_* (#397)
- desktop: demote as INFO a missing Exec w/ TryExec (#395)
- Add 'types' block support for the config file (#404)
- Check return code of yaml_scan_parser()
- Use a simpler and correct regexp for the disttag inspection (#412)
- Translate some additional warning messages
- Use cap_compare() when comparing file capabilities (#410)
- Skip .spec files in the types inspection
- Description and Summary changes are reported as INFO
- Fall back on full license name if there are no abbrevs
- Follow-on to the license inspection changes for fedora_name
- Ignore "complex" spec file macros in get_macros()
- Fix a lot of xmlrpc-c memory leaks in builds.c
- Support the legacy libcurl API in librpminspect
- Fix SIGSEGV caused by misplaced xmlrpc_DECREF() call
- Adjust where the 'good' bool is set in the emptyrpm loop
- Slight code reformatting in inspect_disttag.c
- Read file capabilities from the RPM header
- Size origin_matches at 3 rather than 1.
- Non well-formed XML fails xml, but invalid is info
- Handle DT_RUNPATH/DT_RPATH owned directories correctly
- Convert the security rules from a hash table to a list
- Ensure the annocheck inspection behaves for build comparisons
librpminspect feature or significant change:
- Add list_contains() to librpminspect
- Skip source packages in 'emptyrpm'
- desktop: factor check for Exec
- desktop: factor check for Icon
- desktop: reset severity/waiverauth before add_result()
- Add debugging output to the YAML config parsing code
- Support relative ignore globs (#404)
- Report new patches at the INFO level only
- Allow directories owned by the build in 'runpath'
- Always run inspections with possible security results
- Define security_t and secrule_t in librpminspect
- Add strshorten() to strfuncs.c
- Add libcurl download progress bars for 'rpminspect -v'
- Document the escape sequences used for the progress bar
- Replace get_header_value() with get_rpm_header_value()
- Remove get_cap() function and fix test_ownership.py
- Add security rule reading code to librpminspect
- Removed RESULT_WAIVED from severity_t
- Improve remedy reporting to tell users what data file to edit
- Improve permission and ownership reporting strings w/ fileinfo
- Properly override config file blocks in subsequent reads
- Move match_path() and ignore_path() to paths.c
- Set OPENSSL_API_COMPAT in lib/checksums.c
- Add product security workflow functions and test cases
- Product security workflow enhancement for SECRULE_SECURITYPATH
- Product security workflow handling for SECRULE_MODES
- Product security workflow handling for SECRULE_CAPS
- Product security workflow handling for SECRULE_SETUID
- Product security workflow handling for SECRULE_WORLDWRITABLE
- Product security workflow handling for SECRULE_EXECSTACK
- Product security workflow handling for inspect_elf.c
- Do not warn if RPM header is missing a tag
- Suppress debug output for the config file parsing by default
New inspections or inspection changes (not bug fixes):
- Output new 'diagnostics' section in rpminspect report (#280)
Test suite commits:
- Python black fixes for baseclass.py
- Python black fixes for baseclass.py
- Update unit tests for removal of RESULT_WAIVED
- Modify the 'ownership' tests for old rpm releases and non-root
- Increase test suite timeout to 900
- Support really old versions of RPM (4.0.4) and Alt Linux
General release and build process changes:
- Generate regular changelog in utils/srpm.h
- Skip branches without targets in submit-koji-builds.sh
- Simplify the utils/determine-os.sh script
- Fix $(OS) check in the Makefile
- BuildRequires libmandoc-devel >= 1.14.5
Config file or data/ file changes:
- Add commented out per-inspection ignore blocks
- Note all regular expression settings use regex(7) syntax
- Note size_threshold can be the keyword 'info'
Changes to the GitHub Actions CI scripts and files:
- Fedora and CentOS systems in ci need 'diffstat'
- opensuse-leap CI job requires 'diffstat'
- Fix the Debian CI jobs in GitHub Actions
- Fix and enable the Ubuntu extra-ci job in GitHub Actions
- Use 'pip' instead of 'pip3' for the Ubuntu command
- Use 'apt-get -y install' in ubuntu's pre.sh
- Enable the opensuse-tumbleweed GHA job again
- Make sure the Gentoo GHA job has 'diffstat'
- Get the Arch Linux GHA job working again
- Use ubuntu:latest for the ubuntu GHA image
- Fix the ubuntu GitHub Actions extra-ci job
- Make sure the centos8 job has git available before cloning
- Install cpp-coveralls using pacman on Arch Linux
- Install cpp-coveralls using pip on Arch Linux
- Install cpp-coveralls in pre.sh on Arch Linux
- Install required Python modules in pre.sh on Arch Linux
- Do not upgrade pip on Arch Linux, go back to using pip.txt
- Do not run 'apt-get update' as a second time on Debians systems
- Update the OpenSUSE Tumbleweed files, but disable it anyway
- Manually install mandoc on centos7 for now
rpminspect(1) changes:
- Allow any number of builds specified for fetch only mode
- Fix fetch only mode download directory
- Do not crash with the -c option specifies a non-existent file
- Remove what working directories we can
Documentation changes:
- Update license table in README.md
- Update GitHub Action status badges in README.md
- Update TODO list
General bug fix in the library or frontend program:
- Use llabs() instead of labs() in the filesize inspection
- Improve 'has invalid execstack flags' reporting
- Use long unsigned int to report size changes in 'patches'
- Fix some errors in the changedfiles inspection
- Check DT_SONAME in is_elf_shared_library()
- Skip debuginfo and debugsource files in abidiff
- Report INFO level for patches findings by default
- Handle old or broken versions of libmagic in 'changedfiles'
- Use json_tokener_parse_ex() to get better error reporting
- Fix reading of the javabytecode block in the config file
- Catch missing/losing -fPIC correctly on .a ELF objects (#352)
- Refactor elf_archive_tests() and its helper functions
- Followup fix for find_no_pic, find_pic, and find_all
- Drop DEBUG_PRINT from source generated by pic_bits.sh
- Clean up the config file section reading code
- Perform symbolic owner and group matching in 'ownership' (#364)
- Restrict download_progress() to systems with CURLOPT_XFERINFOFUNCTION
- Report annocheck failures correctly in librpminspect.
- Call mparse_reset() before mparse_readfd()
- Ensure ctxt->lastError.message is not NULL before strdup (#382)
- Handle corrupt compressed files in 'changedfiles' (#382)
- Correctly find icons for desktop files in subpackages (#367)
- Followup to the Icon= check in the desktop inspection (#367)
librpminspect feature or significant change:
- Change strappend() to work as a variadic function
- Define inspection_ignores in struct rpminspect
- Add add_ignore() to init.c
- Stub out libcurl download progress callback function
- Read per-inspection ignore lists from the config file.
- Implement per-inspection path ignore support (#351)
- Allow 'size_threshold: info' in the config file (#261)
- Check ignore list in 'files' for path prefixes to ignore (#360)
- Support a list of expected empty RPMs in the config file (#355)
- Disable debugging output for the ignore lists in init.c
- Drop debugging output in the 'xml' inspection
Test suite commits:
- Update the 'changedfiles' test cases
- Make sure abidiff test cases add a DT_SONAME to the test lib
- Update the test/test_patches.py cases for patches changes
- The lost PIC tests need to invoke gcc with -fno-PIC
- Make sure brp-compress is disabled in test_manpage.py
General release and build process changes:
- Trim git commit summary prefix from changelog lines
- Recommend or Require libabigail >= 1.8.2
- Enable werror=true and warning_level=3 in default_options
- Improve mkannounce.sh to handle stable and devel releases
Changes to the GitHub Actions CI scripts and files:
- Restrict style checks to specific directories
- Adjust lib/meson.build for Fedora rawhide
- Drop gate.yml and begin non-x86_64 arches in ci.yml
- Add armv7, aarch64, and s390x to the other_arches job
- Modify file triggers and matrix use in ci.yml
- Split 32-bit osdeps out to post.sh scripts in osdeps/
- Split style.yml in to shellcheck.yml and python.yml
- Rewrite extra-ci.yml to use the matrix strategy method for GHA
- Move the emulated CI jobs to extra-ci.yml
- s/pkg/pki/ for the centos jobs
- Debian and Ubuntu fixes for CI
- Python pip on Debian is called 'pip'
- Try to fix just debian:stable
- Enable debian:testing in extra-ci.yml
- Enable centos8 in extra-ci.yml again
- Enable centos7 in extra-ci.yml again
- Enable opensuse-leap and gentoo in extra-ci.yml again
- Run each test script individually on emulated targets
- Try a different syntax for the emulated matrix jobs
- Install s390 glibc headers on s390x fedora systems
- Add stretch and buster to the emulated targets list
- Drop Debian buster from the emulated targets
- Install gcc-multilib only on Debian x86_64 and s390x systems
- libc-dev:i386 -> libc6-dev:i386
- Disable Debian targets in extra-ci temporarily
- s/AUR/git/g in osdeps/arch/post.sh
Documentation changes:
- Update TEST_METADATA status in TODO and MISSING
General bug fix in the library or frontend program:
- Handle compressed but otherwise empty man pages (#308)
- Correct misuse of 'entry' with 'hentry' variables (#321)
- Use hentry->key over hentry->value in 'pathmigration'
- Change init.c error reporting over to err/warn functions
- In read_cfgfile(), keep track of block depth correctly (#329)
- A few more yaml parsing fixes for block vs group
- Report libclamav version and CVD versions (#258)
- Ensure first argument of warn(3) is a format string.
- Get rid of invalid free() in get_product_release()
librpminspect feature or significant change:
- Migrate more code off hsearch and to uthash
- Replace hsearch() with uthash in the kmod inspection
- Replace hsearch() with uthash in the abidiff inspection
- Change tsearch/twalk use to uthash
- Finish normalizing all the error reporting statements
- Add inspection_id() to librpminspect
New inspections or inspection changes (not bug fixes):
- Report the program version number in the results (#309)
- Disable broken ELF heurisitic and size limit in libclamav
- Modify dump_cfg() to write valid YAML to stdout (#306)
Test suite commits:
- Flake8 fixes for test_manpage.py
- s/self.rpm/self.after_rpm/ in two test_manpage.py tests
- Detect 32-bit and musl presence in test_elf.py
- Skip lost -fPIC tests if gcc lacks -m32 support
Documentation changes:
- Update translation template
General bug fix in the library or frontend program:
- Remove duplicate elf_end() call in init_elf_data() (#303)
General release and build process changes:
- Move the master branch to version 1.3
- Change 'Suggests' to 'Recommends' in the spec file
- Create mkannounce.sh to help make release announcements easier
- shellcheck fixes for mkannounce.sh
Config file or data/ file changes:
- Add 'kmidiff' and 'politics' to the inspections section of generic.yaml
Changes to the GitHub Actions CI scripts and files:
- Build and install 'rc' from source on opensuse-leap
- Add .github/ and osdeps/ directories to extra-ci.yml
- Build and install 'rc' from source on opensuse-tumbleweed
- Adjust curl(1) command line used for 'rc' in opensuse CI jobs
- s/PowerTools/powertools/g in the centos8 PKG_CMD definition
- The output of html2text on opensuse systems is different
- Fixes for GitHub Actions on Debian and Ubuntu
- Disable Rust support in pip modules, more extra-ci fixes
- Update pip and setuptools on debian and ubuntu CI jobs
- Make sure pip is updated on debian, centos7, and centos8
- Fixes for extra-ci on arch, centos7, centos8, and debian
- Adjust docker image names for opensuse and arch
- Add Gentoo Linux to the Extra CI set
- extra-ci.yml typo fix for the gentoo job
- Use gentoo/stage3 as the container for the gentoo CI job
- Disable opensuse-tumbleweed and archlinux CI jobs
- Make sure util/determine-os.sh picks up Gentoo Linux
- Use 'pip install' for PIP_CMD on gentoo
- Set PIP_CMD to 'pip install -user' for gentoo
- Stop doing an 'emerge --sync' on the gentoo CI job
- Replace 'emerge --sync' with a manual portage sync
- Use 'emerge-webrsync' to update portage on gentoo
rpminspect(1) changes:
- Support the new output function call syntax (#264)
Documentation changes:
- Add doc/git.md to explain source control conventions
- Update doc/git.md on how to track upstream
- Update TODO and README.md files
- Typo fix in README.md
General bug fix in the library or frontend program:
- Use warn() for non-fatal errors in mkdirp()
- Swap out some more fprintf()/fflush() reporting with warn()
- #include <err.h> in peers.c and rmtree.c
- Correctly handle the -w option on rpminspect(1) (#256)
- Drop the relative path handling for the '-w' option
- Skip debug packages in 'filesize', display changes correctly
- Fix YAML config file reading for BLOCK_INSPECTIONS
- Expand dump_config() to cover all config file settings
- Simplify list_to_string() so it handles 1-elements lists right
- Output the system-out xunit portion as CDATA (#264)
- Slightly change how strxmlescape() works
- Fix block handling problems in the YAML config reader
- Note single builds cannot be rebases in is_rebase()
- Handle a NULL from list_to_string() in abspath()
- Fix some memory leaks found by valgrind
librpminspect feature or significant change:
- Require libabigail >= 1.8 in rpminspect.spec.in
- Enable multiple --headers-dir1 and --headers-dir2 args in 'abidiff'
- Rename HEADER_MAN to HEADER_MANPAGE (#264)
- Add inspection_header_to_desc() to librpminspect (#264)
- Move init_elf_data() to readelf.c, move data to struct rpminspect
- Remove check_ipv6() from inspect_elf.c
- Add abspath() to canonicalize path strings
- Add strxmlescape() to strfuncs.c in librpminspect (#264)
- Handle the empty string case in abspath()
- Expand dump_cfg() to show 'runpath' settings
- Hook up the driver for the 'runpath' inspection
- Add uthash and move the file matching code to it.
New inspections or inspection changes (not bug fixes):
- Add 'xunit' output format support (#264)
- Create the 'badfuncs' inspection
- Add the 'runpath' inspection to librpminspect
- In the runpath inspection, fail if DT_RPATH and DT_RUNPATH exist
- Do not match path prefixes in the runpath inspection
Test suite commits:
- Update inspect_elf.c unit tests for librpminspect changes
- Add 'badfuncs' test cases
- Rename test/data/lto.c to test/data/mathlib.c
- Install 'patchelf' for tests on fedora and centos
- Pass -D to rpminspect in the test suite
- Add integration tests for the 'runpath' inspection
- Python flake8 and black fixes in test_runpath.py
- Python black fixes for test_runpath.py
- For BUILDTYPE=release, generate the correct type of changelog
- Minor logic error in submit-koji-builds.sh
- Fix reading existing spec file in submit-koji-builds.sh
- Bump development build version to 1.2
- Use is_rebase() in the 'upstream' inspection
- Use rpmtdSetIndex() and rpmtdGetString() in get_header_value()
- Add get_rpmtag_fileflags() to files.c and call from extract_rpm()
- Use correct Version and Release values in download_build()
- #include <rpm/rpmfiles.h> -> #include <rpm/rpmfi.h>
- Add the 'config' inspection to librpminspect
- Rephrase reporting messages in the 'config' inspection
- Add the 'doc' inspection to librpminspect
- Update TODO list
- Minor updates to try and make gate.sh more reliable
- Add config and doc to the inspections list in generic.yaml
- Rename the '%files' inspection to 'files' (#194)
- Modify baseclass.py to allow 'before' and 'after' NVR tuples
- Use the after tuple to override the NVR in test_abidiff.py
- Use the after tuple to override the NVR in test_upstream.py
- Write rpminspect output to a file in the test suite
- Add 28 test cases for the 'config' inspection
- Fix the errors in the 'config' inspection found by the test suite
- Fix Python problems in the test suite reported by black and flake8
- Add Makefile targets for black and flake8
- One more formatting issue reporting by Python black in test_config.py
- More 'python black' formatting errors reported for test_config.py
- https://mandoc.bsd.lv -> http://mandoc.bsd.lv
- Add a -D/--dump-config option to rpminspect(1)
- Use global reported variable in 'config' inspection
- Fix reporting errors in the 'doc' inspection
- Add test_doc.py with 'doc' inspection test cases
- Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace.
- Add init_rebaseable() to librpminspect
- Check the rebaseable list in is_rebase() in librpminspect
- Update TODO list
- Define a new GitHub Action using utils/gate.sh
- Update the README.md file
- shellcheck fixes for utils/gate.sh
- Use utils/find-ninja.sh to determine what ninja-build command to use
- Install fedora-packager for the gate.yml GitHub Action
- Remove before and after variables from gate.sh; unused
- Remove unnecessary basename() calls in inspect_upstream.c
- Do not assume an or bn contain strings in is_rebase() (#196)
- Adjust what things run during with GitHub Actions
- Add get_rpm_header_string_array() to librpminspect
- Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c
- free() allocated output string in inspect_changelog.c on errors
- s/10240/16384/ in archive_read_open_filename() call in unpack.c
- Add the 'patches' inspection to librpminspect
- Add uncompress_file() to librpminspect
- Add filecmp() and use that in place of zcmp/bzcmp/xzcmp
- README.md updates
- Restrict some GitHub Actions to source code and test suite changes.
- Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined
- Go ahead and wrap the rest of the libarchive compression filters
- s/class Test/class /g
- Make sure uncompress_file() supports xz compression
- Handle more compressed file MIME types.
- Add test_changedfiles.py to the test suite.
- Add test_patches.py with test cases for the 'patches' inspection
- flake8 fixes in the test suite
- Python format fixes for test_changedfiles.py
- Python format fixes in test_patches.py
- More Python format fixes for test_patches.py
- Remove unnecessary 'a' in DESC_PATCHES
- Better explanation as to why the EmptyLicenseTag tests are skipped.
- Test suite cleanup; add rebase= and same= to TestCompareSRPM
- Black formatting fixes for the test suite.
- Remove unused imports in test_upstream.py
- Revert black fixes for test_config.py
- Fix my email address in test suite source files.
- Support single package URLs for before and after builds (#190)
- Handle invalid/missing RPMs in get_product_release()
- Use warnx(), errx(), and err() in src/rpminspect.c
- Modify submit-koji-builds.sh to pick up all pkg-git branches.
- Update the rpminspect.1 man page to reflect current status.
- Update translation template files in po/
- Support relative directory paths for the -w option (#188)
- Implement the 'virus' inspection and add test cases for it.
- Update po/ template files
- Python formatting fixes for test_virus.py
- Update the osdeps/*/reqs.txt files.
- More osdeps updates for the clamav needs
- Install 'xz' for the 'style' GitHub Action
- Fix a variety of small memory leaks in librpminspect
- Stop the freshclam service for the Ubuntu gate job
- Support slightly older versions of libclamav in inspect_virus.c
- Add the 'politics' inspection to librpminspect.
- In tearDown() in the test suite, call rpmfluff clean() methods
- Add test_politics.py with 'politics' inspection test cases
- Python black format fixes for test_politics.py
- 'it should added' -> 'it should be added'
- Increase the runtime timeout for test_virus.py
- Install the timeout decorator on all OSes in our GitHub Actions
- Install timeout-decorator with pip, not timeout
- Expand librpminspect with support for SHA-224, SHA-384, and SHA-512
- Define DEFAULT_MESSAGE_DIGEST in constants.h and use that.
- Replace some fprintf()/fflush() calls with warn()/warnx() calls
- Rename the 'DT_NEEDED' inspection to 'dsodeps'
- Rename 'LTO' inspection to 'lto'
- Update translation template and fix two incorrect error strings.
- Note all valid message digests in data/politics/GENERIC
- Improve reporting in the patches inspection
- Only fail 'changedfiles' for VERIFY and higher results
- If 'removedfiles' only reports INFO messages, pass the inspection
- If 'addedfiles' only reports INFO results, pass the inspection
- If 'patches' only reports INFO results, pass the inspection
- No need to check value of allowed in permissions_driver()
- Do not let INFO results fail the 'doc' inspection.
- Do not let all INFO results in 'upstream' fail the inspection
- Fix RPMFILE_FLAGS handling for %config files (#221)
- Still report file changes in the 'config' inspection for rebases
- Correctly check RPMFILE_DOC flags in the 'doc' inspection
- Include rpm/rpmfi.h insted of rpm/rpmfiles.h
- Only check regular files and symlinks in the 'doc' inspection
- Remove unnecessary assert() statements in filecmp()
- Remove incorrect warnx() reportings based on filecmp() return value
- Exclude man pages from the 'doc' inspection
- Honor the -a command line option for downloads as well as runtime (#233)
- Allow optional 'commands' block in the config file
- Fix assorted non-critical memory leaks
- Remove unnecessary warn() after a failed stat()
- Additional memory fixes for the abidiff inspection (#244)
- Free ELF symbol names list in find_lto_symbols() before return
- Followup to the memory fixes for read_abi() and free_abi()
- Prevent invalid pointer dereferencing in invalid result in 'patches' (#245)
- Avoid reusing the same abi_pkg_entry_t struct in read_abi()
- Allow a set of excluded path prefixes in 'pathmigration'
- Fix the YAML parsing for the pathmigration block
- Document the BRANCHES variable for 'make koji'
- Include the .asc file when submitting new Koji builds (#191)
- Include the .asc file in the spec file
- Formatting fixes in Makefile help output
- Begin config file restructuring starting with rpminspect-data-generic
- Support multiple configuration files.
- Docs work in progress.
- Only fail the annocheck inspection for RESULT_VERIFY.
- Read debuginfo if available when running the 'annocheck' inspection.
- Add the '%files' inspection to librpminspect
- Add attribute((sentinel)) to the run_cmd() prototype
- Add test suite cases for the '%files' inspection.
- Added the 'types' inspection to compare MIME types between builds.
- Update TODO file
- Update the MISSING file
- s/rpminspect.yaml/generic.yaml/ in the Makefile and README
- Skip debuginfo and debugsource packages in the 'types' inspection
- Add test_types.py to the test suite
- Note the 'types' inspection generic.yaml
- Modify add_entry() in init.c to skip duplicate entries
- Start GitHub Action workflow files for rpminspect.
- Install meson in ci-ubuntu.yml
- Change 'nls' option in meson_options.txt to a boolean
- Install gettext for ci-ubuntu
- Add more build dependencies to ci-ubuntu.yml
- Drop the 'method' parameter from dependency() lines in meson.build
- Split xmlrpc libs to separate dependency() lines in meson.build
- More xmlrpc updates for meson.build and lib/meson.build
- Try to support systems with xmlrpc-c without the pkgconfig file.
- Changes to build on Ubuntu, specifically the GitHub Actions system
- Syntax error in ci-ubuntu.yml
- Add ci-fedora.yml for GitHub Action CI on Fedora
- Fix errors in ci-fedora.yml
- Put all of the ci-ubuntu.yml steps in ci-ubuntu.yml
- Remove install-libmandoc.sh and ubuntu-pkgs.sh helper scripts.
- Install python3-setuptools in ci-ubuntu.yml
- Install rpm-build in ci-fedora.yml
- Install libxmlrpc-core-c3-dev in ci-ubuntu.yml
- Disable ci-ubuntu.yml for now, enable code coverage in ci-fedora.yml
- Remove Travis-CI files.
- coverage fixes for ci-fedora.yml
- Install git in ci-fedora.yml
- Enable manual dispatching of the CI on Fedora tests
- Remove actionspanel thing for GitHub Actions, drop Coveralls block
- Comment the ci-fedora-yaml file
- Fix the 'elf' inspection and test_elf.py on Ubuntu
- Enable the ci-ubuntu GitHub Action again
- Check all return values of getcwd()
- Ignore installed Python modules with pip3 in ci-ubuntu.yml
- Build 'execstack' test program with -Wl,-z,lazy
- Add ci-centos8.yml to enable CI on CentOS 8 as a GitHub Action
- s/centos8:latest/centos8/g
- Trying 'container: centos:centos8'
- Drop 'sudo' from ci-centos8.yml
- Rename README to README.md
- Enable GitHub Action for CI on CentOS 7
- Drop -I from the pip install line in ci-centos7.yml
- Use the 'make instreqs' target for install test suite deps.
- Add back 'dnf -y install 'dnf-command(builddep)'' to ci-fedora.yml
- Nope, that doesn't do it. Just install make in ci-fedora.yml first
- More 'make instreqs' fixes.
- s/scripts/utils/g in the Makefile
- s/TOPDIR/topdir/g in the Makefile
- Install make in ci-centos7.yml
- Move REQS and PIP lists out of the Makefile to files in osdep/
- '^$$' -> '^$'
- Slightly different sourcing of the osdep/ files
- Set OS using := in the Makefile
- Make the reqs.txt files in osdep/ contain all deps
- linux-headers -> linux-headers-$(uname -r) for Ubuntu
- Remove html401-dtds from osdep/centos8/reqs.txt
- Use `` instead of $() since this list goes through make(1)
- Does $(shell uname -r) work in this case?
- More osdep/ work and simplification.
- Rename 'osdep' to 'osdeps'
- meson patches for opensuse
- Move mandoc installation to post.sh in osdep/ubuntu
- Add GitHub Action for CI on OpenSUSE
- opensuse:latest -> opensuse/leap:latest
- Install tar in ci-opensuse.yml
- Install gzip in ci-opensuse.yml
- More fixes for ci-opensuse.yml
- Small fixes to determine-os.sh
- ci: Add Python linting jobs
- ShellCheck fixes for the regress/ scripts
- ci: Add ShellCheck to lint shell scripts
- Adjust how the Makefile reports unknown operating system.
- Just check $ID in determine-os.sh for opensuse
- Use pip for PIP_CMD on opensuse-leap
- Update the centos images before doing anything else.
- Install curl in opensuse-leap
- Get 'rc' from Fedora on opensuse and copy it to /usr/local
- Install kernel-default-devel for opensuse CI
- Move the 'uses' part of the centos CI jobs to the first step
- ShellCheck fixes for the utils/ scripts.
- Some flake8 fixes in test/, using yapf
- Combine all of the GitHub Actions CI runs in to ci.yml
- Manually install rpmfluff on CentOS 7; pip is failing here
- Use rpmfluff-0.5.7 explicitly for centos7
- Use rpmfluff-0.5.6 on centos7
- OK, let's try rpmfluff-0.5 for centos7
- Last try, rpmfluff-0.5.4.1 for centos7
- Back to trying to manually install rpmfluff for centos7
- Style the Python code with Black
- Add the Black formatting commit to blame revision ignore list
- OK, just copy rpmfluff.py in place
- Make sure to manually install rpmfluff-0.5.7.1 for centos7
- Don't assume we have a header or even a list of files (#161)
- python: flake8: drop * imports
- python: flake8: wrap long lines to less than 100 characters
- python: flake8: drop unused imports
- python: flake8: remove unused local variables
- python: flake8: add PEP8 whitespace
- python: flake8: mark in-line bash scripts as raw strings
- python: rename several duplicate test cases
- ci: merge style workflows
- Adjust rpminspect.spec.in for file moves and default changes.
- Return the reallybadword to the metadata tests
- Adjust test_metadata.LosingVendorCompareKojiBuild to expect VERIFY
- The shared libmandoc check should not look for a static libmandoc
- Update the AUTHORS file
- Rename ipv6_blacklist to forbidden_ipv6_functions
- Rename stat-whitelist to fileinfo
- Rename 'caps_whitelist' to 'caps' and drop the use of 'whitelist'
- Rename abi-checking-whitelist/ to abi/ in /usr/share/rpminspect
- Rename 'version-whitelist/' to 'rebaseable/' in /usr/share/rpminspect
- Rename "political-whitelist/" to "politics/" in /usr/share/rpminspect
- Drop unnecessary method re-definitions in base test classes
- Use super() rather than explicitly calling the parent class
- Call configFile() on object instance rather than using the parent class
- Upload coverage report to codecov
- Improve the error reporting for test result checking
- Convert to AUTHORS.md file, add Makefile target to generate it.
- Introduce the 'movedfiles' inspection and a lot of other fixes (#155)
- AUTHORS -> AUTHORS.md in rpminspect.spec.in
- Add basic tests for the filesize inspection
- Multiply the file size difference before dividing
- Update README.md
- Update README.md (more Markdown changes)
- Update POTFILES and rpminspect.pot
- chmod 0755 test_filesize.py
- tests: optionally check the result message
- tests: add further filesize tests for shrinking files
- inspect_filesize: drop extra - from the message about file shrinkage
- Enable 'permissions' inspect for single build analysis.
- Add 24 new test cases to cover the 'permissions' inspection.
- chmod 0755 test_permissions.py
- Make sure all RESULT_INFO results are set to NOT_WAIVABLE
- Fix some specific problems with the 'permissions' inspection.
- Pass "-r GENERIC" to rpminspect in the TestCompareKoji class
- Add 12 more permissions test cases for setuid file checks
- Update TODO list
- Update test_symlink.py tests for new waiver_auth values
- Add a fedora-rawhide job and renamed 'fedora' to fedora-stable
- Update the rpminspect.pot translation template
- Relicense librpminspect (lib/ and include/) as LGPL-3.0-or-later
- Ignore .tox/ subdirectory
- License the rpminspect-data-generic subpackage as CC-BY-4.0
- Add a copy of the Apache 2.0 license for the 5 files in librpminspect
- Update the License tag in the spec file and the %license lines
- Add debian-testing as a CI workflow; add missing osdeps files.
- Update determine-os.sh to handle Fedora stable and rawhide
- Drop the use of 'sudo' in ci.yml
- sudo required for Ubuntu CI job, install make for debian-testing
- See what $ID is set to in determine-os.sh
- Workaround a bug in meson 0.55.0 for Fedora CI jobs
- Add 'debian' catch to utils/determine-os.sh
- Rename 'osdeps/debian-testing/' to 'osdeps/debian/'
- Add opensuse-tumbleweed to the CI job list
- Add libmagic-dev to osdeps/debian/reqs.txt
- Fix memory corruption in init_rpminspect
- Add comment clarifying the License tag in the spec file.
- If check_results() raises AssertionError, dump the JSON output
- Fix test_changelog.py test cases that are failing.
- Fix UnbalancedChangeLogEditCompareKoji
- Handle rpm versions with x.y.z.w version numbers in test_symlinks.py
- Fix mandoc build problems in opensuse-tumbleweed CI job
- Install gcovr using pip on opensuse-tumbleweed
- Handle systems that lack pkg-config files for libelf and libcap
- Add archlinux CI job in GitHub Actions
- Forgot --noconfirm on the 'pacman -Syu' line.
- Add missing DESC_MOVEDFILES block to inspection_desc()
- More minor fixes to the Arch Linux CI job.
- Install gcovr with pip for the Arch Linux CI job.
- Support building on systems that lack <sys/queue.h>
- Add detection for <sys/queue.h> to meson.build
- Ensure an int is used for snprintf() in inspect_manpage_path()
- WIP: 'abidiff' inspection
- Only report permissions change if there is a mode_diff (#181)
- Fix -Werror failures in inspect_abidiff.c
- Add sl_run_cmd() to librpminspect.
- Add get_arches() to librpminspect
- WIP: abidiff inspection
- Some minor edits to the README.md file
- More minor updates to the README.md file
- Replace get_arches() with init_arches()
- Add test_addedfiles.py to the integration test suite
- Expand find_one_peer() to soft match versioned ELF shared libraries
- Add the beginnings of the 'abidiff' inspection code.
- Report out findings in the abidiff inspection.
- Update the test suite to cover rpmfluff 0.6
- libmandoc configure workaround needed on Debian too
- shellcheck fixes for the scripts in utils/
- Add abi.c, the code that reads in the ABI compat level files (#144)
- Be sure to close the open file before exiting init_fileinfo()
- Python formatting cleanups
- Add --diff to the Python format checker
- Add new setting to abidiff section of the config file
- Add -n/--no-rebase command line option to disable rebase detection
- Store size_threshold as a long int rather than a char *
- Check abidiff(1) results against the ABI compat level definitions (#144)
- Add 'apt-get -y install libgcc-s1:i386' to pre.sh for Debian
- Add integration test cases for the abidiff inspection (#144)
- Add 'dpkg --configure -a' to pre.sh for debian
- Install libterm-readline-perl-perl for debian CI
- Install libabigail for Fedora and CentOS CI jobs
- libgcc-s1:i386 -> lib32gcc-s1 for debian CI
- Install libabigail for opensuse-leap, opensuse-tumbleweed, and arch CI
- Install libabigail for debian and ubuntu CI
- Install libabigail-dev for debian and ubuntu, not libabigail
- Install libabigail-tools on opensuse-leap and opensuse-tumbleweed
- Install libabigail-git for arch linux CI
- Move free_argv_table() to runcmd.c
- Install 'abigail-tools' for debian-testing and ubuntu CI
- Install libabigail using the Arch User Repo on arch CI
- Explain the osdeps/ subdirectory.
- No, just clone libabigail from git and build it manually on arch
- Add beginning of kmidiff inspection, put ABI functions in abi.c
- Read list of possible kernel executable filenames from the config file.
- Drop abidiff_ and kmidiff_ from extra_args; add kernel_filenames
- Just call the abidiff and kmidiff extra args settings "extra_args"
- Define 'kmi_ignore_pattern' in the config file.
- Handle builds that lack all debuginfo packages (#186)
- Do not assume peer->after_hdr exists (#187)
- Store copy of original pointer in strsplit() to free at the end.
- Use mmap() and strsplit() in read_file() rather than a getline() loop
- Fix memory leaks in abi.c functions
- open() failure in readfile() is not fatal, just return NULL
- Add utils/gate.sh
- Have check_abi() pass back the ABI compat level found
- Update descriptions for abidiff and kmidiff inspections
- Hook up the kmidiff inspection.
- Use read_file() in init_fileinfo() and init_caps()
- Use read_file() in validate_desktop_contents()
- Use read_file() in disttag_driver()
- Adjust how init_fileinfo() and init_caps() iterate over file contents
- Fix 'tox -e format' style problems found.
- Avoid comparing elf files that are not shared libraries
- Support --kmi-whitelist in the kmidiff inspection
- Trim worksubdir from paths in reported abidiff and kmidiff commands
- Remove the kmi_ignore_pattern setting for the config file.
- Create include/queue.h to replace the _COMPAT_QUEUE blocks everywhere
- Update AUTHORS.md
- Report metadata changes for rebased packages as INFO
- Do not fail the specname inspection when given a non-SRPM
- For passing upstream inspections, do not report a remedy string.
- Do not fail the lostpayload inspections if it only gives INFO messages
- Clarify unapproved license message in the license inspection
- Use FOPEN_MAX for nopenfd parameter in nftw() calls
- Make sure to close open file descriptors from get_elf() calls.
- Include 'src' architecture in the rpminspect runs in gate.sh
- Make sure kmidiff is listed in the spec file
- TODO updates
- Update rpminspect.pot and POTFILES for translations
- Use this project's user.name and user.email for Koji builds
- Use YAML for the rpminspect configuration file and profiles
- Reduce the number if (null) prints in debug mode for shellsyntax
- Update README
- Fixes a ValueError if hostname has no periods
- Remove '#include <iniparser.h>' from rpminspect.h
- Install python3-pyyaml in the Docker test environment.
- Use fedora:rawhide for the Docker tests.
- Try multiple ways of finding the kernel development files in test_kmod.py
- Syntax error in test_kmod.py
- Force kver in list iteration to a string.
- Update 'hardened' annocheck definition, add another LTO prefix
- Debugging output in inspect_lto.c
- In test_ownership.py, use the built rpminspect rather than a script.
- More debugging output in inspect_lto.c
- In find_lto_symbols(), start at SHT_PROGBITS instead of SHT_SYMTAB.
- In test_symlinks, use built rpminspect rather than a shell script.
- Use built executables in test_upstream.py tests rather than scripts.
- Add '%global __os_install_post %{nil}' to rpmfluff spec headers.
- Make sure man pages we expect gzipped are gzipped in test_manpage.py
- Set QA_SKIP_BUILD_ROOT=1 in %install in test_symlinks.py tests.
- Add '%global __arch_install_post %{nil}' to symlinks spec headers.
- Install kernel-core for the test suite.
- Find the kernel build directory in test/data/derp-kmod/Makefile
- Skip ELOOP symlink tests if rpm >= 4.15.90 is used
- Pass the kernel build directory to derp-kmod/Makefile from test_kmod.py
- Install 'make' in the Docker test environment
- Support Linux 5.6.0 struct proc_ops in derp-kmod
- Final derp-kmod fixes for the 5.6.0 and higher kernels.
- rpminspect.conf -> rpminspect.yaml in rpminspect.spec.in
- Set default JVM byte code version to 43 in rpminspect.yaml
- Update the local test instructions to run individual test scripts.
- Report changed files as RESULT_INFO when rebasing packages (#150)
- Ignore missing XML entity definition errors (#148)
- Add some basic verbose output from rpminspect(1)
- Split 'emptyrpm' inspection in to 'lostpayload' and 'emptyrpm' (#147)
- Move () usage for DESC* macros to inspect.h
- Handle INSPECT_LOSTPAYLOAD in inspection_desc()
- Search correct files for POTFILES additions.
- Update POTFILES and rpminspect.pot template
- Add DESC_PATHMIGRATION and reformat the struct inspect for reading.
- Small update to the MISSING file.
- Install python3-devel for the test suite.
- Install libffi-devel for the test suite
- Use the rpm Python module in test_syslinks.py to get rpm version.
- Add check_results() to test/baseclass.py
- Report %changelog section differences as INFO (#123)
- Report dangling symlinks as INFO for now (#145)
- Add get_specfile_macros() and get_macros() to librpminspect (#152)
- Fix ELF_K_AR handling in get_elf_machine() (#153)
- Remove stray 7 from an #include line
- Don't worry about EM_BPF objects in ELF_K_AR file types (#153)
- Fix -fPIC loss/gain reporting in the elf inspection (#153)
- Support macros in the Release tag in the 'disttag' inspection (#152)
- Simplify the get_elf_section() function a bit.
- Do not report all after objects without -fPIC as having lost PIC (#153)
- Drop eu-elfcmp(1) usage in the changedfiles inspection.
- Rename on_stat_whitelist() to on_stat_whitelist_mode(), fix some errors.
- Add on_stat_whitelist_owner() and on_stat_whitelist_group()
- Ignore debug paths in the symlinks inspection.
- Install 'setup' in the Docker test image
- Add mock(1) in the Docker test environment.
- Remove DEBUG_PRINT for the config file name read in init.c
- Display errno value when getpwnam_r() or getgrnam_r() fail
- Handle missing users and groups from the system
- Add sssd-client to the Docker test environment
- More debugging output while working on Travis-CI problems
- Further Travis-CI debugging for the ownership inspection.
- Continuing to debug this problem in Travis-CI
- And continued Travis-CI test_ownership debugging...
- Fix problem constructing package download URLs in librpminspect.
- Only try to read the UID or GID in the ownership inspection.
- Update translation template file.
- Update po/POTFILES list
- Final getpwnam_r()/getgrnam_r() changes for whitelist.c
- Restrict RPM spec file macro gathering to %define and %global.
- If shdr in _get_elf_helper() is NULL, return NULL.
- s/%%/%/g in results.h
- Account for whitespace other than ' ' on Release: lines (#157)
- Add a new disttag test case to cover tab field separators.
- Ignore multiline macros in get_specfile_macros()
- Add more example data to test_disttag.py to cover recent bug reports.
- Add ignore_path() function to librpminspect
- Expand foreach_peer_file() with use_ignores parameter.
- Revert work-in-place changes in inspect_elf.c so the test suite passes.
- Update the 'ignore' section in rpminspect.yaml
- Expand strreplace() to support removing substrings.
- Trim rpminspect working directory from annocheck(1) details.
- Skip debuginfo files in the annocheck inspection.
- If reltarget is "", do not try to further modify it (#159)
- Add manually-invoked regression testing scripts.
- BR libmandoc-devel >= 1.14.5
- BR libmandoc-devel without specific version for EPEL-7 and F-30
- Make sure all static path buffers use PATH_MAX consistently.
- Support a positional parameter on 'make check' to run part of test suite.
- Followup to the PIC check for static ELF libraries (#153)
- Create TARGET_ARG to get optional target arguments.
- Change *-dtds packages from Requires to Suggests for el8 and fedora.
- 'sort | uniq' -> 'sort -u'
- Rename 'make release' to 'make new-release'; add 'make release'
- Fix build_module() in test_kmod.py
- Remove the GitHub Release page stuff from utils/release.sh
- Drop meson_version from meson.build
- Change meson.build to require xmlrpc-c >= 1.32.5
- Fix some errors when running with libiniparser 3.1
- Only set CURLOPT_TCP_FASTOPEN if we have it available.
- Expand the template rpminspect.conf file for the test suite.
- Handle 'localhost.localdomain' FQDN in the test suite base clases
- Rework the test_manpage.py tests to work with rpm >= 4.11.x
- BR xmlrpc-c >= 1.32.5 and iniparser >= 3.1
- README updates
- Modify the Makefile so it works with 'ninja' or 'ninja-build'
- Rename the tests/ subdirectory to test/
- Split meson.build out in to different meson.build files.
- Move builds.c to lib/, remove builds.h from src/
- Move rpminspect.conf to data/, expand data/meson.build
- Fix the --version output to remove '@' wrapping the version number.
- Remove diff.3, the code is gone from lib/
- Begin doc/Doxyfile for API documentation.
- Add Doxygen documentation for badwords.c, builds.c, and checksums.c
- Make sure the changelog inspection runs with before/after pairs (#130)
- Ignore debuginfo and debugsource packages in the kmod inspection.
- Skip the kmod inspection if there is no peer_file (#131)
- Handle kernel modules that move paths between builds (#131)
- Test cases for kernel modules changing paths between builds (#131)
- Add Doxygen documentation to four C files, update others.
- First part of reworking the add_result() API.
- Add init_result_params() to reset the struct result_params structures.
- Additional Doxygen documentation blocks for librpminspect.
- More librpminspect documentation work.
- Un-static some of the inspect_elf.c functions.
- Remove MPARSE_MAN to let libmandoc autodetect the type (#132)
- Revise list_to_string() to support optional delimiter.
- Add get_elf_section_names() to librpminspect
- Support [lto] section with lto_symbol_name_prefixes in rpminspect.conf
- Add 'LTO' inspection to librpminspect (#129)
- Add 'LTO' inspection test cases (#129)
- Fix free(): double free detected in tcache 2 (#134)
- Do not strdup() header and remedy in add_result_entry()
- Store package extract root in rpmpeer_entry_t for each package.
- Add strtype() to librpminspect to return string indicating file type.
- Add the 'symlinks' inspection to librpminspect (#133)
- Add tests for the 'symlinks' inspection to the test suite
- Update README file
- chmod 0755 test_symlinks.py
- symlink inspection adjustments based on feedback (#135 & #136)
- Simplify the license inspection routine (#138)
- Add get_elf_machine() to readelf.c (#139)
- Elf64_Half -> GElf_Half in dt_needed_driver()
- Skip eBPF ELF objects in the 'elf' inspection (#139)
- Stop appending a newline to string in strappend()
- Collect all results from getLatestBuild Koji XML-RPC call (#137)
- Return EM_NONE in get_elf_machine()
- In download_build(), fix how srcfmt is set.
- Fix some memory errors associated with the results and parameters.
- Add a new faux-result to the results output for 'rpminspect'
- Use params.msg for reporting in check_bin_rpm_changelog()
- Add teardown steps in baseclass to clean up rpm build files
- Adding tests to validate file ownership and capabilities tests
- Added build cleanup in baseclass and fixed setUp typo - still testing
- Many more tests fixed - down to six failures.
- Fixes to mockbuild tests
- Fixed some duplicate class names and now passing all tests
- Added docstrings to all tests and other small bugfixes
- Added docstrings to all tests and other small bugfixes
- Formatting and style fixes
- Make sure only RPM files are passed to get_rpm_info()
- Update TODO list
- Return get_rpm_info() and add_peer() have void returns.
- When public headers change in 'changedfiles', do not free param.details
- Check is eptr->data is NULL in find_one_peer (#142)
- Define EM_BPF if we lack it.
- Skip 'upstream' inspection if no source packages are provided.
- Add explicit librpminspect Requires to the main package.
- Add test cases for the 'upstream' inspection.
- Simplify how the versions are collected in inspect_upstream()
- Update translation template.
- New release (0.13)
- Do not use headerLink() in extract_rpm()
- Expand the 'kmod' inspection to check module dependencies.
- Expand 'kmod' inspection to cover PCI device IDs
- Update the TODO list
- Update Dockerfile.test for Fedora 31
- Updates for the MISSING file
- Add DEBUG_PRINT() macro to librpminspect.
- Add 'favor_release' setting in rpminspect.conf under [vendor] (#98)
- Add more lines to [inspections] in src/rpminspect.conf
- Change up the DEBUG_PRINT() macro
- Don't assume favor_release is set in rpminspect.conf
- Format stdout and stderr correctly from baseclass, run with -d
- Correctly recognize parenthesized license substrings (#101)
- Shorten the names of test classes.
- Generate a dummy 'changelog' for the CI tests
- Adjust how the dummy changelog is made for Travis-CI
- One more slight change to how .travis.yml runs mkrpmchangelog.sh
- Nope, just can't spell the name of my own script.
- Copy the dummy changelog to /root/rpmbuild/SOURCES
- Add /bin to PATH in mkrpmchangelog.sh
- Make sure glibc[-devel].i686 is installed for the test suite.
- Add test kernel module for use in the integration test suite.
- Update the TODO list
- Note the test suite needs kernel-devel installed.
- Expand the derp kernel module for depends and alias support.
- Fix up some of the kmod functions in librpminspect
- In the test suite, use the same before & after package version.
- Add test_kmod.py to the test suite.
- Stub out test_ownership.py and test_shellsyntax.py
-
- extract_rpm -> *extract_rpm
- Handle parenthesized license substrings with all tokens (#102)
- Combine prototype sections in rpminspect.h for kmods.c
- Implement the 'arch' inspection.
- Add a section to the README file explaining how to run the tests.
- Add the 'subpackages' inspection.
- Ignore 'build' directory.
- Fix the kernel module alias tests in test_kmod.py
- Follow the pep8 style
- Remove unused import in tests
- Start some spec file changes to support building on OpenSUSE
- Update TODO and MISSING
- Move the assert() for ri in inspect_modularity() up.
- Use 'pip3' in .travis.yml and Dockerfil.test
- More updates to Travis-CI control files.
- And another change for the .travis.yml file
- Revert "Start some spec file changes to support building on OpenSUSE"
- Handle return code 1000 from the Koji hub.
- Expand meson.build and rpminspect.spec.in for EPEL-8
- Support libiniparser v3.x and v4.x APIs
- Added the 'changelog' inspection.
- Add possibility to run integration test suites separately
- Begin i18n support for string translations.
- Mark strings in lib/ for translation, update rpminspect.pot
- How to run and debug integration tests
- Fixes for i18n string marking changes.
- More build fixes for the change to translatable strings.
- Favor libmandoc.a when build rpminspect
- Display the line number in DEBUG_PRINT()
- Expand the config file with [pathmigration] and [ignore]
- Fix double free in list_free() (#107)
- Really fix the double free() in arch/subpackages (#107)
- Do not require a tty when running (#109).
- Add the 'pathmigration' inspection and test cases.
- Rework the 'xml' inspection to better handle DTDs and SVG files (#110)
- Default rpminspect.conf updates
- Expand 'filesize' to report changes at different levels by percentage
- Update TODO list.
- Fix bug in shellsyntax where before and after builds are invalid.
- Add shellsyntax tests for /bin/sh
- Add libdiff code snapshot to librpminspect
- Patch diff.c so it builds in librpminspect
- Include diff.h in rpminspect.h
- Refactor variable names
- Add some helper functions for reading and working with text files.
- Implement the unified_diff() library function.
- Add two utility functions to librpminspect.
- Change upstream_driver() to use unified_diff()
- Use unified_diff() in changedfiles rather than running DIFF_CMD
- Fix for 'error: format not a string literal and no format arguments'
- Split unified_diff() in to unified_file_diff() and unified_str_diff()
- Change 'make POTFILES' to 'make update-pot', update po/rpminspect.pot
- Update TODO list
- Add /bin/bash tests
- Add DEBUG_PRINT() to annocheck_driver()
- Rename 'Screendump' to 'Details' in the output listings.
- s/depends/dependencies/ in meson.build
- Fix SIGSEGV in inspect_changelog() (#115)
- Add tests for shellsyntax for /bin/ksh
- Handle RPMs with empty or missing changelogs (#116)
- Update the AUTHORS file.
- Add tests for shellsyntax for /bin/zsh
- Add tests for shellsyntax for /bin/tcsh
- Add tests for shellsyntax for /bin/csh
- Refactor the unified_diff.c code to be more reliable (#116)
- Correct RPM %changelog output to match rpm (#116)
- Stop adding DIFF_COMMON lines twice when the hunk continues (#116)
- Adjust the unified_output() function for more output control (#116).
- Remove libdiff code and return to using diff(1) via fork and exec.
- Fix some memory leaks in inspect_changelog.c
- Update the test_changelog.py to do list.
- Added the tests for losing the %changelog in the after builds
- Update the 'make instreqs' target, README, and rpminspect.spec.in
- Unify the readme with yum as rpminspect works on yum as well as dnf
- Require xmlrpc >= 1.51.0
- Add get_nevr() and get_rpmtag_str() to lib/rpm.c
- Do not abort if the hdr is NULL in get_changelog() (#127)
- Update test_changelog.py with more changelog inspection tests.
- Remaining set of changelog inspection fixes.
- Make sure remaining test_changelog.py test cases pass.
- Handle shell syntax tests that don't return non-zero on failure.
- Add tests for shellsyntax for /bin/rc
- Add release.c to librpminspect source.
- If no new %changelog entry is found, report OK if NVRs match. (#127)
- Modify license inspection reporting.
- Split add_result() in to add_result() and add_result_entry()
- Prevent reporting unapproved license tokens for approved expressions.
- Disable empty license tag tests, add ValidGlibcLicenseTagKoji
- Temporarily disable UnprofessinalChangeLogEntryCompareKoji
- Update po/ files.
- Adjust how GitHub release assets are uploaded.
- New release (0.12)
- Change the way get_mime_type() works so it caches the type.
- Support an optional [annocheck] section in the config file (#62)
- Add a 'make help' target in the helper Makefile
- Add 'annocheck' inspection to librpminspect (#62)
- Add weak dependency for /usr/bin/annocheck (#62)
- EM_S390 maps to R_390_* macros in /usr/include/elf.h
- Only run the changedfiles inspection under certain conditions (#74)
- Skip source packages in the changedfiles inspection (#74)
- Add back missing free() in rpminspect.c, but in the right place.
- Simplify the returns out of changedfiles_driver()
- Add the 'DT_NEEDED' inspection to librpminspect.
- Expand 'elf' inspection description to mention forbidden function check.
- Change result severity in 'upstream' based on package versions.
- Cache rpmfile_entry_t checksums.
- Add 'filesize' inspection to librpminspect.
- Updated top level docs.
- Check all license abbreviations in the 'license' inspection (#83)
- Use MESON_BUILD_DIR in the Makefile 'all' target.
- Drop MAGIC_SYMLINK from magic_open() in get_mime_type()
- Move stat-whitelist checker to whitelist.c
- fixup! Move stat-whitelist checker to whitelist.c
- Change the prototype for add_result()
- Add the 'permissions' inspection.
- Replace check_stat_whitelist() with on_stat_whitelist()
- Add 'make instreqs' target to install build and runtime dependencies.
- Handle ENOENT failures from realpath() in unpack_archive() (#84)
- Only run the DT_NEEDED check for ET_DYN files (#85)
- Update the HISTORY file
- Add a [specname] config file setting to rpminspect.conf (#86)
- Boilerplate updates
- Implement runtime profiles (#82)
- Update TODO list
- Compare JVM major version against the minimum JVM version (#89)
- When reporting public header changes, skip first 3 lines from diff(1)
- Address errors reported in DT_NEEDED inspection in BZ#1793113
- Various word fixes in the rpminspect.1 man page
- PRIMARY_BASENAME -> PRIMARY_FILENAME
- Correct the javabytecode major JVM version comparison (#89)
- Reset field to MODE when reading the stat-whitelist (#90)
- Add vendor_data_dir setting to rpminspect.conf
- Rename [tests] section in rpminspect.conf to [settings]
- Expand rpminspect.conf with an [inspections] section
- Improve failure reporting in the integration test suite
- Handle symlinks in copytree() in src/builds.c (#92)
- Make sure "noarch" and "src" are always honored as package arches (#93)
- Update TODO list.
- Formatting changes on MISSING
- Add get_rpm_header_arch() to librpminspect
- Further improve the handling of 'noarch' and 'src' for -a (#93)
- Use get_rpm_header_arch() to retrieve RPMTAG_ARCH
- Move to using libcap instead of libcap-ng
- Fix Koji scratch build download support in librpminspect (#94)
- Add the 'capabilities' inspection to librpminspect.
- Renamed [vendor-data] to just [vendor] in the config file.
- Implement an RPM header cache in librpminspect
- Restrict get_cap() to S_IFREG files.
- Note the licenses for all of the dependent components.
- get_rpm_header() pointer fixes
- Implement Freedesktop.org icon lookup routine for 'desktop' (#95)
- updating imports to use libcap, matching BuildRequires in specfile
- If vendor is not set in rpminspect.conf, skip tag check.
- Handle upstream source adds/removes with pkg version changes (#96)
- Boilerplate updates
- Improve "Missing license database" error message.
- Update TODO list
- Use xasprintf() instead of strdup() here for parameters
- Begin the 'kmod' inspection for kernel modules.
- Typo fix in src/rpminspect.conf: s/not/no/
- Remove some memory leaks in librpminspect and rpminspect.
- Shorten -l output, use -v to get current output.
- Remove -x from #! in utils/release.sh
- New release (0.11)
- Disable jq usage in the release script for now
- Generate a complete %changelog block for the spec file
- Force overwrite of generate .tar file in .copr/Makefile
- Run srpm and check targets before koji, pass name of tarball
- Add utils/submit-koji-builds.sh, which drives 'make koji'
- Genericize submit-koji-builds.sh a bit more
- Start a .gitignore file
- Changes to the release and build automation for the RPM changelog
- Handle int32 and int64 size results from Koji over XMLRPC (#61)
- Make --copr mode on utils/mkrpmchangelog.sh generic
- Existing packages that go away in a comparison are VERIFY (#59)
- inspect_elf() RESULT_OK should be NOT_WAIVABLE
- Refactor strprefix()
- Fix a memory leak in init_rpminspect() with the javabytecode array.
- Fix a memory leak in the license inspection.
- Update release and build steps in the README
- test_elf.py tests that verify passing tests are Not Waviable
- Build package download URLs correctly, drop use_volume_name setting
- Clean up rpminspect error messages when downloading.
- For fetch-only mode (-f), default workdir to getcwd()
- The new libmandoc API works, drop explicit 1.14.4 BuildRequires
- Add is_text_file() to librpminspect
- Handle multiline results in run_cmd() correctly (#59)
- Show diff(1) output for changing upstream text sources (#59)
- Adjust run_cmd() calls to match the new API
- Explain how the -w option works with the -f option in the man page
- In REMEDY_LICENSE, explain that valid licenses need to be in licdb
- Fix some memory leaks in the license inspection.
- Add a [products] section to the config file for mapping release strings (#68)
- Fix json-c memory leak.
- Small memory leak fixes for the product release string gathering.
- Trying to get the automated release notice posting working on github.
- Use printf to build github release body text
- changelog -> ${CWD}/changelog
- Make upstream spec file include the changelog like downstream.
- Syntax errors fixed in utils/release.sh
- Escape newlines in the release body text.
- Run the release script with -x for now, for debugging.
- Shift things around a bit in the release.sh script
- Use jq(1) in utils/release.sh to generate the JSON data for GitHub.
- Slight changes to the jq(1) commands.
- Even more small changes to the jq(1) command.
- Do not build the spec file or SRPM in the release.sh script
- Correctly generate the git log entry for the release.
- Edit the release on github rather than create a new one.
- Still working out problems with automating releases on github.
- Fix 'Builds have different product release (el7 != el7) (#70)
- Remove unnecessary free()
- Shorten the eu-elfcmp reporting (#71)
- Switch to using a BUFSIZ buffer for getline() in run_cmd()
- Expand the get_product_release() functionality (#72)
- Detect product release strings correctly with underscores (#76)
- Support SRPM files that lack RPMTAG_SOURCE entries (#78)
- Handle subpackages with different version numbers (#77)
- Add support for Koji scratch builds in rpminspect (#60)
- Make get_product_release() even if [products] is missing.
- Drop the extra strdup(), xmlrpc_decompose_value() handles it for us.
- Update the rpminspect(1) man page.
- line-buffer stdout - makes "rpminspect ... | tee" behave better
- Clean up memory leaks with the Koji task handling code.
- Add a SIGABRT handler to rpminspect(1)
- bad free()
- Change the task member of koji_task_entry_t to be 'struct koji_task *'
- Skip shellsyntax inspection on source packages (#79)
- Fix set_worksubdir() TASK_WORKDIR test (#80)
- New release (0.10)
- Complete the tests/test_manpage.py integration tests
- Add xml inspection integration tests.
- disttag inspection failures should be not waivable
- All RESULT_OK results should be NOT_WAIVABLE
- Expand integration test suite to support waiver auth checking
- Improve forbidden_path_prefixes results reporting (#59)
- Add a HISTORY file explaining a bit about the history of rpminspect
- Use lstat(2) in copyfile() so symlinks are correctly handled
- Fix a problem with peer detection when comparing single RPM files.
- Stop setting whichbuild in so many places in build.c
- Two hidden bugs in inspect_elf.c resolved via the integration suite
- Add test_elf.py to the tests/ subdirectory
- Add elf_ipv6_blacklist to the sample rpminspect.conf file
- chmod 0644 fortify.c
- Reformat a line in get_elf_section() to make it more readable.
- Add forbidden IPv6 function use tests to tests/test_elf.py
- Forgot to add tests/data/forbidden-ipv6.c
- Add test_elf.py test cases for DT_TEXTREL on 32-bit architectures
- Use headerGetString() throughout librpminspect
- Add some missing free() calls in run_cmd()
- Use string_list_t ** for user_data in elf_archive_iterate()
- Add losing -fPIC on 32-bit builds test in test_elf.py
- Add get_nevra() to librpminspect to get RPMTAG_NEVRA
- Do not output Waiver Authorization for RESULT_INFO results
- Call rpmFreeRpmrc() from main() before the program exits
- Adjust how and where rpmtdFree() is called
- Use the GNU version of basename(3) and ensure we don't use the libgen version.
- Fix forbidden_path_prefixes check in the addedfiles inspection (#59)
- Add missing free() to inspect_desktop.c
- Simplify the is_valid_license() code that concatenates tokens
- Simple Makefile to drive different parts of the build.
- Add the git log to the release notification published to github
- Fix error in the 'make release' target
- If asset ID cannot be found, dump what github returned on stdout
- Use jq(1) to escape strings for JSON
- New release (0.9)
- Adjust .copr/Makefile so it can make release SRPM files
- Drop the GITHASH and GITDATE work from utils/release.sh
- Finish the rest of the test cases for test_license.py
- Finish the rest of the test cases for test_disttag.py
- Finish the rest of the test_metadata.py test cases
- Fix a typo in tests/baseclass.py
- Add IPv6 blacklist check
- emptyrpm inspection works for single builds
- Remove list_split() prototype; function removed
- Change HEADER_EMPTYRPM to 'empty-payload'
- Use headerGetString() in inspect_emptyrpm.c, set OK to NOT_WAIVABLE
- Finished the test_emptyrpm.py test cases
- Use headerGetString instead of headerGetAsString in builds.c
- Allow -k on test suite rpminspect runs; do not auto add -devel pkgs
- Fix some fundamental problems with the peer detection code.
- Always report payloads remaining empty between builds.
- Fix TestExistingPkgMissing in the test suite.
- Update AUTHORS file
- Comment updates in strfuncs.c
- Add 'desktop_icon_paths' setting to rpminspect.conf
- Fix a number of bugs in the desktop inspection.
- Almost on the Icon checking code.
- Fix segfault when RPM path contains ..
- Fix the Icon file check in the desktop inspection.
- In get_rpm_info(), still do headerFree() even if add_peer fails.
- add_peer() should return 0 even if before and/or after files are empty.
- If json.loads() raises a decode error, show what was done.
- Reserve 0 and 1 for inspection indicator, 2 means program error (#57)
- Add support for the new >= 1.14.5 mandoc API (#15)
- Show Java .jar file containing the .class file (#56)
- s can be NULL when strreplace() is called, it's just a no-op
- Increase Python test suite timeout to 300 seconds
- Add tests/test_desktop.py to the integration test suite.
- Convert spec dependencies to package names.
- Stubbed out test_manpage.py test cases.
- New release (0.8)
- Fixes to release.sh getting the Github asset ID for uploads.
- New integration test suite using the Python unittest module.
- Use meson rather than ninja to invoke the test suites in Travis-CI
- Skip the valgrind run for tests at the moment in Travis-CI.
- Start disttag integration tests.
- Fix a number of bugs in the disttag inspection.
- Make sure rpmfluff is installed for Travis-CI tests.
- Install rpmfluff from pip rather than the Fedora repo.
- Need rpm-build installed for rpmfluff.
- Need to see what the value is in Travis-CI
- pip -> pip-3 in .travis.yml
- Set RPMINSPECTCONF env var for running the integration tests.
- Pull in RPMINSPECTCONF in RequiresRpminspect in baseclass.py
- Pass -c to rpminspect in the disttag tests.
- sigh
- Minor fixes to the inspect_disttag.c code.
- disttag inspection tests for the integration test suite
- Move more common test stuff to baseclass.py
- Rewrite test_disttag.py to use TestSRPM and TestRPMs.
- Expand the RequiresRpminspect class in the test suite.
- Use do_make() instead of make() method on rpmfluff.
- Fix the 'license' inspection on catching unapproved licenses.
- Integration tests for the 'license' inspection.
- Reclassify a number of inspections as valid for single builds.
- In the 'specname' inspection, correct return values.
- Integration tests for the 'specname' inspection
- Expand baseclass.py for the test suite, add TestKoji
- Update test_command.py for changes made in baseclass.py
- Add 'metadata' inspection integration tests.
- Stub out additional test cases for disttag, license, and specname.
- Stub out some build comparison tests for test_metadata.py
- Stub out before and after base classes for the integration tests.
- Don't assume we have rpmfluff in baseclass.py
- Revert "Don't assume we have rpmfluff in baseclass.py"
- Install dependencies to run the test suite for Copr builds.
- Install python3-pip and then use that to install rpmfluff in Copr.
- Support -Dtests=false as a way to skip the test suite.
- Use git archive when building on Copr
- Forgot 'HEAD' at the end of the git archive command.
- Sync up .copr/Makefile with rpminspect-data-fedora
- --ouput -> --output
- Update release.sh and add srpm.sh from the continuous-goodies project.
- Rename installate-packages.sh to instpkgs.sh
- Change the API for the add_result() function and add threshold.
- Support runtime override of the result threshold (#47)
- Move release.sh and srpm.sh to utils/
- Change the URL mentioned in the %changelog section
- docs: update README with correct ninja-build package name
- Do not mask upstream source changes (#51)
- Fix threshold-controlled exit code (#50)
- Be smarter about reporting the package epoch in inspect_upstream.c
- Write the rest of the test_specname.py tests.
- The upstream inspection requires a before and after build.
- Revert "The upstream inspection requires a before and after build."
- Simplify the upstream inspection more.
- Add base test classes for comparing SRPMs, RPMs, and Koji builds.
- Do not pass -T to rpminspect if self.inspection is not set.
- Add a set of default integration tests.
- Correct Jim Bair's name in AUTHORS
- Add logo PNG to docs/ directory.
- Match approved license tags with spaces in them (#53)
- Support License tags with abbreviations with spaces and booleans.
- Add mkrpmchangelog.sh to utils/
- Update the README
- New release (0.7)
- In addedfiles, use RESULT_VERIFY for new security files.
- Update the README
- Modify pic_bits.sh to write to an output file.
- Do not include config.h in badwords.c, define _GNU_SOURCE
- Do not include config.h in any of the source files in librpminspect.
- Define PACKAGE_VERSION when building librpminspect.
- Include meson.build in EXTRA_DIST
- Do not include config.h in unit test source files.
- Use meson in rpminspect.spec rather than autotools/make/libtool
- Add support for build with Meson.
- Do not include config.h in the rpminspect source files.
- Define _GNU_SOURCE and PACKAGE_VERSION when building rpminspect.
- Still using autotools for Travis-CI for the moment.
- Add -D_GNU_SOURCE to CFLAGS for the unit test suite.
- Add version to library() in meson.build
- Begin Travis-CI change over to meson+ninja.
- Enable -Werror for builds in Travis-CI, wrap tests in valgrind.
- Adjust test run for Travis-CI, enable coverage reports.
- Remove most autotools files.
- Fix coverage command in .travis.yml
- Change over to gcov for coverage, disable lcoveralls for now.
- New release.sh script, remove final Makefile.am
- Add cpp-coveralls to get gcov reports to coveralls.io
- Remove incorrect 'gcov' from Dockerfile.test
- Install gcovr in Dockerfile.test
- Make sure cpp-coveralls is installed in both places.
- Fix the 'noexecstack' and 'execstack' test executables.
- Expand out the release.sh script and give it option handling.
- Remove the old make-release.sh, replaced by release.sh
- Update the README
- More attempts at getting cpp-coveralls to work
- Disable pip-3 in Travis-CI for now.
- Run the test suite in Travis-CI
- Install python3-pip in the Fedora Docker image.
- Install pip-3 in the Travis-CI image.
- Correct the pip usage in the Travis-CI script.
- OK, just call it 'pip'
- Alright, finally try to run the tests wrapped in valgrind.
- Some problems using --wrap with valgrind, might be old meson.
- Fix the valgrind test run in meson.build and .travis.yml
- Adjust .copr/Makefile to work with meson.build
- Minor updates to the TODO file
- Make sure meson is installed for copr.
- Rename tests/librpminspect/ to tests/lib/
- Rename src/librpminspect/ to lib/
- Move src/rpminspect/ source files to src/
- Run installate-package.sh from .copr/Makefile
- OK, we do need to manually install meson.
- And gcc is needed to run meson.
- Install all of the BuildRequires so meson runs for Copr builds.
- More fixes for our Copr builds.
- Add the 'upstream' inspection to librpminspect.
- result can be NULL when calling run_cmd()
- In 'changedfiles', ignore /usr/lib/debug and /usr/src/debug
- Discontinue use of cpp(1) in changedfiles.
- Always combine stdout and stderr in run_cmd()
- Return the correct exit code in main() (#39)
- Allow text output mode to work when it can't get a terminal width. (#42)
- Make -Werror=format-security happy (#44)
- In the 'metadata' inspection, do not assume the Vendor tag is set. (#43)
- Add new config file settings for the ownership inspection.
- Add the 'ownership' inspection to librpminspect.
- Make sure the 'specname' inspection returns the correct value (#45)
- Update requirements in the README file
- Guard a few TAILQ_EMPTY calls on possible NULL pointers.
- Return correct result from inspect_emptyrpm()
- Return correct result from inspect_metadata()
- Ignore .pyc and .pyo Python bytecode files in 'changedfiles'
- Remove desktop_file_validate from rpminspect.conf
- Add 'shells' setting to rpminspect.conf, default in constants.h
- Replace libcap usage with libcap-ng
- Drop old <sys/capability.h> include line.
- Code cleanups caught by clang (#37)
- Add the 'shellsyntax' inspection.
- Add contrib report-json2html.py
- Update the release.sh script.
- More release.sh script fixes for Github uploads.
- Handle the -a/--all option in release.sh
- Minor changes to release.sh
- More fixes for release.sh, getting closer.
- New release (0.6)
- Stub out the Github uploading parts of make-release.sh
- Update the README's mention of the -f option.
- Support running rpminspect on local RPM packages (#23)
- Add get_elf_soname() to readelf.c
- Put an extra empty line between Screendump and Remedy
- Add the 'removedfiles' inspection now.
- Remove WAIVABLE_BY_RELENG from librpminspect
- Remove WAIVABLE_BY_RELENG from test-strfuncs.c
- Define C/C++ header file extensions in rpminspect.conf
- Correct argument order for strprefix() use in inspect_changedfiles.c
- Define and use more filename related constants.
- Update README to include dnf install instructions
- Fix SEGV in get_product_release
- Start integration test suite in the tests/ subdirectory.
- Fix gcc -Werror errors as caught by Travis-CI.
- Fix distcheck
- Create CODE_OF_CONDUCT.md
- Update TODO list
- Rename /usr/share/rpminspect/setuid to /usr/share/rpminspect/st_mode
- Rename again for data/st_mode to data/stat-whitelist
- Expand struct rpminspect with 'stat_whitelist_dir'
- Add stat_whitelist to struct rpminspect.
- Implement the 'addedfiles' inspection.
- Add regression test for segfault
- Fix config file detection
- Fix errors caught by Travis-CI
- Update the AUTHORS file.
- Update the TODO list.
- Properly free the stat_whitelist, fix init_stat_whitelist()
- New release
- Support multiple buildhost subdomains in rpminspect.conf (#25)
- Explain how to use rpminspect in the README file. (#24)
- Note that buildhost_subdomain can list multiple subdomains.
- Add support for specifying architecture list on the command line (#27)
- Hook up the -a/--arches command line argument to downloads (#27)
- Make sure local builds allow 'src' as an architecture.
- Code cleanup.
- Remove unnecessary commented out code.
- doc: fix typos
- Split the -T option functionality in to -T and -E (#28)
- Add get_mime_type() in magic.c in librpminspect
- Fix up some #include lines in librpminspect
- Add run_cmd() to librpminspect, a popen() handler.
- Remove validate_desktop_file() from inspect_desktop.c
- Add checksum() function to librpminspect
- Define new config file parameter: security_path_prefix
- Add the 'changedfiles' inspection.
- Remove unused variables
- Improve the -f/--fetch-only mode.
- Add utils/make-release.sh script
- Update release instructions in the README
- New release
- Set XMLRPC_XML_SIZE_LIMIT_ID to INT_MAX.
- Set CURLOPT_TCP_FASTOPEN to 1 for curl downloads.
- s/.dist/archive/g in unpack.c
- Hard links extract but return !ARCHIVE_OK from archive_read_extract() (#19)
- Fix hard link extraction in extract_rpm() (#19)
- Trim trailing slashes from release strings.
- Strip extra () after bugfix for issue #19
- Prevent the desktop inspection from segfaulting for comparisons.
- Support ~ expansion for --workdir=PATH specifications (#22)
- Update github URLs
- Increment version for release
- Stop using regular expressions for the badwords test.
- Add more badwords tests
- Go back to linking elftest with -no-install
- Rearrange tests/librpminspect/Makefile.am
- Run the CI tests with -Wall -Werror
- Fix warnings when compiling with -DNDEBUG
- Remove special handling for the before and after SRPM packages.
- During the manpage inspection, report BAD if the db is missing
- Clean up the text output function in librpminspect.
- Skip source packages in _manpage_driver()
- Skip source packages in _is_desktop_entry_file()
- Skip source packages in _elf_driver()
- Skip source packages in _xml_driver()
- Skip a line before 'Keeping working directory' output
- For RESULT_OK inspections, do not output the message.
- Add the 'disttag' inspection.
- Add the 'specname' inspection.
- When result msgs exists in output_text.c, skip a line before the Result
- Drop log file check from is_local_build()
- Handle XMLRPC_TYPE_NIL values when gathering build information.
- Support module metadata in get_koji_build() and struct koji_build
- Extend rpminspect.conf to allow different Koji download URLs
- Extend Koji build fetching to get module packages
- Update README
- Recognize empty RPMs in extract_rpm()
- Add the 'modularity' test to librpminspect
- Drop unnecessary length assert in _printword()
- Move the koji build type value to the struct rpminspect structure
- Expand the modularity inspection to return RESULT_BAD if met.
- Update the TODO list
- s/_download_rpms/_download_artifacts/g
- Download and sort modulemd*txt files for KOJI_BUILD_MODULE types.
- Fix copr builds so the snapshot builds use the right tarball name.
- For Copr builds, modify the %setup line in %prep
- Make list_to_table() a non-static function.
- Update README, I've got things to say.
- rpminspect grew a dependency: libyaml
- Support filtered RPMs as specified in modulemd.txt metadata files.
- Add fetch-only mode (-f) to rpminspect
- Adjust the Release value for copr builds.
- Despair, Inc. is not globally known.
- In is_payload_empty(), handle a NULL filelist.
- Type corrections for Koji communcation.
- Add unpack.c to librpminspect, which gives us unpack_archive()
- Increase max number of open directories in _validate_desktop_contents()
- Bug fix in extract_rpm(): can't use headerIsEntry() on RPMTAG_FILENAMES
- Use TAILQ_EMPTY() to determine if the after RPM has an empty payload.
- Add current state of the javabytecode inspection.
- Check the JVM major number from the right position.
- Add product_release member to struct rpminspect.
- rpminspect now has the -r/--release option for product release.
- Add code to librpminspect to support the [javabytecode] block.
- Define example [javabytecode] block in rpminspect.conf
- In inspect_javabytecode, fill out more of the tests.
- Add attribute ((fallthrough)) where switch falls through on -f
- eptr->data is a string here
- Prevent builds with mandoc >= 1.14.5
- Simplify the HEADER_* strings.
- Do not crash if missing the [javabytecode] block in rpminspect.conf (#16)
- Explain the jvm_table and jvm_keys structures a bit more.
- Move JVM version checking to check_class_file()
- Run .class file checks for .jar files.
- Extend the javabytecode test to compare before/after JVM versions.
- Remove unused variable in inspect_javabytecode.c
- Reformat some TODO file lines
- Move to fedora:30 in the Dockerfile.test file.
- BuildRequires: make in rpminspect.spec.in
- Expand 'make release' in Makefile.am
- Explain the release process.
- Change the release process a bit.
- Prepare release v0.2
- Initial import.
- Add autotools build system files.
- Add COPYING file with GPLv3 in it.
- Make sure all of librpminspect includes config.h
- Pick up dependencies with pkg-config scripts.
- Add src/rpminspect/ to the SUBDIRS list so it builds.
- Use PACKAGE_VERSION in koji.c
- Include config.h in builds.c
- Use PACKAGE_VERSION and include config.h in rpminspect.c
- Update README
- Fix remaining autotools problems.
- Update README file.
- Update TODO file.
- Install header files for librpminspect.
- Start an rpminspect.spec.in template file.
- Include missing files in the 'make dist' target and install things.
- Add utility functions for kernel module alias checking
- Fix the list functions when used with empty lists.
- Fix a bug in list_union.
- Ensure librpminspect is linked against libdl
- Round out the autotools files a bit more.
- Add Copr build control files.
- Install autogen.sh requirements for .copr/Makefile:srpm
- Install the spec file BuildRequires for copr builds.
- Slight change to installate-packages.sh for copr.
- Run autogen.sh from the spec file if we need to.
- Update the .copr/Makefile and how it makes SRPM files.
- Install git for copr builds.
- Fix the hash table usage in extract_rpm.
- Add file peer matching.
- Fix the comment on get_elf_imported_functions
- Return an empty list instead of NULL for no symbols.
- Add ELF comparison tests
- Only call find_file_peers() when you have before and after builds.
- Fix hardlink extraction in extract_rpm()
- Begin unit test suite using CUnit.
- Ignore test suite files we don't want to commit to the git repo.
- Add missing function prototypes for koji.c to rpminspect.h
- Add unit tests for applicable functions in koji.c in librpminspect
- Add unit tests for tty.c in librpminspect
- Modify printwrap() to return the number of lines printed.
- Add test-strfuncs.c to the librpminspect unit test suite
- Remove compression.c from librpminspect
- Fix an error in init_rpminspect()
- Add test-free.c and test-init.c to the librpminspect unit tests.
- Begin test-inspect_elf.c unit tests.
- Ignore more files from version control.
- Fix .gitignore
- Add some unused pkg-config variables
- Fix the pic_bits.sh call
- Fail 'make check' if CUnit is unavailable.
- Add a Travis configuration
- Add a check-code-coverage target.
- Simplify the coveralls upload
- Fix the test suite runners.
- Run the travis tests with VERBOSE=1
- Remove the tests for free functions.
- Fix the execstack tests
- Allow for skipped tests in the test runner
- Skip test_tty_width if stdin is not a tty
- Add a valgrind check
- Fix free_rpminspect
- Add valgrind to the test environment
- Check if cfgfile is still NULL after realpath().
- Drop MPARSE_SO for man page validation, clean up messages (#5)
- Use config.h in the test files.
- Improve the assertion error messages.
- Fix the xasprintf macro
- Add a function to do string replacement.
- Add the static keyword to local functions in files.c
- Add version substitution to peer file matching.
- Save the libarchive entry path in the file struct
- Use localpath instead of fullpath for file peer matching
- Start a collections of docs.
- Fix config file finding.
- Store the 'epoch' and 'size' values for each RPM.
- If the volume name is 'DEFAULT', do not add it to the koji URL.
- Report disappearing subpackages from INSPECT_EMPTYRPM
- Skip disappearing subpackages in INSPECT_LICENSE
- Add the 'desktop' inspection to librpminspect
- Add config file settings for the 'desktop' test.
- Add a Requires for /usr/bin/desktop-file-validate
- Update .gitignore file.
- Complete test-inspect_elf.c for all but two tests.
- Make sure test-inspect_elf.c opens helper files correctly.
- Allow the -T option in rpminspect(1) to work with negated values.
- Adjust package Summary and set base Release to '1'.
- Remove stray tabs in Makefile.am for librpminspect
- Explain 'use_volume_name' in default rpminspect.conf file
- Incorporate fixes mentioned in Fedora package review bug
- Update spec template and build scripts to better comply with policy
- Update Copr automated build process
- Replace %autosetup with %setup
- I don't know how rpm macros work in spec files
- Add hours and minutes to the timestamp in GITDATE
- Exit installate-package.sh if you are not root.
- Extend GITDATE with hours and minutes
- Report RESULT_OK for passing inspections.
- Set version to 0.1.
- Add a 'make release' target
- Ignore detached GPG signature files