rpminspect-1.11-1.el7$>Wq?h@ӑP`[>:?rd   848`ds *<ekt            ( Z  0(89: G۠ H I XY\ ]D ^ܺbhdefl t$ uL vtw x y DHCrpminspect1.111.el7Build 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.dwbuildhw-x86-05.iad2.fedoraproject.orgFedora ProjectFedora ProjectGPL-3.0-or-later AND LGPL-3.0-or-later AND LGPL-2.1-or-later AND Apache-2.0 AND MIT AND AND BSD-1-Clause AND BSD-2-Clause AND BSD-3-Clause AND CC-BY-4.0Fedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64npB(0TTMӜ^A큤A큤dwdwdMdMdMdMdwdMdwdMec39ad68c7ca664e27017d3a63d146120f490658ab658137f317ff7f3699fa326c63310097154d7a487b54c47c9c096331a4cf5da022bb704a58612e0d6f0d5aa14f24b5d900ee5d4323455620691eb32d174207e618a08778f7205556f5c6cfc60d5f055477e7920014372bf5ca758ab2a1a9d20e76d69cba1b1e915c54df773d3c7f3c0eca326042445e387366024eb11bcfc5922b8dae848b31936543b32a3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb369861c870234259a01b13a2f3c8ece6bcb952bec6fb316c1016b72a6be2f6cf8abb0751f4abde88f86d8e158f189782d916f561a6fa662956b0ff7f9780a6b515419rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.11-1.el7.src.rpmrpminspectrpminspect(x86-64)@@@@@@@@@   @ libc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(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.3()(64bit)librpminspect(x86-64)librpminspect.so.0()(64bit)librpmio.so.3()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)rpmlib(PayloadIsXz)1.11-1.el73.0.4-14.6.0-14.0-15.2-14.11.3d@bb\@aW@a@a0`@`\{@`7@`7@`U_@_@_@_@_[fDavid Cantrell - 1.11-1David Cantrell - 1.10-1David Cantrell - 1.9-1David 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.11- Upgrade to rpminspect-1.10- Upgrade to rpminspect-1.9- 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.11-1.el71.11-1.el7rpminspectrpminspect-1.11AUTHORS.mdCHANGES.mdREADME.mdTODOrpminspect-1.11COPYINGrpminspect.morpminspect.1.gz/usr/bin//usr/share/doc//usr/share/doc/rpminspect-1.11//usr/share/licenses//usr/share/licenses/rpminspect-1.11//usr/share/locale/ru_RU/LC_MESSAGES//usr/share/man/man1/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=genericdrpmxz2x86_64-redhat-linux-gnuELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ad854188537020814384d1ec63f2ed3cd3439200, strippeddirectoryUTF-8 Unicode textASCII textASCII text, with very long linestroff or preprocessor input, ASCII text (gzip compressed data, from Unix, max compression) RRRRRRRR RR https://bugz.fedoraproject.org/rpminspect?`7zXZ !#,P!ss]"k%b_Pf&v_-/*.Mt ^tQST슲;?$HZxZ3#X[hV ̮a͏×Z̭Su12:a'i'Z-Tx0qQcX27̬> eqe )Cw(\~ې`I[ UHO|'+18q"/i-8Z8-EB~ V&$!ad~7~=jxbiMgs-9[P`DEEȯ3j($e߅>Ic&wPXrnz/A W8mT.zta2kX_/Vz?a3k"}1Um"pgZm" ꩀ0Mc-Ecyw="yvzXnEsƲϟf娲uAI/Hn3.+_hlaL]{z/ܶ Pg~ǴE6Hם9[k,ShHAPFB DmDO ;*dݮg`fMOF0GO6&-:<ʗgN sJk~!pcͪC01+ik, :$71MPGMQ@£.`%eAs9T=ɡ;ph;9maݪ  {7^ͭG 4p-Ύ ?9cRwߓI< .qer45In?tKBܫL1x=iW͌ɚ* sOjBXR>`k?"/=>!^I_Fa9q<2]5<Ӫ[KQ]u5 +<6a4) 95wFW-4Pk}ϳPcfb/,c%am|2NiwlW,Ĝ?|K'wE)k=Q3outs7yEϑ'~G)nV $rڳRH:Wj&^{ }_\{yU„xn/Im&L聵喹R)J*2ᕙ(:~cbq-zK7L\;.UVyQU/qW.Ξqc@IJXC$BGaq$eys&͍#xn ;Z#bmhJ~hOj1(F^m/l&ۜN}ՊvcGzˏ6)Tlᘴ&SB`x]T^BE MO `in"HsNT`}Wf'ɞ^iu+O_0)hݍY޶޷ףuw2pMۛL#Hhq4L5  YT1VsXV> `)T}g!۫0rG?0Lt pZʈTP0Eꨑt > $φdT$H@W<ޏ'5״d/oZf XJǴa;:(VԀE?w_7R`ՊFj#X)njڛȰa6A݉;&_ݓ{z/DhOL's@Ĥ@\v( "&v9{zJq8 qt0: `7,:k)Yk/8>/ع0v,]n)R3yuk٩X$;4B[ƴ@y0 Hh X0cDi/_˓ btQc"VI4)Z;26=1 AI,U;Eym;x:0pͲ jµ1B*~>gv hFVvQBm@#x3o \P_G5oÃ0:ӾUmX t%𝿭!E% {ǵbjq%Ps^ Lt 0Ɋ˻ފ(B-tfuwە-NՃ2HwzYG@X7]2%pz[} j`PY{%X*diŢ +`Ddd3ޛ2҅Uo=|STdz#WI XINQf~)s5ɑBs TU~W/7v gנtx4!ko_c'W!ap\Uc )E/BNip῕=^fr,5ťg_*PJ8 ! (nᄘ"ĩ3c(ǬRs\mA($@+c5)OZ! W-m>r:)Fݶs7;\ܠ! 2Z*?750?uk| ̱ sI9F.װ.oGC?=ՙs=a}AOSNU&Q/% VQ rAlyAc?8paU0y H hLus+GzF75*qTK7Ty13ٝt|>`) & `9O+;^r/yKcѦ(᪳~^BU7>cYZ+3 +*Rvqͣ2W}6:ep0]A^aX?! 1|T] of*Njc%g) JoeKf>gh=YbPGeTBN+]XrRX#H'R˹]Ӻ>QȤعp<XMQ SEͥTrDfge~k=up9OOA?3D*^h: W^D` q2|F{ؙw۟b?)kWnOڛfe&g섿> ɤ'0k8be=auSMr4C|4ovۺ5NPi{\WO]RC=KX֯1槓+,ep*Y[ O)`+)p'kO 7}_Q7g= > LY6 @V\fo4?Dh7*QR!ff@$a{?k, ]K5Xw%=hAw9@D# P+DHP"]_?K?xp_Ccv[,fVº'5L-TU/#(}_H[zzjU@(e~iqg{BmXȸt$֚Ui %վ>uR9.1Vp\+| 9J(z̪Si4"fCF!w *S2VJ܏VYOiNt ӄ2 g9yP' ;j-[✦M$⛧ -:FsW <4k oxS@gEʚq.t1N#d)f&Jc`~0Z49M,YtI.p"7,TiWIűsmST&$",x9֖ɖ*FF XTVFT^{6J~ϲ3q$"2]iYZAgTQzZ Ϯ%S֑Az&&ŔiV TNM>`x.Y2̓\NE%VpKXx."Lӎy{/w#SΆ7^3umlr)L63fzCcݒpˁ :':}K/txiz[݈qڮY*]p{HxCb2˟;eҹ ]϶;;wiP_7s/%]wR JÐ[r߮a$50o^><˻ p'a&x)Xn{MOq~Q!V@>ڐhh I!y#s6 Q97Qbn{S0KJ)A;8@,>m$=i v8&.犔A6[6~1;֑B7~Ec}=AaK Ts=4^UI`I(A!rO>O/ċ=?EHU$nÇm@~(ǯ5.` ~>]0%ƏhBϵ.4D [ޒKK sGβ}fiT8Ů;ZUGqNdg3# L.)+#KYtPڋ׏?>14 -҂f>(%eI3n^t:|BPB09̅5S?ԭKz[!H-?B5z"Ѣg)Kq~θ T1YfCy:63<8 I=S ǖ0^x>x=4Y+[?o-^G{p3u-'pO3{]bIfd4_v+uIdۛ4Gv`FYK$&OA\!צF;df؅)0(l8~._mb_$?"ū汐O=L AU$|mMJbtK\V!ρjO>k\EP=7lvSz6eq$)PJ(,'U#'"q#':yO*4Vk@p]NI kOhT+u,kA5C"~7kd ц:IGA#yO' ~}u"ԓ*aX`I%EE?33͠EyS^M}* o(yBWS ^ꚵCsV9wcT$ºZAklCӧPCvH֟=:dօJuf\wy!^@{*?;>meWѪbE8o0NkUZsY`83֪-nm_< 1kȄ=–j s1YxTh@sHo@(_rC)ui Gtf'/MMԧ>b|1.Ed77R{Xd4eS:IU^w1qJQǷi*+ 9ƒɃI'?6\SSEIʸ0e䷯qbccȰ_@4ac$+NoB>yOgs±-8˂*36]ЙjZmpVzא)T8"r֋y'pM'W$ E27Gx1vºy[' Pog,4ҳ ۑ!W~`Tr z ¨g.7-.:_y\d)Hw"Q@a)[!=4du3٩ ֙kꬒyO(L~;ʳ]`O\xdnxr6f_oⳢbydxd&G.(u T2ǃ]Iógr 4ԵnՂL$,3p f[WlL:Apj?!%>a4&s(=2[]f^=!N* mֲ)aXűiop)F.͹3a 9{hɮV!d!]mYЄ.;TAp/쩸&~> vjP%Y1 :e"'6( <2/m4{QBE*f)k0Y9yp82_40I ]I>E&EE3+Gr /Aq1LU;_g|W]cqZqLwL?6=&4 1w^ @^BuЬ7ذ1p+e9 팪&H*qٕzgǽt$]<%̶7Kesl|,}33&3-ֺfw4Qg`q=t7{UYIJ6lw93i5=OOo, =t_/RLm73&5E8`-.[v, 9lz-]9GD?¶O:)nr CN2|ċ'!3ζ.y ad'#}AVz֝^ L3\GL0|:Sg3PiU4ZpP$wME M5oϼ y5}j8tUw!jegn}D1Kۣ2٨߾I*g%WӦq$K:Cpo+9}f'kj-qՁ r;9nT'.J2sZ՛\܀FDZW1›9]eL:Z44q >Ԉ],) /Y ʂ=u"kn;B b@dcT hCT,(qEW4!.bQ0 3Iqn44# SRZ_4;MhpWUm$.]p=^G+S!5ZoV JSҶ¾B`oD& ٞ_f u k*9p; {!ۄ?R?HN+SnN,.Q" c!ARô-1"9r۶8+yn|rMh1c+}iA٬ҍ ÎHﹴ#E OWg._?P*a:p;iy}h1㖚îzcn5/o9"bBk|;)1-:Q0V1MT9 A_ciUQVNmG68mfJIx+p,^tìjo6 h4)&{iNV􂪀kګӃ=j+Asdv"[8PJ̢_|u +ή%j>VmB8.ߍgLQRZyYc3AOm> R9\\K`ѿlwa&Yڄޅ&?ً߱՞F58ᒛ,Gum"NꂦG #)dLD:˜;F !ɥ Ɏ1T˅BhUDashc. el;<7T+Ӑa)gpzK~1| |TmZ=lfPC w\?`N`?㮝P っPޥ2/zZՁ.u>)Sߩ@WSB@(FZ棝 L6Kx 52|Ż*0WfNa(09V:{!yfSbL{` 3qYXZ ;|9 D_sp9p!j||܀'s)Vi'UzfP.$_ЉnÜ.RxUbՉ]||$2.g?\[UB7P7"i` ~ 3`7lEr;$=uŜ*8gNtBPgʑocaM|\`]oV38<-ᱠԭ)T֬0;O-pq3n~&܅gl[}loSZѤp~a:-{djXJ1*K'@:V AiH~oG%5ӺD wҡrW!jvg%Q kS1ԤLOOHl1e5j4/li~liqcdV]-AU M=`K`'܃ó]˕Bh/)AUfCC"X'Q_OgT"[(zyOۋHa7 ’;LQe \ZKբ)k\d~~jK"Á- =~kS7L#8XdSr(]u4, =']Jyf9= :kqh-r.)I<6oƂ(}4x`C4H>%UA6X&hȾ )^>oY!^tq~\Yp/g{T<:w!(:2C1eDBOqИkdiAsW[i{ő ny0^&Ld3#LHq7>} Yq㎎MSW 50Lxg}ef0+ס;jL͹ڪ0,i ^:M\x/2J89ogȺ'h5f'O"c|@oqFh|,Hɐd"koEEAT}g1u } T hY5%C :]\@U$\]ʳRSL ?رX!8*d=u7Ĭl9Qwxo4uVp8ϩ|-$/%ѪGԟj~m îl ܶ  ϺkI1JD$dԃ_4ךҁ?g4@w6<-9sI,6U,$1tzqৌ>YgМ>#!:k<1[}/ZnWq/TސB 7(G{IgY㥿Q$8햜@ }\?=ό]=P!,N>l4`oըFEװIjUޛ)8 iX&UX%^F"sJdPjTg$ws lusj_uad/G78`ՊSiHQ)<*"Z%==E[-_dTn->V'tPZ3y|Vk"^W;m>"L@3ƺ@pY$ F9h2ZFÌ=Uߝ6!p6˾Ha4wA46 h$?_"1䈙l(B7c0 6z 9d:ސnӤ L9.._I/1%:;YQoŖ{VUDrLXilVAf jd[e}>V3\\rF^?^h0(|}$ NOW= Rv!B0}.cb1{DW~q:57 xl9"=kPW"ȓJ) L/* z'~4`Un/{`QDZ*O _5=꿘ѳLQj#> * ͱ% W W.4h{ddH{&ՙCMSVFw< $Ԫ-RZ4{JFܗ\g mvIȘez_R&,X16 j9 +v'V vW`ɸ1%K׹1o=pɎ8&ޫ,fV,iU_%Ҁ)wr+Wa76{2pTUܫ1+&8|M8qE7  sYkf3Cd ^agL$vk\ l9nSS RS[D 7a0B Vɬ!j6:?ڑG%ξIƣ^3+*2)]!`~H:m?V7De CF~!MW&y_Bwv67)`Le,eG] HB0^[ }m"Õ%'`rVxH Q5cx`<9נUjbs6f6HOẘcKt-A P `>4mAE4e.N$լuN\KRy*{=os_x|@@0f-x=?=3rENx:B{n쒫 csiN"c?]"b{I f:J"$p&+Nk@!lJK0Vg3]Hԕ (]@paN52ig z^$ r)舊Fތ$Тǜj:@Bu8( mJmIEA..`颎ˍ  m)u;(g"Wأ^jRn winua4j¹TO= }3@ 1VZזE|.(>ĉ[XZ`j*u#sMCz ZQ&]] &F?4W/H{+w=4lRA"K /7>tsEI@+r6Hj쫎 ԷGse|O;\? Tff<'kkd0JáYCU;p2z*mZz@L1\&dPt-'|ES4F"o8J(gKs䏔Y|'q.VajaFE =S֏hq@ A? H_p(? QVr;"Im?QWWz5<a9#+CInj|UV Ab<585@: P!?d+D;TuJz㩹mwFgVut'/POEL:w KW`F[Z n4TZ==I~ F֪YT~L|E]ĭ}rw@UEbZƭrp7F[n:UN͈ՕƃQhِ\ݮ~4t{$Ӣ8AѹK{Ed^CJq !/PNji+t~˒3Ea{m4`Eag0.7dHlXH0D\#hmU,F O0o|I A1Ibݠ~$o{[N шw jŹeD{ ceA.|#c|RvF>ڣo~ ݸ2*k2FwSm8:ac0EC!SKy 2:XG PA=$ZH7hn?r͖N D8UUʫs|lܾW<28s8"L3QHEI R32, <+ 9$:^r*ld{%@E$&kpi7bᤥ 2ìj=MK߻Lv뎃f7/:Hw 1=I_`DdW.NBMe91J kVOdܡgf{n>>+:Q>ڑ vKgFFt{i9ٚtjF@Qh9.X h22}cpfBQ(unHVquRoY%2ΐVU 776Rz6uavIk pWu8XF 0#M!mYd贏pANKKi)5#4ou` k?37ѾW8-'JA'Iy ~X舰 ޭszQ!${M#}3*4Eg\;0?"4vyD&h-K ^R>CĂ,mr.$;twCJnI%S[1>U_ qm`Q(Dzf-k-DcbO݉7Y*Co\Judc8Xɗ\Jom 6L.y{Wy&!r=[ːc Ɓ&agm V{QMp[G6t.Z-bSe.t%3IL@6'!MPѫHw<쌬^ >;p d\G"ZL`\@GWۑ NwM$06j?')&ʷ AVhJ\E9v\ :G *%;gNM_z__`.J'gxvXBkO2["Zxy( 2 R-R}nuvq>fȻ/X.xӞmk7C'ѸXگ+* JK(=S8'2PFf &h45}Œ?rt=Fl:`gS=r;+e<40B`f-TrbB8eX<fOvC@ -#zp| d#R^Gÿu(*x ~/ = j9>\(͘)a[Cp%_ ,lP<ވgRT<ֳT~wtWDpVW}lԚч{nDڪ|斤 &3qm4$S/2 9}ua!ko AG@f* c+ء=KꚣSW͝68$@7,V %4Ѓim _7"R=WC>7 dp\Ù qFHjPu{CYwc5Tlj fİEG0*zd Ie̹v~GBʟX,,Nc7&F+G6F!&MҨK =l%zZ66&b. tK,HH] J:%홖)ZDj;_z\D&{*aP*F]߬9ms%B\~DVsZ4nG%lfThs.#83LHgȽw5Fo|3p\co]]L4^,a452hA91 ܸFn]Zֳ}np71 Z_*cݥV`GCqUtBĎ$lN4H8"K (;wa-jvd|J&'RRъOW WlB${g(ɭ bpLdu|SC 1q`'Z2d"?2< ҳO!oդ|Y#^ ptnd;2?5T+A^7z°pI$Y~=8QˏU>iN*A: S+GO 1cqB%_k}&;O{/KT7(V'' [GtGbG_`竰b5C/0T'OJύ8`-'ŝ #08x Ɗ'NjoБBj S,\!93VV4R?*5QDI#1]d;׍+byR L}~Mm_%>eCPVN ŌPK F=d P ^y6JaI?E#/WZ"8RF>btSgO- '*' 3Ǘۥ>%YSR"[Z$!ByfH||zR-bP!CloǸ7;^vD_iyGh/(\ZScQHD[J##qd2XbB,v kZoEk[%bF8)8!]jG'"G՚ ,hFG (mc_{"gq1q0l fʈai-5(@%G 4okVE8:T՟#M.b3*eB'ˣK37,|4RV75 r+]wu <}o91}cy0p6F9Xuw%3_> iA<;Bn-XXG% T,8+-ZaŽPsj HXƿV.[Nc5Q\']v)`)-'2 ;Hy_/W Px$YՋ_og˰8ʵ{Tlpc7"M$Y5@e)vn Pjc%@vOfW5t~l͎^$$?YȢUVMP<b՘WgK]=3FP"TR楯ekN,|d 31(jKU8P,>\yYv*p_f8hggLЋz$EhXye}K$cF51 #\sddKR wds=`S~2P;z;ҿAG˿`8~ԩ9X <7h}DI KC&%?I3ަvb p`ԽFB (!n$7m 7ɸSl)̱;0wr[HI qkd-.2b]yaѺy~G&=nkESQ!⫁4@;k82MGxr.s&J@20R`ʔ zk[z=5+ˆvtg.hQ{ooeIVo`NV jIΫe& ̆,GE6u02/tlu&\<{}#NOH ñ|vfg'OJWuF*@Ve:ӱ_{`6uMH-H|AD)rn'nM^[/bD* /*u )#\kQ "2Eh-IT,SHH1Jtw.imW(f7%E>hfAD09YUV},dﷳDȂׯ2wSi Jb'֋Or~?fmAB?].󿗰:XWф‡ d?jDgPb<Vd.N"X}N;R5%s+Uo.lDSQl,WfkֵSé {3 ^u*Ai&hC "ZF )er5'/Gm>SDܪ~EJ}00ܖzRq7'zzvS!vI3bQ벏6["ޕEٳ!=k0h8HZ ZM6RqPOJ4ѓT_ϡ̳pT=Ldn ݛp$Q`h$Dp[311љY/ʕ>S{IclA h#a%Q<0R.*d嫳WaZaSŭQ׾mWPA[5c+;?pxaS3 I^W/msҖ ͌Gvd4IP+ӵAg6\Q!stܖ%8 |''s(Q< iGb(DNeiIM8:e#2ʕ][9.SwVrBWL,w;65ٿ{Β .|s2Ȼɲ+̽s%P{/:_ljc V^ׄpjtUfB{ymcwHg/\^;J\|uZZ~1?8}E ^OaU7M {Z+GaZfvZrfJ畝1R}X>H}BjAgr0Of;Ǻ*sbxLKj-u=aGMMv|F#}9 9nXj)sYN.kUU3LG=}7nתFcx%,Գg|`޲c[2P5?rZ#wS_Ҩan_GfUD>NZ1NlMe/Ts20Zf|H*;UD[m&[D9sA"zZ&wyG*HG]ie1.[,WV[_ _py ݿ/D=PHӝjEKb{f?a(uV@4P C4E c '&\-#o=@]1ؐpbiRחw2.X d!hѐIB1=ªA~G4W?U'e%az`{_ʒn+j4Hd킗-٨&zQ.VnQ r*|KKz#cF,1SgO(SaX³ K#JH-NWƱXO"z@Њ /$9Ej0 /mC_GQG &LD%MA^Ses9ͷnd5pcYjd쮸Y"!/6opc 80B.A.Kl?$cټ߾ѻ?H2o 1N)1WP3PGB1#զ(1.Qkq2c{#"8cK*"*oՃzzѢIEj:seE' KBL?Uc[q=9sFk6"_d:{'fRRj9 6Ka7 ^0‚y t KJ7h,AOuγ}B-ԭ`GLC;n=KogvUbI0N;`[.bq~ųxWI[Au8ٞjBYvpKRӢ58QŠH=YU* RRmi!hyTTeqsn,vP 9'395uYh,2TǕ 8ʎ-7OJ(SǍu v&}ȴE=H{:^ kP CrJ~NASV^]4]PivEQbSءq& L!;T}}mvWe3uέվ[E}F!GMJ]?U͸Xw#mµFض">SLwRx7-U_yݳU9F5 R_mS[A 4A88H(eh[1WɝlͬҿRnJ7=a e\BQyZf+MЌF'`lCW|ۓ~ W ӿgkhu8꬞KXԄ7RNgKW@VmG_4-|~ a2=Ԛh"( Mq5tf3C~BKϮ`8.b:sГA jU{\b<4V,42;k$M!\o!wp WX;XhDNTffvd(I3IՉQX`3&Yh;MhY۝OHL8;1=XW88Ñ{(oEoMBlep]95DTY̲OءE6҅vϝס X\=!0 amK V!-6^l$l1."?)$"\NևK! $˻ٌv[X侀LG)$Ȯ.PVHMnC͞H\r"3J *H5<$&kDu_k|BNh9IDì41q渤 7/)a ¹ܙӄ 2MBNh 5@#/VCؼJ\?"Rm{obh&@|:u a4s"ԥ~i7^08ƞBT@R\].G RY5Ia2 CNX] csWiU?fΝA&0` gP"^sЎXus\1M%Ќ8`jՀ0_,>n}rV7ܧ"aT~{E&8H5}G uYcV=Qڽ35n1>VR Ó#<*1yЛP>*#:|׋oֲvEc`Đdv>6х`|y& i'?qґn3`)]_;%"CN<Иp>AE䟠F*O+ p2cŗ`=* M R~U*cK4\ JF? 7|KJ&טQL Q+jK`1gepjͱ zu/6ZLc|MJCIwRS{KL_/WwQdp|xsTͅZs/ ('~lN$Zb݋]FNpMԀ "Xk0(juͲ+~jr(@ٛ!uث\p?n퉧VU](JM yHO IM>X Zb7Ա|ՈBJ1xFZa&DM1ObAӺA0ހF&Z•˟\|eUZޥ|hbڀ(L͇ԡAtfXz4Զt d^(95 ĮO'gG%n 2bi"-4J$7Yƺ|U'С1|Jj&1{K4ZળS9TB?I vzJ۴TL(O,3k -W(O,f v&?{U ubb[Ǖ_4ɍy[xF~ Kh랃ZKrZlD|t <\妠J(l! rUSzɡt2" `*t20r%Z'"[x8=*.³q-o7>!dlY i_%7 ˌ\-dY.)ۤzno½[H;{KfE4=_Un А|Ի_%K~u `/U!A\|RS,8r|8ܒ3j A lAg[ ҁdgnQסI {[GEZAƦ:Pd8v)DPrn1L+$. ; rJH/KQ(϶{=xRw8s<#]4 īHi]!6#' Ah_Wlj[Z M|6=[;n[#xPZJ?45f{n#PO08yf6cJu{k,$@ Žg(<'אѠ,M?l rFi`jZE)fS3yEi<)4SXD?4q;3o6$N/u" juRgH"'.}vs8W/p K@)Ye$5}Y{=RD bx%Eiƚ).཯ `0fd^x5g~4>xĶ rܭW֢ꢜ>Ld|;Df 6& GA5&NTKH6Ԝo)5x8R@Ӵ y ʽq vB0ex E*"u |ߥtqQ BL 6={BVG TVId F aɷKybKNmy0R.){1 PA4D 4uU*u T-ã\╿7k>eims_J Ϫb%IfRI%ڹS+:3(k~m)plglw(8= ltWզQULi2iwr!\V_W'ÅZcKeu'9@KMRsxŮQ5BN^z'nsC>4/s\'fq7w237J(~zK[zG YjgHKۜ*BUe-cXY3N xſ! }$:”~S)+ubmJ1vzX<^qDQo^շ輲S-m0T%+ yg%0d>5WQ(B3K^,#4ՀW&"ZwRլa7 )+3V7"b8LƧCEvx3"20gj~Qk6b_/,  8HB8)y5:/ʟc(Z*%n rڶ jhc&șP[LwY^Fg*ἎIeEz0,fv(1>y 1J{Mx OV\R IIm2Nl~P 3{ Qv3)10gm52A%1bVU+DPPsS;药\q~8S==U.`ms ?Ćk8"-8룝l s)fKqP"!a9ڇ+e#opДÝ*~D A&y&`>[̃vo|$%N6Z c 3Lt7D o:6&d&~$*Y-Iq=Lm^q: |V/q[Q_]bPUĦ{S,!ykL:CDϥHVn>RH\YǶ 6u"wo%$Ş HFuqۍ#@~ %muUOp@:l8M%-9lޢsxvm@ ^jp3^R16^f-=WE#LՆht_T(-c!T/{A8`'٨{12KFb:jڃ=.Y31FX98gk [8=)qy#"9+|~XrZfȢ5 QC:sUp;(7Ղ /ͻzOW@WGeY-e; 9mBP-ɲ).ݼKmT>~$FaUn˸ܪ]&Y.QӉܐ\C +ܗ.D2]5&)'yNѲ 0w3 &ڇ6Ǜ]3.4G-ttrεÉw'lQgV|#Kܺq4g6wPO :OzE,l+En-O hNj@[H6zjƇo;Ev8'Dz_5 A#.¹;'P8j9hBk~u7ldOVSvc;CELя2 Hwl=w9C]tS6 OzU,jܽȚ9(&`B*50Xf7n#^!<N8f#u#|;`i#"WOZ#hDrB[42 ~jhެ`[2ѝqittn QjG8^V6j j#~?2BEiHc3!QC|)Q0] 6u *&_Wڨt4+!W 3d''pщswzHY5 Tl;P#iBq/4"dd`BOn\ qc%Eݼ/$,Z1\M0~û`ub)VL.IBi~oUiVkfH{D/K75PAn#IH YZ