rpminspect-1.5-1.el7> 6 6`d63!}|J^>j/5,d`] j/5,d4-^IXfQmr^LJk(=V 3d|H1 Gl|] ]mEtEH{]O6ॸeO0 '6$!rV tT:ocP +*syGJ^-aQ?q^̆oAN=AjS[kk6 Zyyf|pcTVte=;=L΁(Ԩׇtb6k2_6 #pIq7CǠ/78kR<'n6(g$,?&U\0#`-pDE}~n4 2f04db7aa206e51e215e5f54672395f0df8bf120_3!}|J^>j/5,d`] j/5,d`[+ԸKk!N(`7;x(YN 幐D_B]jn $4J<37!_^DFd?k5P4&;?G<_\է?x{\1{/?yM:ϜLژcڧumt{3Tu6$ 5HAVoE[˜y0n)y-<%N5ŀpy=NmC2G'ax1"ǘ+`|ẅ́0Hqۼd^~~S,B9olZa(L+gZǔ{o8\7/*Ӽu[ɹ|϶EE3#.4C 1չՏ>~2A >Ԙ5Gx 'f:ܪ?ܚd   748`ds $ 4 D d  <dX(8 9 : G|H؜IؼXY\]^[bdye~fځlڃtڜuڼvwx(yH lpCrpminspect1.51.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.`buildhw-x86-16.iad2.fedoraproject.orgGXFedora ProjectFedora ProjectGPLv3+ and LGPLv2+ and ASL 2.0 and CC-BYFedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64^5-:LMsA큤A큤```)`)`)``)`)9919a063467288fc1dfc45c0f0ca0e738acaf0df4b448e3401e269ab21ad9a7d3dc860e35699a833c22cecbc874b3932e6c8c1cd4f559d16a43927b53b4ea56daa438765d513bbd14b5985179c6bf387875e735d03ec4767b6332e190e416009794e2c917d8557d88cc70eec81f336fb62e02432cfc1d1fca051b5f98dd753163972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb3698698a8e1640254eb99377ea7b606887d41ef579ca0ac2631cad9ce40c14fc837c5rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.5-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)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)rpmlib(PayloadIsXz)1.5-1.el73.0.4-14.6.0-14.0-15.2-14.11.3`@`\{@`7@`7@`U_@_@_@_@_[fDavid 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- 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 translations1.5-1.el71.5-1.el7rpminspectrpminspect-1.5AUTHORS.mdREADME.mdTODOrpminspect-1.5COPYINGrpminspect.1.gz/usr/bin//usr/share/doc//usr/share/doc/rpminspect-1.5//usr/share/licenses//usr/share/licenses/rpminspect-1.5//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=genericcpioxz2x86_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]=3f5de182ef325fd8bd5f1a05273ea8d7ee423907, strippeddirectoryASCII texttroff or preprocessor input, UTF-8 Unicode text (gzip compressed data, from Unix, max compression) RRRRRRRRR https://bugz.fedoraproject.org/rpminspect?`7zXZ !#,Lw~] b2u y-iSqi/s+gHRZLDڥ^}^B|ńމm ,5 {ЊMY/렲ÉbmF\s`'"HgߖqVRCi.>>Yܲvf;E$-Lsb'EaRD->4#mk0&|(;trΕ'NQYPϣ|ʼTDؠz DVXiEESxz#6Իcbփ &3khOfKQIk/F#fF+z1=A'a"M/Sm/mƾoFvY@5PݍhwqCF>楥5[iLF!J[G FQo ՜1 O@+VTeUG5lL6ޭ`,1E ,U6s}5?`'_#Ǎ2<2eĬAHn {uMw:Ig?Ab^{ҁp, p;GOˁ\fA7ݷӣ?(wI ܱ)R5$9w,#yC? 4DZ-V8i 75灱얶V8L*N#󋓪i`Z:|E9FQAnYANV}&3dP/%`+fIiinS\+k_dɥrdȱLCσJwq EQ7j:_3 1uohأOoVD&03vj\{1tCn$ ǭ{1M2e+s*jzIy}#ͪe^8MϗBQ}u/$-3h\Ne#Uf؞#E '?'1ʹ&yJDш{a7]" V4p |fzƍ;"S)QHGЃoLb>8>Tb&ؗFK:F"?qϹ18 `3uun'|blZ1U[cKLmZ0؄DT5vA&n7 FTSb~Q.vdbN:[Ft{sv̍ K; q4򘭅P}G^牍[ѥ-Rʲ`{b< =W]8mfF@S)P'; gʃ!Xe݁Hgke&@+"[^={m>±l ^EYuC7/M%DI'6󖬚;/r'6k?5Eɤ%D&RXbX_4qåo3k8 u( #Gp-Q}IBͿd޸M}N$PnfSvᮬS K*.¿kiP t:7ihߌP{+iYT.|d ؕy8:P Gƴ5eXg]}z`c?I'_qnD{hür~NOg>=OI5 2d0kW-BZ)Z _evXZL'g yY`a;8gN t$F~_-nAF7nvrf!<]R$p B\W1>K$ GIc%/dfm7{**SH]/Nc%F.PؤJ;PUյ-.^Y쏄(>`K:Hw Y1i5nh- 0 &"]YCo ~% d}2TŦ 8b/Ƽoϵ-{.B</Gs@4yGӤ.3^IM?ͥdKt|%x#nVB>  Ϸ'/0; ,!XKrqD Kr_SxddzXyHk.!E |mD%ŀ∢8NpޛGps-g`R@aw-&;'|D4ΕDy7xbJڜk0DG-ը]yM#|5\򚮽H̆NK|Qvx%<3#5ѡ!l1܏M Woh M~_L{Fqs|G͍;`3DM|@w%۽_.t%B8{='r%g[`$At*ӮkLGG)^y E3j^ɦc9 vXi~y7Ԕc4@ K#CnbԱ??_Lz ?j;WlW진nayl ta'CL}v?EOyo% D6(zaZ=U6%#Ǎ:ķ(|8-ma,!ix+qX30b:z7 L2¨}Bkhu؞cd +I u\`DgPO%VQ%Uvcdy?Mmb vCW9Z"FRԦ\i䊫xU W6qk,oT3\*-wء"A5J`.|A9cxl Wg4q ,݃i;s`s$u^A֘.0<k)Am`!мp'ޭxG]4D" c~l=S´)v*uOyt|n }7ǧwS=Y"~fn}c*[㐑?Ԍ G T@T;,ߨkjƣaChY{ J=ػ׭qS@{lvE]_`21+t}'ay &" >Z4OןW_2F|ՈqC2qbrl EPE@CS}CB=sF#/ZC.R*TkE~IΗ;X`&8r:1ĘgtA>!a=_i5 vai: ҦHzTlm)+lÆ%W`@|(xtFG.>78[n%om=g{H]\m%LpNCݎO(jP P7;vK(̎-qqjG%\jvRzD.bTͿUB[w ~Mqz0UW,$+R)n[$IeM  m#v+`A"萂yv y5_Ğ v2 {}$Th`ɽq =1#Czzl=MXآ뼫h2X%ԨO`x^]5Y' nSbJD'I7aӡ[,U6)MRz lv0GmtZFC=(qf+$/\|f.­<~zTvAL`+]rBSTPXKl.A OnlSQs~wiGT>O((=edךpkJQ-F gUu>Mْ̏]d"Ok0Uq/8h1H ر(icl4zHT ũ"s.-cY( zr.cƯ߼ILLU&bB)-iju}7MQ2!m z aǟ !p%SMfU #$4!EyB'Y4L9@ + ^#aN>c2ri_Vy㫰6 ɠ)C5Kљ G PeAlDpчBJd 9z8wx2Rzt%EȳN)ɔ6v :hYf$K.fl)^yhvo,l^B|1Ё(Fq=7 {Z^fQˁ!N!3]PN^ )0.S `TRq ؁m JA4|''Ab!:F?xOΔ qV)&͜ίz2AGJFCkc='^,a{aW /0þR`IMg% F#K)e8h5f]/S8_ܹi)[ۦ52iig6izޓm.PtgBgyտ.\ID^ %=1Eᦣ/3IQbfm_/K3kmUVZ cnbI nF[tW$莾LgjmM(_b_Ji 0a2J u:LU~ǔMR1xfFA8HAkY7^%8dwi(1vK}S9%1DkXo&U̮{G.HZl&݈µ5qڲ,?j:'SU&/)f8WCy  iww`O[ܴ@wDu Rۗ 0(enEM`~9:fY; ]5b>@v+0՘wh>{U0xBy jWdx~!΀[u()Di[u|nm$&T}_KAeVXCr$, R=:0rbDIG3t=hJyrrtYnWl fsIcC? fYb[te!{ڶv#4gcN;-||4*\W3+¯)|6/P)j#p|1w3M9@+9ͼűW( p8f &Է7l.Wۦ 3.HLx P\[F㬿 q )͚`}n>cz.S @HSJUAC$GIJ@iY6ق'va(ԍ7P흙9_WxL3qTDO,IyٹlW>):eJ^xG.y$bS>CK~;[2OBI|XpSmDO.g8̵ݺ}ޡFȞ mIbE`F M{ F ]ȀوLEA])6WPm H!؅,ZBĄV?OD~3Т_tǯ}Zo hFAƾ5 czU3,Ep"\2%?e˖s>zUA&Hk kGgGSKUzuG^2 aEhUy2vb*UY3_dw(# #(.}Q<3+ JD)O7<-V9;c_0G?ѮOX L )G3x̀zuN[S֚Ɵ9T^NoоQN+Q, Yt-v7ZO;aZ12 UrG2<0:م[$q#:MցW^vxwe9Cĉ/;D㦒{Mz[?0)t_928+"7@{ Ms5u4}HR V WIu럿ˎKc>qZ ~"(<ߨJ?MxKUPSII'{-=^l!"XԓN%\U(ävqMhpΉi; ̭t}m36cR]Jq)b3D{*'zd_ɱm"V/UؾL}u[ʈp%OpV._Dh9$zKN_ ~*){ȷ<"ǬfB*5̶mtm6V*MA ˋ)??MuA; `$'r|F,'@]JDsFd +Xll A\ m i3>?@…fVtXgU1]8[ TOMndkzp)9q_ `'˷F yt]^;WМ30b.}|~sE5V[m-5onOpfy.k' %>KIQ<]j PtoP':eV ~ ]_]X~~ 7(Iߎk`CO#i 7S^B؈@qUaz=á~:b^4̮EI*-)`/OO:/ZƈBJ57H| < FP.d&')>ON:h :2X{61='|w5YBE1i PbڰrPRm#e>N&P 2 ȂoJZPݰ U0R BfST_L1 XOsr, )?.0clҩD>aKY<5Xٻ*"vz?RWvGcy51z&L n\#Yr'2y= y0 妆ZB{UM#ID yLu{d7NboݙNIMA͘ 7(mf񥢶qx=.AD P߉3,ÅO>ܫootF}D RU*$Nc˱]%/QS-zNxO>8!Y.D~F%̽G''"(2圴U`akl*  誙yF #Dv "ev &=PCB4Z,mQԑը/o8t (ݚd)0bV#(j:' VyUZ35Y_Sq= 5G]Yڣh-1tKULSmK .M\3EjI8rDk>͏tbS=;"yLq /* 5@q,Edb _X FWk ?V&OaU !w{%FW8L_1b˼cSk al7z;h -{ՇN깉#a%Vi*~W4-^^ќkk~cFhՇN<4/|vD ,-{? sq\mJ$!z[NgXrMݗK$]7P̓0pVoХp^v46( rPtK?(6!O+J<F}lЍked{K1e@]fcV O&]n-ڐݏG7;xXk7&~sq}_oxϭՎ3 jr9O,pPT2]4kL9ՍZ9ʸtsTX+͵%tz]jdj:HQ|۝/ٮ&!hJ:$^6B;X3 evz\ҧKd${e8ryuIGhi-3YYgn΋K }_)z9OB[ϡzV@!2>n" ~Dٶ2~.kpx_1>x,z'\*e\!s+-'&)6Vwy5>>M1.}ǻGXAj(E|/ZSaePL$[Ԉ$`XP%]#D3L3F? >k"ƢF~RmxRi h"X.D&is7+׋nSfAv.Qf-͐`u/?f1-?RN# G5B@=PZzߎBzhɞN47|خ4iƆiӢ G)>>c_s:m*I3J)2 w|ߘBF@Ug VӋיImRwak&ÝKMtrBiJ B dᤍ/`y=\L4}V#eϷxdBɬwC$kC$+g32W.@h$-{ n@nпQV-y[t%*-&1U.@cnBYI f$j"$`UZ o?i܃աZ IRO'sLy@-ͷ_kP̊kPWd W8lZuCExħi,UyH1Ua+Wu(<%RV(Z~WUWCa!cN^J ׫g%yRɱ$M7!"bH\e²&rS+E=t<-ےr>|mR -:8b/u^ CIzIM2l:E%h[$(Gƙ%\6Ś,#W-Mf(`;KN")W(ŋZ9kb !sR1׺dZr;)Ke+/}53SK`ώRbMG?IsIܠS #a%h3:-;P,K\+5, ʎIK7<9Y_1Q,7bA3\_p<`"{ٰڹi^3JNi҉ p1-NH hՆ4 R&k#)!: hc]2yZI;*gOTv T06˦!+񘝏GaS<}'ov./SqzP8{=m݈pE wXIPO6FG1`QWQ<7tV$Wa0{8PC4i=Wҧ(Kx'Pnٯ⡙@ AN:D IYDi2Qڤ_. T;'YWlgGk_0cDQ#wyN6{SïɊ at85>D},`io,.V(ejtd Uɶ>agha)~_5mR6(h:[ӕ[ J!*J̗lAk]6]q5R^^77N[,+N5:HxD 1cA9w/aH7[ .Geڹ,ԭR5y| eKުB qq~C5Krl@gO[1 Etr?y",`fc/mSՀ'qx %s6 EMގMCGXpt<[޹#Ͼ@Cb0RLLX`U 1t>ZzAV?_eNcbhETi䱛Ư3Q&T:9֗rs1t@|OM'K~y60OXsOo(h堻(凪'Cu2+"nj%"zz+ړuJ,w.IWǰBVՠ؛)er^vr(.]i=B:F&0u3M% ۵i@9HFZ@eoEY__dՐݣ~ѴVq=Yڵ)A qn0=t)\Noe`T6.N8,qXZ 6r؊ IW)xOQQkkч)^q ?M~q紵}?(F)!|0MP3ٰo2^C)G͌>ZPfKo=?w/=@LU^1"d#f5ly1!y.ʙ.hDĘܟïSvD+|<iJ/8BM>( ;fkJ>i=ݳ1M]F(\qO7 QPd]a j:.>JD8%b`|OR];zW[ViIgX8tlAJD6mW@dɑt#!ຠ]>H9K[#mFP5)@"j&K*j\m5iBQ42Fsz֘{?ty8KU=)wl ýz|zB 9cS"Sob4>^5ۄ(ڀHT(`gXc28ƗmF,q>&c#X)EK{O/ݟ/NRu?F{f P@s ܜ7ذGQU} -'BNVcjg:@9u m~9l: >; n[ru`lѠaFȌ<.6Y.Nɡ?5Ǝ!!Imrx[d2~&cù Vajm[MDf IQi=ȼVvUɆsb}^n' Jr9S5SSf1i& aq/ڜ!4eekR53U!V  td'rv˯yv$ހ !#anJ:"(͍{-< P5j" t݋ IY(v)D@ "# K@͢tA3$Lڊ&g7"A_E'W'2ASduts-J~2N ) [Pf9.P"խ$*9&:|< ry-T[Cz5~R ?1zPVd5Jf(x rk b2^m;D<~OIh&l{b)KFɖzAI5"%# [WyHHS?82h]`f;25۽*Z+ \j2uԞG,T%3}9OoV' /$(r9ڞp'r sktd!){c4e6e-G;Ȋ7ˁ;,y0zq He&qO E?P2KnvKdV/vi@t8 &'lB XT`N9ݘb%emB 5OOb7ãUUY3a̲վ]qK'F#~ KHl 8i\g! PorJ@`B6~5,Yϯ(7zz "Jaw"QC{Ҟn ICrڌW{9F1W*Xj_F6Iۻ2}F dL,{~GI/Ɵ"F-%VμD\0 }%A5q8lx 3Fǩ>&5vtOQv Ps5̢/0ޣUQbǔx"y3?3AeҮ+o!6^(m>^˼E%ɂ<7T;_] _D 5/w/*9vYDpA6 ¸mѥP̑}-V]vjnۅ5^>U:Qt@JZ,!66^$fw3fmZz{:(A )BGԍ?QE- X$잌X8fՅ jķAvrE-p4cWW/ut݉j䌔!M0v ⛊:yFաSdޡN3i!˵_J5k#7Y%hKY{ 53iŸB`(cB}:Qtd^ j҆&Qυ%@Ap?#@&sđK=iɧ /)8 [\WjqƍOc[$8@*<+Hf6/RsO ˇj5,ʁ8Nh+L}r c7]HD0ߤ@x" 8 cՌɒ-yn[\ (pֽ~*.ʺӗӭ\؁0lԑUH-Q ϑFIg,ֈTl~'bw=avnj]؁}G-\JL1wmSeNY>rke34EFЙ?2~?N ϋ.rv[,Jw$kz>i=mjJb.M\m 5H@IFmRw'X +hҷk7*#K(c,WmUG?Ʌ_ k 4d Q.e<+Y &{m\^#|=ɴبzeı\+ +`]RT-4IQ-{۪y?sF7,{}Uo|p6Ep/MqW5tYA0 F׋H`ωFm.+h3 d`;YeiS))E"wbuu'wa{HqdItc=K-ќrFQyCCG[7}F[Lkv(QiP "c38>.Y6ն &b6#t OGiB'Nd T}XMW2뺦EHZ t utMTfz:ʟXDtv-D/g7f1IEq/2 iҸ4+e >J1 x Mrbm1+I!̘YIąz a3۵R򒘙a-VXw!YawwG9t9lpׅ )gIw !GuF U5\xpO1ٶ Ԓh;e6 KdbIg #vƍMN].JQz zJgufsmClUOt ڲk8`?b^gZa*AX>[[1i !:&fanzrTzMC0 r(I]WGJ[|Tg>?JQG@^ -#E#}=9jT ŏB!߻{kϲ+[Kӷ8BsJg|H+ہ@ɬWꩮUoaen7*&w1ߎXP lb~vQT$Hu!1<"#4}ʜWFuj|;SV;<'$V6:&~"]r Z`zTSmTMh(y5q);h!OV %]K)Wh僫.m>#̟s_Az`YG2)nLҮmƫ푛%7`N gDcghD@S 2/Wa놉Dplj 1({U݁Ʉ}D-Lp)gShT!ІVxZDp3T<߯\%u*P l SIKhO&BA-6 fr;>?]n/: Ҿ/_͑X)u^HZb*%UM͙UDS˫ 2nq˾kVsߔޟַe[hǃޠy;xxfGBS5dErgsSU]QgagtK-v"`oXdLpx,7sƜ.D/HiQ !)١[V4Ipi^3U}I VHY(3+V' ~kIZƪPDem虼sj0d>A\;lj[ɉwl_> ݦy`K JǬjIx*J2x eNCDQ*XSj2g!™bXܰ=ȸ[߄tg3Ieqm|-L_}C.tRwI5MjF&NJ##y>tVbϱb/`cD%w_Xr̜̫,bn0O`][$oJrPu  a5wU6'm̨8|Gr n]+ÈDDO|XuLE CO}ނ dMzT˕{qѷT +06K#8 Kq7L!Zeo@l67 S<-ﳡЛh.?<yFDj#k9S+K|sGȔ먀5] k @*dexq \q9d"9 g+wՅ}X`FQ$% \y LAHXq(.,Y'ʭj1L4˼-*.OǪ.t vg[걱I{fYAdڍ.rMg_!$|6bRЦZB'3Rj=h *Y`DW*(t2gfSFZ*'OdgӧJ&_dx÷%? ] l+.q 9 eK!"d1H埪#7,8P8R6d+]{49V!0ٓbم?JXBhT` -4uOwK!AbF opI8/Qr/#] >ڄ^`1Պ}r0(RPc3 BT51"9Z,%%mfW~a@E/Euq5y)"Kן*}U5FM,aw''min]  RqW؄1fX"3}ҖP}wXkqD"E|~ULhi1]s{/rocMdٵP./W>EIxIš1ϛ[FݷiGȆ̴tK,}6=+9@6iwܭ(0M ,:Bn'\,H͌XQߩ EO05|^ %kE<$9O dX<29+䜚>›SK\z`)buV:JFaۛd7v;k}?7 Z9&Ex:b! DΒ[+VQCv*ߔvڒȯIKIZtȸ΂53K2CÈ*:,Yiz>p|H`:@|k}/ZٙV7ؔQ63+zqϺ %Fz},L=^  3B* @}cM8GD .kO)m †H_c/CdE7@W4^[e슭Le9~ߒ.%n@'g$3򊧧a v-gCLy? xNF} ֺFsW1cCyWj.hX: li:jܞOR^}ex ol$)EP!M[[{'SQ۞P3oPar,xͶ|*y(P[$3<&oqVq k_>rNCy9h6r8?HN \2Y?B[sUT2I0/ c[P?'VspJ. xJ(trKv:q{{ٷ4qҍ\^)Ηz 68QR84q8cQ U:=Ȗ Aߔ fGx.!M>7 I𾿤0H>} 1++.z8@ѹOdј,>9#=?e̥Wc2?A\;m9jzW"F~3UwT+%)o Ml]5. A-\-SUyV[BHVT\:cxT%j$DvGP {lMvظ Ə6{gSghȚfu0wq[*%h̶ H}I?0IZV8̘ؽIv|z65Ub-.Y'L\גcr p6bk͌υ83Lf~*wIl8 :|އϣihV$;g'6,Rԃj 7@b A01lI$t+ c!Qr>Hf,+÷t;$zƷ9(B0h]>Z:%'o')P]7 +uߋ+5J'_M9D?7v( 8Ʉ%*Q/}mha 1\֝?kb/b ! ˌVGF̶Z:aiwC䲊v2ozI,CSwkyB0@H{nf@S-x6bV͂\Yr٘d {숟gPo7껮w4!JAvӓ'mMVc_bˬMøjzٛ;c= ǹm6K2+N%pmBP#8F?Ma Fzz _H8}-K]@6>+9U,xp=Z;36=nv%{d81튄KGUˡ@?L?g> Y =6Vd޴g39 7AN|Y8N\*ZSr:58 0f(ǎz"pn4>+[2TPqm6 Ln=hRk\~ei?EґB-;\))F8\{+!8~}KF"^ʢJiT :zyƱ)Yaly{;~ӂ ~ wc7-H:2y-i/[HjU6}|j^b mk'dhHr6*5Z{\  x76^`ZWx,kV+vGS\P")%3T Ul<UP`PJG7Ph`2j.BMǃicaJ% ɛUGPv{'P~M<ۚ*AU34[ⴅܾUn.qr?q113HrjRL[ YQle2?aʫff@S7g/5&-qXi9b%7'wQuiݰaoE4ƻ .Ȟ٤A됰:*IAkqpq@=$J$j_:di`,Y{+SVXXQO;ڽ4^8l=`W0Ď| ݀EMZ[ZZCcjܿ,uGظ*!^ X$ LZVtR$(9z!+iW?ׯ4yFo0nFPrbF-k;^G-V?cʬ-yc+Lؠ*Sd]:a#m墄 S?j0f3joL "dZH2^ȉ<~{?K6ߥnٕ;P4QvUΕJc<ë9Ood$^Qm5(Ҧ vy hOGtvI\BgˀJ`9ovs m3!ugUyGW+ ZT,̜P*.ݵ@ݶ$UZkE4SEkTYK~ݩ! (vj EYk{{KjwNlt3ԴF$ً(J%i'宭 eC\XabiYwtc.xevHm}TqkfD.2N3arj#qQ1Г ي!B  CRX͎ĀBM}~NxBw#6W!ӘqA{{R9Bg})w9U)>Gl<iH]jb1s<] nsfD7teIs5Vgmm^A;פA[{@7U*z#o> cU5πn"i=b[(KR֔J}oM[gh)/پ0q|M[f%8 $EGΩKTd3ET2hzDJa 5㼱Q9LYJqV?_HT<9,@v6/60m}}84%iC® 2ADfaRjhYЂ|b-uUoo4\ IK<] (RkP[H,g>i|a#6ZtNEydJ  ͝q`)oCGP斌Ű??*݉1i,q }-`2IO(lAM,V *šE,P'˭^>EK43cU?6<&/$ʪo_z4MM`|Q]"1K\˺4=6`g$pخuALUI'D3 gz{s ,=zXz3H0!z-kaAssA%ԝ>w׆8Y"Y?!o0ʠH^hZ.G^~ԛ+1]M,[%U~NcT0Cx?V|PR,k&O >[cVh*mvCPĭ7N?MCF&AQJ--"Ūă-A_~_?ٜ91dli>2RhdHb 3";+؎[kYА\f ^I#KJ$x񏳦,5 {uF[O:?m!%#f" Q_3^kKoP  NO@7QY~ ײv\H˸G ߳ PxElIWpq\wI5Қ *gJIMBQO]dcT3*PRsL҇Ztm)0E2[G\3T2 M8bӈ %ʉf᠝&d춴HxάyG 0 HK' Sͮ+h=~' nE43x+E|%!5GAWhbBf7qÙHF95ZE^.E^elHS^$ۘ^/oև '^ؾ]L"s@,”Owyq3eU{)yZPF ̧ a \}l!1ZnTX׽cf[ޯĶ%O&+XEQB?֪gTMW`!,Pr>hwf?Jz9aZj=c")%$\8VWxoHTyMb@i`η8 tE52]Vp_6a(ȸ=6!8O/b+ ~HfLpŠ.1>*Fd)],,XSC3mo\(h_U {ďhGD eeF} ; #i2Rٝ k2$`c/ϕM䵚_F@-=7Jj4}=jc0k7~)sy~uq7|"0пDrq_}cV#Pv%}E#!d&oa=[6(tCdQt>$!ۿq-ΩJfV6MY$dSj yt)-,ɽߠ 8P2^’f@:79v_;숪-dhͼ AUƏǭoNdd]8Dt'j Uq ԃ;đd؛y@L9<+vyBơAsI90aF&3lŏ}"I?!ZDWf[ g& h[d1ZaID@_K'31`:o3XdFq^X{q ]DV}U[{ܗY `S! &sl*D;B);!5?VaFK觘E5چt4œ8ݲx/m:J+_T04V8v QW#v9YX.HPKzDLG/ˉWȨs,\y,,"Iw'7F,ʾI9 "aYɗ%{O!yM"PþΫJHfȪČE1,#:ܔ,=u"k5PAwPhьVG$?<:7d0R[ˆBR.DIiRvXo`A\f$@/c6^滇8O&Kr cMM*aۙ"+UesDVU&V`Eጞloygr7M D4V7N{OC;DJ>Mtb14,LWܽ|GPtُFULw=W7|0%5:LjRwN, .{l.*ŗi,>[N~m6G"'J\ot P^4 3\tqMhdɳ c;,MpΟ;}щihixϕ:;Ϳ6 an1}Ddepfprl {b|%Mˁsb/nS` NN aͼ@~:R*]{E,E+*岟D :C[-0 ^"|lج>hcQ or Zt%ʘ95^e1Ƕ">A+x嬒J_uzvO-o[]e y3I]pݏ̑'!;I{=ڷf{E( 1DV_jzNJyH\rXɇTTI3ýT~otYJŲ6 [e.T-^νQ3[pKs dmz *9ccOK-_K$ Q6b(#ܠEpmx{y)y Vv+Fk"LTYٵ3HpoLY0l]0@KI eXGPN^ K{ImOCqLiT5*i U¾wsZPquK/k' ql<2T+v]}z fe1h(}{d<%TVDh#VOռFIZ};F3tK3T^[#+J%ym ,ɀ!{vj:!du ;мiVXNU:De{.IbLC?7pjx4Ҡ:Qgw2 U9n /{\jf,/NwdX8 fOh,l@ȕԢ66X$UK_pWAEd'CrPLߒ5y(K@b*_R\Jsl`E!)=~j@Nhco7Q^'ۘ9ސt7K qU-TU7DN|'*_;,͕3~yH]( ƥ7~V6N4B#ˋ79O'jSzު~Cm'd+P)L=ZxaE3täW=34`.B IY *:mXcDuv%)4bjW6Sr— j8w.2f,n^WjmX+OI7bx-S3|'CSCNZ `An E9l?Ð)Q͈naB>]-.`r焥X64J\Ԅ;*!d+͑0hIN%B.&gH Pd*!gɖVz]yQ P=B7FEҷ?w~2 -b.<3ZS^N3ظdV!fvJY``roYS Z4o YT cీIcK]CN:qa*ݽe+_)GwgG\ϣulc]N哭ΤK@jZә/*haN(s0T/+ 7>i/\MD¸Y^ S0y`Nщ6i}$QP(39 U5bqaGeW,#8~,iKE!H 33Ne)<$ yF|,HtGP.<@hl{^\xf+[lp)9*WF0 pR!1BCmQhz@t }u46\ ,KСڪRO;Hxv*Z79AAGNyE8Ċ=׼3洞;3+rèwp9xȫ[o2:Uma9KANQ{I[mxgOgIڡuZ۫]a*pkq3WBRюm}bA^O5be ޒV bf߼/OюĀl}C%rM{,"Gmo\vwR6jZ h= >YN=&dQxaoE @( XÊu=lJ6^.dDQ`T ]E%6RA_+ɱ, NP +̋I鰐PJaR$7;[A/pr=[$A a|ٯXIGza> $ ,}ukGݙ_:bXD(9YJz{;z_k]dͅj#g$)f )>w tO3>O ЗQ)=ժV"*lzEy 1zIB0~VָlZ{=&)*>EqVA|=GqZJi{zIrcmqc"l4O?qمHQ m ,Yv^9l2ee*hd\B F^|lh#P=6D|ȲmpN^pL#ئ"!6ōTWt- 94ZI) Zdm(z"3dE{<֏t& ~ Oqh,yZ@x䏵?0 dKwuThJG+h l(cr- W{JC7Ne E;NG](ӛi?e .8@/w˛ku(ܽ9~jt}<ߔ&쉜Z+pƬY)s<̟|S3 j!gַxھ}S6gݨ@r-Xs- 50ץ)|{?e{wwלij Es ٿ5(Ry\h"D֢1Vx]yER6}\Ō>2RehQ} lʘ`i>ZuW(3{H/_&f XZ~%zK 3HQ'u #|udGԮRZ&F^0p"Bڧoamu;z"JP]D M`MXrsf]\n@%=n7 q3 64UxT=+ 5 K~xh,}AI@^G >wDvaߒ6 ؐ y{U;` FAɊM Mjc\8v~=ZFbdWm_At0~|y-HC7D^,FtbÈ>Qry["l:sCCl @L _; @XFK۵BƉsqV|(/C .W.G2 -+ywʴ$C`z?-Jݜ4pa(s6+ 9Tl<=wAV^i6Me*yaQnR-' rE?nA@J\+NZoEw(Q[Hy>1dR6)>)ћ5}=29d{/C$&sY >jah3-D?#p@/I'pShH!b Iw_1ͤ Y^-Bٶ YZ