í«îÛrpminspect-1.5-1.el8Ž­è$>èì#<ði\ D‚t'udrr+(Î>ÿÿÿÐŽ­è=ß?ß dèé êì í 7î4ï8ñ`òdósö‚÷«ø ºüÌýõþû 0  F  \  ˆ    < h Ÿ Öô  @|õ(%8, 9T : * GÙ HÙD IÙp XÙ|YÙ„\Ù˜ ]ÙÄ ^ÚK bÚÿdÜOeÜTfÜWlÜYtÜt uÜ  vÜÌwÞ xÞ< yÞh “Þ�”Þ”ÆÞ¾äÞÄåßCrpminspect1.51.el8Build deviation compliance toolBuild deviation and compliance tool. This program runs a number of tests against one or two builds of source RPM files. The built artifacts are inspected and compared to report changes and validate policy compliance against the defined parameters.`Œ-ðbuildhw-x86-06.iad2.fedoraproject.org]ðFedora ProjectFedora ProjectGPLv3+ and LGPLv2+ and ASL 2.0 and CC-BYFedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64t -:L‰Ms�íAíAí¡ÿAí�¤�¤�¤Aí�¤�¤`Œ-ð`Œ-ð`Œ-ð`Œ-ð`Œ-ð`Œ)œ`Œ)œ`Œ)œ`Œ-ð`Œ)œ`Œ)œ9fa47034788f1e938141163d79ac6cc9d85435da5da07d3989fce19a6f4f242f3dc860e35699a833c22cecbc874b3932e6c8c1cd4f559d16a43927b53b4ea56daa438765d513bbd14b5985179c6bf387875e735d03ec4767b6332e190e416009794e2c917d8557d88cc70eec81f336fb62e02432cfc1d1fca051b5f98dd753163972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb3698698a8e1640254eb99377ea7b606887d41ef579ca0ac2631cad9ce40c14fc837c5../../../../usr/bin/rpminspect€rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.5-1.el8.src.rpmÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrpminspectrpminspect(x86-64)@@@@@@@@@    @libc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.27)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.8)(64bit)librpm.so.8()(64bit)librpminspect(x86-64)librpminspect.so.0()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rtld(GNU_HASH)1.5-1.el83.0.4-14.6.0-14.0-15.2-14.14.3`‹ñ@`\{@`7‘@`7‘@`UÀ_–º@_–º@_–º@_–º@_[fÀDavid Cantrell - 1.5-1David Cantrell - 1.4-1David Cantrell - 1.3.1-1David Cantrell - 1.3-2Fedora Release Engineering David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.1-1- Begin work on version 1.5 - Use llabs() instead of labs() in the filesize inspection - Improve has invalid execstack flags reporting - Use long unsigned int to report size changes in patches - Fix some errors in the changedfiles inspection - Update the changedfiles test cases - Check DT_SONAME in is_elf_shared_library() - Skip debuginfo and debugsource files in abidiff - Make sure abidiff test cases add a DT_SONAME to the test lib - Report INFO level for patches findings by default - Python black fixes in test/test_abidiff.py - Update the test/test_patches.py cases for patches changes - Generate regular changelog in utils/srpm.h - Skip branches without targets in submit-koji-builds.sh - Fedora and CentOS systems in ci need diffstat - opensuse-leap CI job requires diffstat - Fix the Debian CI jobs in GitHub Actions - Fix and enable the Ubuntu extra-ci job in GitHub Actions - Use pip instead of pip3 for the Ubuntu command - Use apt-get -y install in - Enable the opensuse-tumbleweed GHA job again - Make sure the Gentoo GHA job has diffstat - Get the Arch Linux GHA job working again - Use ubuntu:latest for the ubuntu GHA image - Simplify the utils/determine-os.sh script - Update license table in README.md - Allow any number of builds specified for fetch only mode - Handle old or broken versions of libmagic in changedfiles - Update GitHub Action status badges in README.md - Fix $(OS) check in the Makefile - Fix the ubuntu GitHub Actions extra-ci job - Make sure the centos8 job has git available before cloning - Change strappend() to work as a variadic function - Use json_tokener_parse_ex() to get better error reporting - Fix reading of the javabytecode block in the config file - Catch missing/losing -fPIC correctly on .a ELF objects (#352) - Refactor elf_archive_tests() and its helper functions - Followup fix for find_no_pic, find_pic, and find_all - Install cpp-coveralls using pacman on Arch Linux - Install cpp-coveralls using pip on Arch Linux - Install cpp-coveralls in pre.sh on Arch Linux - Install required Python modules in pre.sh on Arch Linux - Do not upgrade pip on Arch Linux, go back to using pip.txt - Drop DEBUG_PRINT from source generated by pic_bits.sh - Do not run apt-get update as a second time on Debians systems - The lost PIC tests need to invoke gcc with -fno-PIC - Update the OpenSUSE Tumbleweed files, but disable it anyway - Define inspection_ignores in struct rpminspect - Clean up the config file section reading code - Add add_ignore() to init.c - Fix fetch only mode download directory - Stub out libcurl download progress callback function - Perform symbolic owner and group matching in ownership (#364) - Restrict download_progress() to systems with CURLOPT_XFERINFOFUNCTION - Read per-inspection ignore lists from the config file. - Add commented out per-inspection ignore blocks - Implement per-inspection path ignore support (#351) - Report annocheck failures correctly in librpminspect. - Note all regular expression settings use regex(7) syntax - Allow size_threshold: info in the config file (#261) - Check ignore list in files for path prefixes to ignore (#360) - Support a list of expected empty RPMs in the config file (#355) - Call mparse_reset() before mparse_readfd() - Do not crash with the -c option specifies a non-existent file - Update TODO list - Make sure brp-compress is disabled in test_manpage.py - Require/Recommend /usr/bin/annocheck - Note size_threshold can be the keyword info - Ensure ctxt->lastError.message is not NULL before strdup (#382) - Handle corrupt compressed files in changedfiles (#382) - Disable debugging output for the ignore lists in init.c - Drop debugging output in the xml inspection - Remove what working directories we can - Correctly find icons for desktop files in subpackages (#367) - Followup to the Icon= check in the desktop inspection (#367) - BuildRequires libmandoc-devel >= 1.14.5 - Manually install mandoc on centos7 for now- Start work on the 1.4 release - Trim git commit summary prefix from changelog lines - Report the program version number in the results (#309) - Handle compressed but otherwise empty man pages (#308) - Flake8 fixes for test_manpage.py - s/self.rpm/self.after_rpm/ in two test_manpage.py tests - Disable broken ELF heurisitic and size limit in libclamav - Modify dump_cfg() to write valid YAML to stdout (#306) - Migrate more code off hsearch and to uthash - Replace hsearch() with uthash in the kmod inspection - Update TEST_METADATA status in TODO and MISSING - Restrict style checks to specific directories - Replace hsearch() with uthash in the abidiff inspection - Change tsearch/twalk use to uthash - Correct misuse of entry with hentry variables (#321) - Normalize copyright boilerplates in source files - Use hentry->key over hentry->value in pathmigration - Adjust lib/meson.build for Fedora rawhide - Drop gate.yml and begin non-x86_64 arches in ci.yml - Add armv7, aarch64, and s390x to the other_arches job - Change init.c error reporting over to err/warn functions - Modify file triggers and matrix use in ci.yml - Split 32-bit osdeps out to post.sh scripts in osdeps/ - Split style.yml in to shellcheck.yml and python.yml - Rewrite extra-ci.yml to use the matrix strategy method for GHA - Move the emulated CI jobs to extra-ci.yml - s/pkg/pki/ for the centos jobs - Debian and Ubuntu fixes for CI - Python pip on Debian is called pip - Try to fix just debian:stable - Enable debian:testing in extra-ci.yml - Enable centos8 in extra-ci.yml again - Enable centos7 in extra-ci.yml again - Enable opensuse-leap and gentoo in extra-ci.yml again - Run each test script individually on emulated targets - Try a different syntax for the emulated matrix jobs - Install s390 glibc headers on s390x fedora systems - Detect 32-bit and musl presence in test_elf.py - Skip lost -fPIC tests if gcc lacks -m32 support - Add stretch and buster to the emulated targets list - Drop Debian buster from the emulated targets - Install gcc-multilib only on Debian x86_64 and s390x systems - libc-dev:i386 -> libc6-dev:i386 - Disable Debian targets in extra-ci temporarily - s/AUR/git/g in osdeps/arch/post.sh - In read_cfgfile(), keep track of block depth correctly (#329) - A few more yaml parsing fixes for block vs group - Recommend or Require libabigail >= 1.8.2 - Finish normalizing all the error reporting statements - Advertise of rpminspect-report in the contrib README. - Report libclamav version and CVD versions (#258) - Ensure first argument of warn(3) is a format string. - Enable werror=true and warning_level=3 in default_options - Update the translation template file - Get rid of invalid free() in get_product_release() - Add inspection_id() to librpminspect - Update the po/rpminspect.pot template - Improve mkannounce.sh to handle stable and devel releases- Remove duplicate elf_end() call in init_elf_data() (#303) - Update translation template- Small change to the way Koji builds are submitted - Move the master branch to version 1.3 - Drop DEBUG_PRINT in process_table() - Add doc/git.md to explain source control conventions - Change Suggests to Recommends in the spec file - Add kmidiff and politics to the inspections section of generic.yaml - Update TODO list - Use warn() for non-fatal errors in mkdirp() - Require libabigail >= 1.8 in rpminspect.spec.in - Enable multiple --headers-dir1 and --headers-dir2 args in abidiff - Swap out some more fprintf()/fflush() reporting with warn() - #include in peers.c and rmtree.c - On fedora-rawhide CI jobs, install gcc-c++ and gcc-plugin-devel - Disable fedora-rawhide GitHub Action for now - Correctly handle the -w option on rpminspect(1) (#256) - Drop the relative path handling for the -w option - Build and install rc from source on opensuse-leap - Update doc/git.md on how to track upstream - Add .github/ and osdeps/ directories to extra-ci.yml - Build and install rc from source on opensuse-tumbleweed - Adjust curl(1) command line used for rc in opensuse CI jobs - Trying to figure out why the opensuse jobs produce curl errors - Another slight change to post.sh for the opensuse-leap CI job - s/PowerTools/powertools/g in the centos8 PKG_CMD definition - The output of html2text on opensuse systems is different - Rename HEADER_MAN to HEADER_MANPAGE (#264) - Add inspection_header_to_desc() to librpminspect (#264) - Add xunit output format support (#264) - Support the new output function call syntax (#264) - Move init_elf_data() to readelf.c, move data to struct rpminspect - Update inspect_elf.c unit tests for librpminspect changes - Remove check_ipv6() from inspect_elf.c - Create the badfuncs inspection - Update po/ translation files. - Add badfuncs test cases - Forgot to commit test_badfuncs.py. - Fix flake8 and black errors with test_badfuncs.py - Skip debug packages in filesize, display changes correctly - Fix spurious execstack failure - Fix YAML config file reading for BLOCK_INSPECTIONS - Expand dump_config() to cover all config file settings - Minor spelling fixes in strfuncs.c and making code explicit - Simplify list_to_string() so it handles 1-elements lists right - Add abspath() to canonicalize path strings - In the doc inspection, only show diff(1) output for text files (#254) - Add strxmlescape() to strfuncs.c in librpminspect (#264) - Output the system-out xunit portion as CDATA (#264) - Slightly change how strxmlescape() works - Add the runpath inspection to librpminspect - Rename test/data/lto.c to test/data/mathlib.c - Handle the empty string case in abspath() - Expand dump_cfg() to show runpath settings - Fix block handling problems in the YAML config reader - Note single builds cannot be rebases in is_rebase() - Hook up the driver for the runpath inspection - Install patchelf for tests on fedora and centos - Update TODO and README.md files - Pass -D to rpminspect in the test suite - Add integration tests for the runpath inspection - Python flake8 and black fixes in test_runpath.py - Fixes for GitHub Actions on Debian and Ubuntu - Disable Rust support in pip modules, more extra-ci fixes - Update pip and setuptools on debian and ubuntu CI jobs - Make sure pip is updated on debian, centos7, and centos8 - Fixes for extra-ci on arch, centos7, centos8, and debian - Adjust docker image names for opensuse and arch - Add Gentoo Linux to the Extra CI set - extra-ci.yml typo fix for the gentoo job - Use gentoo/stage3 as the container for the gentoo CI job - Disable opensuse-tumbleweed and archlinux CI jobs - Make sure util/determine-os.sh picks up Gentoo Linux - In the runpath inspection, fail if DT_RPATH and DT_RUNPATH exist - Use pip install for PIP_CMD on gentoo - Set PIP_CMD to pip install -user for gentoo - Handle a NULL from list_to_string() in abspath() - Do not match path prefixes in the runpath inspection - Python black fixes for test_runpath.py - Stop doing an emerge --sync on the gentoo CI job - Replace emerge --sync with a manual portage sync - Use emerge-webrsync to update portage on gentoo - Add uthash and move the file matching code to it. - Typo fix in README.md - Fix some memory leaks found by valgrind - Create mkannounce.sh to help make release announcements easier - shellcheck fixes for mkannounce.sh- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- Formatting fixes in Makefile help output - Begin config file restructuring starting with rpminspect-data-generic - Support multiple configuration files. - Docs work in progress. - Only fail the annocheck inspection for RESULT_VERIFY. - Read debuginfo if available when running the 'annocheck' inspection. - Add the '%files' inspection to librpminspect - Add __attribute__((__sentinel__)) to the run_cmd() prototype - Add test suite cases for the '%files' inspection. - Added the 'types' inspection to compare MIME types between builds. - Update TODO file - Update the MISSING file - s/rpminspect.yaml/generic.yaml/ in the Makefile and README - Skip debuginfo and debugsource packages in the 'types' inspection - Add test_types.py to the test suite - Note the 'types' inspection generic.yaml - Modify add_entry() in init.c to skip duplicate entries - Start GitHub Action workflow files for rpminspect. - Install meson in ci-ubuntu.yml - Change 'nls' option in meson_options.txt to a boolean - Install gettext for ci-ubuntu - Add more build dependencies to ci-ubuntu.yml - Drop the 'method' parameter from dependency() lines in meson.build - Split xmlrpc libs to separate dependency() lines in meson.build - More xmlrpc updates for meson.build and lib/meson.build - Try to support systems with xmlrpc-c without the pkgconfig file. - Changes to build on Ubuntu, specifically the GitHub Actions system - Syntax error in ci-ubuntu.yml - Add ci-fedora.yml for GitHub Action CI on Fedora - Fix errors in ci-fedora.yml - Put all of the ci-ubuntu.yml steps in ci-ubuntu.yml - Remove install-libmandoc.sh and ubuntu-pkgs.sh helper scripts. - Install python3-setuptools in ci-ubuntu.yml - Install rpm-build in ci-fedora.yml - Install libxmlrpc-core-c3-dev in ci-ubuntu.yml - Disable ci-ubuntu.yml for now, enable code coverage in ci-fedora.yml - Remove Travis-CI files. - coverage fixes for ci-fedora.yml - Install git in ci-fedora.yml - Enable manual dispatching of the CI on Fedora tests - Remove actionspanel thing for GitHub Actions, drop Coveralls block - Comment the ci-fedora-yaml file - Fix the 'elf' inspection and test_elf.py on Ubuntu - Enable the ci-ubuntu GitHub Action again - Check all return values of getcwd() - Ignore installed Python modules with pip3 in ci-ubuntu.yml - Build 'execstack' test program with -Wl,-z,lazy - Add ci-centos8.yml to enable CI on CentOS 8 as a GitHub Action - s/centos8:latest/centos8/g - Trying 'container: centos:centos8' - Drop 'sudo' from ci-centos8.yml - Rename README to README.md - Enable GitHub Action for CI on CentOS 7 - Drop -I from the pip install line in ci-centos7.yml - Use the 'make instreqs' target for install test suite deps. - Add back 'dnf -y install 'dnf-command(builddep)'' to ci-fedora.yml - Nope, that doesn't do it. Just install make in ci-fedora.yml first - More 'make instreqs' fixes. - s/scripts/utils/g in the Makefile - s/TOPDIR/topdir/g in the Makefile - Install make in ci-centos7.yml - Move REQS and PIP lists out of the Makefile to files in osdep/ - '^$$' -> '^$' - Slightly different sourcing of the osdep/ files - Set OS using := in the Makefile - Make the reqs.txt files in osdep/ contain all deps - linux-headers -> linux-headers-$(uname -r) for Ubuntu - Remove html401-dtds from osdep/centos8/reqs.txt - Use `` instead of $() since this list goes through make(1) - Does $(shell uname -r) work in this case? - More osdep/ work and simplification. - Rename 'osdep' to 'osdeps' - meson patches for opensuse - Move mandoc installation to post.sh in osdep/ubuntu - Add GitHub Action for CI on OpenSUSE - opensuse:latest -> opensuse/leap:latest - Install tar in ci-opensuse.yml - Install gzip in ci-opensuse.yml - More fixes for ci-opensuse.yml - Small fixes to determine-os.sh - ci: Add Python linting jobs - ShellCheck fixes for the regress/ scripts - ci: Add ShellCheck to lint shell scripts - Adjust how the Makefile reports unknown operating system. - Just check $ID in determine-os.sh for opensuse - Use pip for PIP_CMD on opensuse-leap - Update the centos images before doing anything else. - Install curl in opensuse-leap - Get 'rc' from Fedora on opensuse and copy it to /usr/local - Install kernel-default-devel for opensuse CI - Move the 'uses' part of the centos CI jobs to the first step - ShellCheck fixes for the utils/ scripts. - Some flake8 fixes in test/, using yapf - Combine all of the GitHub Actions CI runs in to ci.yml - Manually install rpmfluff on CentOS 7; pip is failing here - Use rpmfluff-0.5.7 explicitly for centos7 - Use rpmfluff-0.5.6 on centos7 - OK, let's try rpmfluff-0.5 for centos7 - Last try, rpmfluff-0.5.4.1 for centos7 - Back to trying to manually install rpmfluff for centos7 - Style the Python code with Black - Add the Black formatting commit to blame revision ignore list - OK, just copy rpmfluff.py in place - Make sure to manually install rpmfluff-0.5.7.1 for centos7 - Don't assume we have a header or even a list of files (#161) - python: flake8: drop * imports - python: flake8: wrap long lines to less than 100 characters - python: flake8: drop unused imports - python: flake8: remove unused local variables - python: flake8: add PEP8 whitespace - python: flake8: mark in-line bash scripts as raw strings - python: rename several duplicate test cases - ci: merge style workflows - Adjust rpminspect.spec.in for file moves and default changes. - Return the reallybadword to the metadata tests - Adjust test_metadata.LosingVendorCompareKojiBuild to expect VERIFY - The shared libmandoc check should not look for a static libmandoc - Update the AUTHORS file - Rename ipv6_blacklist to forbidden_ipv6_functions - Rename stat-whitelist to fileinfo - Rename 'caps_whitelist' to 'caps' and drop the use of 'whitelist' - Rename abi-checking-whitelist/ to abi/ in /usr/share/rpminspect - Rename 'version-whitelist/' to 'rebaseable/' in /usr/share/rpminspect - Rename "political-whitelist/" to "politics/" in /usr/share/rpminspect - Drop unnecessary method re-definitions in base test classes - Use super() rather than explicitly calling the parent class - Call configFile() on object instance rather than using the parent class - Upload coverage report to codecov - Improve the error reporting for test result checking - Convert to AUTHORS.md file, add Makefile target to generate it. - Introduce the 'movedfiles' inspection and a lot of other fixes (#155) - AUTHORS -> AUTHORS.md in rpminspect.spec.in - Add basic tests for the filesize inspection - Multiply the file size difference before dividing - Update README.md - Update README.md (more Markdown changes) - Update POTFILES and rpminspect.pot - chmod 0755 test_filesize.py - tests: optionally check the result message - tests: add further filesize tests for shrinking files - inspect_filesize: drop extra - from the message about file shrinkage - Enable 'permissions' inspect for single build analysis. - Add 24 new test cases to cover the 'permissions' inspection. - chmod 0755 test_permissions.py - Make sure all RESULT_INFO results are set to NOT_WAIVABLE - Fix some specific problems with the 'permissions' inspection. - Pass "-r GENERIC" to rpminspect in the TestCompareKoji class - Add 12 more permissions test cases for setuid file checks - Update TODO list - Update test_symlink.py tests for new waiver_auth values - Add a fedora-rawhide job and renamed 'fedora' to fedora-stable - Update the rpminspect.pot translation template - Relicense librpminspect (lib/ and include/) as LGPL-3.0-or-later - Ignore .tox/ subdirectory - License the rpminspect-data-generic subpackage as CC-BY-4.0 - Add a copy of the Apache 2.0 license for the 5 files in librpminspect - Update the License tag in the spec file and the %license lines - Add debian-testing as a CI workflow; add missing osdeps files. - Update determine-os.sh to handle Fedora stable and rawhide - Drop the use of 'sudo' in ci.yml - sudo required for Ubuntu CI job, install make for debian-testing - See what $ID is set to in determine-os.sh - Workaround a bug in meson 0.55.0 for Fedora CI jobs - Add 'debian' catch to utils/determine-os.sh - Rename 'osdeps/debian-testing/' to 'osdeps/debian/' - Add opensuse-tumbleweed to the CI job list - Add libmagic-dev to osdeps/debian/reqs.txt - Fix memory corruption in init_rpminspect - Add comment clarifying the License tag in the spec file. - If check_results() raises AssertionError, dump the JSON output - Fix test_changelog.py test cases that are failing. - Fix UnbalancedChangeLogEditCompareKoji - Handle rpm versions with x.y.z.w version numbers in test_symlinks.py - Fix mandoc build problems in opensuse-tumbleweed CI job - Install gcovr using pip on opensuse-tumbleweed - Handle systems that lack pkg-config files for libelf and libcap - Add archlinux CI job in GitHub Actions - Forgot --noconfirm on the 'pacman -Syu' line. - Add missing DESC_MOVEDFILES block to inspection_desc() - More minor fixes to the Arch Linux CI job. - Install gcovr with pip for the Arch Linux CI job. - Support building on systems that lack - Add detection for to meson.build - Ensure an int is used for snprintf() in inspect_manpage_path() - WIP: 'abidiff' inspection - Only report permissions change if there is a mode_diff (#181) - Fix -Werror failures in inspect_abidiff.c - Add sl_run_cmd() to librpminspect. - Add get_arches() to librpminspect - WIP: abidiff inspection - Some minor edits to the README.md file - More minor updates to the README.md file - Replace get_arches() with init_arches() - Add test_addedfiles.py to the integration test suite - Expand find_one_peer() to soft match versioned ELF shared libraries - Add the beginnings of the 'abidiff' inspection code. - Report out findings in the abidiff inspection. - Update the test suite to cover rpmfluff 0.6 - libmandoc configure workaround needed on Debian too - shellcheck fixes for the scripts in utils/ - Add abi.c, the code that reads in the ABI compat level files (#144) - Be sure to close the open file before exiting init_fileinfo() - Python formatting cleanups - Add --diff to the Python format checker - Add new setting to abidiff section of the config file - Add -n/--no-rebase command line option to disable rebase detection - Store size_threshold as a long int rather than a char * - Check abidiff(1) results against the ABI compat level definitions (#144) - Add 'apt-get -y install libgcc-s1:i386' to pre.sh for Debian - Add integration test cases for the abidiff inspection (#144) - Add 'dpkg --configure -a' to pre.sh for debian - Install libterm-readline-perl-perl for debian CI - Install libabigail for Fedora and CentOS CI jobs - libgcc-s1:i386 -> lib32gcc-s1 for debian CI - Install libabigail for opensuse-leap, opensuse-tumbleweed, and arch CI - Install libabigail for debian and ubuntu CI - Install libabigail-dev for debian and ubuntu, not libabigail - Install libabigail-tools on opensuse-leap and opensuse-tumbleweed - Install libabigail-git for arch linux CI - Move free_argv_table() to runcmd.c - Install 'abigail-tools' for debian-testing and ubuntu CI - Install libabigail using the Arch User Repo on arch CI - Explain the osdeps/ subdirectory. - No, just clone libabigail from git and build it manually on arch - Add beginning of kmidiff inspection, put ABI functions in abi.c - Read list of possible kernel executable filenames from the config file. - Drop abidiff_ and kmidiff_ from extra_args; add kernel_filenames - Just call the abidiff and kmidiff extra args settings "extra_args" - Define 'kmi_ignore_pattern' in the config file. - Handle builds that lack all debuginfo packages (#186) - Do not assume peer->after_hdr exists (#187) - Store copy of original pointer in strsplit() to free at the end. - Use mmap() and strsplit() in read_file() rather than a getline() loop - Fix memory leaks in abi.c functions - open() failure in readfile() is not fatal, just return NULL - Add utils/gate.sh - Have check_abi() pass back the ABI compat level found - Update descriptions for abidiff and kmidiff inspections - Hook up the kmidiff inspection. - Use read_file() in init_fileinfo() and init_caps() - Use read_file() in validate_desktop_contents() - Use read_file() in disttag_driver() - Adjust how init_fileinfo() and init_caps() iterate over file contents - Fix 'tox -e format' style problems found. - Avoid comparing elf files that are not shared libraries - Support --kmi-whitelist in the kmidiff inspection - Trim worksubdir from paths in reported abidiff and kmidiff commands - Remove the kmi_ignore_pattern setting for the config file. - Create include/queue.h to replace the _COMPAT_QUEUE blocks everywhere - Update AUTHORS.md - Report metadata changes for rebased packages as INFO - Do not fail the specname inspection when given a non-SRPM - For passing upstream inspections, do not report a remedy string. - Do not fail the lostpayload inspections if it only gives INFO messages - Clarify unapproved license message in the license inspection - Use FOPEN_MAX for nopenfd parameter in nftw() calls - Make sure to close open file descriptors from get_elf() calls. - Include 'src' architecture in the rpminspect runs in gate.sh - Make sure kmidiff is listed in the spec file - TODO updates - Update rpminspect.pot and POTFILES for translations 1.5-1.el81.5-1.el8rpminspect.build-idae933f51584b90494b6a972cf4ee019aca0f60bcrpminspectAUTHORS.mdREADME.mdTODOrpminspectCOPYINGrpminspect.1.gz/usr/bin//usr/lib//usr/lib/.build-id//usr/lib/.build-id/ae//usr/share/doc//usr/share/doc/rpminspect//usr/share/licenses//usr/share/licenses/rpminspect//usr/share/man/man1/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectiondrpmxz2x86_64-redhat-linux-gnuELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=ae933f51584b90494b6a972cf4ee019aca0f60bc, strippeddirectoryASCII texttroff or preprocessor input, UTF-8 Unicode text (gzip compressed data, max compression, from Unix) RRRRRRR RRR https://bugz.fedoraproject.org/rpminspectutf-8133afa09d98c95f21880a4435010c99abb240977b53e22ca1f21751db9b3c69c?ÿÿü0ý7zXZ áû ¡!#¸‡,à�ó?ç]"ÌkÀ%]È7_Páf†úê&v¦jDPÞÓ-&ÊñØ‚©{Ò…ô¥rë~›Ô²?3à C«Œ5Q`+…™^œ…Æ�$?\-°ljfãjŸÍq7Bš©ð_Ò°—Ñ�GÕgV¾0�§yB`™(·Ä½u«Ý_«Â‰m[ʲ$“içu÷(3o )§§G²¼¯ú8p¦Ó*�~$ÅÇš,Ùàr*/Nˆ¸ðà �¯þþ𤓞ŠM/Ÿ YU�ZVŠ‹5‘YÀp�\GD.+ôdÃtÌý €êîe4(ˆDàâúÆ,›æÀÒD¾([H±Ã#ST�n úÙÝÎ6åòNã¾çlDS§q}–³S—›jçjn•�¹m³Ct~»Ï—eÜš„”Öĵ,I2M¯äÂÒcöÝwðú`¶9OÃ'5V*¤Ýê¨<¸íõ4&J¾Ö²žTÎB¬£Æ‡¿M�yí/À M4÷ÝX$˜´g!T[ '<©%½¯=îÐËÌ1&ùüƒ7ë¨Â qøô}Ef%íF¸P}ÎY)ÎqFVŽ?Z±�Õ½8¯«yZ“þ?Aú¨€¡‰Çx÷5®äËVò˜×!ÀýB²¬¯— ß0ò›~iàA�Œ ²àŽŠþ& iÿ5VÛŸlüØgý> ™aýJ£ñ+çè t-åÏkñí CmþˆÃ,w–zÂO²g¢Ì®fñ‘UhÆsiÏ%C%éywm\ó£'=tÃãŒc䛬1£!’¨.ÞCV£>(z{‘ Pràð ³c¼9—4bÅ ¤åÒЪ¬[Cî…‹VzA”‹úµd¶zíÌK²Iʮi“Œa²¦ò÷ºjŸË’Ô!Z_ë˜?�¨ážŒÌ1áäýñÐ1_(æóféÍk]ë6Œ�„ {ï ´OÝ�Ç ì\­T*K.gˆ€Pè°Uù3"®nüfèe–›Ô c#Ÿü_\ôËÈ“v¨NñÓhŸä¹SEO¼3FÉCº ¹üìݱ»I4y›†ÒÚ2Œb}ï¬À®¢Û—=�;¦-gê~ãôWŸFº¸Sp)xÍ…Ö�ŠÂ^bäŒåhÎ0*V¦ìàÂ+hVqZÿ(Ûˆ:k*ú&l $Ì�=ófx¼ðïMô¢Ó­*4öæ4¼é b¦’DðÚQ©rP§ €¨­×(·,ó*hI¦´ °_ZŸÅÄðW>Že»"ËçRÆÑY/Ïѽšþ�›`<¡ÊȾQ …1TÚ¤ÉDœ¼év£�Þõí’�%ÛSŸÙޤ*ô‘j,?NÙ õÕ”µÄÞUÈfog¦Er�hºß¬rºÒ×A«ê%>šÍão´<ƒÝìþ2 tüëͦ•Ù°Éîòû°¼±¾æÉe:ˆSÆ W9Ý"�0•;cún+Š)¢$“ƒWç©*"q‹BÁz–:L(˲Ø%dó_ËXMºL¡˜xŠÖ¨BZ;é‹„—Ñ÷ºéËô½¬²@øžìÅWR«Ëð�É;vï¯Ó)<Û²‰ø¹ˆ €zAˆe)Ö6˜'1…‚c$ý¾õ-•û¨Õõ�Ë“%uKS›+8A¸§X‚Ý둯ÛÙGÚZæ¢?E¦Å½ÚµoêvX_ÿ SÙqâaHÍV—tÎÐØk*J¼>bÏ–ƒ¢+ö éäÔºm÷‡8�^æ]ÖHþ‚!ñBè¤ùçü¾0Ë]† È"îöÜ’d Ì:ß kAI3‹û(Î d?‚½ Q¡ëæ‘“¡‡�1”ãGçÖÍÇn9µ?NSF•eÞúåsO Gè)ŠØ«_¦dÍC%‹]3jœB§Â›<üȼ´«Ž÷Ñ/\ŽtW Ct‘ù�åia[OD sʆz÷±¿>ÉÍŽºVa£$‹Ý*ŠàN[~\^Á+fÝmôS›.Ÿ5çËnï ×·è´„Œ´Nî­Ôàô„"êm²=¡Ø®õf?¼÷hÏË£5 ¶Q1í;pêÙ>Gö;£Žk�öTnÓ‚a/(ž.T‚Öç…§kŽA¸µ€AT¡Ü•ÐcSíÍsí@Eü^—þÒÛ½UiŽÌ§¿§ælu§Ž÷;g Ùª¢VÁ™þ.:…!}@7L¨<—û!•†Çp5 d¤Žž¼Øˆó�`ÜžœQ6ÐK§øðlü͵í–UNÊüG!�ý�œiƒþ…&oÙÏ2óÚ[M'vÉ4<{¹²„ZÍF>Å4>ÕÕ݈”iÁbÛ²µíÚ×k=ñ˜"d¼¢Þý&ö1³™ [?ý߃òЉ}(mE�{¾ôW¨Õ*† �R»ªÖ:Õ9ȉ5§(gæ¬ÝLiâ$Ø\o®ùÕ~á{nÆgïÍ©à×¼·¨ÎK°¯R+%£„…²WÑ-×ÛÉæZ ÅáÊÐWICµ3¬Œy7ÕÝ\Îú•1 ´L¬i,y�j“ž[~cSâqë—2éÓ»Ýoh-¬#ÐÞ†SKöÑõ"Ó¥™vf5‚¨ôD4SXQXÉ68 ‘¤1BrNÀìÙ¦²Õˆ/dÉŠi6C¢³t£C0Q˜È¸µãÍf¤9ÓŸ]ž¸5(ûÙÌôìÊ=ˆjÝ!3��ƒ¬,Ž¡ý®GMo¿B\ÒÁåà/Aa1• ‘½¬ òû‡g5�+á¼Ýó¸Š@ùEƒN»”ÒÎô­g�’Fì3‘(È×Ð}voÞ” +Þã|‰ðr}ØÜà 5Æ~Áo¢ rìM€Æjc駉~¶öúÚÄW†Ò„ÄFâ0G×a*­þáTâ[+/“ãTLÏb, ¹ —°…•Ð)I¯Iï mT�/l਄—öw<ÊEµRÇzÞ³jnÚj†¹5néT%�óöQªn\³ØczÚ(ì!cñ¶aªŽwP=‚=[¥àÔ)w¬ÜŽã~µ�õ‡]�økETÄ4‘_áv­da %ÿÕèŒuËÔ­ï3Ç¿6‰Â×çÂtq9—ÿy(…!á§ë1ßì0œÁ´Í,o|Y…“9ªIIUÖ3˱ ksÖXÎi‹Å±7B+ñø´6�RÁl‰=„j·}8™¹p Hcè»’‹a*´yÜ�emG|Õø'­JêkÏŽ½Lú;ž+@CÑàW‘‘2ðg•´‡«Ü¦ØB–Á„íÊ.ÆR wÁ7Â{*ç–ÉÖ£Áƒ’PV'�þÇ Õ˜ëYŠ€XÀ�ÆÎmÝ*•³w!ŠŽ} ªMYj­R¾oï»lOß‚€7±�|�P E9t-KOØý|)äjë¤Ë˜p&8. ÷%Öqúà“ð‰ÑmâS#Q/Œ)Úä P9‘¦ñ|%0gHL¢VEìÛoáµÌ1T bG"g#(ø)°xá·ÜnðyÆ�JÆŽÜRÎN�(®†Ú«66¯á9ˆÎ-÷ Ô˜µýxkçTï|ÅÀCÈ�S÷E)Ðx¹Ä››Š‘žóbÅŒµÁ;€?³êÓ4{ܹ ¬Âœ€!Õ¾ª§Uñe �»ÑÛH¼VÆgo~ �×í¨�AÄr.DH8¥Ñu‡0�õ¹Nàp^/,ËÜ6•‹TŠŸ'&»4°îæ\„c]œ�aû�{ ójÉ!á!Éí† 3®tD7¹Â_RhŸëupF%-ßb8½çó¼”tÒãâ>PàòɃðí)š ºP-v:ÆÖr–VË{`&|Müù¿�šb¦,{Ó!ãÚÓ‚R‘4 +赦JØEáÙbŠ\ B&38�¬yÜeºLm.ûù£ÆËûô±¢²å ,AzØiÔú Õ±À‰Mnc4=†ìüÇ Õsýj@=«mˆè*!@…© ϵ(Û-OßÛìe^lÔsÞY)eˆ0ÝYÎQñˆ »™ûŒ äf1:,'u|Ê<8м·Û’qüÝêý·eNÿ3*º{„’nḑ$¢œ$šÜ™§Dk2æV`‘/‘…èU’6„¤IÙ“”ÿy»IÓÌPŸ…ÝRÏ0� k±9Q—Ý)×WL:å{ ‡VÜ|§?Oµ©J‡DTÞ¡óc­*Þ¨”�}¼ØC‰Ïò¿ŽÊY{̃ëk*,c¼k™LÅ˽‹6w•ͬˆ¥˜'ë#Ÿtà'Oul�¸=¼6ô… �u¬¦ÂØÌÓmçí<\{ ¡íª-KixwñùT‹PÔ)¨€8Ö¿¥eäÁÙa‚aü7Ïλê—ÈYfè¿°½¶uR¡%K»mÑ *B¼•[,ª�j$ýÚÿFj®kiÖЉÓÂoùdû  ÿ¨(}¶'h¬F4û± p®ò„œWgüê V‚ffÝÚ?ýÂÐ8�D¯‚CPÁ`XÓ€ãtQ›_xÖô½ c¬…ov¡2´Þ|l|äB,< l&-÷ƒh$¹Š”²°‘¶A'öý§0)†}ÂUø‡G#9œbN!bÛm«Õ±Šئ™Ûsgf.^þñ&€Œ{Õ¡MÏýàiÿb<æ¼äߥbÖ GÇ|vÙµh"rÂþ6™›¨|�™ÐâÖFÏC²·žµ²²¶~.f” Ó®ÇLJfÓÀ¶Ü¼ûÇõ˜ónöNæSóþ¤ö&X¦ÄÌEyìwa¹ÀAbÃe aÌÑæç·¦Z»Ô ýîj:Є÷b®¶`ÒÊZ5×ý¼ ´ƒÉÞ‹µƒ2hå…'Á½•{삼l /Ê1SJfDµ�&ÙêO] âèGh™óíÀÒn, ¥¬}›ÛÍV!lÌÕ„ô)^ ÂN•­é�X”�w ]iòöÌ«<ù7ˆôìq!{õ@Ïe#Þãg•¶ÉÙb(J;L•¬UÆ6?_2Ÿ…ÄX¶/±·¼¥o…ñeÖ0•þUq+#.†š…h�¯õ³Ô뙺þ©–)¦È" ãÑ”¡ˆÎžTV<í§·uø-*½�o×ì�WSZ&Âf)ëR!þ°•;i¶9î&©ž˜K{ÆNt|Mÿ)õ&ów1ª­È¯½ò–J5¢¦Ax·ê¸ %èIcîo+eu> ¯NÒwþ Þƒ\é@ þ‰¬†š,�ÕÆ ØŽðÀ}%2Ó'ee›MÐæ§-U< ÔÂÉÔŒfãÏéZT0Š~‡5õ×ò y³ñ’'ºÔ�™ÅO&5QË×·Ž�†Ëí§SÓû‹Ïhû?æøsëÅ!ö—K9Úi+ kg•aÃÈð fõªbe@`1ˆ1à¯-x× |À7BÄt÷èGT-”ÔBWÌAð|°Ìñô5i §H8ÞV|£Saff±�G±*î`ÝL8—ÁN¼…ÒÙ\W}XkÌmè£%‘Ê”Ul~øCkòô]º‘²ì\�)ƹ¥Ï�Áeyo¥tw ¡ÅtN:÷?*;¥¥¤ØýýÈKЃkÑf ÓÊ´kn“Ï]ØÚ0ÖR3úñ;L¡a@ÙáK)JqZV3#&;˜ò¤ë½–²:‰z–_òÐç=·Ò;|(ÈŠÝîkš;ã�Ä…ÁÓßeß°¦þ.ëO¾X— …2¶™Ú/e«x1IÈôEŠÎq±]:0T¼"Fž^êD=4¿ .nâ�.@!wî02ŽØA.£F¤x�î�âÈ×,Žî‰`uÇð"Ë9x¢#—ùÃA N?^ë%,bt°àâªï¨Á½ónïj2\ð°î ¨¥GË‘²6qc?dM—î|ŽÙê( ÎÛ©Úœ‡25ÆÿÀè%Ê!ÉŠ7ž¤\œ‘‰ó¼Ô•»G.bŽŠu•÷Ž’¶0Yiü#]9ƒÂ2ôTÎ! Œ÷-*ze+f¸n)1c1³Ì¹c—Ÿ.’�Ę̀™B¶©O«ä‡,y-©ãÂ�…2ð)`K ´mß~»蟸¦x_‡Ýì‹XÙNÖÁåúŽÑÛ †áË ?€¿Ë”¶`Ãþq+i[J¹ˆ|œfÚz=}Ì:Á`¶“l4Д¯û›EwU15˜¯Ò8¬SÁ’¾ ôÇ™LÍšœF-/�æúeå…��F�^L“¾xY²"`£©4­±Ü>�èÔçi~5<ªúGFŠÝ“)›™îã×7�S¨¯Ú›Ÿó¾ÝõöÃÀ-ÜRÅ㽪Š4&²ÆHu{Ãù¬ž‚E‘Ò©{î¿ NW˜ˆ€Yy;2d�}zù¾EЫÃËøtýQ MÞ{l¦»?úŠA¼|ø†crA‘÷ì; Z¡‹ù;züOú\n‰lCríòfI¨Õ“]øñÖ­ w’€¡�Qá=ÏdGÎÒ™QÛb¶Qi·úª­j¡K ð¶ô+[ ¬*¸lMÿ2ùë#‰ßá‹Jüfa‰†íF‚e )ª E8¨^ë�Ú6TT¶?A¾Ï–E*#»ä'¡ö7 §'‹¿ÎÛ7ݨíelÈEœÒ1.Ïõ™P aóæ)…ÊVöK¥’×Ê'ºæ¸U›Uk!÷V²Ce„ cN½ÛæÚÖ÷ Òd¯$­ôLv|±h¾Z\îŠ`Y‘ó7Õ##iL›�&%‰Ëƒ˜¨û1’D´p¿ ¿sÅW ×3±P­¹Jo·§ô‚ÎÂ!™Êa° ^¿‰!¯$L§ÚõM[‘æÇÃÃÒcy®Ó:ã•I‘±oʆg¿W×Ú»OŸy¶¿Y·?•³Ø•L[Ç8¦°YÒ‰ºè&Z(eM´<º¡ä¿44øªÝõò1Xœ2PÝ_S2ŽÛõÊÖöy'øÿvŠÀi燠F«f£ìNM“Î1Ù;$ùµt¡Ñàö¶ùÊÞÞ¶A°V½ª½ˆ*Ut*ŽzÍÂdj6Ï\K_wLÀ÷"â­KfÓ„D|ëšÉY�&\ó™;Gcƒï/c ª£Áì�¡<½!1Ð4¨ÖòdÙž%nØ(ë²Á\ƒªˆ9�-©GÖ4 Yº¿M~š,&0\�‡Ý\¶¹EòoÓª*Öù4Dþ�GÂÿtɬ‘ýéê*V]~uW®·Gõη3ðìÖ_¶“£ 53ûSëÕiHž=T˲÷Á¤¢þzêjÑàþ®HÛÂŒìa¿ØË:V'§,ôE—;JyÖ¿„É4Ùülן(ÌV„~ÀŒWË›kf«(•ùGï9�Rà"™C~nn.K4J|Ü�ã�ÓâÿE+ŽÙ)4r~8=…é+X]uR¡Þ;­’2¤3™�Ž%“ÿÿ°Nuó…/úœ›×»Wæ«7•6l\ˆ*ûݾÒöcÚsDÔ=»¡„5\ ¾Dœ8g ŽG™¼°¤_c‚ÎÓ· Nú‡,/™²#™Uhþ²æÜ_rî•#s�1å_ìž0¤à%¦u=ÄÆÌëÐhg:M(ˆß0@Èä%®BÓ[‚Z¯÷ ¥½»a(=}pÃjK‡Ó6:ç%´®Yn‘!GÆ«�CU©Š:e¯Æ3Otx#~o|Úûˆo{;‡_¾ƒè4ð·¯a37büpØI¶“žé‚Ö)ñ¸Í�¿êcvÉ�…Ž?×:ØwŒá-<©_U#ÖÎxáÝS7ðZàÊG–'VÓðHU'Âæ’±a‰l–e36R©{›á>˜2»Vn mÏÁ¯¼µlp| ¢õ ð12ô‚ö Rà:ž1Ìóèq¾އÇ' d{UZ±§Óà3@ £AgiÄòpø# NÝüëžâØ‘½ÚdߘR>GÜZŽþ¡G~œcSÒPtúVWþäi™ .pŒD0S8.íµ8ß^-qˆm;6)ìm%­pŒÞ�0ŸF3IFºê‚d§WØ5q(�vÒ!5ÀyÚ1mÊú'h+\ªç}–E0´å>âŽ,ä4$ëQÙ%ú¦á„bã……¨y¨¡À]#B,ᄃ.ìhlº;[õñ‚±…’ÖuYŒ€Ê› ÛýP~éÃØ£Ã9ÑJìC®SEÍ#�Ã0ü— -¼v<‚ÞîƒÂ…ýŒ†¬…Oc¥jŠLernsé´™{ÅdPª%b%|±ÊjÓé\"&ùöÝèkO<÷;¯­ó¡c}âí7ý“’ݰ(GýŸtÉ }zyEMfÒ`�Ã1å¥ ¸)¦Ú˜:ux©ÇÊF~Hþ< ^%!@ìB£ª2W†ÂKþ:÷ψ¯$Ęcm°ÃA‘Ó¯z®õÁ÷ÿú#­.û‚{67_†×׉®é‡–²Dm›ZHÁÊK8>«î"›²Ùgrr?ò–÷Îþ¤MïÞC}Ý%«Ã`»áÖ>íâ¬�‡ßNÏ‹$8¤xCz¯?ãÒP±Œ–Pªµ¢d/;áÀÁ \¬A˜˜³³e A}]b‘íC“Ä£ö’”ÇûÒf§€ô'Ÿ%ו ¡j8süý]�3d»O�WPt¨æ‘Ö 7¥ØF9”SˆlÖ Ieú˜;‚g"{"k""›êv’9ÿn8hžxÅ|Nû(�öI¦jÇó¿®…6ìÜr�`vA4¿Ž¼Få@1µõCm ¯ys2Ú`WÕÕÓ\l¹³´ÖÐDµ¼$h¸ÃC äF¿Íef÷êCè«ù47ÐßXCxoK'Ýfþ1„Žæ€ žºä<÷ŒØ{*ƒYy‰°ýÒ<†ìP@ÜläƒÕ– �1ª”0 Ã5!yÙ¹ !tã»ì^‘ykJ }�bìÝ-'¯)õadŽwHuùg¸JMƒ½™xV¬–?µ%3v5¤à!ÍI<,ã@´?¦5á½$™ ΧH½êš¹.ûLìRhª·1ááj5f}´M¦cߙŠóKtŒžn”Ñ%l;ß•E.\Ý–ÛÜjª]j˜}AÎý‡Éô*XR v±Xš7%õ*MFƒÂHKÃ)ÍÞ0vX2@˜}ò¬Í¬G' @ÿ#\¨]ú?Ì$ãÄî3–<‡~I K%”’SÚpÚmîDë\�ØEþHœ�çà´šþï}`£ë®+†è =ò <wÀà]Ð᪶³Þ0Ú�.�kº®ªFìx® <ž«ß®ÐÁ½R>ýF~ÿY@>LFÝ{!×àJ¼m¯åyÂtE‹¼( ÝÖíÔ±3õ_í¹G"öÕXÉ8Iœ·û¬§l/|?¯ 9Y·aÙÉÝiž©O¸ÚÖÖç>à'~h|À%œa�dä2*w]�Ø• Ó‰·\›£eIåÏänr²�»¯çpõ}ˆ«lo°„5µ°Eµ‹º7X¸ù—¶E'kŽÄôï0üÉ ¸A#{Æ­KÌ#iÔ¨èRŸíB0Ø.pn04EB0O»¯ÖÓó솤Ù4Íe¿ãvÈÌ>`Œ0È.¼zM ?âF©LuiœŽ„[i ?nt$�¸ç5CÊ_áýYâO{XHWö1¯+åš5Œ#¿>Á`ŸZ�³ð¥*ß198D}“è\�ªµ+80”.: $iŸ¸=Ê£uÀ§@–!Äãƒz­ªdt�Éöp› 'îC±bnÒ·cD#Þ-ü�N]ÑÀb莄‚íËœ—Ü]‹Ö0 ÓR±�=¤/\";@±aöƒ·Mi­ØùÊ’ñòxvì$¯M™ÜÇdÁòGŽîË>Ä·�ÍïîcIAêð™_“>ƒ�4j-Ûk{neT&ôgÕÆ‹ïVÿ‚~›å?�ƒKWø—­/³ÿ�€Ú·u¸bòŸ‡ëU,ÌýAYª–FÙí-¶l{&ô&…ñ4u1Å¢H d0ò‰g%ÔýËv´Ž’v‹3´³~ŽÏtSI`!‡Ûõ¨¦’?�vº†4�ðVB¢Ñ¶«Ñ‡KÑÛ”Œø…æ¤ôÛé™ ˆL²õ/zʘ¥_€!e§ÏÊì¶õQŸ¥×W²²+ ²ãF¸:ŒhÁŽ-tÓŒ®‡}EI\®H>€![ £6Vj©CÇTîÒÒxg€ K®š'`0Šz®z×QôU�{¸[ìö4zš|#x)ÆrÙ…5=¥ˆI€ ÈÜ^wÜûÔûûS ‘ýV‘g…š�8}ÅôB½EÜ߮者¼Ílà†M¤g�£-e—zì›@ÙÊËŽ4ùnaX›qhg÷ç‚mX)¿jéÍ`ßÕnö?á£}â¼÷»4‚NºOüœ>¦HÌé�@ýîÌ=WãbŽ? ¸ÿ"gUõ�φ©V 5½$`GÞw¸R+2Og�¦­Á+4³®´“r~fþÝ..zy?2Q„’Ÿ›v¦(ìרÜS‹dѽy°Þ¤Ÿ…³.#ÇÊ™ÛBÈA¢™Û$»éA‹Û×3ácWƒ53DÔ}ÆGý‡³ÃYÀt]ýÓ”VEÈ!ƒå:ª¿²µOƒ@¸Zÿ¤¿¡tÙâsÌÐ¥éˆ9»ÂIN°} î`»ûУyëâ)D’€Á�šû?Atï¢TÑ �šÃòN®Ñl6·RÆÀ¾jc~ÝÐ(4šÍ}+:�ß?—€¶z¥R ‹&¢jñ1ý ß‹´|¬õÖ9 ÚJz.DiqöcÁêKóm�}”8 w»:$èyÔ*‡Ú+:i%€ºÊæ×äÖZY*=ðbçÅÖ`; N(êp��ÅdEšåq;†R�kvƒ‰cÕïr!¾(•ØÕO»Ýø/ƒ`;êB/K‰±9â5ÿ5Ε°iáÚâ9=:‡„jð/b)š8›�Æ¥£†2Q}b«O5õsЊ-ÑÐë{Z~ëÙ_œwªvªœŠÿM6¨&ûç~qF!¹ò#ñW»urïa§—6HbÏê´øý‘LDz‡gvY1[û"n‘mV%Uÿ )P�·ÀšÊ)žÞ�Ø…^;‚âBI/xÉrpVó SB?+MÈ0è‹ìÎoŸ‚‚ª1V˜1 Õ:xCg¦Ê]Èl ¯Ú÷:³”ùÚ¿y¾¥eW1�’l7Ž&³*"�i1+[ñ÷î�Ñ hP ÍK´«ËQ¡|ðûkÓ>û -¥éÌ¡òKõ+¨D2ëJjÇÜŽ ê6¾IVç�B–úÚU}ÁR“â4¢k{¾/þ(_²ÖÁB뚆JTjIÍïcxÇñ5bì+˜¼ �'¹âyíB,<­¼¤Éˆ{�“¶Gå;d.£Øå—Û¯16½±p¯4ºù,ÈQÎ�:¹HQ¥syš&N,1ç“ä�àË .äéKÜb¼h“¥Íb ²0K!Ü@à!MÕÑîñuþÆÕV—g!óÚ¥½WîUù�U)ñ“”rÏÃ�½ç÷ájoRL~½Šcï-*šOÃH%ÉC™£è‹iõPlÛb]©{ÒÚ.«ºXÎ þ¿ìFÙ‹””wVݳ<®8IÛz+‘è!¼ÉTI“A@bðpãÿnå*å€çJ­rÁRb`ðÜA@ãt?iWÛïu •Ø[G#bqssé–ú3r�Kµi{%zæ¹9»cI¹]žUpyIòô}”©xUˆÎE� þ­ pó*o°`ör C× ´a±í}ú|¿#‰ ¾ðOݸ-ÉzK2W*޾à&´ìžûø7GìMÖ°u^l-£ Ö1›=|uL¨¡>ÝAþ[ñó,(�H•Ù7޼wQÞÅc\‰W–i<£®*eO²2Ã÷Y›‘Üæüóˆ· ßÊœ¤Þ輸´Kœ”pÍŽ6ØGŠªŠR†O§~“3áJ—t~05†ÁäÒ³öA¡ÈAÙiÑ,¥Ó½&q×âˆ*+¹òÑg—ê0ûïÕZ[!Þóì0UoJ7ÝŠP£z ä%~sŽ]dì|ƒöV/ŠÚV·±vr2p½Ž¾BØd`Ü Ûi)wêþÐKä¯j1ŸqEa)–U’€³šf$ÑØú–$~.Žø\;óø&Ò½ ¨ó©}{yÚ¤ËsßGZ7w…¯€wÊ�}¨Kr¬`Õä�sHúœ<…ñÜôEÙ[J�l�Å̱�'‘Sø/ ?yÈò‰™IBö„¸x³Õc{97‰Ú`£aÕÅÏþ£wÖwÛLéoúÚÐÿ·bà¹6,µ¨K©öj(«av°0�#DlzO*‘9Ã_>tü·�#=ý h±Œ„%‡Ì@!ÿ×:s?®;±¦üàðÉœŠr¤r‡ƒ«Ù ¼ÅMâôN¾èeMhºC![D×õ¨‘¸¨?³Û�;T=ÂTå*GúüvE ²1* ¥ëá\)Åg$c@0q’Pu.l�Çä6lBEÞ7ÒWâÉ]&ˆÝ=yŠã£\• ÎòhÃÙׄÿ(Æ;ºÌcuíu:Ó ‹é�,ìj*ê‚“»mÝ+„¸ÚÓGîØÏº1áêÒ÷ E«T¶ö¦Iùsòÿ ,DÐ E=Pœ;Ó.‡?Oô©H±)Zš*ÝkXY*I“Çó¡:KNif;�µ9ð95L3 |A§Àì#µàáúêþ=kı±ñ‘ã´s ÂïqC¨±}¤õM ]Ý™‰M§)ƒØ¤ÉY’l“�Ô€‚0)þü»˜ X¨tgÂÏ\i2NÏ=C×V>Îg“Vë‹DìÆjm&û�!öuª°¦ß×^“™3³ƒoÐ3Q¯è@CNFŽbìªÁkíYõû_hšD[a¼ãÎpåCssljZ"²MXzj¯iÊ­áu@miÕ·FÌÖ® öyÍe&ÊÆìQ%5Ä;¥Ûêw]éy—vb|Ð9h¹™þk§/O•4{ÏbðñŠHh�jl±0¼! gM[­ÝRƒ¬ñˆº/öê-Í^$N³Þ¾õæn¡¡ÆYE¢.Ã�Ü´LÅQ`©ÜwÅJ5Jðh÷Q±l;–C"ÊR]½î¨Úo›8‰ Ç਼´$̪ñœêf,Ÿ‡ëO“­ªÉ”aêÅvØž§žßò:pÿIÁݫ痒©ÂÅÑàÎ=Ô,:A�†]G6¿˜�Ь ;Ä_ld¦”–�õ'$–Ø3ÏØ•Î9XØpFusöˆ ¢ÈOMR0„X —¦¢%t јRê»DF¼_¨IUHAÍ_RŠP79¬Ò+A$£èó5¤ÿ1» æ(F…Óî.¥Dà/½îˆ�¨W+KÝñîu“|7‰=EMÊ5tç¤?2£»…ìBéëÏp T66ä�¥ÈF'‹É2¤(ö*)—˜ ¶q±d¬U¥3‹<�w`Žäñéû–¼r¹‡F¾�nC“,ô«3›®@Â"z?î�—g{‰HÚŽÈØ0:UF%e cp; ÿiržïíÀ̲’Z<4W�Nøùƒ>¡>ŒÓfŠçüo4Á‚ß"4�ÎĨ!{”(‚ÓG iÚ1Z£Îž—éÊ`‹9ÎîÕ¹«¤ÈÅ š¾˜}ڳ̅{‚¯­B -R*CýŸØüáB"±¾Ð%u/ð Ì/?‹ p;Í"ºrÒJ{99\ ·HÅcdm:ß�`¿Cÿwö¿2$Œ½’+¥3Y¤ˆû‰÷e® ZÆëæ·CFÓIï> cÂÂ9CxÏÛê®7·º)q&è#] àìM¿n k« ÍKV×z—VÁ”·Ãlì»�—üà€þ´ŸÓÈ_`Ѧ%*3�£;_Ó»‹ ïþ®§j�s~ö†}£j¯ ÆqKþ&Ï!r#ϯäÞÅÉkœÈ\U)ë¾Nw›Ì?žç› ˜g±ko•G�9§ u2~­�¨�»pbAØÐõ‡8!ª›�láKik6¿aój0#1fçâŒ×Ò‡€¨Ð�’Q­Ú±¥Ë ‰'À ¿Æÿ‘‡ÙÉÁ‘O]&¿Ý˜*¨›,Kê-°Q82þó`¥Ä \bsê¸#ª·ß>3^Ìúv¬²¡Ë}™’I«ÎmOÍ8‚h8‰{kR�-ÓOGS¡â*ÀÃQéÞt3 g£ök;i8=œb½ò�‰ö=D�`·)´�D}©áTdM!ü•À©õ)BlY'Ó ¦U‰”ÒýÊ�Õ¤\½µM“] 3î~‘ñ™¢PV9Î"(…$E ˆ[?Ê�l¬�™æHHr‹,@�…¬[\AÔCHž¦�Éb7"aKëâ P`ê“`%³Å?“¤å¹à�›Hj¿ÊZ‹ÀW.Md #ßU„P ˆ3�äá´àñ°~F"´ÞœÌ�Óö쯳(ÀB¤Pöúñ’"¼GEß8�):'AL2]ìõÜŒ*/ö­áÿ€ßwe¦-úa Uè ÷Y·‹¹à-¤]vxÜ<ªÜó}Ñ‹`™|nO`�û#–ì`5ƒ�~KÔJå9ŽW”šÀÅ'€~¿žaH¦¥ ôË!‹B®U!ëºÆ^È)hF=Χ—[É#&ÂG/ä¸F™b·ÏPèpaéös÷ ˜U}ˆ¤Š_IvG`Ê‘®¹Å9 æ¿'’¦úx‚ÞŒ+§ñNüø¡vË%~†~VÎ?ê½<[P@¦6œ]Ùh”‚/ gËK®Kß»©˜oÜT•¸7ó7Bn„DŽœÃtŒLBµÊe¥GÛ2¶ÍB—ZI61] _V1Sã*âS}ð¾ßÝ»C© è@Þ?I™…bÜe¸«¸”. ëÝ€•è¶~EÔ'‰£¼¥Wp’ÁüäjÛ¼[rÂÍbd«ì§ÒŽ;¹�d„=.ŽI`”+˚߉ V¥_èÈ�U:ÀtŽvÛzƒÿÖI2’™ú5ïôî‹4â¯Wßå°£DEåIÆk%ðHüÖñµÊñpÍÇÂЦ§,šOU�Ì�ò{X06�×:�ŽŠ—š†ï>ÙÖ�¥Sü.V�GGƒúš|;\dÕa߯cDË Ù˽Np�¶Ô±3Ç4ZLÐĦW–/"˜¼=Q?K+‘;€Qi·ÉÍŸ±]èB�‡‰ q€6·¶ÓÍí¨Tfè[o]€#Â@ù¿GD½¸tÿÔU›{5âí±0ÖAºÇ—â) >rm*!‡�µ2¿¾üpˆTÔÅCJ&B›ÞˆB³´àŽg6œ'$ÿ3Ú˜F­r5À”¸ïZÛÄÛ#°ºêê”åÏuXg¯gO�n(8&R´á›sq©¹l~°uÝÂ|Ft©£ÊyƑʺ…Þ2{‚4yg¢[t³@Ûù4CË| +v){×4Éõ,wqd³Õ½Øk@wyã­çeÏþY¬”,Nʦ$çôvÐÑß�¡O¦Ñ‹éë�åÍ©AOfŒÔ¸8í›k€?J¿ß½k~#‰à;!‘Mê:‡Pf΂A(5©-Uп‹§u:ÑjNÃW8)@ÇEÝyPP3­kmÅ(~ió´4þÎ�Û~‹@¢³jÿ Ôbº¼Æ @¡çl^ˆ7½XƒŒ£´ u{ºbàˆ“…7uÄ ¼½Ú¦�(²ôªÉ™£Á�ƒ?zXßöÏÐvb×3æ‘úÏ$þŒ·ÄØÿ«û©+’‡ÙiF9f—¨>¯Î‰/PçÛOÔµõBÙÅÂQÇfúÚ㊎n]œ‡×~U9qR(gÄü¾Ðµ^…p<:â4ë~hÆ`”Ó9¼³’™ÿF� ¡ QëIj¶˜a ¼¿W×ö,sÂÀPÙÈã–W æ AÓÒ/tùKhOb§*A­ŒD«6ñ 6ÃΨëįpÍu#¯ìXŸüJ2ËAvêÉ Œ†áÛà6ìr[8´.¿�—1ªÐ 7‡^4Yç(>yU�èëqƒÖvÅuªgß6+@í‡Þ:/è’ °TŒ:{cMs´r´zk…Z_?‹QLS&^³‰:h‹a"Q`y‰jÏ×uT«Ä‰ÝU˜%ZiØê#)ä.mÆÂt�$+ÿ–ÄÄ÷"¢»]o0!y›{ÖþËÑ»ƒû¡ßÑT<ÇÒÕœ6"…9 ™clèóãÔæèîWÄŒ9h™N9ádÐW%ZЍ\(¤šöϵJ Yص”�aÝ©`œdÀôYmW™äGi¹©Wêîaá�yæ$ˆÉ¶ËúÔn%ÜWu¹H8——bŸ:,Gz,TR­¸@2¥,$4�Ôc>ÐA‡�÷ƒF†T`¬ÌÜ‚XZgJÀ›’ƒ…_òægùþ«�r³mš$sxMÓ*u5Yºò'qcGÌéyä„5þ—ÚŸµ„)Ÿ·¢[Gb&„à öHÞâ°:žI¢-뺻: Ñøåšt/Jçè;ö/WÛ8½ bòtJëÏ*ÕT:O!HãuŸ‘ þ,+OâÉ”û·Ô‡ÙI!HÕy|êlõ.Aßh%ge€ÖÜþ¥¼l—¶ÇSJI¸ÇUÚ©&œŒñÌMíhí–Ò6Ú»7»ÕhÄÚ’�Ãì™Gŕ䑑¤7iȃâl¶ V¤áÉ}ÅÇfÑê×~;+לUÙ·ß~‡²-3ïÞ¼Æûä+O7ò ÆfÏí°cY¡äòòU0U¯<躗çX j_A¸Õ11«“±m¶ëŒˆ'ÖB¦Ÿµè¿Ìb1Pî)nýc ¼&Q�£ÁàPcì¡Lãÿ÷ç6þ'Ñd¥…ÿ¯£õFvbºéÞ±ýL¬y±ÎIe•dËëýé´Aøà�§ /Þc�ñÀ¢c ‚ÈÇ·©SN•Ù=\ÚÌÝ"|«˜“9Wwºa‰eLÕckϬð‚MJŠŸ Û²¶=}`û²åE-ÍÖz|çzC|9KnßÃæîp•úmÌBÊë܃Ÿ³s Ññ‹aw +ôñ%ówð( +R#ãJ_6]ÝýݧKÚá.²r(Ž ç9/ÒÔÑ¢$a®µA ÛHæ QèhÖbÖºôhOf¡ —–bA«[�ÊE‰Û–üqT+è`Mï–}³"kâJíÚÛµ’ûªž96™«tÃÔ3.ÇšWµ­,š·.ÿ£T¸’Ú@æŸq¸±¶¹[ U‚ÖH´ù©’½‰„«ÝäÎ~ÇÅFŒ½þ ÕÑ:¶ ‰ˆ G]™)ç�¤ðÝ=8ô•NšŸˆS²Å³Ež%}x¾¯½),šnp’Lm‚T†�1Ĩâèjš@I�FÚµ1–05³ªµô€ƒŠTÚ>ÙâÚàY¥Ãlï²G�¨�ø5Ù…ýN)Ç�JѲCmŸUõw©þl__9R¡Ì´zi¿?Ufõ¦+ðƘ��x°¹‹AGÁÊþÂnÏÓåñÄ1Ã'›=®Ù æ“�ÙäèWï£ÔÑÉwšì1ÕÉv} 3Aiõ¡Ö© „—)fàòýï: ß1íšÌ f¶—€„«'ë\±%ãV Õt° ̇Ù'¬¥¯Á7ˆ ªºPwSì쑬ñ8”¬� årVÓ R¨Û__îò{žhއ…ߥ½ü–é¹™— OpC‡5ʽòA›Ÿ¦~± ó©å3¨Â&`O¹âÕYœ¾ ·H´Ð×NØJgõãÝê¨Á�!~KµÍPØô‰%*û9=¨zc³ë]ÂÂ%Kd¬¯ùõÄE-AíñëXš² }ÂꓼdC»Æ_fOwÍR8AÜ‚¥œà·†EŠfB5aŒo6³o"h­ ɘµ!A#3ÓAÄ_~-ånÂ÷ü‰š¬x¢ë/]°¨ÄÆØœj¿£÷]O‰j}¯“à ÿUœ±ÁÁîÇ-“°Ã¾�G3%.èYæV• Ùià«.ÅX@¿Ûó-®‹Ò;-ƒÇÄëT{&túweÎä t*µW¶œ ­zÌ¡Æv‹ý& kÝòeøú5^˜Ëz�þ’†u³*jÇ4m—~TèÛêø7²}ú?-kHÌóó�Ú#Á«)…^jNèeFp"y«Í�`”J"º&4ãTÂB¤U©4æØ|¯;溽LJÌû×°”„žµY8ÊtÃT#dÑ[. ¤Ò¯Å1úif%õwÁ!q�&Èk=™vbq™}ž6™2ÅØÀ|°Å�±:¦Ñ:âÍ·±„üäº3CÂ(šhõžo`ÁôÙ³ ÔÈÉÛÆ0ð×:4ÞR؇î–5rþTFÿÊíÖw¤IëÙk q‡l8 £�„´$µm"Ä�e84´öÎwÞÕóPÊÊôgýüÑgUÞaKheSBd¨Bä�fÆe“FrlWU保J™.¡‘à—¸îH: Pè3’D‹�#ÿuRÝ{ñõ擵3½†#ÑBÚ,˜»j¥PE‡™\¦ͺJ»åº”Üis¡aiñvëWœžuEóË*Æ@Ӥ߷Ò_ýæÒ€ :‡¸Bkþ•½�ŒÆ)pe‰WDyË3ˆ“ƒÈåÔ‰;'þ?$ X9¶Y¯üP©>]- rÄÚ½.k)›Ò°U;åžW=îÞ`øeB€ZŸGèÑu&zJjõCmméM�ùí–òÀ‰&x;z:SÓ2 Û~æ»j„qT1È*۲Ⲥ¿Ìá¶l†ª÷q5» D;“l¢#3>3 3…¹:?{éù;ŸÀo°¸çËÈ"˜;îGØ�xÏÓ0³Õ½¶¶º¢1Ž'@H¡h4ëzõ¼ì½$}‰ƒº‰j{ñH«y¨Uà ùùXR†ÈÖkó Ç—=Þž¤Ãèà5ÐB±wâSäQN«yÞa²¥Z‡�/" Ô·re·°á]©ÓÊž‚)ÃãQÆdé˜U®6_¸½s’ʆª" @Ú†<Ñ0%m\6•N�ÿ×3üãÃŒH´Ô}z2ZSaÎ §Ï+qœdXË"{(½*}©‘pÆ«µKÍÎø¿C9!ñ�Ü¡ vFéF‘ÃGÛr‰ Dü8Ä)5x™·ðËÓæe šÜúªª&ªI©Rü¨éí˨å°ýˆÍšt�J=¹+)_Y$PCÌzGx4j×y�^äân�œ�¿¨öÕµ­JTRuž¾õ—.Öš–A‡¸<üÀó™cAMò–‡B°×!Ö€I .8¶ê¢ÐÜ›€ô»ù(\æ¶éß YZ