rpminspect-1.8-1.el8$>9!Yf>=?d   748`ds  @  Z  t        U  H( 8 9D : G H IP X`Yh\| ]۰ ^P b)dye~fށlރtޜ u vw| x y >DCrpminspect1.81.el8Build deviation compliance toolBuild deviation and compliance tool. This program runs a number of tests against one or two builds of source RPM files. The built artifacts are inspected and compared to report changes and validate policy compliance against the defined parameters.a|buildhw-x86-16.iad2.fedoraproject.org Fedora ProjectFedora ProjectGPLv3+ and LGPLv2+ and ASL 2.0 and MIT and CC-BYFedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64t8]H[MӜsAAA큤A큤a{a{a{a{a{aaaaa{aa{ac7f95a6cd9abfec434cff97c0517a3fa675f5f4f615d8429055e61de04e72b01efa32bff140a8c08aa0524c4030b6113aac064f8205856e54c00e650c3455466e8042c175f66e3fe6f5696f2382fce8675685dc6175590313a76f577559582e763f773a253f760be5f99f06fee6a777977dd56cfe5b6b1591d511e5d8ef534a0794e2c917d8557d88cc70eec81f336fb62e02432cfc1d1fca051b5f98dd753163972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb369861c870234259a01b13a2f3c8ece6bcb952bec6fb316c1016b72a6be2f6cf8abb098a8e1640254eb99377ea7b606887d41ef579ca0ac2631cad9ce40c14fc837c5../../../../usr/bin/rpminspectrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.8-1.el8.src.rpmrpminspectrpminspect(x86-64)@@@@@@@@@@    @libc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.27)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.8)(64bit)librpm.so.8()(64bit)librpminspect(x86-64)librpminspect.so.0()(64bit)librpmio.so.8()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rtld(GNU_HASH)1.8-1.el83.0.4-14.6.0-14.0-15.2-14.14.3aW@a@a0`@`\{@`7@`7@`U_@_@_@_@_[fDavid Cantrell - 1.8-1David Cantrell - 1.7-1David Cantrell - 1.6-1David Cantrell - 1.5-1David Cantrell - 1.4-1David Cantrell - 1.3.1-1David Cantrell - 1.3-2Fedora Release Engineering David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.1-1- Upgrade to rpminspect-1.8- Upgrade to rpminspect-1.7- Upgrade to rpminspect-1.6- Begin work on version 1.5 - 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 - Update the changedfiles test cases - Check DT_SONAME in is_elf_shared_library() - Skip debuginfo and debugsource files in abidiff - Make sure abidiff test cases add a DT_SONAME to the test lib - Report INFO level for patches findings by default - Python black fixes in test/test_abidiff.py - Update the test/test_patches.py cases for patches changes - Generate regular changelog in utils/srpm.h - Skip branches without targets in submit-koji-builds.sh - 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 - 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 - Simplify the utils/determine-os.sh script - Update license table in README.md - Allow any number of builds specified for fetch only mode - Handle old or broken versions of libmagic in changedfiles - Update GitHub Action status badges in README.md - Fix $(OS) check in the Makefile - Fix the ubuntu GitHub Actions extra-ci job - Make sure the centos8 job has git available before cloning - Change strappend() to work as a variadic function - 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 - 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 - Drop DEBUG_PRINT from source generated by pic_bits.sh - Do not run apt-get update as a second time on Debians systems - The lost PIC tests need to invoke gcc with -fno-PIC - Update the OpenSUSE Tumbleweed files, but disable it anyway - Define inspection_ignores in struct rpminspect - Clean up the config file section reading code - Add add_ignore() to init.c - Fix fetch only mode download directory - Stub out libcurl download progress callback function - Perform symbolic owner and group matching in ownership (#364) - Restrict download_progress() to systems with CURLOPT_XFERINFOFUNCTION - Read per-inspection ignore lists from the config file. - Add commented out per-inspection ignore blocks - Implement per-inspection path ignore support (#351) - Report annocheck failures correctly in librpminspect. - Note all regular expression settings use regex(7) syntax - 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) - Call mparse_reset() before mparse_readfd() - Do not crash with the -c option specifies a non-existent file - Update TODO list - Make sure brp-compress is disabled in test_manpage.py - Require/Recommend /usr/bin/annocheck - Note size_threshold can be the keyword info - Ensure ctxt->lastError.message is not NULL before strdup (#382) - Handle corrupt compressed files in changedfiles (#382) - Disable debugging output for the ignore lists in init.c - Drop debugging output in the xml inspection - Remove what working directories we can - Correctly find icons for desktop files in subpackages (#367) - Followup to the Icon= check in the desktop inspection (#367) - BuildRequires libmandoc-devel >= 1.14.5 - Manually install mandoc on centos7 for now- Start work on the 1.4 release - Trim git commit summary prefix from changelog lines - Report the program version number in the results (#309) - Handle compressed but otherwise empty man pages (#308) - Flake8 fixes for test_manpage.py - s/self.rpm/self.after_rpm/ in two test_manpage.py tests - Disable broken ELF heurisitic and size limit in libclamav - Modify dump_cfg() to write valid YAML to stdout (#306) - Migrate more code off hsearch and to uthash - Replace hsearch() with uthash in the kmod inspection - Update TEST_METADATA status in TODO and MISSING - Restrict style checks to specific directories - Replace hsearch() with uthash in the abidiff inspection - Change tsearch/twalk use to uthash - Correct misuse of entry with hentry variables (#321) - Normalize copyright boilerplates in source files - Use hentry->key over hentry->value in pathmigration - 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 - Change init.c error reporting over to err/warn functions - 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 - Detect 32-bit and musl presence in test_elf.py - Skip lost -fPIC tests if gcc lacks -m32 support - 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 - In read_cfgfile(), keep track of block depth correctly (#329) - A few more yaml parsing fixes for block vs group - Recommend or Require libabigail >= 1.8.2 - Finish normalizing all the error reporting statements - Advertise of rpminspect-report in the contrib README. - Report libclamav version and CVD versions (#258) - Ensure first argument of warn(3) is a format string. - Enable werror=true and warning_level=3 in default_options - Update the translation template file - Get rid of invalid free() in get_product_release() - Add inspection_id() to librpminspect - Update the po/rpminspect.pot template - Improve mkannounce.sh to handle stable and devel releases- Remove duplicate elf_end() call in init_elf_data() (#303) - Update translation template- Small change to the way Koji builds are submitted - Move the master branch to version 1.3 - Drop DEBUG_PRINT in process_table() - Add doc/git.md to explain source control conventions - Change Suggests to Recommends in the spec file - Add kmidiff and politics to the inspections section of generic.yaml - Update TODO list - Use warn() for non-fatal errors in mkdirp() - Require libabigail >= 1.8 in rpminspect.spec.in - Enable multiple --headers-dir1 and --headers-dir2 args in abidiff - Swap out some more fprintf()/fflush() reporting with warn() - #include in peers.c and rmtree.c - On fedora-rawhide CI jobs, install gcc-c++ and gcc-plugin-devel - Disable fedora-rawhide GitHub Action for now - Correctly handle the -w option on rpminspect(1) (#256) - Drop the relative path handling for the -w option - Build and install rc from source on opensuse-leap - Update doc/git.md on how to track upstream - 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 - Trying to figure out why the opensuse jobs produce curl errors - Another slight change to post.sh for the opensuse-leap CI job - s/PowerTools/powertools/g in the centos8 PKG_CMD definition - The output of html2text on opensuse systems is different - Rename HEADER_MAN to HEADER_MANPAGE (#264) - Add inspection_header_to_desc() to librpminspect (#264) - Add xunit output format support (#264) - Support the new output function call syntax (#264) - Move init_elf_data() to readelf.c, move data to struct rpminspect - Update inspect_elf.c unit tests for librpminspect changes - Remove check_ipv6() from inspect_elf.c - Create the badfuncs inspection - Update po/ translation files. - Add badfuncs test cases - Forgot to commit test_badfuncs.py. - Fix flake8 and black errors with test_badfuncs.py - Skip debug packages in filesize, display changes correctly - Fix spurious execstack failure - Fix YAML config file reading for BLOCK_INSPECTIONS - Expand dump_config() to cover all config file settings - Minor spelling fixes in strfuncs.c and making code explicit - Simplify list_to_string() so it handles 1-elements lists right - Add abspath() to canonicalize path strings - In the doc inspection, only show diff(1) output for text files (#254) - Add strxmlescape() to strfuncs.c in librpminspect (#264) - Output the system-out xunit portion as CDATA (#264) - Slightly change how strxmlescape() works - Add the runpath inspection to librpminspect - Rename test/data/lto.c to test/data/mathlib.c - Handle the empty string case in abspath() - Expand dump_cfg() to show runpath settings - Fix block handling problems in the YAML config reader - Note single builds cannot be rebases in is_rebase() - Hook up the driver for the runpath inspection - Install patchelf for tests on fedora and centos - Update TODO and README.md files - Pass -D to rpminspect in the test suite - Add integration tests for the runpath inspection - Python flake8 and black fixes in test_runpath.py - 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 - In the runpath inspection, fail if DT_RPATH and DT_RUNPATH exist - Use pip install for PIP_CMD on gentoo - Set PIP_CMD to pip install -user for gentoo - Handle a NULL from list_to_string() in abspath() - Do not match path prefixes in the runpath inspection - Python black fixes for test_runpath.py - 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 - Add uthash and move the file matching code to it. - Typo fix in README.md - Fix some memory leaks found by valgrind - Create mkannounce.sh to help make release announcements easier - shellcheck fixes for mkannounce.sh- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild- 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 -> #include - 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- 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 -> #include - 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- 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 -> #include - 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- 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 -> #include - 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 - Add detection for 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 ru1.8-1.el81.8-1.el8 rpminspect.build-id67343f521d583a7c6559452f9d2dcae9d143979brpminspectAUTHORS.mdCHANGES.mdREADME.mdTODOrpminspectCOPYINGrpminspect.morpminspect.1.gz/usr/bin//usr/lib//usr/lib/.build-id//usr/lib/.build-id/67//usr/share/doc//usr/share/doc/rpminspect//usr/share/licenses//usr/share/licenses/rpminspect//usr/share/locale/ru_RU/LC_MESSAGES//usr/share/man/man1/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectiondrpmxz2x86_64-redhat-linux-gnuELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=67343f521d583a7c6559452f9d2dcae9d143979b, strippeddirectoryUTF-8 Unicode textASCII textASCII text, with very long linestroff or preprocessor input, UTF-8 Unicode text (gzip compressed data, max compression, from Unix) RRRRRRR RR RRhttps://bugz.fedoraproject.org/rpminspectutf-8cb1456d83a87591def15a88e5724c3fc8a8e899316173a2927636b2cdd390c5b?07zXZ !#,K]"k%]7_Pf&vp -&B8͒`42'Z qNɳNci$Cpw&C\'3ͨ0*K+;Ğb[ p83bô yq؆ ^wqpqmtFh.قeH r W}sQ2 ^l=#tdCP-]4IA ؃ˡfJqذ`ꡟ3&E< ABi $~$JtM~_q렞HPkW(=3K`B105J.u>`/h@VП]bV?`T" 4Tb# 6,)`_j ZV;: Ó1o<|YDiJʔu[snGIp+sx;.UAwKqYC?[>N8QΩ+{ؠ;GG+܇2.]_un}D*_SD`vY~#a`̴KdwŚ&g2 eͳ rMͯ#橉@xX?+$_\[g}KK)>9[wmXǦ8嶅ša BACRtE'cL`-eF\(Y6yг_ۗx]B^XXMAEc@RVR_lLOSo!ؽ,/:.'xC% {6n(=՟e(<{cd8@wA\*մL}MўTT^gH[`Ҏ ߐWeI#LGS_ZR_Xޥү#ee#xE2 .D3\n8d1Zm_ΚًpgiǣbL{ČI-C,^|.Wo<d VOy&g2m/̱PclSCDz}h.J ڦ?r#hf rAmWy€ݻ& ݃K|SY&5o ORMիӊ:G3vt9d$.=}\Qw0Pzx. -mK:({_O?kAК ?1hh᭗m߁k_W0C$Xmd%w"AMȖ<پ"Id:v&8Dd2Y]s1:{xzD+$ 9s|$ad/cՅ l0àwg]})jkj* &1ݽ43/~'kX]@~n+8C[bWar|2]o|zbzF Z& hu6O6{X6vN%j@Gb|hɮ0jA#9 o7#Bߊ^1y_mfFRjp;[#G~&)*]OQk2cb*rNX<8M{ZfsoMd/ǝiM)X&4Z|ܒ"(9!e1ыGlG{\p4E1sZ00eY@N0|GLlVƢ~‚KZ[vu㬮.<[QՅ1˜Aao}F1Ԇ簮 4PoԢhs&,',a: |o`Kr fvH8.?.@`P  U[(}8? $^BRa!#S]Dҷ*M?8'jNvM˶:єEyc&XmjW/'_- ##7܂scGݧ$4OTie,~lפG|[4D)L֘{e:!I^vF.ru38ڨ*xF`_fJ"$ |13!'M5{ FCW ٶ \b@>bVVyk kk[|oVɮ@fH*9KYT9JڌJ`d$Ylܧ(:^&7t~u5/lQˉ{'DUޡxh2ha؎}JB&:lj" ;&)iyRG``㈱/`xew>IЎ0!z V?֘TC£`?" %JZn$dzE4TͩW<-˙-?gu O&WQXBKG! (׶i:hhiwTt'I'uS%\[ǂDnxZ:6?\TҤ,MnwBE η ļ,mҨp ϲȤ/H,9+cHG3yC:9B[mo*OiSj2fF;SOc`8:}o /9HZp@2v,J%ddג1{w MleEh=ꉾGEn+Bq m=aDuT i^m]Pg`w7rfԻ*oGy묙ZgwP6sʼbbxSd|xvr%RR,zGlR/Frߩ8}c:¿ko-ynZs5Zsx Oi}9vnƉF@9 W>Tyˎ J!h'!o^Աg;|ĩ;"X7KsM'//jgunQXݷ2jRTൕj( &D𲙎 2`9ll紾fa;oPls-8N:$wk{r:뚣KWD8*T4<>"Uw/{4O7|8q[>FkVsh^i7/gλNjCWޝL%5N@$:9Rvᣇ×ЎIFsF3W?  @hCW)>riʒ_̘/COB&c kpE5 ff}qTqW }+bOSl%DcΫgw]d~(ZT^<Wz]W^ItL\<;ce|V}[m] eKn)qd@蚾7 Ѣ2@u7=r^+ m ٪/=ϝ -K$&!m ׷ ΢;p7h!Uՠ_>iZ6u *ҟ'ϛleIW4q2cLCx]b:|aZi"7Q xv뉅 pM_'Ut6ɑDv;/і%"=csSA1AS5'F~[*NA|7;"f9F"2 ix ctRws_.=֤'@%.L\2lW҆9$cLzU 2}RBbOD[n-Ǫ@0=uDgYAM'ʭ/r%IV1,0*w2]9t*/V Vv22D1@?ǖۀV0AٛxGi.8WG!%"7Do1+mxN"3t6D!ުm K ޕ({gx3^i qh񌵌Q#Uð)( =H0dB6 [&¿5 Dh|@!9DRl4LHW! HQ?+jF_E]|NyZ&7`=LdOɆ4|,&1IUN,SLp/8~wXgiVMK̲iР v>XgsGBHho؜aHgV-5*%*DtyŶvFAhqswJ,iRtAރg!F:_ } FX_0<=Md eLٖ[0bqbu]NCZ|6&ET#VPpOIs [;?'g(FӟϨWCNA C\Tsg@lirYg7~H-ٲˮ![UhօkDli}0޲Y$Tv$[%Ck;*FkJh+lTc !8bv/ohc3S5yMAjI^ B 89syon|Sk1|tBTBaiص ͅӍP#&I=q?[8r} X8، )<܁!c=2|(ƶNN@W购#TlWcbd]r6eXH|78Ɣi+Dz?eYo"ܥdYUFBWge0>\?PH.G+hE4;< &'!C=H6HkGw$p̀fBl}!(t2Y|A7D`kS$X-e{*Ƈ vN\ZM cZji[%Mwhl,Y>6H2xBI/X`YF|U\oC6Zpޣ+o~ 1h6J.OK=I]V,4,ܘ F_4T {-o>8X9 jQCIjrK|֥4SR\{۬tJIa&ZX_)ںMhc4B]u0dc"bSiNzAsH0CLC)8ck>htCwX1ʅE֜b4⹻g%94;[jԑqIYl$_4.ɏ Њ5Qu^HKbH].Xt?K Ҋ+ZSNtUKTfA[<` ͌ - Q0aZmH` 8fK7xA5,/ml;t }- {9ɿ]Qq#䑤h960 ~B[z׿F+PΞ Du?  _UMΡcepoR\{7D8ц$`YW 5V '#iL7RB抳-I,nWeH+Đsq(V )Yf'>-A0:' ckJ냕PԏlH\#yqp0|ګ @C$[uxrӅf}GN6םF2͋O_<$ScK΃$]͵nT3M\ /T[,`ho$yp1ua!>n\`OJ}Fv~u^+ ȕX4汰7I0Bժ"p~-AwQ#]pD>{$^Ȥy19KD<J P@Ѫ[\s[W3sw ( ]=|AN$2z2S7dlՁ yjXx(i <}cٖC= j;7p͕-Sr;f߆9t cLUʱS9;(p' 2V4ѝ~nh(G+xZ7!v ?hvDӕt&j7n,);rd6$Y24@E"n"/ÿ_1##GKPqB?e/L2CmOyVҍu`rFm{X(ȿZ$]X28Fզfз˪zR+v;O9YtB-|r*BOe_ +M@2/o0=Jo(VF@ <斶t{_wBADj+U|H V7@R \gޠ^]vqO#g..g!J; v8{ V4yd:hIgpY#/&إ]P\Qv.] Ⱦ8i 8IMfFxb#?Վ0MHգ]#"C l:Ԓ|X>6 @4q`kj4 M ŦgƲ[Az?7PQ(WSAkGkRp}ltq *o9ї 9ɰFm9 ŅBbtշ6J;+wxS\fi2b2 3u{ٳM#+zέJ iBx/pO쩃Vy;ы=HFSkcPC&wi,Q.~*zZ\Ku"8u~CU,SauB1 %E8=sNEVbݖtϩ̎xݔz}r[Ftx^uȞQG~}tVKCJC;!obH-.:VnPK3eڐ&ٯaA@ TNS YSQcfbC4(@m5"cn9+vd7*U\W R*Ÿp^gך<:!Y  z#EtR(фF>:2 A$yfwVvv~` U<0rLsv:kSV>.}0dX[0Q.^qÝu4<rAGW Bvdآ- J ˩\btlGN uye*T++/YӶĜndxHK MhGP}cތlj*(dxSU"OQl}rm ;ғ"ӄWAd6RxCiP~p ;ko@X@U"i>GdX&pBػJg3GG NT@T%C<$9Aՙ=[d@CqGAX#DM`#7-fX̊fu&zۆ!@-np,Fcі B60N[dR!Uz@2Bĕ Z]m0雠ion!n;h`py:ȗCm]>EO7>gc Jy.,X(R˹'liFw6cbis[agg׀F~Za<^J;"8_N}:ΩD؝ R\ 8򫻤AA}vӂ"s.f%&hEYf2uiA2?ra_诶ۨ<:6 !m22ڐڳ89A*Eo &W+e3jRLt+0%FDuE ST6.+Ovvs̠Y%\*! TXJguZra&΢zNxV'@jRIFatE+?&_R0 Ϩ{Bb_闍~Z/\SyN.<gWp3ܦy8RY*a=jk}u&}]Q,@`Z//<7eI|wXݻq4iLYכ'1^-WCbP,1\WR*dF|1U(qoZq8r;:{.,xenD„1nB{Qm?oRu1B`oQϮ b3эV:,,0; |?d +`vxDhr )Ie>yA\rE%jR8s+#?fXGG_j3HjfOYC_됻R4 ҵ/VtYCRsT ɇywgd![Jz}R'ݍi)|mgKr1"n *aR7o Q7^F?bZO<9ś *[>?m3{.%r?F|&W'W#FoRx) PJ~P̤☊c˹88EŪMh?;i$KeAMp !"#IwT2-Rxb'jUF+T;s@~v}?;ΪIt}f针,q?`XwQ+ĊjFٛBBȟd ܱ KA $ fO֗_^[7mPX6hZbBc'ڪU}ed@";C*yʝ_Fg˕LZh8}t Ik\MN+U2a`Ft1mH ]G~eӍ\E`5O_;}NETb T[V\Y+V=zd|o1":P]j79'"AxMPҽ'k|40|RLAH7Mޯ{d+XH=L6N%d5^8RnG'ɝ qh?e}L[g̝RŪ8cKW2ȝJ*3!AN+S)Nqϭ4Ns=qfC3:/L,@?I׶=aek)^ߓ3ֈF۝tzUZ睒t:'?~!COw6JjC$5%E/}T_})^ZVՠRɟh^:SB 䡃75"O9C;u*Z\|X?(|6< %?Su[=tYRћ0'L >eZq4|E`Qz_Ll3YVQ%aޑ^%)x@/5 v=9#Vb víI zC*eA{`VqkPk>gq",?Qf~ɀS.VjxG=R`^sc8x~(ٌ;nST!Ὅ7*_ؾ`u]o/GOH7ZÔIYDn4.V;s hHߦ$}U*I= `郰dPAۖ'8>ƋeqKAR%F^p2q|Rl7CT &s6+⣉E<!h(} PNk+56n ly('q,MIuaT9BĨt:61,}\_>ΙO4x:UHa_>v22F>m(ßPP:rh~"B_l*k9q(uQ{ ֧FO :{TS -F.),e<ԟKԪ :'aAU*Qk&AkjXlzH "%|Aq:Aپ%W} vT^WT[N&I2W)o~Xx^PpK2dD9ok,;RPeub *m("Wo0]$-7ueMVx/ bNn*_|:- B+.05kݒAK1%A݇;HpkEZj3~OS^朂SpC iC/( a {Hc@*&@^B%Wis> a sbT6jZK# L#-5*+d|Q?ߤL Wn-/tPM3+ȵ1*Z[nB!S^F"(s}ܩBy\O'ce~-d5Ly u *)d1mn%C|.7Tڕi=6Ύ|CsOh;_e]s26L+*aY$s+fF5KJȅ.>•kƏu,s\]|0m8!ś)LW,vK4)QfEJzFIgrDFaMh>W,V|FuB7?-^d2KYF.n5xP(jbVp⮴aq~d.X ;0Z^Åp!W?-erq=1uӤv2-l Vp~ Dž#H; ZL$O^Zg4k# a &4V5yM6t~ 7z}Kz?t8LzV~&84KQ/K >yQRyaq6#3>Nnx"emSzѡ0`ɭ 6pdއvbm[XujD\#Vhȥ} y L—_΄TXބR5G+T~u>[YңG"p0Js3RU,1UϾ"ė|4kwnKPyRY1G٢EO^o!$f'jهHCPxQktDZ?Bw;l>} f}?9֋) yy+K[*H@\kņ`53cM'J-P!P&].ٛ*Z!rk=/1崎oٛBhY{nAa;ZvX"zhܼaY>Bʐkh<6@;#gQ&BT[OSE22lYdor)Ѱx3|ʂ)P¹9mKG {?J2w酭]MnAM`P" 86.Y7tL##;M!"dYiN:H7:ONS+~{o QWG##cGj5Ex5ONqp|~$1([@(g Ƹ9Tot,b{rsVvzV}tfS,sI{/vWwHˣ XD]ݍw4g6P^'I.el a`Uyc  (E,m!d &df1S$v>?]1D$hR=.ݴphQN-:2,w+qgȶ]=Nw&[GTC3m>@1_J mXmUn@ʳ㙆vD+z:5&fsGNc\<׻)a.:/_Gk tFi_cd4?Tsȷ4/Nr <ݐ!2 R`tبbdγ|0o;,ŤH>i~Lr]?06L IR1XI-#myV*{`֣\D*_DQ8KB;i  9N/`*[G|йkXA*J:mo,ߙtÁ1 }{{ߑ;OiÕj+ cx9l#Y@Y1u k{'^|R5XtE`e> !ݍK+ڷ?aX`It,XBd6%1V 1w-ZuߍEx51ُ;vp[oޏEj, -@Ϝ\u Fc0w2bbL^Qkt*sTPS EM-Yeu{tx)lqz,1\w?f4l[ fƚYF"NL EZc)G>E~PxN"޽ "Yw6-oY{aӕa K9:߅1O`BG'35HcqA\^!ǓFU 5|3TnR- &WK ;UyF)'\t|޸۪N1J|v={8:;̤C !q + 8/<"A' 4f/ fXAt4a8:wpOb8wHzϴ <W]dEc`U50ao'nUnZ.9V!u(Y!huCdJ.Euxco巋)U>r<fS-Q[)/PUnHj1XV4ns7Vԩq[~a Y \`^43y Jp=>QLvȃ`*>;=GV\紻08OnRngk3b-w'> U\X7S0u2"HFBa)=\n+0;nNN7KcC]ۉ 1P-ͩ/;Y.\2K Iw!9#Go<4a:P^`.Y+qh9 Xڡf!JC쳭+{;ܕDqy\85I*~тk:ݘ4%}nIx@c?[^ϛ @(:&@9ctJn'˪*R_51R)@YhXYA=᫋H->r>WFE<=347"~pרz2& :f3>{n´ҍ 5yXw@Z;#jr_T'oQYovP3n ֒jLX&n.ޟ8v㚼ϡܠ17~+Gpz/jQAo< vIIjT0;':lU$j`$.&=X& h{l=q犢A"um* &gWKׂ􏱪[|Ҭ_n"Bt֢qB>=נRxO0gŻOH{ і]n5q/e3`r۷YO1*~w,S;Z5:X=VFIG\yMȕvU96Gx'Mx8 )סGGBt7Ã$u_q9OPDLRFJ8abz̙X-n!^߽5IcS:]Ð4ֺ"W%HcDbt/D fq!b^K 16dfut|܁kl/&ƒA܁pe]:а&,<*I!9:m)> sS/<]jO(O42wO Y$!Ġ|6Ov@u0ιR5{ isʑYuߖo!"MatW:x0MO+;Yf1_}&PF\2D6m~5>h{⴪lS}oAg/-8Cᢏ[ 0Oȴb{| E 3Ȓ0L[}2S Z̆4i]' GGn*אS*L\kMs!9zDZgp.PVz/c ݄zMיp\j}̽$ .XaslG_"^roA}YcGs{a1: ˜U%{t&\=މl"ߪs;+~ Kw|dSޛB]Ԭ"R8p?J斸r3\iH[x5^oNlƌ& 6l8:1U{: X #[ 8JGJ r! MϙɊ^PShB{̦|ěȱ;2Ӡ7ͻ7d^8 AC+qƖe=-X2-@" 6gjv^9y ?y՛>K5u={7v{n W )ϦUd`40Y& T.JU$c ƥS hbD"U lBQ腖epp< 2x/J"Ywhoo !".h#,mK̎:7"frvsfq/ !.'5^α,ؘ~ӭȸBi9# :ү7x-'^'pd6c*+,1}h@7LYii4f'5^>hl]d!]XE8M:uY vsekN2\StW5n=X}by Y]0D^$&Y1ta)1;*2͟ f٩z=.Itظy""ԏ PT&x\}@*#9?+)?a"r-:kp2+\ R|GƱҔХG34b}ـQBH .VKCn}2ۅxrS .{@`\ٷ\5C 㜐֟"fM75W;ZR>]/xs+gwÐ:hap-L eh\It~je*CY;Oڭb24Zn1 XN ݬ$I^j_<בo?m24i`t82vГOKZjPJsX]+E\O?."{3@y/ĂBJuEI[I"kCM:\^Sc[ rO ϲQ험J0QV "#qhf6L*3Jn:]!kǿd [:&ՂLa_DdhƒW?KcЦJl1 NE'J:,s͒*`lCUg&d>gbF bM'lA^/8_45;$}asPJV6 =%['+:)HcR.Rp:9'c$ܣڻP Fh?E~7)k#X=H\p>;Awφ(f;Gc&sK9FK#zWE/20i9)R"L|TmK@CJUـIe5bG(91T HH'# s$Ʒ=J1Bh1꫿"-TfỴ楗&\vE\Gbk41v o+~c_Lry-/s-ށ+#ߴϵ tƩѬ 7Նki)ao΁S:u{UswhXlM"DM:NV98W OmQXV`>S<3 P 6\mo* B .d)g,L3E |uDE߰P`?4Ϟ .b/\O"|X(\wJj~qhzOj=#v潋HppEu4!![>n?$o>e&mZ1rA_4DcO]+1 HkH6KnF@ډ!4TgPIQ"W>.OHV(puZfa 4eBwK:ҋ۔"Op&^tA $:|,9l`xkLb+A.# |(G)j_j.Ϳ\x(/#Z*[XyJh%M~D52$['Opwh A/MEKн8 zHDh<9Ll_vFL S(9Wlt*Hj>s|`gK:_^^TMgRVhF3\د}:C#B4vlGg3ĨL#͉sh.ǖc;#,m&\D_{PfȬj fCfg>I]f.TO4Up\:NJS&rg*V& *lmzU7m9x<~5t[:é@q5[3k%)A眳r*YN-$ 3a+sХ2,-q_Ȟ32 %'7Ye[ZwG@ߡ/ \Nr؃CHߒUQ"Y=PQw8'\@(OKԍO~Ԯts ,ACc= *Sɗ{[WzFFN +FE'GNp[w.`[T@$0 VP-,s;5v"=LRqd,>I~mޔ46C7NrT G&=;%?Eq /MEvw Qc-ƇAAqطOgꭠ(PI2\)GL~ZߑmzW+nԮ24AEXHG)`jC 'jYL͌x#zC/f/F}EH/n|TnvL?hQaER=K;0u$Lw":09jy`SOQFe:'?}DquMF Ãf;Ǯ0ƨDI[_s77-Fv=.kGD+;enDێwV)fh \YUKZ^{#\*^<xmD"8E2S䍳֦Sa7gs,m}#4Q D\Z|X9E+'=.QR U?%115oneIyA 7h6= %8 w&ҠqBoHX9#l\x @±y.WQ_ǽDg7*J)hU$E8ߋ7Ї>ycڧz(A]0AFcVx'm`CoZ]i^|w&DFYgbW ߠ& ڛ*k4ӬѼ{&"9mrK $ 9R+ضYӜ"e2#|_@gḬpC~cBHq:y`v)9e /xqҎ&)dtΊu=*k5WϘ I'ZR-grp nԐ{qhN6i|FJ/MTa1 HSQdMV{aA6qbu^dRpBv-͐7 @Ɲ {jug\8UR,Ĝ^8ű4%Kf #>CUGl4M?RZc{4 _(DꗙZG:ZWJh ۟1#`oEAħO[@~ap,[WNdS ƪIŪ%6fEŒ>g[HԀ<@%P?X&6rEyLii!^Q07 Q~7S'mݬ.#YjXvrUNGTXP 7'r=aAuon]ZB.E^!s~nOA GG6S8J*@ ͼ7Lɞ7 N 39`$~hҾw02t-a bB.e[Kbhxkdbݪ~{H-hwΩU6`S-Uo9H T! V 'Cp[ErfGR,֛<LU6/_ds/ז5wvUOgL4z39א9>b`⨫HE@T"ߛzeH8;0==-%O ֙2 ;Bȝ81}D óiD7wr_8E_tDi@6WB\JqH_I`hF{T-orLS*_a[\[9k'.z3iJyqTbd9v:\+KQa,hƁ' xv RJEXA*b0!q/.s\..K'f'};3yD6a*aqȘ>{RԦ1Tޚ>S;Xdom ^u{UM,P6:dw~C2]Vi/fM̿QMt9ysEJ3օ[MYF_fZ%@p8)d )Q}Wue$FoOҞO-b}E^X =_:[Vc{KxõL/F 6 EJЊLt[ƀB9kzWZNd.dE Q~WI04%Fmqm-ˊ,Ȥou8WқHE2{idPēTh[!ӲD2~O X-DG:_P d39-BB'As*^IvOSS[5Z|ޛ>٥NݕB*Q[t>!U:>A& d0?)e5$x/*kOePqW 9x5eJx Ucj̇ce^FAcVS ?VU΢lzZ6\OC[.Q]~:uqB%ʱ@aE.i K䓕T*(*?ɗ q}t${Fyɸ0orEn"݈D^$iQbfЊsq f,W8}_9O5r3y^1<%R_b+'5c9A~45g"gi%̬4!w7#,E)Ge2Bdu|p nRH /?mZi6&;Y pܸ1=mSTx *D2c:ǡi]na`7G~Actu?6Cݰ[KNDS8JQUF6{ G'P)D-Z =Q)zn4szs;kv-eKf.ay[>A{BJG'=W% N SgdcٻɅ;? &:Vn&@7b 3k7;XBDӔ.tUwD+zy3u ]T/)JR1I4!=Z;uzթ5жo!f䬱c5峷&7]lƆ4R7y6 3Kc^Y D8%h}6[d5ʒCzUs+3a, {<*c) :{'Х~PFzI*ٔ.4#jtx!䪲қ%2H#M]]AZKrĴreM}'ҢMV9\>x* :b#aݤeuC`UR\BI1A c%kZ9.o&nR„Jj0Ƀ/dԺ@!d:j$cXcvVP (C۸ SdG).+ X"l~kbN#uaݟzeWAnc`~-̑;c=0Ssʷdm.RQۄk}Ca[[d!]ޡNFrj\g[9y!-,llz3#HUl\!塀y+P'T#`,/(htTO>QwDte7:RgDhE-sO=ӭ *ʽ} 7sFQCH Y-h fIJs]p5Tpؤ/ ;[_ R&=%r'TE:a|EH?'ލ|yB2b/L?q8*:Sc<`94RL>/n,NB-2\CU-4QwO-AFolmRhe^ gEc0ۄ, =/F(Z;T6$(MuS;KֺpUW#^op;?G鎌tM(wx En e9%Nsgߝ-#֜9nHa6H{ 0[yE3fp[Iw@  ƛOe,L~Ղ1JH8D ~֫Ii?6h=dN4⻽UUV;T .P0 lehc$<fx7WhKѓUiC+vEA{MBgYn/ƴBFY؞pܦT:hb/m3#'<0~Y S (Z&ah^MXMfs,~\U3 c;GدskUY9yTZ].^B{'0g~mҏ, @ "^2rlBȬ<`K&$$H#LXxI !^ '92$Y[!Z rʏY(pn?20/kW2pQp1<ԑX[EWtH,DS#3L#[b=cWm,]CN/blQ,+;>Og]ШNC<-e09ꚜ6LGQU(kQR x'BNL!)*Okpkc|M3aӵuȎR' nj_G(`=B}j:h(_͌Cu:ٺb,L*KUwDӦq{4([Z%YhlSH#P|[QzVgx&ώ9BzXpxK^aآcoũסG-/N ($7Z us,͇eUJx@,˹̣gDGEtʔg@r~U4B~!sH{v!l6Jz~󻙾imE7~Vbk{X&sEjR D?~GX.bRג cwc }S6<88Adq򁜭C۟¶bx9C^{|߱3\ہhл,(?ᛙE?.zmUY7Aߡo [;]#{GF\sPbؙQF?Il8:;<)]A?gb#9Ŀf実 _f> [lQ*0PlMy>&$rkۧs]|ޒSzQYl&|EtSHV7elG_>}2ugNv]ҤϤ8nA3p0`}\W9٤MW`xJ¬Kڡ;@ѣB]wGY@d w u`РV̟B .&oT7x/_wBĉRu)mV0RlY7;5̦Uy@82-D|@x.j~_jE/hhq4.,o XEh}@J\\g]C%sG62NU@-FfOJd7JJ.ܪ NeV?C]җbrq#Imbb8C}6TG)P[v,+{[ Z :!\_Bd_! uWJ͋ƗnVv*5vVf]H 5Xz  P,y_%`xKYq= 9$72܀#L o+<}|%IFF,]+?8\U4>cTSx۔cW xNq<jO_@MMB)`}*!k[ t=>jd!" ?w+N635oO U"8"\77rǞaHEs3GTQي"uyjŸWfUnxMP*xњ슡рc+P0H5MYݛझD1:n}iN&?akGnӓ,# CڷK䵶/=H7H'\}YeȐX ̡@:9pߨqoqa͟^|+7Ld'\^L` 6%N'E,Tu=/P^-uտb@n4ϻ-ml3 ]4AF`!tALRZ)Q Bxx눺M8oP˂-FI>.$V7zZAG<\FL>3W[./p4=R\<~qEa\D-}-2qvO 9.yH1YI?^ּD4]fc[Ÿw>N$UKY 7s u[XJkvrg [T_$ä_@p#";U._;a)VO8i#zCnؓi-s%5:s0X?IqjIcήHW}-ӑ>'ڝVQf/Ae{Yz,$!Xb&=r0@ [+TNʑ&3ZtcEǢ&%]! ҢZ9%;nuN@6ts!Iz=%zܧUo Qjv~!A.8- 4ݞ߈p]!)`҃$iO4_u.O~nR"J<"T'Y[Fb*@tFOY~dza?Y_]!Eu 2>3liZ30Crbz}hHuW&*o3DV,;'zP \=*h>Xx)q3#Pಯ$(} +c<.awop.!리Hڂ<.9cRG|<+Yg\ BH`5C)҃(Z\Q%]*^N*ꐡ45h(%ĺJ/Z6Crls knl0Ea\TBXK ]4) 8tQ3~K>G wƫjyϞpږ- b{dV+;Ymts)7 Beҁ俛hPBrl Zĕ./d쎎 obZYIbx`2p<ϧ TPɺ던V|{InZr [Ĥ^p4A/u PԐWwә R)tЩlor0$[Vf:Wۖ}}beJHؖ78 ‡/CpP0Sj>+6m?K0OVmJ\>6$3OXTv  <Iɕ-VEC ՖZ#f:90 b"07\ \y81ω@)/<`QQ%N#uj>=@L?7--|#оTb[&Q -4i{9;s,2SxR?xr&$+^(_UZvHGF\5A7 ׸\~ 6eDl.L!~&-m_C^H!DźQD5*2w)%iqG3s*v5&ȡB>9KLPʥX-+r8pLCk=C.!I?_`p5ae(S6[Q qWSuUv &цgNxCTy,zK55ay{=(sj6hS;G"\0{,_I 5a=֎Y4h)j/1{C:lsJJ񀜁^عJzjm0*ʺ?6%FFbUS QhwD1`DJ/=q7^w!0%zۃV vVG@$}u<8<}Fboo)G2T$x$hQhbQB}78\[ܖXq !0oP UyP OoӜ& %zh6},@:DZaT!W?G:)tjl+ԯ![pogl_jybT>]xeW+LJCCt6[t, O ˕F4DI$~5MH Mir#8\q|4Rcػ5+(Id8{4̹ Ǒ'j"7G.dk,Ʋ_Y/؛<|QaTs[K;콶{떷N0tO6x X wCސe h=|}+tM6ځac HBvMgXRkKArܰkh7IIqr|G hсћ VJ`(x?hK7߁ɕ~Wc#v?R:eƠ:{pxް hm6$gW%HTI!v}ܷq'Vi]lQȖ>+'0 [t9-#e^K $~bR5ktv[ /3 :v/~d2U~,J?24:"H, @ܛǿY {UX[,[ '$cñ,'hc]pkrWL[1a/9χxˬGdsjdKw,T@ {P+k)]b>}$.{ UpB+ٽzE-"37W$3=VK{Q֧J#% *>Foƒ:m(mn߇B~mZ %n'TX/1`)-R;K,P6(s"B=u`S(fx}-2CÇZ%1.}o~o%pz|^SRUXR]w߳&.ti 'q~~'Ŵ;jňGssl'$J! 82ή$< Wn>7PРx@$ 9bKh%icEe4'9,P͹'>_%RlE3 q.&_y,]aO`j$>ˑ%zЯ{LAW❶!ԸyK?Md|D9͑Tܥg,U XߊU LȘeY|I蓷@ 6/SpTj@F"?m5^F׽U)YΛ(Ӂ*ʊGHqO@%Qmٸ2r? -  S8 G=a G~>/w\!o:*ern7Ի@ 7z& \kRJ?><$L!UB/m{(r&|&!6zc{ɬ)QM&AcZ%ITMo+9ܗ! 46LERq/ﱶنA[7IkM3ԓ0 v/D Hs#L%Xq4t LEiV)aشZJC[̚UO D DˤQNE-mFhA1*(L-djk*do7(YHm7Znt+Y <8Pjl|n< *jvsUTf~Fk5)c+SiFMKd79߼^X%9jנű+Y{ߔ q}|~vun/^YD7%1]r!- v\ҁCا>`lqL$IlgKz_(8^KjےMBihݬ9r0'Vi=HA!9f~yC(}-kd";e$+C.k@||w7A.qwݥB0$}2mmWQ^ӥd.|J|(ĭۧt:yz7#3־$ =49Gp#/yΎxʧ fPmdGAC2`&:[Cmzz΋&hbѷ~njyI&ksPXya'a;#v3(26<ͻ#*u)sH)7w@#H-#:}>qaCz, %ӭwpy|[oqt*q)#=]cVոL\םijdڦ6 .Yn$tljNQk-V8u'#yhxWj)4ǁ\..d7DO$X+1] Y|)b~kC|+◴<}. 1G"׼VVbtl̟ӼIUG% 1ȲPϦM@t{i~DSlNa }X<&'0_.F\`A@g3Fs~8T$UVL +! Kn2bZ`PpR1O =]t GqwT*Bo{gd$<%ḥ "w ޅ N|%.mH2a}*eދr1niAtb" ,dj; Z+I13lWa$pJkH kӭhU<̉"[d3p KPNs΢ # 3򅨊?My`[o/|3ZwDvza7mPO^œL__ ӥS'jp@F- $|0F}23~F!zt SGMB?sIWk}^4D+} sKq{k ވn}ꦥOuZ}lsjJ_ 25Ot0` MRq@}ީ>i&C pkL4R[XT<;?M0c<-k!^no?w8Bx%Uȗg+﷞hhh BeV3Jd$= Y?D t d52(|Q&$3;aP+1WpӮrMb\ұIk yc:Dase 0ބJ]OG8Y>UgQlNϺu]2q)J#V!|$X:ra']1a*7" ve2|"GA 4~w"ͪBb"ʋ ?ftb|g."陹+QaݼcF ]}U8U4%7<;2AXbi?^Cf74_&l0&11]A#䐜jҸ&daHw0r}+!Dk?W7g Mydge8#.Czm]µG{1v1BDo!H@vR0ӭ= đB*ƇULKo$hh2tpA@ 9{ԿcΨ.3*oyCgF5L1TR>L{Ϝr㻟.-)8U*%*{dR2&7HÇ$n2ߖ4lqT$*Y8bLjmH`;-2-y3P}'cҭyn֛,3X#hzPYp#bBD(,؎RGBݔ8ЂC3$T^tPU9W? |5boem>+=3a4.&Ap|>te^Dָ4]- v,v $.?]R *chr!~ё68q_d]E1 %3.["TOtZiu{Eo6 _U$MY6ǎYF}v54_J[l̎wRa N2wR\vt1!"5=-'iQq0qlU&-z4LVN^r1'-,PSfeIޡ