File rpmlint.spec of Package rpmlint.16849

#
# spec file for package rpmlint
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           rpmlint
Version:        1.10
Release:        0
Summary:        RPM file correctness checker
License:        GPL-2.0-or-later
Group:          System/Packages
Url:            https://github.com/rpm-software-management/rpmlint
Source0:        https://github.com/rpm-software-management/rpmlint/archive/rpmlint-%{version}.tar.gz
Source1:        rpmlint-checks-master.tar.xz
Source2:        config
Source11:       pie.config
Source12:       licenses.config
Source99:       README.packaging.txt
Source100:      syntax-validator.py
Patch00:        rpmlint-suse.diff
Patch01:        suse-checks.diff
Patch02:        suse-version.diff
Patch03:        suse-url-check.diff
Patch04:        suse-python3-naming-policy.diff
Patch05:        suse-tests-without-badness.patch
Patch06:        suse-pkg-config-check.diff
Patch07:        suse-binarieschecks.diff
Patch08:        no-doc-for-lib.diff
Patch09:        suse-filter-exception.diff
Patch10:        suse-spdx-license-exceptions.patch
Patch11:        suse-skip-macro-expansion.diff
Patch20:        usr-arch.diff
Patch23:        suse-filter-more-verbose.diff
Patch24:        docdata-examples.diff
Patch25:        yast-provides.diff
Patch27:        better-wrong-script.diff
Patch28:        buildroot-doc.diff
Patch29:        rpmgroup-checks.diff
Patch30:        devel-provide-is-devel-package.diff
Patch31:        only-reg-files-are-scripts.diff
Patch32:        buildroot-in-scripts.diff
Patch33:        libtool-wrapper-check.diff
Patch35:        noarch-lib64.diff
Patch37:        description-check.diff
Patch38:        0001-Tighten-wrong-script-interpreter-check-to-lower-fals.patch
Patch39:        selfconflicts-provide.diff
Patch40:        no-badness-return.diff
Patch41:        suse-shlib-devel-dependency.diff
Patch42:        0001-Improve-XDG-Menu-checks-stability.patch
Patch43:        stricter-interpreter-check.diff
Patch44:        confusing-invalid-spec-name.diff
Patch48:        suse-whitelist-opensuse.diff
Patch49:        extend-suse-conffiles-check.diff
Patch50:        compressed-backup-regex.diff
Patch51:        suse-speccheck-utf8.diff
Patch52:        0001-Accept-python-abi-as-a-valid-versioned-python-depend.patch
Patch54:        suse-ignore-specfile-errors.diff
Patch55:        invalid-filerequires.diff
Patch57:        check-for-self-provides.diff
Patch58:        remove-ghostfile-checks.diff
Patch59:        0001-Extend-scm_regex-to-capture-more-SCM-system-files.patch
Patch60:        0003-Tighten-lib_regex-to-avoid-false-positive-in-python-.patch
Patch61:        0001-Execute-chroot-tests-also-on-x86-rpms.patch
Patch62:        ignore-readelf-ar-error.diff
Patch63:        fix-diag-sortorder.diff
Patch64:        drop-unicodedata-dep.diff
Patch65:        0001-split-wrong-script-interpreter-into-env-script-inter.patch
Patch66:        0001-Handle-post-scripts-that-contain-non-ascii-character.patch
Patch67:        omit_BUILDROOT_from_pyo_files.patch
Patch68:        0001-Avoid-false-positives-on-is_elf-check.patch
Patch69:        0007-Validate-Appdata-also-when-appstream-util-is-unavail.patch
Patch71:        0001-Avoid-calling-close-on-undefined-fd-variable.patch
Patch72:        rpmlint-slpp-NUM-NUM.patch
Patch73:        0001-Binariescheck-Check-for-chroot-chdir-on-ARM-PPC.patch
Patch74:        0001-Always-import-XDG-desktop-files-as-utf8.patch
Patch75:        0001-Fix-compatibility-with-file-5.33.patch
Patch76:        update-magic-values-python-37.patch
Patch77:        suse-rpmlint-all-pie.patch
Patch78:        0001-Backport-d8f423b575e8be387d33bc3af176baf978efacbb.patch
BuildRequires:  obs-service-format_spec_file
BuildRequires:  python3-flake8
BuildRequires:  python3-pytest
BuildRequires:  python3-rpm
BuildRequires:  xz
#!BuildIgnore:  rpmlint-mini
Requires:       %{_bindir}/readelf
Requires:       bash
Requires:       checkbashisms
Requires:       cpio
Requires:       dash
Requires:       desktop-file-utils
Requires:       file
Requires:       findutils
Requires:       python3-magic
Requires:       python3-pybeam
Requires:       python3-rpm
Requires:       python3-xml
BuildArch:      noarch

%description
rpmlint is a tool to check common errors on RPM packages. Binary and
source packages can be checked.

%prep
%autosetup -n rpmlint-rpmlint-%{version} -a1 -p1

cp -p %{SOURCE2} .
chmod a-x rpmlint-checks-master/*.py
# Only move top-level python files
mv rpmlint-checks-master/*.py .

%build
make %{?_smp_mflags} PYTHON=%{_bindir}/python3

%install
%make_install PYTHON=%{_bindir}/python3
# the provided bash-completion does not work and only prints bash errors
rm -rf  %{buildroot}%{_sysconfdir}/bash_completion.d
mv %{buildroot}%{_sysconfdir}/rpmlint/config %{buildroot}%{_datadir}/rpmlint/config
head -n 8 %{buildroot}%{_datadir}/rpmlint/config > %{buildroot}%{_sysconfdir}/rpmlint/config
# make sure that the package is sane
for f in %{buildroot}%{_datadir}/rpmlint/*.py %{buildroot}%{_datadir}/rpmlint/config; do
    echo $f
    env LC_ALL=C.utf8 python3 -tt %{SOURCE100} $f
done
install -m 644 %{SOURCE11} %{buildroot}/%{_sysconfdir}/rpmlint/

cp %{SOURCE12} licenses.config
# note there is a tab character behind the -d, so don't copy&paste lightly
cut '-d	' -f1 %{_prefix}/lib/obs/service/format_spec_file.files/licenses_changes.txt | tail -n +2 | sort -u | while read l; do
  sed -i -e "s/\(#VALIDLICENSES\)/\1\n	'$l',/" licenses.config
done
# add some deprecated licenses we allow for now
for l in AGPL-3.0 AGPL-3.0+ GFDL-1.1 GFDL-1.1+ GFDL-1.2 GFDL-1.2+ GFDL-1.3 GFDL-1.3+ GPL-3.0-with-GCC-exception \
   GPL-2.0-with-classpath-exception GPL-2.0-with-font-exception SUSE-LGPL-2.1+-with-GCC-exception SUSE-NonFree \
   GPL-1.0+ GPL-1.0 GPL-2.0+ GPL-2.0 GPL-3.0+ GPL-3.0 LGPL-2.0 LGPL-2.0+ LGPL-2.1+ LGPL-2.1 LGPL-3.0+ LGPL-3.0; do
  sed -i -e "s/\(#VALIDLICENSES\)/\1\n  '$l',/" licenses.config
done
install -m 644  licenses.config %{buildroot}/%{_sysconfdir}/rpmlint/

%check
env PYTHON=%{_bindir}/python3 ./test.sh

%files
%license COPYING
%doc README*
%{_bindir}/rpmlint
%{_bindir}/rpmdiff
%{_datadir}/rpmlint
%config(noreplace) %{_sysconfdir}/rpmlint/config
%config %{_sysconfdir}/rpmlint/pie.config
%config %{_sysconfdir}/rpmlint/licenses.config
%dir %{_sysconfdir}/rpmlint
%{_mandir}/man1/rpmlint.1%{ext_man}
%{_mandir}/man1/rpmdiff.1%{ext_man}

%changelog
openSUSE Build Service is sponsored by