librpminspect-devel-1.12.1-1.el8.1> 6 6_ ܉3!y덏%!E/֡f !E/֡Ǚ?olJ&XAb dsp~GkX&F's. %Gad)AuJ̌)ܩWŸ)hJ[,D)0 e DM~p5`l.Ck˄hLۥFO~ܭMQόD;|0~P;,>l/U!Zm^m 4Ǝi$bޒcհY %-Vck !\sb9Ey!9Qt谎W'B1&$+`ad)vW[OMHuh:n?u_,5om7lU=sȫpUˍ{t3C,a:c旒6gG,lYs'~nG6VDC :PoJҴÚlt?#~0sOc*)T"[$w3ΙEzdjǻ~P_i#LU)nJrL3: QALf7898be93321cf8cc4ec2925f91777581a69acf53ba019f8455c8750db84341b0cbac8f798c0793fd832b765fa3b457734a3da6dP >/L{cMC>=`?Pd % ^ 8 T p  v \(89: \G0HhIܠXܰYܸ\]^ݲb&dve{f~l߀tߘuvw`xyLClibrpminspect-devel1.12.11.el8.1Header files and development libraries for librpminspectThe header files and development library links required to build software using librpminspect.fbuildhw-x86-04.iad2.fedoraproject.org9Fedora ProjectFedora ProjectGPL-3.0-or-later AND LGPL-3.0-or-later AND LGPL-2.1-or-later AND Apache-2.0 AND MIT AND AND BSD-1-Clause AND BSD-2-Clause AND BSD-3-Clause AND CC-BY-4.0Fedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64MD2)s6KQ~ A큤A큤fe(,e(,e(,e(,e(,e(,e(,e(,e(,e(,ffe(,ab8d8b006e5fdc95e9473baec4c0718e98a5612f2dcee5cded2a5f6d5fbd5e42a15b62cf2f97ea364611cadb9547f7e8b61a7d9c224a730f48a80467fc168d64413efe5ce83686c85c285f77b0bdd3d739bc4887ecbf7aca523dcb2ecda888a72bc962144d411774b59827a4dd81d04f32f1660aba1e6bf686c8b0562fc37d9f113b0879485c6d52a1fa526c8befaf1166c0ab1e8e1d1df6820aed84a0e3daea628f18a1cc233628ee3199862b99a33a174b164334de9b4a2d79951431c11c0839c43691992fb663450dc831888c1b331aa605f36bc704ed62b7ff267ef53f1a470ac349878199345bfd94953c89d686d9e0a3a52784c1101160f82ba437312bf8af3d768ab0117925a9ffd3bf50759c51e10b26a9311678e7af128a358ee51920ad5213c1a4f1a20648f9dbef8b55240809eaeb705f5cc7a15f72295d1ce17ae3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118librpminspect.so.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.12.1-1.el8.1.src.rpmlibrpminspect-devellibrpminspect-devel(x86-64)@    librpminspect(x86-64)librpminspect.so.0()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.12.1-1.el8.13.0.4-14.6.0-14.0-15.2-14.14.3e'e'd@bb\@aW@a@a0`@`\{@`7@`7@`U_@_@_@_@_[fDavid Cantrell - 1.12.1-1David Cantrell - 1.12-1David Cantrell - 1.11-1David Cantrell - 1.10-1David Cantrell - 1.9-1David Cantrell - 1.8-1David Cantrell - 1.7-1David Cantrell - 1.6-1David Cantrell - 1.5-1David Cantrell - 1.4-1David Cantrell - 1.3.1-1David Cantrell - 1.3-2Fedora Release Engineering David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.1-1- Upgrade to rpminspect-1.12.1- Upgrade to rpminspect-1.12- Upgrade to rpminspect-1.11- Upgrade to rpminspect-1.10- Upgrade to rpminspect-1.9- Upgrade to rpminspect-1.8- Upgrade to rpminspect-1.7- Upgrade to rpminspect-1.6- Begin work on version 1.5 - Use llabs() instead of labs() in the filesize inspection - Improve has invalid execstack flags reporting - Use long unsigned int to report size changes in patches - Fix some errors in the changedfiles inspection - Update the changedfiles test cases - Check DT_SONAME in is_elf_shared_library() - Skip debuginfo and debugsource files in abidiff - Make sure abidiff test cases add a DT_SONAME to the test lib - Report INFO level for patches findings by default - Python black fixes in test/test_abidiff.py - Update the test/test_patches.py cases for patches changes - Generate regular changelog in utils/srpm.h - Skip branches without targets in submit-koji-builds.sh - Fedora and CentOS systems in ci need diffstat - opensuse-leap CI job requires diffstat - Fix the Debian CI jobs in GitHub Actions - Fix and enable the Ubuntu extra-ci job in GitHub Actions - Use pip instead of pip3 for the Ubuntu command - Use apt-get -y install in - Enable the opensuse-tumbleweed GHA job again - Make sure the Gentoo GHA job has diffstat - Get the Arch Linux GHA job working again - Use ubuntu:latest for the ubuntu GHA image - Simplify the utils/determine-os.sh script - Update license table in README.md - Allow any number of builds specified for fetch only mode - Handle old or broken versions of libmagic in changedfiles - Update GitHub Action status badges in README.md - Fix $(OS) check in the Makefile - Fix the ubuntu GitHub Actions extra-ci job - Make sure the centos8 job has git available before cloning - Change strappend() to work as a variadic function - Use json_tokener_parse_ex() to get better error reporting - Fix reading of the javabytecode block in the config file - Catch missing/losing -fPIC correctly on .a ELF objects (#352) - Refactor elf_archive_tests() and its helper functions - Followup fix for find_no_pic, find_pic, and find_all - Install cpp-coveralls using pacman on Arch Linux - Install cpp-coveralls using pip on Arch Linux - Install cpp-coveralls in pre.sh on Arch Linux - Install required Python modules in pre.sh on Arch Linux - Do not upgrade pip on Arch Linux, go back to using pip.txt - Drop DEBUG_PRINT from source generated by pic_bits.sh - Do not run apt-get update as a second time on Debians systems - The lost PIC tests need to invoke gcc with -fno-PIC - Update the OpenSUSE Tumbleweed files, but disable it anyway - Define inspection_ignores in struct rpminspect - Clean up the config file section reading code - Add add_ignore() to init.c - Fix fetch only mode download directory - Stub out libcurl download progress callback function - Perform symbolic owner and group matching in ownership (#364) - Restrict download_progress() to systems with CURLOPT_XFERINFOFUNCTION - Read per-inspection ignore lists from the config file. - Add commented out per-inspection ignore blocks - Implement per-inspection path ignore support (#351) - Report annocheck failures correctly in librpminspect. - Note all regular expression settings use regex(7) syntax - Allow size_threshold: info in the config file (#261) - Check ignore list in files for path prefixes to ignore (#360) - Support a list of expected empty RPMs in the config file (#355) - Call mparse_reset() before mparse_readfd() - Do not crash with the -c option specifies a non-existent file - Update TODO list - Make sure brp-compress is disabled in test_manpage.py - Require/Recommend /usr/bin/annocheck - Note size_threshold can be the keyword info - Ensure ctxt->lastError.message is not NULL before strdup (#382) - Handle corrupt compressed files in changedfiles (#382) - Disable debugging output for the ignore lists in init.c - Drop debugging output in the xml inspection - Remove what working directories we can - Correctly find icons for desktop files in subpackages (#367) - Followup to the Icon= check in the desktop inspection (#367) - BuildRequires libmandoc-devel >= 1.14.5 - Manually install mandoc on centos7 for now- Start work on the 1.4 release - Trim git commit summary prefix from changelog lines - Report the program version number in the results (#309) - Handle compressed but otherwise empty man pages (#308) - Flake8 fixes for test_manpage.py - s/self.rpm/self.after_rpm/ in two test_manpage.py tests - Disable broken ELF heurisitic and size limit in libclamav - Modify dump_cfg() to write valid YAML to stdout (#306) - Migrate more code off hsearch and to uthash - Replace hsearch() with uthash in the kmod inspection - Update TEST_METADATA status in TODO and MISSING - Restrict style checks to specific directories - Replace hsearch() with uthash in the abidiff inspection - Change tsearch/twalk use to uthash - Correct misuse of entry with hentry variables (#321) - Normalize copyright boilerplates in source files - Use hentry->key over hentry->value in pathmigration - Adjust lib/meson.build for Fedora rawhide - Drop gate.yml and begin non-x86_64 arches in ci.yml - Add armv7, aarch64, and s390x to the other_arches job - Change init.c error reporting over to err/warn functions - Modify file triggers and matrix use in ci.yml - Split 32-bit osdeps out to post.sh scripts in osdeps/ - Split style.yml in to shellcheck.yml and python.yml - Rewrite extra-ci.yml to use the matrix strategy method for GHA - Move the emulated CI jobs to extra-ci.yml - s/pkg/pki/ for the centos jobs - Debian and Ubuntu fixes for CI - Python pip on Debian is called pip - Try to fix just debian:stable - Enable debian:testing in extra-ci.yml - Enable centos8 in extra-ci.yml again - Enable centos7 in extra-ci.yml again - Enable opensuse-leap and gentoo in extra-ci.yml again - Run each test script individually on emulated targets - Try a different syntax for the emulated matrix jobs - Install s390 glibc headers on s390x fedora systems - Detect 32-bit and musl presence in test_elf.py - Skip lost -fPIC tests if gcc lacks -m32 support - Add stretch and buster to the emulated targets list - Drop Debian buster from the emulated targets - Install gcc-multilib only on Debian x86_64 and s390x systems - libc-dev:i386 -> libc6-dev:i386 - Disable Debian targets in extra-ci temporarily - s/AUR/git/g in osdeps/arch/post.sh - In read_cfgfile(), keep track of block depth correctly (#329) - A few more yaml parsing fixes for block vs group - Recommend or Require libabigail >= 1.8.2 - Finish normalizing all the error reporting statements - Advertise of rpminspect-report in the contrib README. - Report libclamav version and CVD versions (#258) - Ensure first argument of warn(3) is a format string. - Enable werror=true and warning_level=3 in default_options - Update the translation template file - Get rid of invalid free() in get_product_release() - Add inspection_id() to librpminspect - Update the po/rpminspect.pot template - Improve mkannounce.sh to handle stable and devel releases- Remove duplicate elf_end() call in init_elf_data() (#303) - Update translation template- Small change to the way Koji builds are submitted - Move the master branch to version 1.3 - Drop DEBUG_PRINT in process_table() - Add doc/git.md to explain source control conventions - Change Suggests to Recommends in the spec file - Add kmidiff and politics to the inspections section of generic.yaml - Update TODO list - Use warn() for non-fatal errors in mkdirp() - Require libabigail >= 1.8 in rpminspect.spec.in - Enable multiple --headers-dir1 and --headers-dir2 args in abidiff - Swap out some more fprintf()/fflush() reporting with warn() - #include in peers.c and rmtree.c - On fedora-rawhide CI jobs, install gcc-c++ and gcc-plugin-devel - Disable fedora-rawhide GitHub Action for now - Correctly handle the -w option on rpminspect(1) (#256) - Drop the relative path handling for the -w option - Build and install rc from source on opensuse-leap - Update doc/git.md on how to track upstream - Add .github/ and osdeps/ directories to extra-ci.yml - Build and install rc from source on opensuse-tumbleweed - Adjust curl(1) command line used for rc in opensuse CI jobs - Trying to figure out why the opensuse jobs produce curl errors - Another slight change to post.sh for the opensuse-leap CI job - s/PowerTools/powertools/g in the centos8 PKG_CMD definition - The output of html2text on opensuse systems is different - Rename HEADER_MAN to HEADER_MANPAGE (#264) - Add inspection_header_to_desc() to librpminspect (#264) - Add xunit output format support (#264) - Support the new output function call syntax (#264) - Move init_elf_data() to readelf.c, move data to struct rpminspect - Update inspect_elf.c unit tests for librpminspect changes - Remove check_ipv6() from inspect_elf.c - Create the badfuncs inspection - Update po/ translation files. - Add badfuncs test cases - Forgot to commit test_badfuncs.py. - Fix flake8 and black errors with test_badfuncs.py - Skip debug packages in filesize, display changes correctly - Fix spurious execstack failure - Fix YAML config file reading for BLOCK_INSPECTIONS - Expand dump_config() to cover all config file settings - Minor spelling fixes in strfuncs.c and making code explicit - Simplify list_to_string() so it handles 1-elements lists right - Add abspath() to canonicalize path strings - In the doc inspection, only show diff(1) output for text files (#254) - Add strxmlescape() to strfuncs.c in librpminspect (#264) - Output the system-out xunit portion as CDATA (#264) - Slightly change how strxmlescape() works - Add the runpath inspection to librpminspect - Rename test/data/lto.c to test/data/mathlib.c - Handle the empty string case in abspath() - Expand dump_cfg() to show runpath settings - Fix block handling problems in the YAML config reader - Note single builds cannot be rebases in is_rebase() - Hook up the driver for the runpath inspection - Install patchelf for tests on fedora and centos - Update TODO and README.md files - Pass -D to rpminspect in the test suite - Add integration tests for the runpath inspection - Python flake8 and black fixes in test_runpath.py - Fixes for GitHub Actions on Debian and Ubuntu - Disable Rust support in pip modules, more extra-ci fixes - Update pip and setuptools on debian and ubuntu CI jobs - Make sure pip is updated on debian, centos7, and centos8 - Fixes for extra-ci on arch, centos7, centos8, and debian - Adjust docker image names for opensuse and arch - Add Gentoo Linux to the Extra CI set - extra-ci.yml typo fix for the gentoo job - Use gentoo/stage3 as the container for the gentoo CI job - Disable opensuse-tumbleweed and archlinux CI jobs - Make sure util/determine-os.sh picks up Gentoo Linux - In the runpath inspection, fail if DT_RPATH and DT_RUNPATH exist - Use pip install for PIP_CMD on gentoo - Set PIP_CMD to pip install -user for gentoo - Handle a NULL from list_to_string() in abspath() - Do not match path prefixes in the runpath inspection - Python black fixes for test_runpath.py - Stop doing an emerge --sync on the gentoo CI job - Replace emerge --sync with a manual portage sync - Use emerge-webrsync to update portage on gentoo - Add uthash and move the file matching code to it. - Typo fix in README.md - Fix some memory leaks found by valgrind - Create mkannounce.sh to help make release announcements easier - shellcheck fixes for mkannounce.sh- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- Formatting fixes in Makefile help output - Begin config file restructuring starting with rpminspect-data-generic - Support multiple configuration files. - Docs work in progress. - Only fail the annocheck inspection for RESULT_VERIFY. - Read debuginfo if available when running the 'annocheck' inspection. - Add the '%files' inspection to librpminspect - Add __attribute__((__sentinel__)) to the run_cmd() prototype - Add test suite cases for the '%files' inspection. - Added the 'types' inspection to compare MIME types between builds. - Update TODO file - Update the MISSING file - s/rpminspect.yaml/generic.yaml/ in the Makefile and README - Skip debuginfo and debugsource packages in the 'types' inspection - Add test_types.py to the test suite - Note the 'types' inspection generic.yaml - Modify add_entry() in init.c to skip duplicate entries - Start GitHub Action workflow files for rpminspect. - Install meson in ci-ubuntu.yml - Change 'nls' option in meson_options.txt to a boolean - Install gettext for ci-ubuntu - Add more build dependencies to ci-ubuntu.yml - Drop the 'method' parameter from dependency() lines in meson.build - Split xmlrpc libs to separate dependency() lines in meson.build - More xmlrpc updates for meson.build and lib/meson.build - Try to support systems with xmlrpc-c without the pkgconfig file. - Changes to build on Ubuntu, specifically the GitHub Actions system - Syntax error in ci-ubuntu.yml - Add ci-fedora.yml for GitHub Action CI on Fedora - Fix errors in ci-fedora.yml - Put all of the ci-ubuntu.yml steps in ci-ubuntu.yml - Remove install-libmandoc.sh and ubuntu-pkgs.sh helper scripts. - Install python3-setuptools in ci-ubuntu.yml - Install rpm-build in ci-fedora.yml - Install libxmlrpc-core-c3-dev in ci-ubuntu.yml - Disable ci-ubuntu.yml for now, enable code coverage in ci-fedora.yml - Remove Travis-CI files. - coverage fixes for ci-fedora.yml - Install git in ci-fedora.yml - Enable manual dispatching of the CI on Fedora tests - Remove actionspanel thing for GitHub Actions, drop Coveralls block - Comment the ci-fedora-yaml file - Fix the 'elf' inspection and test_elf.py on Ubuntu - Enable the ci-ubuntu GitHub Action again - Check all return values of getcwd() - Ignore installed Python modules with pip3 in ci-ubuntu.yml - Build 'execstack' test program with -Wl,-z,lazy - Add ci-centos8.yml to enable CI on CentOS 8 as a GitHub Action - s/centos8:latest/centos8/g - Trying 'container: centos:centos8' - Drop 'sudo' from ci-centos8.yml - Rename README to README.md - Enable GitHub Action for CI on CentOS 7 - Drop -I from the pip install line in ci-centos7.yml - Use the 'make instreqs' target for install test suite deps. - Add back 'dnf -y install 'dnf-command(builddep)'' to ci-fedora.yml - Nope, that doesn't do it. Just install make in ci-fedora.yml first - More 'make instreqs' fixes. - s/scripts/utils/g in the Makefile - s/TOPDIR/topdir/g in the Makefile - Install make in ci-centos7.yml - Move REQS and PIP lists out of the Makefile to files in osdep/ - '^$$' -> '^$' - Slightly different sourcing of the osdep/ files - Set OS using := in the Makefile - Make the reqs.txt files in osdep/ contain all deps - linux-headers -> linux-headers-$(uname -r) for Ubuntu - Remove html401-dtds from osdep/centos8/reqs.txt - Use `` instead of $() since this list goes through make(1) - Does $(shell uname -r) work in this case? - More osdep/ work and simplification. - Rename 'osdep' to 'osdeps' - meson patches for opensuse - Move mandoc installation to post.sh in osdep/ubuntu - Add GitHub Action for CI on OpenSUSE - opensuse:latest -> opensuse/leap:latest - Install tar in ci-opensuse.yml - Install gzip in ci-opensuse.yml - More fixes for ci-opensuse.yml - Small fixes to determine-os.sh - ci: Add Python linting jobs - ShellCheck fixes for the regress/ scripts - ci: Add ShellCheck to lint shell scripts - Adjust how the Makefile reports unknown operating system. - Just check $ID in determine-os.sh for opensuse - Use pip for PIP_CMD on opensuse-leap - Update the centos images before doing anything else. - Install curl in opensuse-leap - Get 'rc' from Fedora on opensuse and copy it to /usr/local - Install kernel-default-devel for opensuse CI - Move the 'uses' part of the centos CI jobs to the first step - ShellCheck fixes for the utils/ scripts. - Some flake8 fixes in test/, using yapf - Combine all of the GitHub Actions CI runs in to ci.yml - Manually install rpmfluff on CentOS 7; pip is failing here - Use rpmfluff-0.5.7 explicitly for centos7 - Use rpmfluff-0.5.6 on centos7 - OK, let's try rpmfluff-0.5 for centos7 - Last try, rpmfluff-0.5.4.1 for centos7 - Back to trying to manually install rpmfluff for centos7 - Style the Python code with Black - Add the Black formatting commit to blame revision ignore list - OK, just copy rpmfluff.py in place - Make sure to manually install rpmfluff-0.5.7.1 for centos7 - Don't assume we have a header or even a list of files (#161) - python: flake8: drop * imports - python: flake8: wrap long lines to less than 100 characters - python: flake8: drop unused imports - python: flake8: remove unused local variables - python: flake8: add PEP8 whitespace - python: flake8: mark in-line bash scripts as raw strings - python: rename several duplicate test cases - ci: merge style workflows - Adjust rpminspect.spec.in for file moves and default changes. - Return the reallybadword to the metadata tests - Adjust test_metadata.LosingVendorCompareKojiBuild to expect VERIFY - The shared libmandoc check should not look for a static libmandoc - Update the AUTHORS file - Rename ipv6_blacklist to forbidden_ipv6_functions - Rename stat-whitelist to fileinfo - Rename 'caps_whitelist' to 'caps' and drop the use of 'whitelist' - Rename abi-checking-whitelist/ to abi/ in /usr/share/rpminspect - Rename 'version-whitelist/' to 'rebaseable/' in /usr/share/rpminspect - Rename "political-whitelist/" to "politics/" in /usr/share/rpminspect - Drop unnecessary method re-definitions in base test classes - Use super() rather than explicitly calling the parent class - Call configFile() on object instance rather than using the parent class - Upload coverage report to codecov - Improve the error reporting for test result checking - Convert to AUTHORS.md file, add Makefile target to generate it. - Introduce the 'movedfiles' inspection and a lot of other fixes (#155) - AUTHORS -> AUTHORS.md in rpminspect.spec.in - Add basic tests for the filesize inspection - Multiply the file size difference before dividing - Update README.md - Update README.md (more Markdown changes) - Update POTFILES and rpminspect.pot - chmod 0755 test_filesize.py - tests: optionally check the result message - tests: add further filesize tests for shrinking files - inspect_filesize: drop extra - from the message about file shrinkage - Enable 'permissions' inspect for single build analysis. - Add 24 new test cases to cover the 'permissions' inspection. - chmod 0755 test_permissions.py - Make sure all RESULT_INFO results are set to NOT_WAIVABLE - Fix some specific problems with the 'permissions' inspection. - Pass "-r GENERIC" to rpminspect in the TestCompareKoji class - Add 12 more permissions test cases for setuid file checks - Update TODO list - Update test_symlink.py tests for new waiver_auth values - Add a fedora-rawhide job and renamed 'fedora' to fedora-stable - Update the rpminspect.pot translation template - Relicense librpminspect (lib/ and include/) as LGPL-3.0-or-later - Ignore .tox/ subdirectory - License the rpminspect-data-generic subpackage as CC-BY-4.0 - Add a copy of the Apache 2.0 license for the 5 files in librpminspect - Update the License tag in the spec file and the %license lines - Add debian-testing as a CI workflow; add missing osdeps files. - Update determine-os.sh to handle Fedora stable and rawhide - Drop the use of 'sudo' in ci.yml - sudo required for Ubuntu CI job, install make for debian-testing - See what $ID is set to in determine-os.sh - Workaround a bug in meson 0.55.0 for Fedora CI jobs - Add 'debian' catch to utils/determine-os.sh - Rename 'osdeps/debian-testing/' to 'osdeps/debian/' - Add opensuse-tumbleweed to the CI job list - Add libmagic-dev to osdeps/debian/reqs.txt - Fix memory corruption in init_rpminspect - Add comment clarifying the License tag in the spec file. - If check_results() raises AssertionError, dump the JSON output - Fix test_changelog.py test cases that are failing. - Fix UnbalancedChangeLogEditCompareKoji - Handle rpm versions with x.y.z.w version numbers in test_symlinks.py - Fix mandoc build problems in opensuse-tumbleweed CI job - Install gcovr using pip on opensuse-tumbleweed - Handle systems that lack pkg-config files for libelf and libcap - Add archlinux CI job in GitHub Actions - Forgot --noconfirm on the 'pacman -Syu' line. - Add missing DESC_MOVEDFILES block to inspection_desc() - More minor fixes to the Arch Linux CI job. - Install gcovr with pip for the Arch Linux CI job. - Support building on systems that lack - Add detection for to meson.build - Ensure an int is used for snprintf() in inspect_manpage_path() - WIP: 'abidiff' inspection - Only report permissions change if there is a mode_diff (#181) - Fix -Werror failures in inspect_abidiff.c - Add sl_run_cmd() to librpminspect. - Add get_arches() to librpminspect - WIP: abidiff inspection - Some minor edits to the README.md file - More minor updates to the README.md file - Replace get_arches() with init_arches() - Add test_addedfiles.py to the integration test suite - Expand find_one_peer() to soft match versioned ELF shared libraries - Add the beginnings of the 'abidiff' inspection code. - Report out findings in the abidiff inspection. - Update the test suite to cover rpmfluff 0.6 - libmandoc configure workaround needed on Debian too - shellcheck fixes for the scripts in utils/ - Add abi.c, the code that reads in the ABI compat level files (#144) - Be sure to close the open file before exiting init_fileinfo() - Python formatting cleanups - Add --diff to the Python format checker - Add new setting to abidiff section of the config file - Add -n/--no-rebase command line option to disable rebase detection - Store size_threshold as a long int rather than a char * - Check abidiff(1) results against the ABI compat level definitions (#144) - Add 'apt-get -y install libgcc-s1:i386' to pre.sh for Debian - Add integration test cases for the abidiff inspection (#144) - Add 'dpkg --configure -a' to pre.sh for debian - Install libterm-readline-perl-perl for debian CI - Install libabigail for Fedora and CentOS CI jobs - libgcc-s1:i386 -> lib32gcc-s1 for debian CI - Install libabigail for opensuse-leap, opensuse-tumbleweed, and arch CI - Install libabigail for debian and ubuntu CI - Install libabigail-dev for debian and ubuntu, not libabigail - Install libabigail-tools on opensuse-leap and opensuse-tumbleweed - Install libabigail-git for arch linux CI - Move free_argv_table() to runcmd.c - Install 'abigail-tools' for debian-testing and ubuntu CI - Install libabigail using the Arch User Repo on arch CI - Explain the osdeps/ subdirectory. - No, just clone libabigail from git and build it manually on arch - Add beginning of kmidiff inspection, put ABI functions in abi.c - Read list of possible kernel executable filenames from the config file. - Drop abidiff_ and kmidiff_ from extra_args; add kernel_filenames - Just call the abidiff and kmidiff extra args settings "extra_args" - Define 'kmi_ignore_pattern' in the config file. - Handle builds that lack all debuginfo packages (#186) - Do not assume peer->after_hdr exists (#187) - Store copy of original pointer in strsplit() to free at the end. - Use mmap() and strsplit() in read_file() rather than a getline() loop - Fix memory leaks in abi.c functions - open() failure in readfile() is not fatal, just return NULL - Add utils/gate.sh - Have check_abi() pass back the ABI compat level found - Update descriptions for abidiff and kmidiff inspections - Hook up the kmidiff inspection. - Use read_file() in init_fileinfo() and init_caps() - Use read_file() in validate_desktop_contents() - Use read_file() in disttag_driver() - Adjust how init_fileinfo() and init_caps() iterate over file contents - Fix 'tox -e format' style problems found. - Avoid comparing elf files that are not shared libraries - Support --kmi-whitelist in the kmidiff inspection - Trim worksubdir from paths in reported abidiff and kmidiff commands - Remove the kmi_ignore_pattern setting for the config file. - Create include/queue.h to replace the _COMPAT_QUEUE blocks everywhere - Update AUTHORS.md - Report metadata changes for rebased packages as INFO - Do not fail the specname inspection when given a non-SRPM - For passing upstream inspections, do not report a remedy string. - Do not fail the lostpayload inspections if it only gives INFO messages - Clarify unapproved license message in the license inspection - Use FOPEN_MAX for nopenfd parameter in nftw() calls - Make sure to close open file descriptors from get_elf() calls. - Include 'src' architecture in the rpminspect runs in gate.sh - Make sure kmidiff is listed in the spec file - TODO updates - Update rpminspect.pot and POTFILES for translations 1.12.1-1.el8.11.12.1-1.el8.1librpminspectconstants.hinit.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, ASCII textC source, ASCII text, with very long linesASCII textRhttps://bugz.fedoraproject.org/rpminspectutf-84c84746952fa9668acd0460ffb65d0d6f61284bfd3f01cc82ce684ff5c610993?07zXZ !#,-] b2u jӫ`(y0,! ƲTL~/ I`m C֙mf fo!p`=dhCL]!N 7R8|~բ`%Vї#>975f@5-π ;_#XlKQ')W \H^$j ThHXdY+UZ"g|cjUQ{:^ ~\^yϡg)̹EoJ]H 6טW0F?gW]mt(!9w|߿TiiԛJVEd%}&g}~ , z_s־$Z3dΐjFN~;.Ec3Z~ e8ebbX aSL5?eP?_^^9K(Y7 ‘^~ pFY[qW+Wh;i@aY7a =fV,[YNGWF޸Bӗ;jB~jnh``SXRTɨõVzH]=ﵬMP웳-PH/n*PXA[\%!p ZYC;LlP6Ewѷ6@Zo"#x(<1sdv2Q>#~Uo&Ii*xV"]램 B_r*_&dBhp%v 8^%xj'vdG~?̫ӆQܰ+a7~E}7?Z" yD299Ų!ڈ+ѻkraL3k[],w}LSE%A X|Tg" Eno㾣?NÙz9qGa[#/Ħ3 Y"5xs]4ycCc-zNT{?!B" f@/%ڍrf4%:J``4uReEQx铴+;>86k_0F3Wx$N'\ln0O{*z O.>NܸN{Ȣ``Va>BkގkitEI;3 F<kV 4҃HQz1Hx+6 'ir"M-q\4^9̅:F9ap 0&X>bBVnhTJwP{ [78Z20B}.4h"rs bj\e{0) /L䆣 mT9@Uug[=i2bV걹~0m`: o1-Qu3 C:-a0nY DR2\,jd6tgqSfWb@kQ O8E]o:h^2!R@8tKs179mVvG2 1nAYdN-e}\k 5SAB'A2?#0-wSF M< hieN*Uf5B& iw41q5H9|ؾ#/}fUC솊N QK.=>Zw5CM ߮+nst)1Pb.^׆b|GҔ<鐎e:+"EaG8AI4P4Lk \ke)8MKωfVx-skOK~g=O6A{ReL/ӊ OxӥYMxn&,91=`@j&Ad]/2@C')t/MMZ;5  b1";8L}N-Bu͕\ʎekL MwqWy%'Ka([Ai0R{6t&$~ڝ՗]D鏋||9[QRQH !+M%+~tz7λʣ~ޘ87YPoys AhuTxgx@=m1n^_ (-Tٴ:46ij9^ CRh\҆`i( f4u`;>gY@b(Uy|' y6HvV ?4<k2a S~9=sYj2iE/m?-#czt"y jOV=<.37+p"B =PZV8a=Kιou8V;#} QT0Rqr_}٦Xe3/d~&`K)w(dD?1@HH]d}_,(DZA1ÔD:ry vZ@ wvh9sҞc0uzo?TIיͺVoyN#?&żߞGPW L檵5dpM'z$Q_ JYԝ ǩ⟲Ted͖-,>[N>BqÅvޣ]1 gTrunvo`3.e4hr֊QPy_t<ն]A?#&zZqAKE&> S&TrgrEA -L#64 usge\9ל d$+.`aahl;P~m f[I[Sm{@; wսJmMu EiZ 8:(**^jGno_uGsZ@*4py8B =hR,n扴  .b4"E0]p!e_"4} [ҧ)7P}ʈ"P97QW@ȶ5i ۱^{gQ y0W" ҺTerAa[/({c8f G38+:؇=n?@V4@|p3AVBr|̹-.4&{z\l Q-a4`TӾERj&keT7f 06rե}+qz= =GL˞,CHF1#u|@ ݼl!LbskCc7K>փ?JK֑t:˔UiCVR@ѱ(h?n|P֏e޹`\V:6@;Q1OO1WI,LRg( -9S-`e9 GTd㹀pdߎ#P5DZ}aNRÜa&MFA9{8x`yd{ #GFQb,B*X'moxh/@|Wh;^]^`&zWlO즰fpCШto`.ڭJ2ΎCV wtGaƮSvY>pw#?TKGd'QE""BPGZP),6JUņ5پMVےTkCˎtLZ&jc!-yI۞;,: x; 5._D&\54P7{vȊL{ϩ 5&Ŗ!̽t^XYOԣΓ&ŷx0ǀcLTs9MfwɅ>R:nd? +jdIiP e14Gb(]6Sw=qQP5:/7:-nk)Wh8}A3:W'$qM2_L1%NWevGM];_N qFQV.{1Ae g{]֢@6  0J=MemNK ػzIbSlgȱdmcK\1d/$xΑ;~V@~z _cjÃ3T+ :8Ǘrʏ.a@2܁_B0]':w4(2_U{{yz+&07ë=7TLwnԚK\#$/xjemu{/p"@-l :ZO7?^y_$חwՔ~lRpJջKRA2r}Oǘt(z,Ò1XC+C\[ư5Мv+hܧNǑ"^lyi-a0=gX"cY8k#wNW(4P![ a-ȱ[<7\Q-[x-w:4,iW((I'ЎwM3qV#Ss} 3=" g1/ӻ"z=S͔f^ (8nTV4=3 jCLJo:r<.u~(&ŲC䀌wK7^qj ?KU6KAb1HU $OҩY?x)9\D* hxq5/.zO{#@'Ju`6Dz!?9EJ^N^h \ Ңͤl&}=lEf?WДP̡gLoerȄO->=9xu3T=$ct[#bt7x_CIկ* j }: ' yQDT40d.726uf00*J$wks~T㺛*dr .} 0yV%ҌM \L..2n;:@a.Čq,(_>ijWQfBI^LЎȿXc&Qx^{igR~G].WY M):LBFubuqbX-=o6I^"vt_܊戮cވIKeP2e}t`7>ZM/^+ !B*W5!JMR .vt%$~y{_2ə->e3\`VaTSm`}u؆l9 3f*[U$% YʱĩIΑJuʝ4P)9A۷,rH*Gao&BIKEM\Z8&*P^:Xi–/O{̐ zMCHC)`_fP'!¾Sx)_NI =]á=#H/#Ϫ 3o<%AIy h=^ph!3 O]z++OHOuYH7htq.3 q0SO 'B$sOg12D0zYCG 6\B4 Ft -OƸoh$+J qsGds{"SQf4M8M Mޅj$$Is}+2FMoqM^\Ċ&ԉm7FһbH N\zSQ3:(H=U$ K们,Dmo9uo0KQ`x"#$lQVT|M"7S!NV~*Fܠ85FLC'' CWKc VG]`9s;cSF4|c(,(,? ˞@?EߘYY>)6u1^Βmza̘g5I4X9OL}td^A 픪|gCa^o,lن1+sFxO(Hg F4}m!Fk3p-5}cnu4:2),2T0'ѺV u'spG]N,3k4w{wYeֱ;,`ENwc%ki)+=u=[ MH*)it#"yf`.5. WUo3x)D\=Ny*9/ܴ!>#wQBeDskQyϘ~"'NӜoAZ.HU%?EH:hL.Q4euQHNmָpreF!aSWjdh~{[mSׅ2Mjzm!O[_ JgHNJL:W \ >8TUWS\MDNGzmZ!AoGh&D2+=c^0'쉢=4dq$qwqP@W4;xvg"8n洶?a'zd,2 RҾB9m`oG%ocST#5 1=w ½NixXܮXk04phmPhp}7LH+0l)Dʌr^yUlx6h'*S>LPQ_,|!ً̨Fݵ'j;AJtZj66ZCw09LFId_ܵa18Q'њ M\5wqտ j^q.;B^zub˞#W=?"_L aMYj4p]Uv<`?CDǬ;aJT°@] &҂{J  t lS3G[>W-Ftb =W>+MRÈnIRRSo_s< SVBy6.sj{{i@Tf] 8 k3L;0+ JPlaut3;X+oj*5c~:ejQq}(YzthtKb .lQdECXDQ'.蜜ێ$4/^w߯Sl ҂ս:4@]jd?7/".ۣ.!Q_f rc1+[濩e"vxrm .#׉.*=#EBwJiVv%BLQ z̦%vfTfC#؈{#ED3CJ-J"ǢlOeRhפQ A*X5P!! qL^*hXrD{Y)D?7v8!bh ֙]L^X*|&yFlH;_4?.JD<9~qf/\=^zC ) Dr᚟Rml#0n5Q@mM 0`Crq{>C't:ڳB_Ѱ)x!Zv_EW=p'rR1<[W[H1RaV}յ:5 hCOU<:RS)CyQC}d"zĦW=>f⏒cܤRI8zhN:c4 T)SÕѡ-\`7w_~U _'sۙ'J.t%yȚWaq.BAOb8 f=#L#,/ ](AcT+C[GzƪI.NE":KZ%PÏH&4Rĸ\[YY0TNO1Soχ{] f\E6f3K~*}|F3O$<yMg R_"k1x?~5  ""/9DTOTӨy$E4* w?}M4L {f:#_ ߔ=c0@YSjUR@$9 sQ7jJWҷ E̮S-Qk PV4<ܥfʆX"d]G5y³Wl}^"'`H%X0{곧aL\bE@Q2V5{sV/qaD$3q Z\QK' ς\ΓJdie68q,R"۵.] \s"taV2U'yC _3KdKkns4t+U߲PMcw&m̏hEւaBo( 5)\9g6|.Ku?DT` ? - (ס6NM/*|1l 34zTh zcFߗaN|xnx'M,w-#JNUaSε]D͆넭*#hc1V0.uBO:CZ96Vc` DNd_1CE8>y,qzh(H8xNs9$QC`&Uh  Z+UFGx . 0 ڄ`1.bg{n61)2Iʳ^{m;ii]G5B_㳲:+/92W UN/)f$ $穊 "pVPs|!x<;bQch)-0JU:UOhE߾_̘$?ErhS)>h؝"@t_BHc^5=e2I7a[ b5(+rCRj@l0ɼqItkMW wCS v],ѦaFOkzR7C=9[( Vob}=3?C 89Y#4VyIi]]lf qhjقTm EGm/'i4wӚ\8P/2[<Βzc$PqCXzj%lMKE($ᵶP2gl,M?nнT ۑ2F+gwrb<s .PTĠi99L!9 up\Ɉzgc  y$@Xo9_]_juOK( PBϪzϩ߼-"+ԅߛ [bۖ$֍{|wmǩZD8p"e9YY)yMIhwLTŃcZ>XpD&j^Cnso7p1)v:c&@2%8;F//tLg|Il(R67j-Lp8v KW,s.1ʶfwGYTRŎ-߆:" 6a&JhjDwlXA/|8ξʞWaJ(h"Ѵ9KAGY_"tYHev wͅ%wݽtY omS)ڙҕ&;fRi2i2*Fy6\-CFCKG!\pˉU/OoR%nYd>υ)XX^Q5(&d`^-$ί;i˸x: 'ӋUR9eR Ft 20-DvX[Nza@K>p;8"Az`v$Oʋ#M9C6ż".7PwgbMP.ogCEv\0{nnKfd "AIfp-*&#ؔ՜aSǫax6=I.N$vbЫ\k,{ k)"F8i_vW[C;H(@m a 8Gx.j)%>gk Q`lmhyW$tGw?Iܠ'bGIu=z(RlW1>yDj Χwl&Gvʁ}WD6f\hH%UAu ʀ=T-Hx3{ۋy+uHV"j.Ṷ́$oo7쩺wns ;fJ2 u`Q>C,ͣE*^M6 >sa/d1yf @p7)R[7vK8mjzj q7k;6s`{}$zOajJEz&6"}IƇ:(5EKpƾH As6gǤ>Ė 2,v;kԠuHhT})r!HeU;$sYtP0A{:fĤ™p@X0Qi+ՁYJԯҰ0d5řylUЋh兴dѥmuiVOF!*Lk[|'3!Yw[$H/Z_89,Ǹ sH(1TɒnsKt7 N.&5XA)ό b[΁8$B T|?u|donwuq l5d˔s\>y1~6kO%H.l3V+ hIfAPx@`3( ԋaJϷxrSG~:>)T=Y3"4i|3-;FgKՕ˦z`m^>Y,fd*x-X5^è8RJlU KoWO4*eYwPGS&q pgta/T&}ݱ J LS=,NzSc(ڞb P'Wr]fr=㧘i[]j׎6c nj7-XL8ZiL)eECgyfB0z܄ c3kS<(-:K1޷~ Yӳ^@ Gpź}ai&o%_R1o$L0*!șW<XRSY:" N?ͯn"m4\=!umܸ[G6 +,be{"s7 oDE`6vlX `Y J!~CO̔P&Rs@2C'3oZ_%X`+ 54ó&5[;5Fi@0"੣=:VI ӷX\tydi>%Qn[v~^؋WueO">x{hwʾ{9vIP^Q%QPӉx˕hb Xhҥ`b{{5h8coA.M3΂-", )$,1o`H}VOlDD>ss4__s\Լ-PxdJL3vގ/򱲔 + $0ϭSJ `8q3kXT}t @1P3EV$h>{7DI'¤wȑ;sBgjO5:K@Ë>XR h)S&P̻9P}`qAVz~JM=-&ֱ.d _B,*_\t访R.w D# dE(  C-ғߋ|[`k[ío-3Doo(oh;qwdZOZrt)\d\L oJ .@Vc{WGy널qMHfg2['U |a"ArVrW"edph-ѢFTQ}[v_Q5Z̪nY.܉A.q@qa.r{Ewtp_'sfB~60+(a簇Ga,+ITLM1| R(Z`kՏZ$GP< ~'un9eDo}r|Jlݯ)~;eM}˕e~O{_D++~&B]M~ğnrf1ڔt#a}1ƕpod;$;j6g Mt׮X¦y7Sb_EMc i[\}hR;9A(LHfG10jncJC:bXtH)n BYW_3蓔PZay^D[k&xJutd7z8tv_熅`^yC/2Ra(iJ@o\̙xj'L+Hg}@ p)8cC#C=$Sby0WTɌ<}SiCc2OXZg&``~^@*cRMNSn:.,fz3֓~J{D>%`d_KD;)B+PKA:L|-B3,NCjDpC:.$c;iV`*ƾ`?'7@ 9~~3bn뙫NORؿ}r!ɹ,&qd'rvU.oHo%P*4owjBS/YzBL q# ׇ[q< v5y04+i{M_GE;80H{ &L.*Blu 1z;,9vYnN3U62:jm S>ڮȧhTL )jB?ǁցmer0yRV𱬉1d4Ek79Zq:aFJ-3ٚgeU&@( *<.Pjag׿ۃO fP1 tȇj^'VZ{;Ram'٨Yx 5]A>7Xr d{V-#.ӝ sbl+; GՃ32VP~ڡ 89mM pO|f) &PD&I)RMMbb7>q ٬ &,4\aGKyaW)!"(wDj9a$X-!,K9Fd%JQX/L6;R HJ9u.I'NBH" QOhP5TVXUQdYLو*;蚥y0 B8>r.*c^ y?vԛD7rC57'TY;m[ .(KJt!Ua翈g;ҔbXd^wq60Vk$Ey{5/9!KnXe @(<4N#g:dZhB8-$|m$D r?^zG=ek/~ɆJζá 6 ؟6#lŠkλTBj*1F1[2#_e1-oeR>}Lx`?8yp?͹ȰfXJ..v Ej<[w}p8tT+% 6IZO3bFm6?x,F0'gjtBLRl(m5D`.MHTXT 4>9۹8bom!1L4} 8uthm^/{F.XH7ӮH0vs<)х.$+ik->vΝcDe49 ҷUV= eQdXz G=ʰOhc(֥ ͜.B7 )J8TM4xptǃsntO *|:kiu0vD٫!Jq|$ ŻwMwG,"oIWeh$|IM4"8+{<+# q0fj ! nܵeɍ5+X:}iC2O r˔Vj*Moy!<2ARk Ԅ~` [1W&SFb usW]m (fX NϿ6 ?S&cw/bjHnXϮDµH|YosS$NͶP_ѣſd8){-qJ=u ok("c.g w9_k6!@f>dAUp!͹<7/ٯ{&ns6P8sLS@׸MO "P&>EkHMoEl%9=~Hyyز>amJV{xKPMKU}ZS.y'tj>#Ň-Brv^@F>Oݴ~lLMCӵ b>.rI#!2&Y TLr-:NbbUߧs(od~eO;薅9R MU`\/}^C~jj!сԁ:=67rzyrj.لX)_XкOǓ }wNPsK󪮒Ugl케('٢SuH8VC jKywpSE>?5p'¤HE8M JaձWW.)JUTؕ`}oKҥ*Du:Fx-uר"1b7Ԝ"ypS%!-d ~j@,pʕkū;t\n6 htz]x%wD ;5IV!0MԄ#=Y,J){ű+Xw"tuOP/cdil¾ytCl|<ޏ3|;ŀ<.\1\@V݌əVr2[/nsV|8AR-UYC`H]Q;g߻}%9ĺ}#MEGGq%v)lAB^*OΑ~31팱0$D wX%ַ(/* .ztOx "9.X.ҊOVZTj7./դѐ$VRaz6iXf" 2Gyc06Jd}Z+mqﴭ=Ei)VF*aԕYcӘ~tYwR.{>Pdz5x;ԿMΣ6RIobD[rE`h) Uy"恡2^#N` dRU]//Yι֓C:лX%TW2K(^ID4alxh-.bB K 3WH rtbGcSmƦvگ`߶) ~vnT$,Z)`Nat%K!C'6q]lќ/!`ApO>xpUBnutueﱌ&}5WTθ* )/G#-!$aOC?9eȆIEa{(62PktWu!M˨̖]ܷan)Աz)f:Mja|X|ϐevw,USw4* R^u*1ŵDir,&E xK3|[ !x p[E#i>|ǡ N zny)F͟9JFd-[DᚯzϹwP"XYx_.WuW!ݎ "13@b ޺ےs7

-ei\oǽVf.{ج. f(q'yྰa=q,D>cs+fc?_?T2=4)/ (W|P %+ϜfJjZ $ d ɳ#@Kz֛Igc<h5zYo AtרϿ0+^XDgNUsΙHD~fgSoi4` 9o 0ֿQ$/|ߏN~]q{= yߛ?ec=U=L|̂,;ۓ$ 69fr 3:3=C,57!*pF`ğ픯TMJ\{UGXz^7Tj.^,P\In8\Y&2U&X'[fv2m""NBtjU`tFDSC,yphg#_Dko)TcrIr}uN Yg" ʗ0r2 7K$Tr_nK7h)?|s LY O&[IwX b$} 2(ZPҦ)p6|:lUIq % T_~:PkcLb|H})Y, 1OBxşu@:¶b DKř67F? DrLdICk2&I8m`dN$얒_x y4Rmv|7 j\ov"@fVZ:5,WŹC%R 7~sa ژ]Zg0JOt%WrHJ1+ED.va|@ i,F|VZÍlAADIaJ|!4 ԞJ;-(:w2[lR{Mי,k>X㽊zsql$'޹&g;L^ MZ;T?wj<6r=Âzx>ֹWJ .[{O'>}QB9uIA.;DQ~9?\X1rKNܓlC3oj$[#'uSkK*T> 9@w v[/3 d^R?'!teAp:ʋ˦լF]Ɨ)@j }}g2tr+/d[BNL\9,j_ݰ"+gjJѻS,,gS]`摟=Y[<$CJG;|A{EDf8\ۘ aT/_'֭9w<~l2^,-+v l hoX+tuYq{u~Okя; XIQwLэ z(9^!Vy6dYD⇫sC/1w+ej )oVޔ_6qQt:洘WM;z ii;"z0dpA[azcO6nkAJKwD'imC7RLn pxSoeB+ݣMtzTfJhp2bk/F -ͳ9"չmH@d˽AcJL!&.c XvgF(BuYFLF/.Ng]v Vay,J& :9FrոOa;]E"|Oj%.ΗUB׿P%Qv$JmHIzz]hBJ%I @1decJѬbqG@6 G2&v)X=A24bF@̖ʰBNȓ4gp}Y+ne}?qmF)^yz@j{>@ =y`A&d\ Jn#?B ~\S4hv [m=άZBh':ϠDEI]of֦iԲ6?zbwSeY7 &O*&*1HdV;GٶBZ]l-4yPꗶ@2?<tJ[%=z+@hqTW(lɒ8Af0A v;+F^p-܏ X5$=>N09ev&esWU;xI/6 AgM6m듁rubSlZF*Z ~C}&.qf]rB\<[$~fM%i\~Ȁ&"}R7OaNha1S (9ngf]k˖u{+IA/qyI3id VmW?بjNw݁!_Z6%sxM۴4J#4tT'cGe#sE' 芢+SG@K\ѳ}RhK<@<'lr~HŸZݔy,F #UEDg)c   \W'CNw+> v>MzTSVµ{v >]r*.}3y=u935=@_ &W“/`wy z5t/=P6 )'xJZ\C vV'ľ;,w?jyXP0we5]묌aeؗA==6a4P7bNGe\CޔOrm$^'ňa_}qBԦj`U]o)Tj|d-("(5Ώ&ke[BHo)L&>@Rୈ-(,:%x&ѣ!ZAi bWAyxX"$a|(s x$%Z8h L0&ۻ! <6BꎟV,w,ɏ*uץ8{Myx'~=c1뢡gl`BXM6#` D/ț4+[ݗMDpEE\7o&ΏLW?420./j@f$59F%a?O* 7k40y'6XXps OQ8ʅrdBUM/Gi泚OeO(կ^@:?cu-Dkڃ0gmrQ8 H{aH6:=\a >/ucf)?/Ar-ZeFrj@@I'HrUQn'"S-sJՇ3"{`T.zfkQW;41B;EuZ2zO2w4!;¸rg >YMk&O=3٬i+{霔Ukcf("Jp7 78bÙ'lx+eb]뇮.h&d^bӫUC|!RZ}Ȧe`0SGb`9uEMg px᨟~W(:bN*ך{x< 3+ h≄7wuy#*3˜͔pY(k1ƙOng!+?'~|{up[=&݀-iT=kY4%f7ZSTx5)N:j,OGY(u"owD/spȴ뙄Ie GP4 .[L9(v֛#oաDGnpT%h }z&D1_U: VԪpgFޒNبpF.b)p ]—(L4/FG ^[GEU35 .q.h7C$46>%/PDs"w.R|É%zҋbRĽb/ ҙ !`:2)fOyޅu@4 0M3^sS{#`1z06h>e?1g#F@f}Uw^DZuye~IVjX_D '?}~B׻{R"mB!яK@( c7]M``ѩ@f,"n  !draB1#E o*.ʏcqd$.ѓ<1ߨ˭UJ~7W>)oS(ϳsG~:"*8n(~iTv,l?9S%V&*\Y 螮RA-9[4?؄yZ%N߱#],& JZ;v<9~w]h=$  P$GA!oH)vSw)e0ݠxF7#N? c$)t֊17=y92 ͊/$qQ*T3C\2eY,prN"T;_z SkVH;?"IQ)X}ϴ1\#?h$quOj6&ةҭ&.1u } ꈄJ,j3PE$AiڽCaf\6㲢o.|0R"s*0$0,A|>^<ڟۉŬDw;TyPKTEn箟Ϊ!Iqøt@ny@:^cX Kɒ8zYNI6ϡ8Ѧ8 *XؑB_gz~Q㴔쨭kq¦֩?hbq{A޿(PTS\oLMrg]uvhxFMi@: y]],%n"MW9,ӏ)] hntĊDNl-#8M'IDNrgXZ DfO:w qyr(7wZPj.Jω2 vNXLNꕿ$B*̱ݟdc;r%0zei `kus"BKX띙:1^gnӸ\.ӧUpP%+5 r\!&F6 4k m, Ր I^G>}>"/6p C:sd\?e5h4YZ~ 6 ƪ~Ι|! $5ldi#hoSB}G{=`lC~\#B: Ƃxo0?IJd1 \cĒ@X8B3cnz)$` yڽFB~/ڈ5C=RT ? N#\5wJڌ=K.zɄÃ-&EKt1 ̔pbmsJ׷!t7jc rǙS1x?NB# '|Wj`%G^  ^UK9t ئ$j3p=,H'#3RDs#L y27dnEx#F%|Nj,/q< u>cǰ /~W{ETI`t<hU&\;cO##qkotNPV!s1C 0C[r7̀ Z^13q"չ)Y}B2LIoZ3Emo["Uz! ~"ЕQ00*BJ#c#D}s3 FKlnr0rARmo)ttN%<- O }c@O2I\MEI@Yrh 0r4ſʦ#b('ѹhb8Ij`$]Yvɠ2SlMt迴.x!U%0FO6B+U'6MzYȭ[.\o:K)kc!-ד՜(\E-Xs.g[^i z)At?zzWN˭2;L#*'i MQ?XvYBǕ_?L0E6wKnȬ }ъUo玺E%Kc  梢%cÃC 4Nt[{\[mH9#Tm儞QĀ*?];Ѻ!;4截1?$A իٖ]  2FAD;*9&k D^_ cB#=)>s=^L^=ho0⯮sqUOE)U?UzoAƯr.Se {˾v1ӗݳNz(۪a6}KZB|BH!}:GU Oy$Rd@#M h3-ќ`,A.ҹ$vt!iZ|2>JAN6UЫsvFvbj#RA7яKOkyl6G(B>hLz[WTc9Ml(ga?jۧ%R_r,/ CAT00bo\3*X* 1z|n5Y@r]0JMM3g?X;7yKP y_ـڽNK XMf4aN?H$Pu8`bGC|)S kPZ%Ҫ8SGvb@\zqh]sVoV3:Hº~ݐ&@dK8⥞3F1 |S$B_MS?:,3JG`@ƉC_ǷD8`߷!dD帄%cJL^2}b98q33J( .@B/;,볏%BX;xʡ£3fHլFo֞撁HTX/4,q< hjٕ~3?@ 6E``E }U2qP [*MاIjβ̼:O@Fą?-O玔gդ7Jl'" oeg4w5cV Kpŧ9:r%GSRdO内:@ZFV^_%RaCd'$&iWlo|Y9@^O!OahBG׉$-RlXi<)u-B-,17j'vt g7/z8h*?>YIGL;o~CfbJ6YTPPdwW]Hd=}L5Hq1x߆e [1V(8̀yX6`BGZXEgzЍj9 RF`:Gka+{+,M-䈍-_q7x6>)erKJtP%~;C4 `rdoB hߝ FN .`E3=Uc+:Dy#ϸm⺗f 0cNGΔmv(l +/AU!R=!aM+Gk})Q:0"7TNs٢>Me^PoIC|j>E$_̕Ӕ#+Opvc$*& |; ` rKe&/ aF}Wgb#q|2͚ua;En =9?^8X*yYfض6dX*okIplģd<8ԛ34ަ#s=8z')5^h=MB_jœrN%7-B"=kujb^yj .8& yQJݤu!~񋅠܏В5ᅼ"O HoxU/Wk[o O\e±&R s~{d}+eezӋvo=zC_BjW&%qxFCDڨA6-)ܚwF_hƩ y:}dA$R$Ccsn>"M^ 9U;{e ̯fГj(@߆bR4/WGQwĆ-&tgZ73b7KMxǀYjycgK(`Q7CN~4ص%V ;dWO"1ma"b5K_l-}ɶTKSnHI0htHl4 x}a{/IOpΚu+`9TϿV#bPr K.^sDpxe\Z7tP̏.w~ȉs',] 5T9~si(ĉCZOnȊ V_hsCBRSy[dR4NmSDj(\X :eDVbX" #@_Yaa*~)D^]4?ьP󀧲B3ĩQ0Xx\pn_SYq5,(K4|fvǴ4(ұU׫ҢҞd9AV٬zbOQ%D٥4z|5c:.xEdH^o9"dGId~QQAzOqJ2P(?/y%Q1}^\!P+m~`/NnZ%u _j W讒4}Zu1`q|쎄V|)IHGCHnffxO)ɬµ،-+n3$L-s(E&ѯG z_}tTF,yduA-k *bؗpF~5λIb\oi$fA&>/usw^d'(D9%"Z8R"ܙWXvK(Qm+Ó2P?KhV8?N Jk9t+!Q@Ӭ1}HIdmKug8'D.S%XKG~'Gbϔ"=P#NcKrX8Di5?)" 5QK6_ۣP?ɗ.GD'dt@:D[_v&i)ШIA6'՚OSvͅ9:5A?gc$_s_Q|4q`rLG~7 =&{EÍdSڲZqwL%D#r`0܄ aMG; g-vPLRDSM&SP\2*h?k{(}Ɛg={^4Dw:sypWB C} |{CK1Unk$K?t9~ۿźQNXeC'5kfƹDajvȀ+,b4巖SS 2\L-ߓNfw+B\6UX~Ć b%GvԵZzL<:)S>1ϥLFU nj9z|2;|_-Ē0s dt w)M)W\wMO pŸaq63A?`hjIt\s?֢cٶ%<B**n _3g>ȅlmnL>d9Ժ riߢE@(ol?ʂomH[q}Ḟ7:ˈ]&nז,{-/}0T#) r -|aEoGwv뒎I^q;TTɢ ={e@Cm6ӊDp5s$JȢ!ZB<1bMtQM}T;])* 7Fef]Yh-~{ێ86b8$nfN4,+$Fp2xaN(ԬL""쏭=|/מݏ0'\(}&G2-xgҬzɹؔK,X*Q=큥 _絶f \=Fk}r[){43=Ҧɪ_RߔIKW6~n"zM;x ,!=Emɍxq~1!} e9(kasF|&iڭE{T L@Mwj,襈Q=LCG+,(/ML6M3C97KE` Rv9 ꑟ T9&;t}+KޕĴ-i(NKF{Z}GY:³ l |V.?= QMf~? QlmZ26ZI c1  R3T@{łygzsKx61<ǖ 'QO n@7A[`&E_/ pyzYaP,tG ?'N".{V#2kcT  ތ] qk.8_(b#TG)5"2f GJPIhdUJHف?~[i.krƳ PWfd*%w~vm/gˍTcM4%ba`c7Oo%bD2I9e bD\m|Q]_?eҞ&ocg/tewbƾM_I&"?ؼDn35!w4NEȈh7P̸BdT lHfWV)B/#*#R뽁x5tty+*r#7_ 砺Q;xo.G:9W:|ƶ.MUk[o1_;cv|jT |5B ihC'0pč90f"e˖J|_,*!ZJD gp; ĵo`fYQTC*IuvY[jށ{5܉oi>)+4liT&t{"G5= j/Ti!cR^e+B !2mДD4* ^0 o)D6_~PE*5x[vQ9\ћZ~hp+Low` *wakmRu!9B|HѬM!Ѱs\,=;* {e^_"9toֺOA` R6[DE1Q lEX82(*OIa-3TO=iލRY)?32!MLj8sb'%pA. -28rFqf0'lX6sjqa\óJ8ŷStD]3 Q[za 3뱝 4nP;3A:^Wr7~_CZ O,yU1KVk'GL0 ӕ |0ߝ)P:;i~uÛy;xO+T/n^ k6{AIVJeMp1+sϭfip[5w||+Bb3ZjV Ms ##qc]Dgrn*W E}1im,&e`W),$oݞӷSiF)+I+!Q7yǗ v斦JՂ|pM]T`B +"'ubPrrP÷PHBM4I+DZP;ŐZCR@ZOQ58'<Ԋ-L ,_3 dU¯vnbs4C&| 0 i( 5BMv/n'f+ʿ zi©Y(J,(~ Q݋G4U9-_ vUN%JWDfE-rjV@],B^T{}Rc<pms#9ʛRH*pO#ҽd]۴(7+l65ᚬR7-0#H,q\: *A?nvن@}D9%=A]']Ia6>TG)B ԇF$HF0.6<ƒ8>]IBXEU*y'82j#!VNӑrev(8_m5\W_;.+N^p+E ,O%?Rtœ (88 GVA~UzU098A/mGnk<7 w`Cvr!Hix4gHե_ݪLmK{:\l|gyH4>~YO enO)nRvqc{N4QQW1r ^K0mUB'6*LTdϞzg;~"{fIȫ /MJ8Hhg;euHS7ƹ]:TcuUX>\1\(J!'T?;YB*-?ц#8@7 2ӎIt7ME\eldZj{ÂVbcn0\2MؾW9Zq268GN72/|¸x22y_cC0 .*{bl<ш1k.0lv y@0 V +8f8)ɧr+UGq|Kvw\4| B9~NKA_1^ZbNmiP TXBZ8;R jC4LDI y"4GR94JAHu;SK4TowV sQfp1G+KtM2>X(YaU5`oqY6ɬ $MP s;TL)^dxc-/YcOCi~ތ[ܩAHaPF3&$l`/Jkn9,uE݊cpTb뙭\a]@ B֒_O3 ˮL?]c-Bw_cqD E&t2T#/snqPJ"exƵ7o+A'8K +SQ"E!XVG_ OBBcҵy(w!v[j5G9]+#Aؓ<~z_3ns=W27c*`l1~BR JlF5'Q͠h?^ (l- dmF&2"G ^QwL:bt3y*VëuC稾=1D<}I-KT{7M47b`tgt0< :r"uf@E牽Cu* E w=m*?n DȂҚ @* \/ҵ7򖥊>Bc3ľsrxB(99kv֟wFai td7]@5(NMI.+Fj+j́sזtLIb蘣Y~*Ι RFgZ)CrT[BokVٖNcg2V|chP(J8zot.0'k呑9:s$͝R@Y;iy)(kh93 eEl(w&Mf~}\%:Y/ d9p?Q3ǭ9T{A30 @=7.BZbrNl1 9{gurΉY%#uf m𓷰Ih-gby<ņ#D'-)Ko~j"{91KlJĒ&mdt+L`#11ERIZܥpL8_7B'yt3{Лdx;!жH\zO@)jAu՟p) µJTm_FPL21Y+qp?FEѿMCXSu D%j4g)DfqHa4% {KЉ&9;W L5ᆖZw?j-b0vzفȊ>pCc١(cԂ""Xn_}3x劅 Sir[yokg;*t1L6؋O=G7$nh#|`8F7\ʆ~eWahe.?q|IPZ~@L &̣[&ocl"!I*.qy/MRO bJʚ^O:!maH[=%=DG!`9 qXj}߇@hhp GgmLȁ1XHp 1*k|%YrtA{\;vK2)~ʜ_Ɗy3<Khqh:[oM`>oJU TF:ltz_en̸eK:j P7$Zvp!{$ˋ(u۲ W ]`u.# Q`26㏆a"n?!μ$fA9;qmbzATN.}1ȱz.\LǩX(˝Ii .8P !r!ѴAq1(DQ@CP4 Z9rtߤ"A_"Ki50Y̷qb^1yB`P3ubx|Bi۪^U~*w MaQuZY(7"AWi=(ܩvΣuuݦگ+K$A1VkߵF-]xǿcLMǩš"sI.q07s|g sq(qI[_4a\U] ͬ٥9 *{2̀b6"i (b<{<~$ASoI+p'´iE1 ac_'t$G9/[D?%=% @£X贕\']J,c| 0oڕܬE']<3&cާ;0c;RGw+I<|L~4g4Dfn 8W9H|/ZfIT([#OQ9!1?t_p3t%~%@E΃"4МW\|j_qGNPxXz3Q6 uڅpd:>s0[O7%1x=d9/KVekyR4s+K=5nZ&b'G lvMC-SS@vS&UO]ÿ|ũ I)W(35vk⣷EW'dDӏqL+H幄aޫd:wvﱗRU<etư}h-&Ph.vZMhG:)gXvЙh)5RHb+ʟK"*ݶDEPdZ5_|J3ӈ@Hubr9+(Wۧ+ K Wzt<$ `}oϔ}S/>ygڰӅt /^pM:L4-'!< e["򌃶W{&Sv` @(}65ɜOa ^Ѡ#d2lkU{sCE:HdXԮp?Ȳ5[ 8mWmxJ?x\4A;5 PzXLe~(]b/_l 1c ~$2Q߇2N$`=Ndcd!hc>vx4y򸱕~ hNMz++"=9D*OLҚM~nSErwS@*)8d2 r~ dDcennڵ&ne@MQ'*Ӎ]ti_HHݺb2΍.®#\yLA ˬ`tO5!dwץ\7>NfPY} oƬD7痫+ǐ53ay8.BCS7y5cd-+"H#mP?oBy2vv5ca')HAR R_O]Hg 0M‘G+rIXKaI[N?O3`!B?a.h J+oUkt^ۃQ مn208ZS ZU`"֝'<;C&YNd#4 &H|kXN}P<"!ٕ_}W}5rJ6>Dsӕ$}f3d@)eL~y"5|88}y^K, FTTr?2k"gvdrϫ/yB*|=+> *>ܙ&0Cns4"}# d 9Yٞv ~/x5`tvKU\{(G5ׇOR4^p5p|)V,ư95 < vqcH9 :LA;nx@#?&)E KSw'K<=F3IR#H_E ZfNc"koT҄iR_z:al#VPuATnk8ЄiwC`Hvy6%+/LPgIyq=֏POŁeH_d\k|i !tƩ%맪1yW.­M 9h{FYoѵmqZ,C~lHɖ3xvvR$Wh+JˣI۹/ 4e݉e#G("\_F1Ϸw?1Q !p7|5c4eUFsYYavc~ c-et{ya? 2[,Vכ-Z |RÁz;t$1Q4`& }L L< X40ގI$ohX(җAu]bN@aXNHl# yEŮO3PK^`4-h&ZNdaSD"#rhĚPph orٱ>_ܶhA5İ5+-LGmbd {eAT´weo|XQt[c:#B?9"Mȣ˜ΞJ֍!fUhh `<`yk~ʨq/?W}9mq~f},~$o3/DwN"p.nW "2%1(^yE7 A'7/L{"yeg.MhMc}>G<2 J 7~'i2ywV.8k@pw|  N~HR (V{&oWneMm|c$lbe[=,ɩƈ)h.:8>l!Jm ʳ,4)ƃR*U}oS*;Z $+V?ɪkr9 WwN'L.j>Af&5Xy:rtQ)/*s72az慄#+gH$!aktOڟNTex/BE٤+ʢ~!bc$-n!0k\&P!K+"DUE&`Ж̩[0,4L8ȭEeƥVAZ>˯u+(H 9$ V(F5Xe0cҞ0]W%$+ÎVh(_(7kWPgܷ29ḃ99B;4#K68Iy*W yDrhBg]^F0W|5_SJPe+4 Ql2RF|Q#=woF'eT"eBbjJ'85 sddb[Q{c +@]3äfy KyovM_=ڽٴJtr<}tЯX򰅛N2E،:*FyQNϪXL=%9 e8@~ajIMlmku"p.قuq !$zQOikx1Dֶ< UgOUdeo*˥A5(@م85WTҐ Z"&4Ui8?}K` I ǴݤKI뾍!N_ XYaR Ti zXWͷ ߚl;JcDMXKRpF#&5OZC]QrG& Yfds4ۈ^Y%^N uNWsÒ$ON֬)`wb؀5x1;JDj9zCǴyR/U'# :56*Ƚww*՘G v∊KyQ+S7dMsܚF%9|Rٟ6Հh_)ySSU3H'9^*8!hܻe4ƾGӦGRXY ZNZ.&!!ȢaiotJ{r!d>RZXGlWT;o^ُ,d3rnǬ:͏˔^zZUf9ΕEenx{k .^P{Jn-0V (:^Mvy):QIeFח R뉮g ~ c?aԂ$MEŊ4jP*¯u4;[!m i̮jdK5: )OWxD&~0:,[KJ S4G1m icUr#K1Xzal]kB3O?f{cr+&FƙvϫenJ8FczDZlvbcn$jCSYE;^6Zl֌@yMJ1gM\?m$Pq>"#Ᵽpʘ,^1n$fº&;!:2ǒ $mln%ޅ\7i!xt ߲?9Un#xi'*7OWh.,eeQ`*,8$ePynP|UjF]n!в愸RXSRIDV-WlCֵZR4- MՏ頽lf8pKW,}ND yXS4fƷUDWt").A/ՙk݊N;k"Mhb{?]6/ 8e_B^2ٶ?,%.WfJEt=凌"_*\m&POM!`زD#|\yb9EfZ>ۭX0[1^0I#ioEN6Bz'!A.G!ߕC渟7cXUOA!74T,%>374ոp˭w\fg8*zx-{ 7$] qF# ӘoaOeW|PCYF[OH4#rm5V-wn 9p(ޓ:oDZ\td7%&12@0uK*p][1i&͑I卾xb9ѻvI(i/mS#صWD79"LhR/h[0=a-% $~zחljwLhM ^g,|ǥm:_J}JX(Q&(J>czFź*rnRfI|$ڠlvj+ly8!-dgGCϥhfL> hȂ9!\i׽<φX.ؿ9B.e: uc1L8ywsZ"|,4R8g=c(χVZ)Y%_?r5zPa O8R^~9`oh%lp[M"Sz@ ;\p\JSшPll%4O]1Ft>h>pRd5;Y9;W+'gNX\~J 5$,uI y2ˉ%y+ijF X`TQg(2V[N!ϽevOQfEKH2"h4E#J2iA|Fu̒zski5)˜/ [xE7≯ۼNa5 csd"ןSb'aYj~-3хC/(>Q%N.*!hhq`7PaneY8c(.r$ zXTЫ5 x/?(-ΈVq ŸHTXRFj][P %P\v9(G7+;Gd\V¸aLܝ$YarRK}'ׁ@9v-)38ٺ[rwSVvZA0^RD7،*еE1>:=MAelHٺ(!Fvsg`T Շ`ϊ4nxqs UkGFYVC 8.3burf5VfŹAuQ[eTcc?dyUFv1N 3z٠ QwʖwZqe4vuʪd~S6s00wt(@)fGf,GVS̍w.;Qfճ'6Be- {p(Aq81 Ôٖ>W05)|:.ԧ) E" YZ