commit: 772fdceea5f148d9bb5fd6c87ffd48f87ca93bab Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Aug 23 00:27:52 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Aug 23 00:33:19 2022 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=772fdcee
bin/install-qa-check.d: drop QA_PKGCONFIG_VERSION checks from 60pkgconfig They've been too noisy. We can consider restoring this with an opt-in check (perhaps by setting QA_PKGCONFIG_VERSION) in future. Bug: https://bugs.gentoo.org/857654 Signed-off-by: Sam James <sam <AT> gentoo.org> NEWS | 3 ++ bin/install-qa-check.d/60pkgconfig | 60 -------------------------------------- 2 files changed, 3 insertions(+), 60 deletions(-) diff --git a/NEWS b/NEWS index 87799bc4f..9cf67107a 100644 --- a/NEWS +++ b/NEWS @@ -27,6 +27,9 @@ Bug fixes: * dispatch-conf: respect (E)ROOT +* install-qa-check.d: 60pkgconfig: drop noisy pkg-config mismatched Version + field check (bug 857654). + * install-qa-check.d: 60pkgconfig: fix --validate check by adding ${ED}/usr/{lib*,share} to search path. diff --git a/bin/install-qa-check.d/60pkgconfig b/bin/install-qa-check.d/60pkgconfig index 20acaa7fb..f44ec232a 100644 --- a/bin/install-qa-check.d/60pkgconfig +++ b/bin/install-qa-check.d/60pkgconfig @@ -88,66 +88,6 @@ pkgconfig_check() { eqawarn "(contains reference to either lib or lib64 in wrong directory)" eqatag -v pkgconfig.bad-libdir "${bad_libdir[@]}" fi - - # Check for mismatched Version field vs ${PV} - # To be safe, let's make sure _all_ installed .pcs have a bad Version - # before warning, as this should catch the general cases we're worried - # about, while avoiding any pathological cases e.g. multiple libraries - # with different versioning within one package. - # Example bugs: bug #833895, bug #833887. - - # Default to PV if QA_PKGCONFIG_VERSION is unset. - if [[ -z ${QA_PKGCONFIG_VERSION+set} ]]; then - local QA_PKGCONFIG_VERSION=${PV} - fi - - # Skip the check if QA_PKGCONFIG_VERSION is set to empty string. - if [[ -n ${QA_PKGCONFIG_VERSION} ]]; then - local pms_ver_re="^([0-9]+(\.[0-9]+)*)([a-z]?)((_(alpha|beta|pre|rc|p)[0-9]*)*)(-r[0-9]+)?$" - local -A bad_files - - local is_pms_ver=false - if [[ ${QA_PKGCONFIG_VERSION} =~ ${pms_ver_re} ]] ; then - # Ensure that ver_test is available. - [[ $(type -t ver_test) == function ]] || inherit eapi7-ver - is_pms_ver=true - fi - - for f in "${files[@]}" ; do - local file_version=$(pkg-config --modversion "${f}") - if [[ -n ${file_version} ]] ; then - if ${is_pms_ver} && [[ ${file_version} =~ ${pms_ver_re} ]]; then - # If both versions comply to PMS, then we can use ver_test to compare them. - ver_test ${QA_PKGCONFIG_VERSION} -eq ${file_version} && continue - else - # Otherwise, we resort to string comparision. - [[ ${QA_PKGCONFIG_VERSION} == ${file_version} ]] && continue - fi - else - # Record a special value if the .pc file has no version set at all. - file_version="<no-set>" - fi - - bad_files["${f//${D}}"]="${file_version}" - done - - # Skip result reporting if *_p* because for both _pN and _preN, we - # don't generally expect the versions to be exactly accurate, and - # we want to avoid false positives. - if [[ ${#bad_files[@]} -gt 0 && ${PV} != *_p* ]] && ! has live ${PROPERTIES} ; then - eqawarn "QA Notice: pkg-config files with mismatched Version found!" - eqawarn "The Version field of the following files does not match ${PV}" - local bad_file - for bad_file in "${!bad_files[@]}"; do - local bad_file_version="${bad_files[${bad_file}]}" - eqawarn "- ${bad_file}: ${bad_file_version}" - done - eqawarn "Please check all .pc files installed by this package." - eqawarn "You can use QA_PKGCONFIG_VERSION to set the expected version," - eqawarn "or set to the empty string to disable this QA check." - eqatag pkgconfig.unexpected-version ${!bad_files[@]} - fi - fi } pkgconfig_check