librpminspect-devel-1.10-1.el8 > 6 6_6 3!y덏%!E/֡b = !E/֡g;\] *\5NWLv£jx#GƜ6(Z#]NO<@U:ʳ5SxW1\KgSl3zʔ"lQ  7Vl?ދtR'tJyZ i,$L^B BaH @̕I2Š0U ]O3/]d!c.õU.Ę80o #ȉq<ڪ"XDt1t)FTڒjY%;u7#l6PPaWgquKe} Y\`rg = ,PAB8OڭVMyhM<1?.^ :7cwLk2'f0Qa옞:ꢥu:RXWǥE'q{)O}?V%(Aж$rTA~c/(<,COyg36w:wTǍH?.w:y?Fp=ߐ?߀d ! Z ; J\       0      Q  ,(89,: Gd Hژ I XY\ ]0 ^b?dݏeݔfݗlݙtݴ u vwޘ x y28|Clibrpminspect-devel1.101.el8Header files and development libraries for librpminspectThe header files and development library links required to build software using librpminspect.bbuildhw-x86-15.iad2.fedoraproject.org|Fedora ProjectFedora ProjectGPLv3+ and LGPLv3+ and ASL 2.0 and MIT and CC-BYFedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64)wK<pAA큤A큤bb}b}b}b}b}b}b}b}b}bbb}f61e29b9c9112e5fc10f2537034d99efa678f4b7cb8b031fc0e50d7eb862cc9954000f4fa3648279bd41ddc3ce0cc5c56d98d72aad7ea5388d3357ad62438339168d6b5771d8cc456da924a8da3379e4670722d0be3394dba71549e7d8f91532620c49913bcb3390afe23adb3d5a4dd3190ba0544e815a23d82f450b06407eb4bc1992e8e95727928200b13c0fe2eefe491c8b5b87bf3ddfda8d16e3771849096d0ae04a4189253ca558fa8a13087c68c914b958f165b40c61942220c9586638d388ed1b372e062621fc05ad7f508db08b04f5c313cfa3b0c6d3e5beff0541782b78dbf74afb59244fca1f43efa29e414b20446b4d9cd6cae09172cc6988bbb87de2d720a99e5123707a338e0f67abfe4e43d5967e5174e10000a8c3a740de86e3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118librpminspect.so.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.10-1.el8.src.rpmlibrpminspect-devellibrpminspect-devel(x86-64)@    librpminspect(x86-64)librpminspect.so.0()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.10-1.el83.0.4-14.6.0-14.0-15.2-14.14.3bb\@aW@a@a0`@`\{@`7@`7@`U_@_@_@_@_[fDavid 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.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 1.10-1.el81.10-1.el8librpminspectconstants.hinspect.houtput.hreadelf.hresults.hrpminspect.hsecrules.htypes.huthash.hlibrpminspect.solibrpminspect-develCOPYING.LIB/usr/include//usr/include/librpminspect//usr/lib64//usr/share/licenses//usr/share/licenses/librpminspect-devel/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectioncpioxz2x86_64-redhat-linux-gnudirectoryC source, UTF-8 Unicode textC source, UTF-8 Unicode text, with very long linesC source, ASCII textASCII textRhttps://bugz.fedoraproject.org/rpminspectutf-88ca7c1676392dc0f8a3ede1410f9776ed6c014511f2c4b48e748ca10bf75ed38?07zXZ !#,(] b2u jӫ`(y-4Jo,'r<jf3;F,5q=6<>[~fNlC*F)K/} XLt) Sۢ73ȴ(N<(f-O̓ŭ6q%|O"B ɉ]ּ1'pm}@m&[̳L;gMA^)ؤ`ڠZVpMǑ,a&SV, B[2;Q5j3ӗY2x|7 *@gnSH[7\lSI Su:X7or௠A\&}T_}0bJlcXL8R6t? MշÍ,6K2)<ڒֿiت(n?(M"`߭)` !livB`{)=Ul]|sG +"(dȷTkʲEƆ qmf2Q?:X#ާWHu^Lu9Z8tG$4TN+t;PYKV5C['oѳ]QZ'U]jN)~'Zك*@@K7ik -KzWz{7sە1ގiΦc]R2B&hv y[}B-K27_q 9*V()\*SO$0P//.Uz]vLtQ3YX(3q|[-hGW-Q XTq*xnw?㉗ 9m[uR`'q'Qa/yP154g,t(i`| !cJ6 ޚEM< 6$_' c!K* 0\J>9ʙџ-ӿW@]`ޭ!i:/D2~V3[97g]vOͳ;С| snM#6QҸ⻕^K<ϪLWjR&z}z\w6P\5-]J yڪv|EbTq3="d6ќp\߬YJ??SzEoǬ!3 TV`xYXeͰ h\+z9{AMiaH, *g0ZeP4!BقgQ PynDP{VfeC%/2>F0wuCb0a25ZFY,{;0\nWfӱVM(>)bO]^ZLJ{Tq`ft۝f"f8TC;N+[ս>2dwwO8Pt~[=.wtւe mu#mPuUg.`9f2Q@٧L"/e13-094| WRB=>nLM/Ũ22XŧO#Ĉn^PaZJBi׮W4s[.g7j ؈F-kT**&yONoCGUcitESo'W 3zݞ^dˋ$2v Om%Eh/4 CCug7m k?t-g/NE_lѓkPlb3)J٩uVlb*֧$9 b:Ery[}/WI?F(>qif6N7vؘ-:ggk z@VtPz^M f>h8@ ǧf3oh 3(i8vs-hg'g[M NʁP-2"M1 & IKE?E92%c;`;o`zdڒXOݚ U܋]}G&h5"9 vpaY4k䌏s;CIe)yRighRXe Ys|W"fw:QfBO@AHKHV;F,\zsL6<R 0ݙB`rA$JYF')w9łg$* _ F}@چ-f\q1jJֆ(( UTŀh\9H\ 6L@U:2 s+\ ְ{(`OK5Kݒ#΅Ť8=L@+)&sGu>0Q^J⺟ r"ۛ օF?XVOt =(Yw7 !& 0&h>-c/MK[w6_ V>< U<&A̭jߩi/i/[oχ{9u!SW }>|ߴ8🅬՗IA]SS\ v{Jin_k#e8D,pvԔXF}){VPSuy=ȆRl'gR#Y'B/~к@4$¢M{MԀGH׊J$lINh 2ndKW/=gC8IJY8ϗ_%H2,Vپy%{X"LkErˈ|ƌ逈Xd̆CN" u²7ں6@df(l\}rz_uLۦ2K\7ͱhB%Lv]LnPHTjGdZy Ny @yx@ޛC"GdXR~[/> z;`!k٣X;NӍ0/HLb0&-0<̌!v57=IsAkAy%2qU2ЬQ7p k$@7;Ci/G3Vb1;ˆ+c`#?ԭa O 48G )0Ʒ:?bIfPA%gtWKP8^&{,B# akh>Lzk"n8p߻oo,6%c1?(nqư T{x`\ I g(ﯫW(Ipz&Ч⯶([`#dwܘnm`Ս, Eh,X.2/Ave'ƆV,ډ[ORgG+%n.Vľӽ#pM':^sp, O˜*ZK]%hB izr9]YbuqaVwB}dC _K^ZE4fBɄhC[ ^uWn|}O/'I1ו,dm'fug-{)4~dXqJ! (DDG 8sQ-j6LD.4b@Q].ՐMgR_IkPHNC? wQ8KCG?i_8Ԁg AyHkN dpCg޷U~qAkQ9>e>[{ygP| 2-Ft. `NY&Yxuo/0M+'rE!tRqaQ M8@dx$Efan9"~nML^ 9Zj@X[?(Ӊ pN*%I 乍r? Q O3Ĝt!Y &YkZrK2RC̛QD~I6 m B 弓TCEbb^$/y8NmK$BL/~[Ƃ鲖2/ΖsbׁwXr-$%lW$ٿ};ٵqp"Fr3^P`>:ҥCɾ*Z~n\Dp1;d.Q38KK"XB4r.&+ Т|~ZƊ+AXfљ"TVZj\BLޜT, WGI#]:>\HH xvnS-!>:.Og0e/ N#GxHa㈯uC#Q.DByp0jKG2% -BoFoxz5;'K@_NЋcD.9ń1E3!⻞+86 <$^|߰hY9#K~ Bx\N@no|ʬWw37>FsiKqEJ{7z<^"8/ug j+U`טU ~/f6ge156{`B+I~`&-Z;Yp7ZBE@dd.(F+Pf1Y cS#ᮜ*XUSƧ*sBu^oCreB.p_[^=d=ל𯶈\NGBU~􍴱7k}WtL)TKa_Y+ C}nRfVC -лʼncUKm|@c\RJ觍'e"'UfEXr0 ~vAi\8_g)7K0g&q<LJWmǁDasEKhO?YQuZҕ;S~M^?笄q2ODaSB~x&b/eT;S89: UO}R㋸ rԻ2_v^`+yK}y5MoZ'?rT|7\iu?bhaI } Ŵ;֛e#>?QJ`st;cgڡ{{ŸG#8nhTl{eɐ٧h!ӊM(_0MT|1џ{upZW :8y[ SL*4x QO߮Kh8UHy (S z`, *X>˫zڜ*H5{Ѐhf?g7|PlRC*"2RW,L )YaqAd=h:~tNo`&+82oڽu\\ O2@fcmdoq]yinQ9lMۚޚp??t.] [T}NqI&XS ׻A+(s!u]UpjNJ*'9O !1rKg?q Q Zt$;t_Kx)gA)\OSD(UȻch.d/`1I񍟠\F+ ;IBqf^Hzy]_WP5z/ F<݅b&!xkll:KDǾ SAIHtnֵMRF@ͧ,hda#G-Ź y}4j, NVz D#^ A3{א^)VX/s3pCw[5~݀$ gYqQ=nU?xc&_Ct!9(w/3Ыc"G\)e"?)C ,]s#+k)C̆ɕ`{qZuhF^..Q_j-,# R9Zi]8Tx2g 7WPd35"(2ښf0Nzc3# ,?QС|9@楪 Qې|C#R|*'n ._Db Ijboe6Az7 ̞˜7c ̪xBjσF|SED)).Qxf]TpJ J!p7at.Ws(;)K}' *b5"%ZBj_h5ʊSoGz+g.zQyQ @\6-iӃdxJC{3"z'LzOD 5]GrJnMpNs˲gOPX~PYzDTs1<T~Hco 'cah %Y/~ }WJ͒F\hv̟eer|^ע$zc)qIE0;pk5r*_ʪ77;"7۞zJJ].!S&Ml6= ,tnUhvhH$mT~z9u`qIԆֶ䰁8.葮D>'.3v !r" Ñ5$eJy2q5HںziÃxu] 4nl^߽1xCCJIˈ~\-(/`I+4\!5 hfGÍƻ}C,fƒN^Uo^ IQFq铈m5󿸒6&&cmq*k'!|7t"w>"$^n`>N AH~/旱 wF0U#m*#F_n&@b`dzv nP\\o.]w&5T㰨&i끧S*Sas;!'9_*鸄~zS:Of/M6Oꊣ$+݇l[*=' oA/|s@n K}IbU1M(0( 5Ewo]#= 䃎QfY~L8f(M7[  QD_ $?L W‡q/Tl6[+w.[Ͼg,PGG% 3AL(N`391 Bso:6W=egצ5Ľi|$,eSLf*sѤo(;eISTwQ@RѮf(VI-QMe1%j^{L.ע$;8Oz(pT"3sr2g/|=9U龈yK2A>]޺xP)9ڙ,(A@.ܯCE yxee78J9 UDZkQ^>+p?t%"2̨V쭝84<ǓlN}15WGs4 a3{DrV>qټ+FP|˜%PT11"Y*wLPDn;PuP-J_\:KF_^__$U_4̕?~pʫ }KKtv@pm{40RV:x\|@\yaWlzm1.ݐwI{#r%F:(T m8]j*I_Dl*!: l%!EHt#I ߝԹй&"u/QxmHK#`g~[E#v'I͇I=f ]`hJF L@86f/ƹqqBԔ -X,L|[bՏ ZkU>!> Պ$<n"`>&3 m]FۙHU*uWJuQ~E _FWm0/ z=3; spFJw' w:*:WV M/ o!;Un_bzrYL55J9 \3ǺH7 ukk4.miUi]%n,.s<r_^tc8x"Q} LEPjIJГBYWis: $Hjr2هHrfڪMC(1|=/ւ;ZdgpHpScphЎ_2e%1ee+橧EB!+aC¦;3R^Qb_A7٩Km @}gFS64in:Z{a}G S8 *dt $=Y3*tqn7zrOa{tuՌP6E{_I*B?`+PA5>{Px7?&&g uvPQ& s AQߝ j1"8~ŏDq1{!C./>[U3 魅I_>݋%u0פO\An/Fkٞ#E,7V8zo8Xڡ_ )Ǝ]dŤX:Z\@ǁ|G7OqX`LdZġpGVDרZ/P1lBSaFqshT& XpTu#7L{jD/jq_7)xX-iHw:FqF'15`} l~2y#\^  i`ܨ;V_ ~eL"~!Eb↏p5f4K^.7dɹ5,`7r"K%0R&(^@>ե@@8#?r<47Bq7kcQha+B{SDyw#O8)IR]y"Y2uڶ }<cY8U M2RNs-zHN"tŒ;"OnT:i~h9dc>`&:NPF*jÖo}gUy!@ia(p+pN.8u2cLxC,KAg \MSI"s pc@+$0pP"M V1:uqCͨяIO 6Yvjz}}{Q8vXx 9ymdE1%}Z% lWrZD$y ڟ/9'y| s[1(M0@- )V3de;&dBqM7-pjb{rm#"jGAi[,D.,=Xf #J_?Rl ˆH8E[:^F^ ? .. `ea*1q7睥X+ !̝;Vz&DŽ,7zazx?Mژ> L b-LѿYi-,;$ho}2rĺe x'?-NPYIGunkF*¦ 9ēzD 4{숔-Á ҮP@*?5FN4{ ˨iPJW}u4hnV!WxؙGfC[0֗[ 2v|_T'cN>d 5/zMTGm)U>`0%@L(fP9rQ{Rv5@[C, *[Lʟ)cj ΋T@*58)KDQFR8f-3 4%4<76-d$Ayy^h"eGvR\kd9qfiEdv{SCOwwݑ384 ^ ؒ? ]wl/w]ԋSW}>{FآȗD}xU E~|wf'[H{ܲG@i1qLZxoە,ɼȇUږع[CFBV3\Ϩ[nNe6X(dr/:Ie > PI_h2k,/Cύ e)i-pS,Q=~v<l7V{8̂Tqt 9X<.S7U{AFά)g]-# ~QC\9f3֍˕#pS!RE">a T,=^ԯͱL/ f)rƅTQ٭Q.e 6/'IfMg)Pa Qor;잀Lb^h}0Ю&~-VtYyf%M -]wPLIp@e5%aw I>ͬڙ~sޢ=?nܿ6q˞0֡zN@LLbsa%h,)h,JyǴ&GjV3^'m&#,V1o/O@!;TF{+_MOz[_C^I*\n_نӑG7[vc#\p45^ٟTp7fD[yoPdz.>@tZO8u*^8Å?P7L嬢BLֲFj^7K{@ŋLw|{s忂:*)bՊnN"L`UX`FN"s} 7":aWv+Z!Z[]8p4qjߨkU}Y;c}) SKD4\ݜGXCv޵ܙ|"*pLEH 6-_C6U!jHVC3u#]~_,,F{3jxQgA0hlt. :Jo`R`MBͮ.dIxrV[mf{z3c N(MP;VW=0- 0b&kZR)Ztvʴ#ZDݻM|џMLuPA%S[\s_eЪofHUJO"d6;s.w/zs\ ݻ5uSIv})k؉O"wuvEv8~aH?퉪9Nx ׾A O@?z;ޒk:0ht$A9‡i& LJ9p ۇψ""{X3J~ieBi#d.R0bo F`NmvxyYLlуu[w 3A UT(L ~ԗںGF>V,guuKκ4O*U+3 e_x$N1z%)$}С}$)X*nsĩ/>GEb *5^r4un[ب|i.#lݧzNUp‚=Tz H;IL$ȫ Tri72ے,Smi, 4TB}xK,„5Y*lexc"ύE7^F-~LKT1(?[]6ᐣ1vifzzqP0H ~\[`Zgn"7xtFn6.0j؀GukuaFQ9Rnap0yMZX4\,w>sEf*ХmO, .(Jk9iRaq Ÿ4i&z6S -J!ۖY`1 5ęa XíbZF'GgxJjHC d.a'}׳$Gh a4vTknE׳ V;㷇Ŏ ojLXQyer<'_ k8Bif)?էA)7,ݞ[F~*XuX=uitAL5cBD}cK8e++RuhW%ox9Y>5"N‡Pb\QSB5#ZӁBPrY8I'Z. MBSi&+i=VB漩wXbQ:uL#|f{ һA5VB9KFK$dWל% ?0$GF,A"LUA;(U d"/01 q漋&|y-*R` p)#img-zwEZ!y/Bi]ZcWX_a/wguW)f3Prj\rtMB?R'\_ߛ1N6 ɛ뚗JMGS(q? ik G@Y_C D5XwPVE?80eXUc`Rx/GQGE:L_^ux|/:򣬜aCx:f{\B' l-ʃٔ]?#ݼf!) ?\6D?NY\o>xۦT MI0q8j ll;OsC 2B|id%B4:*Ԛ!`ѷj;k؟xoȭp(dd V]: "P/X +} t*ltV'" 9 !4kqd*sGđ׿跧-X?%(fIvz&\ܷٽh~qDURӉpE/MerB`<- gV?og`y.@i֝zo]w,^"DAD<0H 4puPP,OW`཭`M R*~×obVYXzi T@fgB52%W>Ї"JO=swmlVS8x_jJf$[tɝ~<^*+õq n2`r}{EkվT?ʆl5~fSZeS]Hn Zh\/veG J:1dIt/5T|K>{o(WR":AՖ'Utf*ijZ5ӑ%DU4,\TQ@%7}n#ݛpZ7pK%" !t ^ !qr`Fq+*n䟄 GtH2W[\2- )AƎם'H0bo*^c#Y͑y_  㜭5A•im55p]j6%L&'sgoNOI8hw3. ; $> * k,58'0p؃lNU*{:n+gl8SK y[ғlbaF!tdaMA06ڞVܚFvio#gv"DUiQwܮAX|&bFWwyA nSzvchDBK"n'][<**_Nޤ)Pl[nf,MJ]dIE11v<@cwdÐe3O]p0u5Ak/&)<)\@Z_>tXrsi@*+#y{Sm`=?u) ,"uƓrT"A*otFا@=> I< ԠQ|2מ~97s'++MXC{?HEM݆}I*G׆h>IA%fE8C#[A0GWJ0svn qc9Pq&N3Pn]O"; So śx>t]\58=ʚ$>}"x-+[gn VJL"A3޼z[X%%)B%v[&. F'~Xwe/;\nA$nH`|tJN+&Tb+S%[EzndJzyw8_ =jAvZ}w6Uپ#m2CKUٔh4\unvSKs%T3H.PSpyE%bX4mGc%YW#D$NMaF+@GJm M$2D¡4(GU~#a,` iPعᩈ5JFoDI29r.ˊ Jnw@@1H=jIje}p;>]?ewABoNڗCfO 63S;U-MD? V?n(˵8؊\9F- "-n*CcxQc/&hL,+8qW&1 x?xe !֑b)lm-}3<:BcF q9?j[&ornr3Ip]NPvKchH PO>B>QVhGGlZd}|3,J*W_ES߁">%7Kּ_Ⱦ.ۖG%4W䒀B܏Q?.|mѽGKpy=$:\ JLjO{;I#p:YTwF> $ZfX~ƛPl=^~ 8dW T1?gȬ'Miz*}ztDP3GMf;[M_Oc.3,JO|'眻nFP .נuD@x戸S[Aa_d4~]ew= ŢuiK;uذ@ȎFnzdgԉeX\ʊ5/Q*mT:=*[$ =ӐRh` &ճѬN Bɿ){@4YcuD[\&.4ĉD،b1=M PrJp6O[OZ3Őu"U2[rON7fq”jꤡ'-Gqm>O7ܝ+CǾ w=b9^;i#TNo(Wj#GO`աAru+<]v:K^8˴zG[; v*O>gd~T,_zpn { S?s}ȞC"FZ ΰonK-;_)RtghkS8U웢Tߟf SIK>?d[FrmТ$AgK&ccQ6@!.F?tܐ,m(:ε*Z6fjk9u'ӌ[I #MQ#e763XvEPl/pOHLS $| `i('^V}X+ɜaLO|l";%Dm$g<5Kmѽ5&z ~~Nj1g:Q ֔LN /4"x%DQ-v1&MYr7-PuYmw[ RBH\UGHwseat| Dߩ)=]K.)(%n=C7F#S~̱BNԹ{wS#W>VV W.o (`PO25֔GLb}׷(GVB$9 s4ڏpCxe/شMӁDϩ;hj|i= ؕeUlYޤE,[ KNY*9*x_Nmtf0 =2Zi0%^Bj)< j*a^y4CZ#'n+g73K 95KM҄jfwjHI#7yȿxl#AҒh)UpIHc|"?n` o;NtsDvI.MC)Pxӂ蘒%qpWW{%Y\>qO߯ڋ(mɴhAo{Q=V3Z*\t-(k/1pfBq0xIKD<Ʈd %NET0RwId,"[4lCt(~zm738@HwCG_%o)Ds"`*tq/]cMD0=DF\awX?ݺVRs`גbZ3K)NRo{e04^T.x+(GUV0y= X# ^p4i910ܹIE8mRʋR0}C3*}u*)v1Ӭ !yKi#/V?OqVݣ4|R^C0߃|a VS7"\=4 n%g5%4&z`z9Ϗ `VsQj#JPZEH\'2'[W,IN0ADAzb1٧"Q8S|,ъ19ݠiУ.n|s-g"f͈}KNy1 uʯB3@ jѿDZrOv:S (,L|i?z2o0L;h٤# I$?s-y41?m"Ћ` =EaL@|äeҝ^쪎ÿY|PUnnZ [{ sa!bAaU?1,S@ ^ A~U=}Rњ)$𛪟N(U$q9Y<1 KlVuY9{2M]z9Z^smd lbSUt4AWw%z$Z/ pmAx}#L:"Kd4 8R-S1E,j_+ JY7Uo&`(.?K-A'}cҳ4fUeiWmn,|aq;3,+YC0 "㹮9XZϊH7q/Qbk­薖WPj>wm0> Gl)&~8 sx| Ֆ Lc-1+.Z.Omt7_s.Jdw. ^ˏFg`U@T/'r#$&D6}Nz@vB=Hm :"Uւv0zkFijh2 d-2dDN͸X8|-_GT" {UCj퍀IAkۛY>sV{iWTXT\3pl~R u}ߠf!_"ʢD%Q:|$$$ X*ziVBOS|Agrd]-R<J-o貥W潤Ch>`+_PjceWYij]|k?{fddNz* D8<= 䡵 G>x7z*1㳄ѯ'e7V鱿?uM4O Q΄}[`wLӋ;w0M_=Lw:i[ 1Tc6x ۖE#Oz QwIbLG|*-|N9ͺwqza$eQ`qg>MF uKĮGү_"\9 6VC4R+u 62cZV}+[Zzں}q2#4LG],.j j Vf9iӥs ? *6HB-tUu1n-̲Ƹ$l^ QKyith KI{в"ȸ,Ż^Q=N!o>ff#OBL&!: '[XzY94'y3>m,U Ӱga<˼#o5k74`nozcpe\:/FCfq]եJXL .e A˵j =?[E3Io&e5Ar OX ySϕJ=jG׶Z ,GWq hphX*>@}xd LQQom]:=3 66U,5o<4$F(y~@ emBEz_}|۱.pDEOGWDBF_YTMJ*n!bS zy !R 9Zxczp21]4,;kF59s-^T94(B76>8٩ͫ9N-S.!\ӱZl9 'V4KMc*5@#Bj@d{&CD@(\>ILcKڂL6$EMG&xw(҂v9 9E$2Gl2wo^bA_ *k? mw `/$W* _?:G1`3xJhio-Qt{``X-;;LO: W^U@ἰ.yI{/]!9Qk(6vRqeBc74)\1H+hT/m>`ˌ*W q 2/G%ĮCsus`k ^\p'  +yHN\cN! UڲdYA3); qoJNB#2$ow 6BK|yȩ.\:6|)O|vn t N6 2lψ8?q<, ;:Ց*TFՍaixK51?ho`ρ48" ]U/WYYqQd9k,r lOuREC­I ?6HJ%CCpB9G&&IR!vCEEI*9N& CS$.$r`NYʖŠi7d<*)C5g7w5FT Mj!v 2k(#{ALwYǖcȱ|v9yNcٷ գY WS6'9Ea9( e3eV.i]$m*y p"d/|tT16;BnOQN}c(q!aɶtgzA4)6Y_}cQxNH M;3*VZ퀹4u3]HjA#Ӭ{y-Ç@)$ȥ͹&()@(7ۄz΃*uX5# oPbM-w7`R+Sc, >sVQl>++@2 P( !VHj 'ڈ{uz@Oa{x-/*ld=+@œ&Bׂg'a#;O´#rsK ++ 9NZYoWOY o(m`**RE=ҾcpC^]dчNnvӎ0C!;Np%r{8 _]1mYvQ-]7ÐYyD=X+ L2]=`T`޴ý~x$r)^d|D(7> ݥC'[=\ƀYgm Y:?Fc7,=VҎ#Q]})^{]A55n-c[OIJ&.DQryd'1ָ+i4^r[0uH0Nk'DELA/stTkB"(H2H"obYX;zq)@!B室wydF03=DwX~–ړ:2ɪܫfz#dy TC3[ͲSxQ,r:e c;Qw0K4$T$B]p4iW孀K9¬BX&ţd|RcPEzY[o1[mr~@Uq;Www9a?^wYUGjH6 FAcжZ|( jnTաY$nIKrZɴ@h+)Q:HBTFV{d7Ǟ/DQrdWSy)_`r]`c{^H+;BuK 4ʼnVjNZɖG\8!jm G"9Aai%`-{(cnG?'1t\Zj* yBv&[okqB]+KQ9O6G3?9h`h\Aāta)CLaCZ~5jS|pʏΣ^*><<$İLKc%4H Bݺbu p-UK $y0_Xt3.O㸎.a7Q[`z~wz?Udk[V!W ?bYiL3 c8=b@ݐ:1!O`}/uu$Y}?۷Ia[hs] Œ6, ц9,FIJEb[ުG.bpX+DHգ>&_^^& #R)*c. 3͚ތQs/nA4܏A Iڋz_5z+Wdku`RpGf ;í\٬1ޕKY U8 .b53z[NB-.4K]Wz}= `37ijgL;fc؊][8\.  oxD*.'ZZ\=x/~#30'c dn ,ZG ݇g웻6B 1I"iD")&Xx#vz9꺬=6wO{d/2V(lg<-ܝVT_IS8`^u?s\Zv)_Aӥ `B@"'O&{{j5Dd"\z 7sE?= RZp14 N~9r#&틔\Ooi7]Y]iO( =`Pl[=w#`Hɦ5\eƶ8 clVבFu=VU(о}=l$kE{F j(7XL!@EV-$xz' /f!H<_-'|7 ~^zI~JMJIE?3nƗlݏI+Uq._ECU~* -e\XrXvqvjzսΌ`śŢTK4$9'~E_KX,_95Avw\=+I4 v pIo(G`&gra/e#Dhm`Ô7j)jOʖ^;D%:dB),6emڙ5'[}q4oLz%DjD-<^:0>';Rk,<Yj,bttxPVdlXBMX{TV?n"} .`+9D,qMziƌ)FXA[3c^9hسN'wڀe`?9d[u֔,R9p1LvP$s J4ylɶmEw؞>:$)._&*h.Sb`^)U>h2 T )回Q D5z/V0elp כb RjiJT=GCBaHRkS9[{0#B9 Ƣ1-i[& O{fuF%a%Q~LSm*ZcA|+HMS×`T2zl˶a>K\0r)SQpR(<-q/WTꁏuЂ?x C PN(uf"!ݎq)M+SWa?JrUt:5@z|fE\iP8F-&8F& R#ޑU6 <]O{~)d0|SF4D&H{ƔkC+Cwz#n YG&KHxM6@KUE RY0 DEsz,KhW-As k_)yGŘ)j~fYlE#kPzG,߮]6ù@S]TzB2E" 6Tk e A'E*~wAa/K! UkDou@4(xor% nLb.Tr:&RTRLSn|;ف\}WApJ? dK P"w3|d"9-x5|>UQ}RfԟJLChկ2m?P&%j'a[Jbx$e9kNC$f`s.RqXtj8&DF1EQ[AIמQY'Iߪ6V-#p3 M.gtymU4C˼ɏN8w) }:Yqfa hBc8}zنx\]L]bNQr?I].__%F*W;NF #ьN;d7̛cI[~W*̴w pJ5xǷ q8xǾP8H "+0?\>!a֕(w{jQq:L̥n/* ''Z{O2{ /kcˢMɄ[d칅'PR9h{Txъc}ZWe3Ew׿#ԻY8#ʳ,ɘ&X+`309DU4tLJ%ܿh"Id&,=c6TBKLY$pK%@ktSHF֥I{d]yT5)-G3Yqۮ" v^SLvQ6 2Xh"qu^@o n x4 ι ScvybyF_yj ƹ?9oZ\|04[VŊE* 1&ij],݌JI徦 B2ĚK,dD/oAුY %oV@HCc<wvoOA~Iռ< J(5Cخqjc&:KʭgfMIUϨ*U3>w)FMr:'Rۮ|*^z"U~@L'٩ΥtYrnʸFoc2"YB*ƐIE'"Mb]I7g^_8t6%zsh=5։œ9_垈 5%VdS za<ݟ^!):> sYB74e2ś}[{L-/r{ˆ&'SuJ)hphі ?n\8FT}gdwu:r>I^ݦ*OݍB(6^s> ^JA^0%awvsiƚ[r_@9tY,!hU,}]\A+ Lqyšpl ~Qz͘SdoHڟCW"Af6hhqP 3!踚߱$V٣UqxpN m *b."/C-JKD[8-+fPcvkT)A6kL;J聲a&Gm9jD>o>UF7 +Jp4/'#8A:u8N4u"=>)ҞJ@͈| `0b^V ݛʙ{6#Q%rA1AFfٍG h@Po=5'.[tOB7-?^_ԘiQ=u0ʵڬI^/}#%[ 6\7.[9%͈}Xm՞<&lvs! !+*\u^ؠd|}q`ܿ!T(&m29`@jMh:q\;:ď>*ė'Џa!ܿjAkv'`>Htj{r5L*j ~2$fTe@jywĹB M˚WY̮,9y!Po#x /M%׾ w.:^/䣠OcHʹyo'J  %Pet1m;&9wW I*R`}Cd ]n}9L_\ 3ohqdg澎|T`۸~o|!g=&$S&\_Ю+b#o.upvzlՔQB@ M6{= kA,,Nb+j]Qr,m Y8evOh-ԭgyhz#IeozWWy*q L*xx_44lX|u;˳ox4ilPmCѓeNk}֡Duv 7 >KYS@? H&']r .SPyu٨yG <H`+U5NwH1A2n[3Q݉؃,aت*Y 2EBf֬ (={Mp+E H@q[Ksn 护?QY%X,98wIg+$|@V+@KZMѾ77@T?p~W#t~ˇ3@R IdruA, >t;@~g/ٙB`% }G;HUZ1.\vyBuW4H>esu)tdHD^ c׊K`~Nt`r8& IP}-m`;ޞ҃dNfnzXq~6L8B:Tj0G[V}Q3$ٛ(wR%'+"-1 pZDGAq% YmI aWj~GJ(\ϯ4e[oXcC=>D ":Ƒk8W̐wA϶RAS٧–. z6PRRl,2N}tI #fVGIКf?Ʒ_D8WN#U p 7~ T\z;E,zb1*m9}^ܲ;}薴$y-h??Kźy'5gm6ѐí d3lkrcV[>1,L:m~8~434ps7"K۠cS606fUqZ\`[>๼-D}IA2yg @A2ηaSEm3e _P.Lߤ99ԵzP`CDz!# kYw$?Φ,Y'<*؂nCWnzhܜ#%&ּ: ӹLf~bYv]T5NT #*tZ절h?^ٯ(;X'`!_ +&qwn%q6c~ˠ|`s& RBhei_k6#B3 Oy/R(3+]fiǤ2CAzwb|RldpqcYe`ER@ $м(!MbxOoc=Idߌ0g|vPZ:cqt0{/MC]|IXT[a]) oרTBP~{7w q"Ͱ1;qM ?] Jkvl*/GMl~֕u Y/KS={W܆Z|^Дd3R yiVo,>skH eMZc4=m9SQil&j^xQC4!#FڬlR#ccd3Mi]W""bNo?z04tЀc:ɨ, ;ʁ/5Fd~4iʗ kSh1c<^ (r[g^ڜq;kknvJt}2byM]@t6ug%.¡ $l\rftV)i9(EL.?}uh{9*u7Z)V]W~r\,f \VT;a=Dy},m%"g]]SP~ D"#{Scfgx%-MrN[tW^2ނ6R2-e_-FH;S2GA $iֿk[Z܉nC.)bI(T_HH T) C՝ A (oz:xg1 _zF-&WѲi2" hm+x]җ"c+h}t8_3]+HC<λNμW';t ˰LM>L 9t2yKyCQod@tm[NGqxg=nMfAFI}4_FVdF'I`ulL~ ARav`JzcO] cssCųxOvHv/k5#WT{!8Mb Y{ܯSѢxJA-8 ؊ק]UXzW%]ڽ7+`񜒨0v {ub#u1UXLuj Zp;\snfIx%ܕERt?tXQAkGˀAiLJߡjŌ7?֪PG}1/@^ts3֯!BvPDU,t^4 崇hx%Q:w": |ǜRXx|Y.@u:j"CC7OysIҙוzcRP {ܚx6t-KLr'zrx^F71ŀfdmcX#OG6ui|v'{!fRC{a;=[^{}2T~#-Csb^pt&J*3=鎤𞣨bRoNyuuoaaU]sug T@>aXEk6yo [S[Y7iHiK°>sǦ]ahL>gۼuR" SzB]>o,=e|TfYhȼ,V`'>Y Ҷ۩r9u4tjIgt]C[&q.iFxR7ivX(2%v gBN"۱W[" ] ‹OCl(:_P?j= f&^ȿ{B`BW̔& u\Zղ1u#+mbnO&@r&p_'>O! eТPCn5>=ͼьPJ\<*37X&o9ɂj7ww[ B@}ԔGXs3B=tgyScKӂ iU )jXc3:u칝h!a_w}%AwN@c8}*LhM^` agñA <Ǐ(6Zʈ$=ZӜ$Kaek#$ !o|,cXf;wcf]Q\zhlH&fG)`$bf/۠@Rl%lP^@I·a^;MMKh> CG {Eh@r&k-2GkA-'Jݦ2D"xf]-q$~r{.n%!8PӉ#}[̲ܮ D+ YZ