# # spec file for package rpmlint # # Copyright (c) 2018 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 http://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 Patch34: suse-check-optional-dependencies.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 Patch70: rpmlint-all-pie.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 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