í«îÛrpminspect-1.2-2.el8Ž­è$>èì#Hxx�›xŽ--Oí(ë‰`R>ÿÿÿÐŽ­è=ݤ?Ý”dèé êì í 7î4ï8ñ`òdósö‚÷«ø ºüÌýõþû 0  F  \  ˆ    < h Ÿ Öô  @|õ(%8, 9` : À Gר H×Ô IØ XØ YØ\Ø( ]ØT ^ØÛ bÙ�dÚßeÚäfÚçlÚétÛ uÛ0 vÛ\wܘ xÜÄ yÜð “Ý”ÝÆÝFäÝLåÝ�Crpminspect1.22.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-09.iad2.fedoraproject.org]bFedora ProjectFedora ProjectGPLv3+ and LGPLv2+ and ASL 2.0 and CC-BYFedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64t -8Pœ‰M\�íAíAí¡ÿAí�¤�¤�¤Aí�¤�¤_—#«_—#«_—#«_—#«_—#«_—_—_—_—#«_—_—c1314900d49eced2be583e31b7e2aa1b74b68dd9fad0a033e4f0688eb2ba80493dc860e35699a833c22cecbc874b3932e6c8c1cd4f559d16a43927b53b4ea56da4b2aa9c47a6b5edeae52296cd800ed3c7f7be8fd41e0d577aaed4569ae466202ddb51fcaaf963b03b1372c302e535722f6a80f3b37066e810570de4a1dfd14c3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb3698640fc6ae1156e0006ad1cac61e029f3875801cd5d4222af50c8db0bde8127891f../../../../usr/bin/rpminspect€rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.2-2.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.2-2.el83.0.4-14.6.0-14.0-15.2-14.14.2_–º@_–º@_[fÀ^ù×À^ó@@^ÂxÀ^žà@^žà@^F‹À]î7@]Õ*À]ÍAÀ]ÍAÀDavid Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.1-1David Cantrell - 1.0-1David Cantrell - 0.13-2David Cantrell - 0.13-1Björn Esser - 0.12-2David Cantrell - 0.12-1David Cantrell - 0.11-1David Cantrell - 0.10-1David Cantrell - 0.9-3David Cantrell - 0.9-2David Cantrell - 0.9-1- 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- Use this project's user.name and user.email for Koji builds - Use YAML for the rpminspect configuration file and profiles - Reduce the number if (null) prints in debug mode for shellsyntax - Update README - Fixes a ValueError if hostname has no periods - Remove '#include ' from rpminspect.h - Install python3-pyyaml in the Docker test environment. - Use fedora:rawhide for the Docker tests. - Try multiple ways of finding the kernel development files in test_kmod.py - Syntax error in test_kmod.py - Force kver in list iteration to a string. - Update 'hardened' annocheck definition, add another LTO prefix - Debugging output in inspect_lto.c - In test_ownership.py, use the built rpminspect rather than a script. - More debugging output in inspect_lto.c - In find_lto_symbols(), start at SHT_PROGBITS instead of SHT_SYMTAB. - In test_symlinks, use built rpminspect rather than a shell script. - Use built executables in test_upstream.py tests rather than scripts. - Add '%global __os_install_post %{nil}' to rpmfluff spec headers. - Make sure man pages we expect gzipped are gzipped in test_manpage.py - Set QA_SKIP_BUILD_ROOT=1 in %install in test_symlinks.py tests. - Add '%global __arch_install_post %{nil}' to symlinks spec headers. - Install kernel-core for the test suite. - Find the kernel build directory in test/data/derp-kmod/Makefile - Skip ELOOP symlink tests if rpm >= 4.15.90 is used - Pass the kernel build directory to derp-kmod/Makefile from test_kmod.py - Install 'make' in the Docker test environment - Support Linux 5.6.0 struct proc_ops in derp-kmod - Final derp-kmod fixes for the 5.6.0 and higher kernels. - rpminspect.conf -> rpminspect.yaml in rpminspect.spec.in - Set default JVM byte code version to 43 in rpminspect.yaml - Update the local test instructions to run individual test scripts. - Report changed files as RESULT_INFO when rebasing packages (#150) - Ignore missing XML entity definition errors (#148) - Add some basic verbose output from rpminspect(1) - Split 'emptyrpm' inspection in to 'lostpayload' and 'emptyrpm' (#147) - Move _() usage for DESC_* macros to inspect.h - Handle INSPECT_LOSTPAYLOAD in inspection_desc() - Search correct files for POTFILES additions. - Update POTFILES and rpminspect.pot template - Add DESC_PATHMIGRATION and reformat the struct inspect for reading. - Small update to the MISSING file. - Install python3-devel for the test suite. - Install libffi-devel for the test suite - Use the rpm Python module in test_syslinks.py to get rpm version. - Add check_results() to test/baseclass.py - Report %changelog section differences as INFO (#123) - Report dangling symlinks as INFO for now (#145) - Add get_specfile_macros() and get_macros() to librpminspect (#152) - Fix ELF_K_AR handling in get_elf_machine() (#153) - Remove stray 7 from an #include line - Don't worry about EM_BPF objects in ELF_K_AR file types (#153) - Fix -fPIC loss/gain reporting in the elf inspection (#153) - Support macros in the Release tag in the 'disttag' inspection (#152) - Simplify the get_elf_section() function a bit. - Do not report all after objects without -fPIC as having lost PIC (#153) - Drop eu-elfcmp(1) usage in the changedfiles inspection. - Rename on_stat_whitelist() to on_stat_whitelist_mode(), fix some errors. - Add on_stat_whitelist_owner() and on_stat_whitelist_group() - Ignore debug paths in the symlinks inspection. - Install 'setup' in the Docker test image - Add mock(1) in the Docker test environment. - Remove DEBUG_PRINT for the config file name read in init.c - Display errno value when getpwnam_r() or getgrnam_r() fail - Handle missing users and groups from the system - Add sssd-client to the Docker test environment - More debugging output while working on Travis-CI problems - Further Travis-CI debugging for the ownership inspection. - Continuing to debug this problem in Travis-CI - And continued Travis-CI test_ownership debugging... - Fix problem constructing package download URLs in librpminspect. - Only try to read the UID or GID in the ownership inspection. - Update translation template file. - Update po/POTFILES list - Final getpwnam_r()/getgrnam_r() changes for whitelist.c - Restrict RPM spec file macro gathering to %define and %global. - If shdr in _get_elf_helper() is NULL, return NULL. - s/%%/%/g in results.h - Account for whitespace other than ' ' on Release: lines (#157) - Add a new disttag test case to cover tab field separators. - Ignore multiline macros in get_specfile_macros() - Add more example data to test_disttag.py to cover recent bug reports. - Add ignore_path() function to librpminspect - Expand foreach_peer_file() with use_ignores parameter. - Revert work-in-place changes in inspect_elf.c so the test suite passes. - Update the 'ignore' section in rpminspect.yaml - Expand strreplace() to support removing substrings. - Trim rpminspect working directory from annocheck(1) details. - Skip debuginfo files in the annocheck inspection. - If reltarget is "", do not try to further modify it (#159) - Add manually-invoked regression testing scripts. - BR libmandoc-devel >= 1.14.5 - BR libmandoc-devel without specific version for EPEL-7 and F-30 - Make sure all static path buffers use PATH_MAX consistently. - Support a positional parameter on 'make check' to run part of test suite. - Followup to the PIC check for static ELF libraries (#153) - Create TARGET_ARG to get optional target arguments. - Change *-dtds packages from Requires to Suggests for el8 and fedora. - 'sort | uniq' -> 'sort -u' - Rename 'make release' to 'make new-release'; add 'make release' - Fix build_module() in test_kmod.py- Rebuild against latest mandoc package (#1850375)- Remove the GitHub Release page stuff from utils/release.sh - Drop meson_version from meson.build - Change meson.build to require xmlrpc-c >= 1.32.5 - Fix some errors when running with libiniparser 3.1 - Only set CURLOPT_TCP_FASTOPEN if we have it available. - Expand the template rpminspect.conf file for the test suite. - Handle 'localhost.localdomain' FQDN in the test suite base clases - Rework the test_manpage.py tests to work with rpm >= 4.11.x - BR xmlrpc-c >= 1.32.5 and iniparser >= 3.1 - README updates - Modify the Makefile so it works with 'ninja' or 'ninja-build' - Rename the tests/ subdirectory to test/ - Split meson.build out in to different meson.build files. - Move builds.c to lib/, remove builds.h from src/ - Move rpminspect.conf to data/, expand data/meson.build - Fix the --version output to remove '@' wrapping the version number. - Remove diff.3, the code is gone from lib/ - Begin doc/Doxyfile for API documentation. - Add Doxygen documentation for badwords.c, builds.c, and checksums.c - Make sure the changelog inspection runs with before/after pairs (#130) - Ignore debuginfo and debugsource packages in the kmod inspection. - Skip the kmod inspection if there is no peer_file (#131) - Handle kernel modules that move paths between builds (#131) - Test cases for kernel modules changing paths between builds (#131) - Add Doxygen documentation to four C files, update others. - First part of reworking the add_result() API. - Add init_result_params() to reset the struct result_params structures. - Additional Doxygen documentation blocks for librpminspect. - More librpminspect documentation work. - Un-static some of the inspect_elf.c functions. - Remove MPARSE_MAN to let libmandoc autodetect the type (#132) - Revise list_to_string() to support optional delimiter. - Add get_elf_section_names() to librpminspect - Support [lto] section with lto_symbol_name_prefixes in rpminspect.conf - Add 'LTO' inspection to librpminspect (#129) - Add 'LTO' inspection test cases (#129) - Fix free(): double free detected in tcache 2 (#134) - Do not strdup() header and remedy in add_result_entry() - Store package extract root in rpmpeer_entry_t for each package. - Add strtype() to librpminspect to return string indicating file type. - Add the 'symlinks' inspection to librpminspect (#133) - Add tests for the 'symlinks' inspection to the test suite - Update README file - chmod 0755 test_symlinks.py - symlink inspection adjustments based on feedback (#135 & #136) - Simplify the license inspection routine (#138) - Add get_elf_machine() to readelf.c (#139) - Elf64_Half -> GElf_Half in dt_needed_driver() - Skip eBPF ELF objects in the 'elf' inspection (#139) - Stop appending a newline to string in strappend() - Collect all results from getLatestBuild Koji XML-RPC call (#137) - Return EM_NONE in get_elf_machine() - In download_build(), fix how srcfmt is set. - Fix some memory errors associated with the results and parameters. - Add a new faux-result to the results output for 'rpminspect' - Use params.msg for reporting in check_bin_rpm_changelog() - Add teardown steps in baseclass to clean up rpm build files - Adding tests to validate file ownership and capabilities tests - Added build cleanup in baseclass and fixed setUp typo - still testing - Many more tests fixed - down to six failures. - Fixes to mockbuild tests - Fixed some duplicate class names and now passing all tests - Added docstrings to all tests and other small bugfixes - Added docstrings to all tests and other small bugfixes - Formatting and style fixes - Make sure only RPM files are passed to get_rpm_info() - Update TODO list - Return get_rpm_info() and add_peer() have void returns. - When public headers change in 'changedfiles', do not free param.details - Check is eptr->data is NULL in find_one_peer (#142) - Define EM_BPF if we lack it. - Skip 'upstream' inspection if no source packages are provided. - Add explicit librpminspect Requires to the main package. - Add test cases for the 'upstream' inspection. - Simplify how the versions are collected in inspect_upstream() - Update translation template.- Rebuild (json-c)- Do not use headerLink() in extract_rpm() - Expand the 'kmod' inspection to check module dependencies. - Expand 'kmod' inspection to cover PCI device IDs - Update the TODO list - Update Dockerfile.test for Fedora 31 - Updates for the MISSING file - Add DEBUG_PRINT() macro to librpminspect. - Add 'favor_release' setting in rpminspect.conf under [vendor] (#98) - Add more lines to [inspections] in src/rpminspect.conf - Change up the DEBUG_PRINT() macro - Don't assume favor_release is set in rpminspect.conf - Format stdout and stderr correctly from baseclass, run with -d - Correctly recognize parenthesized license substrings (#101) - Shorten the names of test classes. - Generate a dummy 'changelog' for the CI tests - Adjust how the dummy changelog is made for Travis-CI - One more slight change to how .travis.yml runs mkrpmchangelog.sh - Nope, just can't spell the name of my own script. - Copy the dummy changelog to /root/rpmbuild/SOURCES - Add /bin to PATH in mkrpmchangelog.sh - Make sure glibc[-devel].i686 is installed for the test suite. - Add test kernel module for use in the integration test suite. - Update the TODO list - Note the test suite needs kernel-devel installed. - Expand the derp kernel module for depends and alias support. - Fix up some of the kmod functions in librpminspect - In the test suite, use the same before & after package version. - Add test_kmod.py to the test suite. - Stub out test_ownership.py and test_shellsyntax.py - * extract_rpm -> *extract_rpm - Handle parenthesized license substrings with all tokens (#102) - Combine prototype sections in rpminspect.h for kmods.c - Implement the 'arch' inspection. - Add a section to the README file explaining how to run the tests. - Add the 'subpackages' inspection. - Ignore 'build' directory. - Fix the kernel module alias tests in test_kmod.py - Follow the pep8 style - Remove unused import in tests - Start some spec file changes to support building on OpenSUSE - Update TODO and MISSING - Move the assert() for ri in inspect_modularity() up. - Use 'pip3' in .travis.yml and Dockerfil.test - More updates to Travis-CI control files. - And another change for the .travis.yml file - Revert "Start some spec file changes to support building on OpenSUSE" - Handle return code 1000 from the Koji hub. - Expand meson.build and rpminspect.spec.in for EPEL-8 - Support libiniparser v3.x and v4.x APIs - Added the 'changelog' inspection. - Add possibility to run integration test suites separately - Begin i18n support for string translations. - Mark strings in lib/ for translation, update rpminspect.pot - How to run and debug integration tests - Fixes for i18n string marking changes. - More build fixes for the change to translatable strings. - Favor libmandoc.a when build rpminspect - Display the line number in DEBUG_PRINT() - Expand the config file with [pathmigration] and [ignore] - Fix double free in list_free() (#107) - Really fix the double free() in arch/subpackages (#107) - Do not require a tty when running (#109). - Add the 'pathmigration' inspection and test cases. - Rework the 'xml' inspection to better handle DTDs and SVG files (#110) - Default rpminspect.conf updates - Expand 'filesize' to report changes at different levels by percentage - Update TODO list. - Fix bug in shellsyntax where before and after builds are invalid. - Add shellsyntax tests for /bin/sh - Add libdiff code snapshot to librpminspect - Patch diff.c so it builds in librpminspect - Include diff.h in rpminspect.h - Refactor variable names - Add some helper functions for reading and working with text files. - Implement the unified_diff() library function. - Add two utility functions to librpminspect. - Change upstream_driver() to use unified_diff() - Use unified_diff() in changedfiles rather than running DIFF_CMD - Fix for 'error: format not a string literal and no format arguments' - Split unified_diff() in to unified_file_diff() and unified_str_diff() - Change 'make POTFILES' to 'make update-pot', update po/rpminspect.pot - Add /bin/bash tests - Add DEBUG_PRINT() to annocheck_driver() - Rename 'Screendump' to 'Details' in the output listings. - s/depends/dependencies/ in meson.build - Fix SIGSEGV in inspect_changelog() (#115) - Add tests for shellsyntax for /bin/ksh - Handle RPMs with empty or missing changelogs (#116) - Update the AUTHORS file. - Add tests for shellsyntax for /bin/zsh - Add tests for shellsyntax for /bin/tcsh - Add tests for shellsyntax for /bin/csh - Refactor the unified_diff.c code to be more reliable (#116) - Correct RPM %changelog output to match rpm (#116) - Stop adding DIFF_COMMON lines twice when the hunk continues (#116) - Adjust the unified_output() function for more output control (#116). - Remove libdiff code and return to using diff(1) via fork and exec. - Fix some memory leaks in inspect_changelog.c - Update the test_changelog.py to do list. - Added the tests for losing the %changelog in the after builds - Update the 'make instreqs' target, README, and rpminspect.spec.in - Unify the readme with yum as rpminspect works on yum as well as dnf - Require xmlrpc >= 1.51.0 - Add get_nevr() and get_rpmtag_str() to lib/rpm.c - Do not abort if the hdr is NULL in get_changelog() (#127) - Update test_changelog.py with more changelog inspection tests. - Remaining set of changelog inspection fixes. - Make sure remaining test_changelog.py test cases pass. - Handle shell syntax tests that don't return non-zero on failure. - Add tests for shellsyntax for /bin/rc - Add release.c to librpminspect source. - If no new %changelog entry is found, report OK if NVRs match. (#127) - Modify license inspection reporting. - Split add_result() in to add_result() and add_result_entry() - Prevent reporting unapproved license tokens for approved expressions. - Disable empty license tag tests, add ValidGlibcLicenseTagKoji - Temporarily disable UnprofessinalChangeLogEntryCompareKoji - Update po/ files. - Adjust how GitHub release assets are uploaded.- Change the way get_mime_type() works so it caches the type. - Support an optional [annocheck] section in the config file (#62) - Add a 'make help' target in the helper Makefile - Add 'annocheck' inspection to librpminspect (#62) - Add weak dependency for /usr/bin/annocheck (#62) - EM_S390 maps to R_390_* macros in /usr/include/elf.h - Only run the changedfiles inspection under certain conditions (#74) - Skip source packages in the changedfiles inspection (#74) - Add back missing free() in rpminspect.c, but in the right place. - Simplify the returns out of changedfiles_driver() - Add the 'DT_NEEDED' inspection to librpminspect. - Expand 'elf' inspection description to mention forbidden function check. - Change result severity in 'upstream' based on package versions. - Cache rpmfile_entry_t checksums. - Add 'filesize' inspection to librpminspect. - Updated top level docs. - Check all license abbreviations in the 'license' inspection (#83) - Use MESON_BUILD_DIR in the Makefile 'all' target. - Drop MAGIC_SYMLINK from magic_open() in get_mime_type() - Move stat-whitelist checker to whitelist.c - fixup! Move stat-whitelist checker to whitelist.c - Change the prototype for add_result() - Add the 'permissions' inspection. - Replace check_stat_whitelist() with on_stat_whitelist() - Add 'make instreqs' target to install build and runtime dependencies. - Handle ENOENT failures from realpath() in unpack_archive() (#84) - Only run the DT_NEEDED check for ET_DYN files (#85) - Update the HISTORY file - Add a [specname] config file setting to rpminspect.conf (#86) - Boilerplate updates - Implement runtime profiles (#82) - Update TODO list - Compare JVM major version against the minimum JVM version (#89) - When reporting public header changes, skip first 3 lines from diff(1) - Address errors reported in DT_NEEDED inspection in BZ#1793113 - Various word fixes in the rpminspect.1 man page - PRIMARY_BASENAME -> PRIMARY_FILENAME - Correct the javabytecode major JVM version comparison (#89) - Reset field to MODE when reading the stat-whitelist (#90) - Add vendor_data_dir setting to rpminspect.conf - Rename [tests] section in rpminspect.conf to [settings] - Expand rpminspect.conf with an [inspections] section - Improve failure reporting in the integration test suite - Handle symlinks in copytree() in src/builds.c (#92) - Make sure "noarch" and "src" are always honored as package arches (#93) - Update TODO list. - Formatting changes on MISSING - Add get_rpm_header_arch() to librpminspect - Further improve the handling of 'noarch' and 'src' for -a (#93) - Use get_rpm_header_arch() to retrieve RPMTAG_ARCH - Move to using libcap instead of libcap-ng - Fix Koji scratch build download support in librpminspect (#94) - Add the 'capabilities' inspection to librpminspect. - Renamed [vendor-data] to just [vendor] in the config file. - Implement an RPM header cache in librpminspect - Restrict get_cap() to S_IFREG files. - Note the licenses for all of the dependent components. - get_rpm_header() pointer fixes - Implement Freedesktop.org icon lookup routine for 'desktop' (#95) - updating imports to use libcap, matching BuildRequires in specfile - If vendor is not set in rpminspect.conf, skip tag check. - Handle upstream source adds/removes with pkg version changes (#96) - Boilerplate updates - Improve "Missing license database" error message. - Update TODO list - Use xasprintf() instead of strdup() here for parameters - Begin the 'kmod' inspection for kernel modules. - Typo fix in src/rpminspect.conf: s/not/no/ - Remove some memory leaks in librpminspect and rpminspect. - Shorten -l output, use -v to get current output. - Remove -x from #! in utils/release.sh- Disable jq usage in the release script for now - Generate a complete %changelog block for the spec file - Force overwrite of generate .tar file in .copr/Makefile - Run srpm and check targets before koji, pass name of tarball - Add utils/submit-koji-builds.sh, which drives 'make koji' - Genericize submit-koji-builds.sh a bit more - Start a .gitignore file - Changes to the release and build automation for the RPM changelog - Handle int32 and int64 size results from Koji over XMLRPC (#61) - Make --copr mode on utils/mkrpmchangelog.sh generic - Existing packages that go away in a comparison are VERIFY (#59) - inspect_elf() RESULT_OK should be NOT_WAIVABLE - Refactor strprefix() - Fix a memory leak in init_rpminspect() with the javabytecode array. - Fix a memory leak in the license inspection. - Update release and build steps in the README - test_elf.py tests that verify passing tests are Not Waviable - Build package download URLs correctly, drop use_volume_name setting - Clean up rpminspect error messages when downloading. - For fetch-only mode (-f), default workdir to getcwd() - The new libmandoc API works, drop explicit 1.14.4 BuildRequires - Add is_text_file() to librpminspect - Handle multiline results in run_cmd() correctly (#59) - Show diff(1) output for changing upstream text sources (#59) - Adjust run_cmd() calls to match the new API - Explain how the -w option works with the -f option in the man page - In REMEDY_LICENSE, explain that valid licenses need to be in licdb - Fix some memory leaks in the license inspection. - Add a [products] section to the config file for mapping release strings (#68) - Fix json-c memory leak. - Small memory leak fixes for the product release string gathering. - Trying to get the automated release notice posting working on github. - Use printf to build github release body text - changelog -> ${CWD}/changelog - Make upstream spec file include the changelog like downstream. - Syntax errors fixed in utils/release.sh - Escape newlines in the release body text. - Run the release script with -x for now, for debugging. - Shift things around a bit in the release.sh script - Use jq(1) in utils/release.sh to generate the JSON data for GitHub. - Slight changes to the jq(1) commands. - Even more small changes to the jq(1) command. - Do not build the spec file or SRPM in the release.sh script - Correctly generate the git log entry for the release. - Edit the release on github rather than create a new one. - Still working out problems with automating releases on github. - Fix 'Builds have different product release (el7 != el7) (#70) - Remove unnecessary free() - Shorten the eu-elfcmp reporting (#71) - Switch to using a BUFSIZ buffer for getline() in run_cmd() - Expand the get_product_release() functionality (#72) - Detect product release strings correctly with underscores (#76) - Support SRPM files that lack RPMTAG_SOURCE entries (#78) - Handle subpackages with different version numbers (#77) - Add support for Koji scratch builds in rpminspect (#60) - Make get_product_release() even if [products] is missing. - Drop the extra strdup(), xmlrpc_decompose_value() handles it for us. - Update the rpminspect(1) man page. - line-buffer stdout - makes "rpminspect ... | tee" behave better - Clean up memory leaks with the Koji task handling code. - Add a SIGABRT handler to rpminspect(1) - bad free() - Change the task member of koji_task_entry_t to be 'struct koji_task *' - Skip shellsyntax inspection on source packages (#79) - Fix set_worksubdir() TASK_WORKDIR test (#80)- Drop explicit versioned BR for libmandoc-devel- Fix a %changelog mishap- Complete the tests/test_manpage.py integration tests - Add xml inspection integration tests. - disttag inspection failures should be not waivable - All RESULT_OK results should be NOT_WAIVABLE - Expand integration test suite to support waiver auth checking - Improve forbidden_path_prefixes results reporting (#59) - Add a HISTORY file explaining a bit about the history of rpminspect - Use lstat(2) in copyfile() so symlinks are correctly handled - Fix a problem with peer detection when comparing single RPM files. - Stop setting whichbuild in so many places in build.c - Two hidden bugs in inspect_elf.c resolved via the integration suite - Add test_elf.py to the tests/ subdirectory - Add elf_ipv6_blacklist to the sample rpminspect.conf file - chmod 0644 fortify.c - Reformat a line in get_elf_section() to make it more readable. - Add forbidden IPv6 function use tests to tests/test_elf.py - Forgot to add tests/data/forbidden-ipv6.c - Add test_elf.py test cases for DT_TEXTREL on 32-bit architectures - Use headerGetString() throughout librpminspect - Add some missing free() calls in run_cmd() - Use string_list_t ** for user_data in elf_archive_iterate() - Add losing -fPIC on 32-bit builds test in test_elf.py - Add get_nevra() to librpminspect to get RPMTAG_NEVRA - Do not output Waiver Authorization for RESULT_INFO results - Call rpmFreeRpmrc() from main() before the program exits - Adjust how and where rpmtdFree() is called - Use the GNU version of basename(3) and ensure we don't use the libgen version. - Fix forbidden_path_prefixes check in the addedfiles inspection (#59) - Add missing free() to inspect_desktop.c - Simplify the is_valid_license() code that concatenates tokens - Simple Makefile to drive different parts of the build. - Add the git log to the release notification published to github - Fix error in the 'make release' target - If asset ID cannot be found, dump what github returned on stdout - Use jq(1) to escape strings for JSON 1.2-2.el81.2-2.el8rpminspect.build-id0d0fc33ca8f9b39c9094ae74ec54f0c24b9c2c3brpminspectAUTHORS.mdREADME.mdTODOrpminspectCOPYINGrpminspect.1.gz/usr/bin//usr/lib//usr/lib/.build-id//usr/lib/.build-id/0d//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]=0d0fc33ca8f9b39c9094ae74ec54f0c24b9c2c3b, strippeddirectoryASCII texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix) RRRRRRR RRR https://bugz.fedoraproject.org/rpminspectutf-8c0f1e018058a297e1ae5d3f9d9efaa6c0ffe17ec86067273f5577640e2aa3e53?ÿÿü0ý7zXZ áû ¡!#¸‡,àŸaAl]"ÌkÀ%]È7_Páf†úê&v¦aDº7]?R[ºŒ·¦½ T·Õ)à²&.óX«Ëùs{Ç|g¹,yíŦÏsÄ,[©¢œÀüQ#ñ�–ðô.àgÉ Âj¨qæ:ÿÂV1ä$ï ¢T°ZÈ?¸å3 Àühcý@¾û¨¨Ä`àן Àâ›ñVOJß®[�îT› žè¥RMw__«¹¯@QÀ&Jj7ߦ╞›†ÍÑÂçÌ»LÙ«�·pšÏ.E]¾éµ”øâw†ÞxEÜ#ì¥XU‹n ÁzÿM¶VQjGG36IHÄ'æß”¯9=ï]Óª„ˆps¤§SJ‹×Ÿ|ª�«Ágž”fRvŒkNÿŸÍl zÑåC‹sË–•»½¸81¤ ^¿FüW…¿5‘÷Е^Þ�¼œ�Å9Oi€?Ù¬ôˆì'ÙØ®eEoÕÛ­,m܃BðžšR #lITóéuȉˆ!RØH÷§ä ½ø²‡½ØB�ä !Ý#ÓŒg£ô‡dƒšs§O"*‡üV|ÿe-+¯ ŸßÂöv¼Ìv?Cíì•'¥0Òƒ¾{®§+AÇYÅä/�P<,5ÍÊlµ—³Fª½=Yž·ë ÿ êÂ[•âP]E±šh½yò…Ç¡u^X×ûûfµ#Tܵî_†¤¬r|Ý% ]Žn„0¤Å.rL™tÞ¢¬¥õj¨ )­ôê… jµT¥Éˆ·½Jø±nF¤a2q�—©w—t~Šˆ\Q+bŠ…¨¿ï‹øfl ±çø@Z1˜>›W¦ ±ßÚa¯-„/æõƒ7‡eIQšúØêo‹;HÌÅL¼ �YDQß² . 2³ÐÄX‰ðbéËgdÑ';Ï=¡â#ä-N—:fJŒt[_›!‰ÿòñÄÞ�î|î¬É–Ë]ÏÞÆùyû àð{0À ðìÔÖ<:Y%§]gâœP_R‡¸7*¢Ô `m¿îûÀ ñRcOi_,@b7_û’¥v¦°d£Êµ±›²È'K}jp83†Õ ¼¿ÿí•Qw�õ&>žÃEÅŒÛsøýþãÕب1¯äçöhz\‹�†9,Lq•®U{˜½Û"̵RÀœ¾4 ê#ùÓ“EOÑ«TÚùL®�<§ÙŠQ#ÜfËL/Í.tS¿91‘üaOÙ]É ÄàÀDƱ ö]êÕ ¯-2ÞØyíÑ’›K”Ú°ÇY�·Åéa“MÑ#ÆÄO­ñX~ýQU!¯�êÖ‹ÂG6·>ãø<%ÒÔÑ£ÿr3Þ¨T†A£Xtt‚HÕl"ÈHcÉ5îëu™@^®Ó?ýª_ó1ó"�‰eÙ£<&“4L×¶jˆùù¸‹'¤êNå¼ Š”ä9,å÷Ï›,U{ŒRµïVð¿| úãÁxÕl+ÒnÙ¾\üÔÀÿh8DùXa‘çÈÆ�+Öû@¬È­e‚‘–¢\:ƒ tdÛ¹ÌlXà} "j†±ÐCvbÓóõß{Ð�I<)ê-‘?à ½þ4ŠÑÛLJÊ`|ÖÚeîéXŸ¥Ü><´�´ãJd[™Xa -81§¬ñù>qRÿÒš¼ `áî^¿¬¶cÄM»»q¸ÚïÞ)ÝÞãâ/{‡]/�˺†Pæw ëОUq&©>ûéÑw]Dt �s‚aÊÊÕz‰™t$�¼Ã4ÌêÇÄ6¯�^»8¡/+©oÍäóûÞF‘Ý#ìô3íÓq›"ÊY…ô9(®`/7…¿sÓÃ>´ðEέãõ ±Š>p"íÉ ¦Ü¸kóÕÏ&P·ßwìyôÝ Oo¤�+­®@µõï‘u"~¼N¸a²mO™ÏvÜÈ{ãc´d´ã?4eúÕð¥!vذŒ<á(ÚS˜Öq¿d Ûø“ .æ¤ï“"¡=¯\˜ÇÀÕozŒ:³aí±©É[^zHÜÝll®`¡?úî~¤ ¹§"–¼ålõŽ6z�ÖÜÐ*Ñtp;æ+µy|ž4\'¸Ãwð¦?eK%T^;ÓÅW?­ê¦å2ßÉ2N/Dè>2E794}-ô‡Ù—EÏ_%¾CÄçÕÂýLFÝ@~o»î«oAé5[%þŸªå>Gù¿°Ôn¶ËÆ€ùº1L‘EÂ×t�>/yïýnAv”HÛç £4¥“µqR oLªï{ `ÚWÃ/¯Ž ˜o4#³(0 ÙÕ£§N¥¿z±~CØ'ã[X\ú,¬'gš,sÞéÏw¹Ø˜C0áÓ@�Üèy�༳  …’®Mÿä‘iö¹3ãçíËüj’ïM‰ƒ¹T³Ù%/ɾƒ�.Ñö燃H5™ º8ÉP¦0ùÝõakBop|!é2De³fdê)ü é”ämÍï7à\(‘17›õh6 ü|Wú;A]Y�ÛONÌš£ÿtCè–uX"Œ< ?‰Z¶I�ÇqqßLukê˜ò•cÚ÷mâ?·¤'žwyRy~êÌkËa*>˜0¸º–žy>cMq‹HLfºšÒùÞˆðlEY;mô H@îL*rÀÉ üâñäÞâå- à’K(«W‚�1a=ðLMÖ{q®rm;/›C¨Ò‚”èë]E2¡ÃQá‡è1–Ëè¬.©Ì_`‹}l¥¯4£ r WÂj3„hþÔ6F1™†G½¸,óÃC «±;KI°à¶2¹×¥Vò�§¿ý9) §øµw棗8"õͪ„’b'öüÖÜyÖÚ¡:ãY^b£¤Cø,|�=Óù;ƒE42.h)Hö.Nj3Ÿ�Š«Ý¢¢xƾlÂÝ‘1»ÖD±3$ r„¬/\=Sº…ø¼�™@çä0Y�¥´-ƒÁ7´Œ#%Ï]Êdœ®&øâ–±V“çƒÜ Iäê}ć÷Xæ!ƦÐUfW]ÑûöŽå›ŠŠ Kxç, ç,3Äÿ+/9�:Ó¯€ƒß,½?Ê™†õêÆ1êZ{œ‰—Ó‘€Ó|Ç@\SHq™ƒEÓ“ôutaS.P N—6TXýB5x‡o¾[`Šç© â<ÇÅTl4è}3ƒ—¬(Y6ϽHoðÚþBc“”GTÚ_Ǫ�SŠ81ù•-/°ô�û3û&ðpÛ¿I(z¡ AÚdÄGëò²‘X,Š�P(‹Ÿ«fÃW‹�p<«ì%�7zã]*u¿ÙŠ#QÛI|qÛfâ-dÚ~‘ô¤íþ5ö£‹lñ„./ø»ÖŒ’Ñ_3õ”g*|,¿ŠM1gY´Ê½¨:ŽC�DÂðù«²xýX÷øÞ(+åI€-hnœô¹)Û>£:è)]œ0Ù>Z¨¦.LBI晵р›£Ò \Ш¹Ú¯2ÛÑÞDc>ÌNÝ9yù¿úµDÀ”5Yh:lð,g•µ¢eB#Á?•À‚FDT±%­ß`gï“^±ˆ‡,xr:t'�¨Wùß\òœÿ2¯ülBÍû B¼-±™¼DP›³¥ösk:W. 4V|ÐV +þÊ¿ ==ð7(õ5®:”zÚ(<ï@I��-È–Hh�ð·¹À'ä.4dÐVØó`} ™“à›Ø±©�¢’qårü¯F£M~ã`¼óÏ´öÀHý—ï�†µÿɺ2[ክ_™–ÔXãX®ñ±|†ïPˆ�YT(üoˆñç¼s%ZÃåÖØpÐÏìÞÕòêok*?*Íd2HˆÊÅd¥i…ösˆä,¥Û~ Dô” »Õ½–åÈzÃ"²™·Æ,¯Œ‘*_Ü)¾Œ¿4…�bÅ×Þöo¨y0ó]«/^’IÚwïâŸã€­FA©¼ÓJ`›ZÇõ1R‚j•ý‹†ŒPÒ™"e—iêçýXßðÌ’fXEüª�¯Ù!ÎE�ò ôúF?«&{y”¡ÿÜYÔ°l_Qs8î¡:Ç ¹p~ôÓÚ[‡Y£ÐV͸¹åe÷Ÿúñ)[yt-Ôdõ·9™ÔÂëø#[ä¾°ËIœ” -N`˜g¬÷"0SEB€¡ð–Ò“m L6ª«Á •¼ÝHŽ9ý’V.–¡.¨¹‰DN Œ 0ç6&“' è>Èb@" ™—öžrPHÁ÷þÝ�5H•è;uΰà6ß0­få\‰0žxHÁ+—D~µTý¬B¼kÀ–â Üa¬´»�7á—dmOþaY¯hMVSæ"Û¹çë \âÖdáî…4x¡Ú’B¸ÖÛ­³0êæs)–Ç <¶p@Ü8ð…²V!×]´ Oš'¢ÕÔ:Òµ±õI:Šü¹àŸ¹wí\ _€�-• ›æ%äGxˆ×z¨<ö¸(5|†``~Ät Â,ÃÖ‹i¿_^Ë‚EmýÇŒžÔ3‡¦-Käì¶��@Æp¦�¿8šœ»�´¦Ý¹‘a;±C`_ÍåÙz5Ù­«êã/½¤V”Ž}$àƒT~²?³=’Úž?ï Ð’`@4�¨�ø“{ÀY)Å2'Û&6iÙ�+Üø;<×@ùör*™z×qÄ^@‡5”šœfÿh ÐFÃò#qÊR‚²£ªð¹å;aåòø ¢£Ža9CÌ 9vQŽIÁ~@7,·I´ ùïU­{£Šcä Ž}ËènŽ N�Ú�ÿíïækÜqŸ¥ø­– îÀÀ~ù‡ °‚¼Ó婸š´°)t@‰äÞKí­–}ëÍBøc‰c‹?v+v!¿–:¾@›ÐëI е±hŠ|/þxGäւК£î?ê:àÒCÍ› ÉGêº)ß\wd“Ó™€ûœ¥ùB3ñÎî¬Ûç¡=†ÈÅŒ¢E ô=¹bÆZ1š0\(~_õ)ݳXÕá.ãdÂ9øQXV6b+&Ù)6ˆÇ=:X½ƒlƒ†(¼¥)3Aûan4÷¼Rt–¨/[˯+€L|õÑ>BûúP‹¬öâ_ì ç¹ôh м©<(ÓŠôi~�óãg›8e_ŸÙø¬Ù碞‡�?³»]Ìnå­jNÂzé=—k;p.ÚªÅmÌWa6_&lQmtŒAÝçí4ã•§�ÇFÅK onÚ}áÒ‹(³íþp*ÔÑ[¯ƒŠ7H/ŸÎ[pXŸäÜ~áÎû¯‰BßBç(�¦„ká�컇"Aý j\ù“š&Ô}ŽÝ$ÖÓ&ßÌ_@•ŸŸ0ê-š·§2 D¼}Z(<ü¥>�:v*Dè©£öçe-¥Ðv¼LÏÇäÕVèdM.Ë]B‘‘úÖ’.béôÈ5¬­³gé�¥e¸ï3Í­–îº7ê@t"ºDumX½o,TaUàpm^íø§lPÓs®ê‡Ÿ;üp�¾o±f{£¿³Fl†jÙwÅûõ‰z¡¯‚�¢1K@€-ýÀÆS·ž»z‰eãÉôz„ ?x´ÜÍ’¦Yºˆ_�iæd¶çÊÅ5QW}fçùžö]E zɾ}j Íéy„hÔN¨†qWY´¹LΈ2Þk|®Ü¶)~Ý)G“T“ÐÏ×èå‰læöúUª™‹áuãpóëºW»Ývƒ¡1Í2¡â!éï¿æ<Ï�UZÌ„Ü|˜Ãéþ(^cãrÕIýâŽ^ÜÓÒV`™†6â]ÂУm†�&¼Þm2Ùã[9:N%ñµß¿lós+V~ÁbY–Ë[åÈ +݃ø²QX¨�ðÕó¦uíC‡ $Õ[vz^¢-�˜Í/ö»= X/FÄaXØ_ NÔÇ<€ìù $´@È}Í“çÛ{! !2ãUùY‰³j�“­›ú1­¯¾ü¼òÝ~ØríyÚŇ+~SÐÀ€;S ŒqÁ9%/Nu«­~Ú+lï±# ¢ Á¼=+°baƒÇþ®khZ¯;…8œ´B‹œ×?q `±öÞ7gìÎ{­uÈñýÀ™'ܰà\À¢§³��. «°ë¾|½ni{èLª¯nÓ�s¨^è`IiçyRZ{m-邎õê"±âçRÜ¿„b#�:c¾’´¯Ì„O#¼±‘Ð’¾$uü~GÎn„ïhÏà¨Æ%÷Fk¼!¦ÔÂ÷+†=ÂdrŠñÆð£"ÕáåøRd_ª1ýYŸ½Àã­æÑÖc賬=Þ@šc=Qú‹éw`ÕH§ÒÀjxj#ü7…£�3vœ{\ŽÌK{ädQ¨g4ï=çO–/cÉÀ¦+E�µ @ŒC¥À@¼Œ‚.3p*³=Ñ ÜºñÎ܈eùŠL•¯ wž• �bÙ"�ËÐÒ@d7jZDð:ØTÚ‡k£ÄSæ¿GE~B%;Óc.Y“ݹfÎöÕ*‘ÿ#&W#2\/7JwÊ[ºÃêžB�«íaSÄÖ ÊϦw½ÝµˆèÎß]}P 7�óø‚1óuÆN î:sœx\¤¸EO&>h+ÃÏžÊÅê÷U^®Gâ,ü!µÌÁ-òõ.nÀÁ$îìÀ­,E›B ?› óÙÛK]´rB‹9\¯ äø0[á½>bú¸Àz ‚;ò�ññVõnôUgÑåDŽStbÊUÉ�ò¦›ŠÇ€ŠE™C; 8�Ö\äZXÿCÌ„€ê‚ž¨#XEùïW_ú#øOMÑØoþï·¥%ôëtQ+rׄ'¨¢¾ *ø 8�|¨ØæúÏ6:ƒ­�lµ¥5Á®Ý834 @c<Ø%¶ÂÂl«<Þ­ƒ÷%w³YH&3…Û0’=6ôb~õ£Ya×BÇ/ß¿÷Eß9C¦io(µ{M9Ñ´Õ¹”Ã…O1õûý·Ûá×Ìð!Pf•5Ž 2ðñÅ5kˆÿr¸}ž¹„)åÓ€ZT©…J�F‘UkþQÍÐï¤Fó9ûŽûNmð{Oöã†Ðun§|[yœJÇ„ySŒ.N{ü'° Ü8­7ùìÔÔbº‡¨XŒâM^dØ,�"ív;Ïi&¡óQܨ�æ*4R©~/ÙŠÊZ›_›K8JÛÿüDñX­é™ÞÁ~y¯ØagðÔü?R‹ü@tê¸Ë ”L–?L“6õ�ÔºqRzˆüN™ ƒ¿ÂnOƒ]åìœNq­£Iû$Þ}Ö"ïÎrd`“~5гEÛ~‘®TÃNm%Öà Q¦ÕhFêvl¶«ƒ©£5̘’r¸G‚’hØ–uC©r$iç«æ €�!âÚŠÕdŽp´¥zMÞD¹qåËÙ*Sp F¹-ϪzíÌ¡joº+6ÎLZ,)UQ�&Õ�Ô¯ È^AE0iŠ/†$pðRWzÄåw»{tˆ«¹¬~Ì6¤]3¥Çñ±•Ø7MíBëðD[2Ýkɶ‰„CRk6- GÁ™µmi- e??ƒ¶l¹b9‚ÿþ·âP¦ó¹sœ”‘®¬‚¡¯š5“4›`r¸ó“¤þµACf„xB0ŽÏ¿VŸCÛ)Jò!óÎ2埀–¯H©íêŸâ… FÃq‰ß2fU̬šH³«�‡·±‹ 1õ.sø ¾PüŸÿͧÈo»¢ª™Gt;<œÀ†Ð0wˆd!󣃜2¶­Ê¨[„TwW¼H¹Ô"r�Ê£g¡Jr’lìHôïhu4Žv==,ãION›dÑ‹d€Õa·_®}rÎjy÷†H5U§òRø[‹–Í#­¬��¦üèª;~ øô'û-�^Aµç‘Òî5ruÏþ%Rô·!•”O$Rê�†f·GoÑHk=öKÒ‹ ¬ª0WïCJÝ7L¤ÊBЄþáËÒž[gÇÓ}UŸT]3§‡^2fU[¬š±¥éw‹¯6“ ¾¨ØLà p :š¦‡ª`êÏ×Þ»ñx.ÜÁL “wxÚt·¿“ÜzEêÞ›èŽÄ«<ñ)þ^Ä}Ó+1`´{ÆKc 7e¤ÿYœJüæÇ8D¶w‘P‘U8j–t9È ç<â}æ@†ãKaãṲ̀ŽóJ&�6ü‘ç+«=Î…¦2¶ë‹?’_zv†ü²ßN‡è.¥ÏKÆâº£x1OK¯Ùí1JèôÕ᎓w˜Û"÷ö=é—ro_ÿ—¸}ƒÞ|rúu )g•*/ÕnÒoñ'~�Tžå?~S$ó‰Që¿ÇpÄ»X´œ€D¶”m#µßµDhŒvñé×ÔHñ¯èÐ¥�^•ß�öoÐü¬tŸÆùdgh÷÷3š¨¢€íÂ/ªî~ÕlKÉè>îLA^h«áÕ@¹‘Ö— Ù꽇…%½�D¶Ò7�ãHùÐÀTðžïŠÒþò¶>à–£¯²u+` �;Nâ« GvË È»ëšHQ÷’TjPÿö¥#Ï‘Sª‰6 ù]ˆs‡Ê©ïæʪ—ç†.vê¨òY= ØŒ°Ö•´ª8…V':]{ÜIÆõV·Ìb¸4ü¤+r'p¹’‚oôI:ÈkÖøø€Ú¸á¹eÈè†*¾Õ.‹-¤$k.Ôs,šÌ5ô*ÅË)L>ämAN Zz‚¯©ä-Äly%ìR¾”ú‚™¢šŒI?ø…rúLjí/ˬ¥à^¶º3ÅPþx×YέeíÞÔ=µ�0ÕóåGÆcùœ*רr:;Þ6‹·§Ì áQÔž~Ïß–ó¶b[l²ž›Åšý¥u¾éЬbÑîÆ>Iês?-»]ŸWH¯|’4ù£ÌÀ}—Œ]‚æ”,™kñ,.¤ ÐìÅ¥•½#g‰Ì[xÙ†–è»Da§VÕä[ ξšH–@T¦É*Áèù[8úŽ­l·—qìßë¶²•÷íNUh˜ÊA[e>äµ'©ÞAx}OÓá¹Zç©9*<.¸9#jÂ~šë× Iï 2Þ´3ÌûUˆ·ÏxÚbÎ×W÷™|à|β퓮ÈÎ?¶™ÎFï7‰ñr^¸­ “¨×å&c—=º¸  ¾"ÎeÙ!óâB‡”R‹ü¾å²qò°ž]¦¥ ç™VË6Ã)Šú�­.L>§|“Ê€¹?üµï·KŽœQÀ?¸¦”á„à -AÁÁ#0¿�ˆ�TÅ ]†!ûý‘m´ì.¦Ø�)sn,pð ŽŒ8Ë({³÷G.Ë‚aÀ�âî‡C«Ü"$bö²~Û N–gnQuÒÀìQf¾ŒÃu¸—¿Œì%}²tþ«¤œ[©rë7£I6Y70ª lN³�¨“=Ì#Päª 5bMß�5nðmÜJ€ÊZ$¸¿Ä÷Äå¤6ri„8²¨f‡‚£-c4Üi|sð‚Ìc7„*þüÕž§\%Óƒ`^’? –¦YòploJì_ÖìH ³®wÈBõ�AÎá+ºøeóO _áž>¥Ä-ßÎR‡d„©‹!#LÐdòC�#ƒMyÕÆåjË8ÞÒü´‰¯-rI >¶„GóÙšQ�•Õ Š0úÑtÿ¯-Ì^Û;SP¿éRß� D¼Û¨•Áµ‘ð !uÝ‘hž ^€ Ø…sÿ­â„’ÉÆ¬ë¹Úî|ÏømÕÈ÷$dàøGs ³w7|pc›±�vªfëà(@{í‚cm ¾Ucì©õ× ÈÜT:MD3Ï— 2Ç&¾ *¯|?Øòù ︟.«ê~—Œ×Mõ4,V€ÃÛ?z£ß·Ñ0ÕÂ7 '´ÚÊTÂ#ÇÝ�W"#!õ!Ÿ>•úV 7&wžÇ—ÙäMîߣ+`ƒâøV¡þebÛ FX$(ÔA$¯õ½SOÊ⯣Àû}ñ ƒ´¥Èá¸2ºo Î¢cñ‘™gó T!ßÙtí?q ɹ�÷×IdC9)Tì6n„,×U‹¿…ÅDõ`eF¶ä·Ûlè—÷%1·¼«òd2�s9e†À@fxw3HbÿO8鎎eÙ¢†cÛ H>S†m&štšÙÂdßA99n�ZE©a¤>ðìPúœG-˜­è´ÜöOv,å.!ÀÒâù ™‹âšvåj6à7oËeRç X‘<ªýLɨÁØ#²âúuiè>×ÅæPÁ´*‹„‡Nòij‚æŠÀͶ¿£f9 èXämh~Z‹/¶O²àÌK̆p_E‰ ¦uÇk÷*)?ü®Æ:ïycÄ©W>eì‡ÌÖ †ñLÈ7Îcn:½\–ÇPOÓç¦_&m‡éŸ^~µ8­X=|“Û%7© šÅI™ÊtÏó;”MÃ�ºÛÝ5¢k‰¥[m•NLÊ�ùzŒË³Þùˆ'Ýr&•ûçÜ\E¿±½ÐÝ]´§€%þîDSˆÚoeqÍPÚ˜¦÷+µŸK‹‘}½X˜ì“€/ù†i>D�3cíB‹6R A6*.Â�>qAÜ1¯þ¨Ù V*øàÍ ð+ÑÑWaö*V�„ýqZ$„÷ˆG�¨sx ðO*!Ñltî@º‡l¶íR×Ųƒï@¾E¦Øät°´þQ…|ÃC?EhΑ…ážpžÅñ¨R'¹µXJ/%q£™Ç˜°’p}‚Röý¬h‹GÕÿÕÍ€Û”(zÍ{Mç*B]¬Ø žâZ0—?ÑŒô?22$½ÈŒÞ}ÛDFv ˜Á Ð#¶Ú $×H,ËV: ™örà"t1§³Øìb‹ŒÿÕ»Ðs3 ïWùU稈+”ùTÞx­ ¤YïÁ >µl‚6u¦¸ÒE~ÿ©}L uR0\å 8 ÷’û2 êGô£vÎ��ÿ:‘er¨u2€ÂT˜õ×6ó(0±a>ó€øÌ·¿åÓŒSþ~üúÚd.®•©Ð!Qf‰Ÿ}q\w&=“Çù§rßú×D¯ŸêØ…£… µ·,y”áü½c~´“e¨�ñz8 P�kÖw<ø‚ûê4ƒúžF+wˈ-—ç�j± ˜’EáxÆ”þæI‡æ5_áÿƒ:³“]n2æYêÅ”ÒY¿¯^d"{%QŠ%D<�ì’iØ[ni’ÔÙ^¥€cÊ Mí†}.J¡”î�mǰ¾�ŸŽ n±}Ж¥ �­^ŠêÕ@ô�ÇW¿˜õbËâœÈŠØʇÊwî�å¶Ì~”Q°¡ßIªÙ’ì#KA’¼[8²õ.{}�’£2Ú· W6OÌŸ†î™ÛT®®ÚU¤õ‡O×ÝþÄÁ€MÔÝ»�’j]?LT‚qÄjxÝÑyX9$ðù÷7ãZ"±IÉtÃNðÂ)yàÃüˆ�hwÛóà³EäÚ1nzy2tN_Ã�x%5åÿ[ßêàfÁ™:¦m\ÝMAyXô¤É’ç$‡ïK±qû È>¼üÁå? dk{Ý—Yâ:lƒÖЬfos �:ê=†�Ã'ÃkîG„ÁpÆ�-µ¿”@ä—Ÿ·ÍÐI 8¢v¹wѥ˲ ‘àeí1[é²,™ïNCÒµŽ@úq4á©=Œ�¢DÝŠŽ)­¥FEJê[ʱÆzé<Çêy’+‹�V2ˆˆMÞM£š"&\”0â€ZƒGUkw]5LÈ…r´—ìðìôcºqçCôݵN¥PªK”At=”Õü—Î|¤„9‹N‹Ë=8Î>WÏ«L²Ï�ë�ÑÔ Z=Ln�Gq¥õ0�°”DlóˆÍšn�úö'§8²ä<ðFÏ [ TqóJu ä¢/:cAÄB,!€^.³`~9�Ã_áÉ•€¨<ÉM êü¿�Í–Œþ©œ¾snr:ÆFÇy­›:Œe¤ŒTò Ä™ Æ24løÖ—#–Õĵj7ª@ÆT©&fKPZî…u� m 6kbð qðúA¡9œÇA‡Âí¯ Š“øÍµj×:Dý…ð…Ó✩Ù<´*õf¦Ÿõ¢:})£’°�äg0D(—c˜eHVÁ|ܨÖÓ'ì¿-ŸçÑpƵ¥:ùƒÖ>ìÖvfÊæµ{ˆÚ±f¿,ðÁlæ2¸×wAw°Ž´®hþÀK‚´n Àã…V µŸ9Ô>z+ÇÅÈÒà?±qÊe£4i^U=Úê¹B…éomuH aÒ$‘åVÃGi Xõå.ÜKã5ÐçÑ^�ùÿe<L´Â†QËGOd©UŒ¹ '›.¡Hè„F„wF´¢ë5w}Þø¡Ü‡ñò3ŠcQQ/â´‚DñÃEh)Cµf‰�D¥{§×í¯“™;£¹`²äè6ÿÐ@v½%ú0TâMhCE¸F "µÁšcàÏãÜ>Çòˆ07K¯œ)Pñc›¯o7̵� È�Jà<¤t�h}„€ Àá«?NŒ´#;h3ˆf˜ +Þ ê1�XÇ,,£T¬ïá<•Á(\MAKÁòï Ýf¹aBì'¬ k§j»Š—&à‰ŠÔ,Ëæ"„w®¿¥zO··ÁGés6¢¢Ý;¹�R~kïzl>_âÙ|¶�äéÒ%3$ßÕÕtsNó"¸y¹èX2‘ˆg ’FIúp>Ýܤ<çònU©/ÚTBƒW È/È´]*vq!^%|€o­�W®÷iõܰëÒ,/¶jž‰Ò³§01͵»Boh–DÍÕP@–³”£ˆ‡—²lÐÿ9ç # ‘v©MT�…ÐLöD'†2øwþ6ÀMÄ¿¨|œºÆÜzã�±š<®€»Eꤪâ3o�Ó0JÐ��f7·|"%T@œu�êΓÃæJ�–óòfì‹ü—e_‡X (£÷ÚÎ@‡³‚Ÿî#›«‹áW¢”òîÊìsß’SÓžþ¨q(ìˆe­ ¹íO†ˆ 1Ã�Ý-yôR¥¸µpÍ,r@DØ0^©Ê{›*I³ z²ùO΀à¿çÉ&H½ëMQYb.-æ3¿„ÊîNóqÒ‰Ô{èENÙuä+sÀIÚÚT�‡oófˆBB¹h8ã Æ^ºèpˆXZÑžý뤱œß�–Œ<Û@$€;–K{ ¾£Ç‡crÉ Œ1§ÜúÀ€€TçÞC7WêWzP½£[JC”Þ€/FÍç¤e웑Ÿ{™kæø{¬ ÆÓS‰×²Å-q@¶b´ájÒAfÈ^âÂH’æÎú„àȹ ƒd¬€½1Rd¢X°Ý5ÃFi^o¾* …ù†rð¶·˜×/bXÌÈ·ÌCûǺ‰;<'�c_è‹#:<.àz…@âà1½Vy¬!½qv`«Cï¨6æ¿KÀ(J´#LmŸr³ÿ°mxëÏ,‡¤š¶d3œ0ËFsÇø(xgPpëbC½€;ËG'ói|›È¡0 ~�@Q]½ANe^³DÝy²bçCoÌDÂ~Y}þ—€v'ÃÔö…æEKs|Ls�è¯ñÍîÙ�lL\;Z6{øö‚æö«ÞOþïüLΚ ¿>5 „ y7™óŸ <‡|“Öþ6æ¢ ×\o_ßñ6š½°ñ<ÐQj‹…ò¨s™!úBj¬ò\R'’ù<Ô­+1ÝAvLF uÐ5AÒ%¶Šñ¿“²¼ž×PÀÌRÔÑaû`t[©ÒþÍ,¤sÀT!m«ÞAŠe/‹qô¹Ä¼+’~× ùFSÏØ â¤EFt!˜‹5P‹Y†ãWDEc¹{éÁ¢ìÉÁîÖåçLYáÇz–XüFu�õ{•Ôþ:y@>•­¡©’&�Ñ©Ø7Ìžªè="4}�2„EoÙ%¾cóMËREú”ì±tPI7„>Kc�%ÌèÌ-•ô‹kWŇúT å(ްç@Xðœ‡5Œm0¡þ?~˜9d3èYÌÉMHÜk3΂ÌÃÆeìÙÖ"¹÷øótcQd«ë -UÊ‘à ŸÕ¹-iè8·T(aô\.ÿ*¢;‰$µBИ/ÿŸïE¦oÜ:o ‘©µ÷™�ÉøRA^žL? ùa1ŒLJ@‘=ïòž"vH�ÐÆV0�„<^èï᲋ ¢8_ž—´9}ªðâC>~`’®øÇ™Ô9pÇHý¸ IêqNna#žO]Î…ófç(o. W;vòŠy.w#üu)ÿâà/ÔÖg�LŒ&X'ÝÅ&c÷Zºæ;·º³™Zþ_Ùu%ö~ÜDzÖ\±øÂ²"Dw¼ˆ$Œ‡¾àsÔDÕÿ>1mæ”$¹Ú.¥”ÕÃŽ%êÝIýUíÁj-Ó,²8ÛF¢Ù_í]úÆHük#S>¼ˆ\›°81TrV‹Cë]ÛFÄ6+ûl6¤�K)-õçeÛ3ß|ÒÄg[MrÓVO’Í7²¤LþMI�¡RhÿÏÀæ‡A=<ÜF>yÌxÏêÀY˸/´Š6dœ¯�ƒC™ÌÍïü–±™Ð ßDeüK*yè|r†Dÿ ¸Z):E­ÐĹ¯‹Œ‰É СWÛÇÝ vê·SŽ=R%9ØŽ¤Ey$ÍVŒUZX÷´|5í.íl’¸‘Ï¥Ãgx¥úIt¨Æj³ÄÌîÒ>[ÝŠø¼IJ¡Ú³H9;–Û0…kyØ3©_±y?¸z¾¶þ­{©[¯RÄݽê!ÐO�·Tž²�¡ uÒ÷ÅYUÐ25%˜^�Üë. ~_1Ó?ªÕPëóRQ*õOÐ}æÚ©jw�ŒÃgõÊÙLðˆ;â¹¶ÖD”ùGöÂ{�!æš91ù;#Þ†­*iúöd3[!?SâgŽ4&¯ˆ|u=ÞË tŸ¾¼›cžò抨•.¾ŒžÞ[YjÚ”EI\Tâœí]6Íüˆ gÃp–‘²óòxAKé©ÿ/��L_Yf;nÏ�Üûû6ˆgXÇd›tÉ{ðL‚Ý, Ä×?vD1>á:ÙEr)�ærˆð’UeÁu·¿ lâÀ;2{tŸ¶CK‚±CÇŒçåä¸*ÈŠaûDT­Ã*�ñ~�Y% CS€GVŸ¦¾EÏxFµ‹MQ×hJ†•¨ŽIsÞ¹\-¹ÕiÖyÁ‚‰YÄ¡Ûí,¦&­¢2‰Š¦ü+K‹Æ?^ ï0„øÙžb;®#…Mn®¯CCL áe B¹ê3r{,ÈU±ã¨áqzDvm’ïßxÞ4żè¹PEkÚ'ªª}æ>u+°ÃY’´Ì”¾ž„ {ïN/z äôê$ˆi�K6&¾?èÈíåÛUÊŸòÇp;È´ªÒaœûN§QEŠCI$ÇøwÂPÆ÷�œ{™n`¢]\u‚Hªå4q0 Îb™gÓ†–Ìó§¬BÑì“DO‚‰Ëvî�ÄuÏ`øŸ\T¹f•`O»U.{�m:ľÛ�uKêØZœ=v`$QÕ(J²°œ«+–¨ÉÀIØ�ÝŒêú˜¿”w¼ÔÀ4¹ÒL1N àã©[ʘ!Ÿ`Ù{æùJfO£mÛêRöã“KòZnYúê~ ›ƒÃäzlâ©!8mÆ*¼3Ϩ.³JxòI„�0šˆ½ÊôUA•QFÓ8ƒ$Yå‚5¡AV“bZ¨-!TÂ(]•ÛL—çû|ÜÙ¹<¨qç=ÇE …Ü“.�f Î»í5îÈ·Žwzã‰~T ²À~î+Æ Ó6Öõâ‰g$ò¾s£ç�f„{ÈÂv^UÉ n�N\ÒúéÖ…"ë ~ç·>Ÿø±ˆŽŠ‚ø‘Š>e‹®Ò²Åi„‡—ºU÷ó>çî°-@ê1"ïû"lµV­Ÿn¾H ’æun{¸<éÿƒwÜëì˜3¶)\q­‡7tXäåz•-å]QØ»HP¬S!ŠkA¹€ý0‰#ÓR-íoO*ú¼ QÙït$ø*‡1ú ™¦�´¢m5žG03Ösì²`:n–H¹¨�Ýÿ)ÖÀ´€Š…Á/$vämÆÅ¢ºkêet d˜o“Ñ[Tä€ñ]KˆåRÁ5‘òŽÀ Q€©ïZ.ŸÀ½Äq§s’Nß qù—„-í£µ¦îj¡ìr­ {!¶b„Í÷‚¡†ɰA€å9`ê1nPâ|x¯ã»\x!™k¤!Q7KC@Sퟌºš+zÌ�hˆ©ö†Ç L-XT–ÃðĽÉJ®ŽÛD`‚Ó�Þ_•4_·R–û ÞíǶû,­±nðnåyfqõ¬fk‡”K?ó%& °à¹5Ef¬0×døìŒæ¬ÛZ;äåÆ[oðp¸ê°}_cóª5¸ËÝq +QØ?ÙXù3f¦V‰j”Ðr8d9„s ¢i'¸øMÍ1ªRñì”Ö ž‰#ï¢c½ãûS�¨V‰•¶å¥ÐuRgðwd¶Õý¼¹ÿd¥[áüˆ¶? ²××\kŠOÏé¢ê‰¾E> —n«[;E°lÇ3³ã©ýXâ ¥Ÿ˜WV^ê!’2êÉüˆ ƒâ¾ÀŽ�ª¶éß YZ