Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rpmlint-mini for openSUSE:Factory checked in at 2021-08-30 13:54:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpmlint-mini (Old) and /work/SRC/openSUSE:Factory/.rpmlint-mini.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpmlint-mini" Mon Aug 30 13:54:57 2021 rev:107 rq:910450 version:2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/rpmlint-mini/rpmlint-mini.changes 2021-04-06 17:28:47.939057090 +0200 +++ /work/SRC/openSUSE:Factory/.rpmlint-mini.new.1899/rpmlint-mini.changes 2021-08-30 13:55:07.097815475 +0200 @@ -1,0 +2,49 @@ +Fri Aug 6 08:48:02 UTC 2021 - Martin Li??ka <mli...@suse.cz> + +- Add run-time requirement for polkit-default-privs. + +------------------------------------------------------------------- +Thu Aug 5 17:56:38 UTC 2021 - Martin Li??ka <mli...@suse.cz> + +- Rely on rpmlint auto-loading support for rpmlintrc files. + +------------------------------------------------------------------- +Thu Aug 5 13:11:51 UTC 2021 - Martin Li??ka <mli...@suse.cz> + +- Do not copy .override. config files. + +------------------------------------------------------------------- +Tue Aug 3 07:29:17 UTC 2021 - Martin Li??ka <mli...@suse.cz> + +- Properly redirect stdout to /dev/null. + +------------------------------------------------------------------- +Mon Jul 26 06:28:35 UTC 2021 - Steve Kowalik <steven.kowa...@suse.com> + +- Try two for supporting multiple rpmlintrc, since shell for loops + always loop, even if the files don't exist. + +------------------------------------------------------------------- +Fri Jul 23 04:55:34 UTC 2021 - Steve Kowalik <steven.kowa...@suse.com> + +- Support multiple rpmlintrc files correctly. + +------------------------------------------------------------------- +Thu Jul 22 15:22:01 UTC 2021 - Martin Li??ka <mli...@suse.cz> + +- Use --mini-mode when calling rpmlint from rpmlint-mini package. + +------------------------------------------------------------------- +Mon Jul 12 02:29:45 UTC 2021 - Steve Kowalik <steven.kowa...@suse.com> + +- Update to require rpmlint >= 2. + * Due to rpmlint now being a proper Python package, build a virtual + environment, and copy all Python requirements into it. + * Replace rpmlint-deps.txt with stdlib.txt, as we need to provide the + Python standard library directly. + * Lightly rewrite rpmlint.wrapper to support the new world order. +- Drop the config snippets, they are not required with rpmlint 2. +- Renumber Source numbers. +- Filter some more warnings in rpmlint-mini.rpmlintrc. + +------------------------------------------------------------------- Old: ---- _service _servicedata appdata_checker.config polkit-default-privs.config rpmlint-deps.txt rpmlint-mini.config rpmlint-security-whitelistings-master.tar.xz whitelists.config New: ---- stdlib.txt ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rpmlint-mini.spec ++++++ --- /var/tmp/diff_new_pack.kih7Ij/_old 2021-08-30 13:55:08.777817631 +0200 +++ /var/tmp/diff_new_pack.kih7Ij/_new 2021-08-30 13:55:08.781817636 +0200 @@ -17,33 +17,27 @@ Name: rpmlint-mini -Version: 1.10 +Version: 2.0 Release: 0 Summary: RPM file correctness checker License: GPL-2.0-or-later -Group: System/Packages URL: http://rpmlint.zarb.org/ -Source: desktop-file-utils-0.24.tar.xz -Source2: rpmlint-security-whitelistings-master.tar.xz -Source100: rpmlint-deps.txt -Source101: rpmlint.wrapper -Source102: rpmlint-mini.config -Source103: polkit-default-privs.config -Source104: appdata_checker.config -Source105: whitelists.config -Source1000: rpmlint-mini.rpmlintrc +Source0: desktop-file-utils-0.24.tar.xz +Source1: stdlib.txt +Source2: rpmlint.wrapper +Source3: rpmlint-mini.rpmlintrc # need to fetch the file from there BuildRequires: checkbashisms BuildRequires: dash BuildRequires: glib2-devel BuildRequires: glib2-devel-static +BuildRequires: libedit-devel BuildRequires: libtool BuildRequires: pkgconfig -BuildRequires: polkit-default-privs -BuildRequires: polkit-whitelisting -BuildRequires: rpmlint +BuildRequires: rpmlint >= 2 #!BuildIgnore: rpmlint-mini Requires: cpio +Requires: polkit-default-privs %description rpmlint is a tool to check common errors on RPM packages. Binary and @@ -52,11 +46,6 @@ %prep %setup -q -n desktop-file-utils-0.24 [ -r COPYING ] -tar xf %{S:2} -# workaround rpmlintrc not being effective, because regular rpmlint is invoked -# instead of rpmlint-mini, see suse-build change here: -# https://github.com/openSUSE/obs-build/commit/1139134127373b058d3622bafb989c51e2ecc7b8 -cp %{SOURCE1000} $HOME/.rpmlintrc %build %configure @@ -65,78 +54,54 @@ popd %install -# test if the rpmlint works at all +# Check that rpmlint works at all set +e -%{_bindir}/rpmlint rpmlint +%{_bindir}/rpmlint -i rpmlint test $? -gt 0 -a $? -lt 60 && exit 1 set -e -# okay, lets put it together -mkdir -p %{buildroot}/opt/testing/share/rpmlint -install -m 755 -D src/desktop-file-validate %{buildroot}/opt/testing/bin/desktop-file-validate +# Build a virtual env +python3 -m venv %{buildroot}/opt/testing +# We don't need pip, or activation +%{buildroot}/opt/testing/bin/pip uninstall -y pip +rm %{buildroot}/opt/testing/bin/activate* +# We need these available +cp -a src/desktop-file-validate %{buildroot}/opt/testing/bin cp -a %{_bindir}/dash %{_bindir}/checkbashisms %{buildroot}/opt/testing/bin -mkdir -p %{buildroot}/opt/testing/%{_lib} -cp -a %{_libdir}/libedit.so.0* %{buildroot}/opt/testing/%{_lib} -cp -a %{_datadir}/rpmlint/*.py %{buildroot}/opt/testing/share/rpmlint -# install config files -install -d -m 755 %{buildroot}/opt/testing/share/rpmlint/mini -for i in %{_sysconfdir}/rpmlint/{pie,licenses}.config "%{SOURCE103}" "%{SOURCE104}" "%{SOURCE105}"; do - cp $i %{buildroot}/opt/testing/share/rpmlint/mini +cp -a %{_libdir}/libedit.so.0* %{buildroot}/opt/testing/lib +# Install config files +install -d -m 755 %{buildroot}/opt/testing/share +cp -a %{_sysconfdir}/xdg/rpmlint %{buildroot}/opt/testing/share +# Override configs are selectively taken from rpmlint-strict +rm -f %{buildroot}/opt/testing/share/rpmlint/*.override.toml +# Python standard library, rpmlint dependencies, and the interpreter +pushd %{_libdir}/python%{py3_ver} +for file in $(cat %{SOURCE1}); do + exp=$(ls -1 $file) + install -D -m 644 $exp %{buildroot}/opt/testing/lib/python%{py3_ver}/$exp done -install -m 644 -D %{_datadir}/rpmlint/config %{buildroot}/opt/testing/share/rpmlint/config -install -m 644 "%{SOURCE102}" %{buildroot}/opt/testing/share/rpmlint -# extra data -install -m 755 -d %{buildroot}/opt/testing/share/rpmlint/data -install -m 644 %{_sysconfdir}/polkit-default-privs.standard %{buildroot}/opt/testing/share/rpmlint/data -install -m 644 %{_sysconfdir}/polkit-rules-whitelist.json %{buildroot}/opt/testing/share/rpmlint/data -install -m 644 rpmlint-security-whitelistings-master/*.json %{buildroot}/opt/testing/share/rpmlint/data -# -pushd %{_libdir}/python%{py3_ver}/ -for f in $(<%{SOURCE100}); do - find -path "*/$f" -exec install -D {} %{buildroot}/opt/testing/%{_lib}/python%{py3_ver}/{} \; -done -# ErlangCheck dependencies that are not under %_libdir but under /usr/lib :-( -cp -a %{python3_sitelib}/{construct,pybeam,six.py} %{buildroot}/opt/testing/%{_lib}/python%{py3_ver}/site-packages -install -D %{_bindir}/python3 %{buildroot}/opt/testing/bin/python3 -cp -a %{_libdir}/libpython%{py3_ver}*.so.* %{buildroot}/opt/testing/%{_lib} -cp -a %{_bindir}/rpmlint %{buildroot}/opt/testing/share/rpmlint/rpmlint.py -pushd %{buildroot}/opt/testing/share/rpmlint -PYTHONOPTIMIZE=1 python3 -O -m compileall -b *.py -rm *.py popd -pushd %{buildroot}/opt/testing/%{_lib}/python%{py3_ver}/ -for f in `find -name \*.py | sort` ; do +cp -a %{python_sitearch}/{rpm,zstd}* %{buildroot}/opt/testing/lib/python%{py3_ver}/site-packages +cp -a %{python_sitelib} %{buildroot}/opt/testing/lib/python%{py3_ver} +cp -a %{_libdir}/libpython%{py3_ver}*.so.* %{buildroot}/opt/testing/lib +cp -a %{_libdir}/libexpat*.so.* %{buildroot}/opt/testing/lib +cp -a %{_bindir}/python3 %{buildroot}/opt/testing/bin +cp -a %{_bindir}/python%{py3_ver} %{buildroot}/opt/testing/bin +pushd %{buildroot}/opt/testing/lib/python%{py3_ver}/ +for f in $(find -name \*.py | sort) ; do PYTHONOPTIMIZE=1 python3 -O -m compileall -b $f rm $f done popd -find %{buildroot}/opt/testing/ -name __pycache__ -print -exec rm -Rf {} + +find %{buildroot}/opt/testing/ -name __pycache__ -exec rm -rf {} + +# We need to force the shebang to be under /opt/testing +sed -e 's,/usr,/opt/testing,' %{_bindir}/rpmlint > %{buildroot}/opt/testing/bin/rpmlint.real +chmod a+x %{buildroot}/opt/testing/bin/rpmlint.real rm -rf %{buildroot}/{usr,etc} -rm -f %{buildroot}/opt/testing/bin/rpmlint -install -m 755 -D %{SOURCE101} %{buildroot}/opt/testing/bin/rpmlint -# hackatlon -%define my_requires %{_builddir}/%{?buildsubdir}/%{name}-requires -cat << EOF > %{my_requires} -cat - > file.list -%{__find_requires} < file.list > requires.list -%{__find_provides} < file.list > provides.list -while read i; do - grep -F -v "\$i" requires.list > requires.list.new - mv requires.list.new requires.list -done < provides.list -cat requires.list -rm -f requires.list provides.list file.list -EOF -chmod +x %{my_requires} -%define _use_internal_dependency_generator 0 -%define __find_requires %{my_requires} -%define __find_provides %{nil} -# final run check to detect python dep changes -LD_LIBRARY_PATH=%{buildroot}/opt/testing/%{_lib} -PYTHONPATH=%{buildroot}/opt/testing/share/rpmlint -PYTHONHOME=%{buildroot}/opt/testing/ -export PYTHONPATH LD_LIBRARY_PATH PYTHONHOME -%{buildroot}/opt/testing/bin/python3 -tt -u -O %{buildroot}/opt/testing/share/rpmlint/rpmlint.pyc /.build.binaries/*.rpm 2>&1 || exit 1 -echo ".. ok" +install -m 755 -D %{SOURCE2} %{buildroot}/opt/testing/bin/rpmlint +# We don't want requirements of libraries, or the odd shebang +%define __requires_exclude (^lib.*|python3)$ +# We don't want to provide any libraries, or Python modules we ship +%define __provides_exclude ^(lib|python) %files /opt/testing ++++++ rpmlint-mini.rpmlintrc ++++++ --- /var/tmp/diff_new_pack.kih7Ij/_old 2021-08-30 13:55:08.821817687 +0200 +++ /var/tmp/diff_new_pack.kih7Ij/_new 2021-08-30 13:55:08.825817692 +0200 @@ -1,3 +1,6 @@ +addFilter("wrong-script-interpreter") addFilter("library-without-ldconfig") addFilter("python-bytecode-without-source") -addFilter("devel-file-in-non-devel-package") +addFilter("files-duplicate") +addFilter("filelist-forbidden-opt") +addFilter("invalid-url") ++++++ rpmlint.wrapper ++++++ --- /var/tmp/diff_new_pack.kih7Ij/_old 2021-08-30 13:55:08.849817724 +0200 +++ /var/tmp/diff_new_pack.kih7Ij/_new 2021-08-30 13:55:08.849817724 +0200 @@ -1,12 +1,10 @@ #!/bin/sh -if test -d /opt/testing/lib64; then - LD_LIBRARY_PATH=/opt/testing/lib64 -else - LD_LIBRARY_PATH=/opt/testing/lib -fi + +LD_LIBRARY_PATH=/opt/testing/lib PATH="/opt/testing/bin:$PATH" -rpmlintdir="/opt/testing/share/rpmlint" -PYTHONPATH="$rpmlintdir" +PYTHONHOME=/opt/testing +XDG_CONFIG_HOME="/opt/testing/share" LC_ALL=en_US.utf-8 -export PYTHONPATH LD_LIBRARY_PATH LC_ALL -exec /opt/testing/bin/python3 -u -O "$rpmlintdir"/rpmlint.pyc -C "$rpmlintdir" -f "$rpmlintdir"/rpmlint-mini.config "$@" +export PYTHONHOME LD_LIBRARY_PATH LC_ALL XDG_CONFIG_HOME +# rely on rpmlint auto-loading support for rpmlintrc files +exec /opt/testing/bin/rpmlint.real --mini-mode $@ ++++++ stdlib.txt ++++++ __future__.py _collections_abc.py _compat_pickle.py _compression.py _pydecimal.py _sitebuiltins.py _strptime.py _sysconfigdata*.py _weakrefset.py abc.py argparse.py base64.py bisect.py bz2.py calendar.py codecs.py collections/abc.py collections/__init__.py configparser.py concurrent/__init__.py concurrent/futures/_base.py concurrent/futures/__init__.py concurrent/futures/process.py concurrent/futures/thread.py contextlib.py copy.py copyreg.py csv.py cProfile.py datetime.py decimal.py dis.py distutils/archive_util.py distutils/bcppcompiler.py distutils/ccompiler.py distutils/cmd.py distutils/config.py distutils/core.py distutils/cygwinccompiler.py distutils/debug.py distutils/dep_util.py distutils/dir_util.py distutils/dist.py distutils/errors.py distutils/extension.py distutils/fancy_getopt.py distutils/filelist.py distutils/file_util.py distutils/__init__.py distutils/log.py distutils/msvc9compiler.py distutils/_msvccompiler.py distutils/msvccompiler.py distutils/spawn.py distutils/sysconfig.py distutils/text_file.py distutils/unixccompiler.py distutils/util.py distutils/versionpredicate.py distutils/version.py distutils/command/bdist_dumb.py distutils/command/bdist_msi.py distutils/command/bdist.py distutils/command/bdist_rpm.py distutils/command/bdist_wininst.py distutils/command/build_clib.py distutils/command/build_ext.py distutils/command/build.py distutils/command/build_py.py distutils/command/build_scripts.py distutils/command/check.py distutils/command/clean.py distutils/command/config.py distutils/command/__init__.py distutils/command/install_data.py distutils/command/install_egg_info.py distutils/command/install_headers.py distutils/command/install_lib.py distutils/command/install.py distutils/command/install_scripts.py distutils/command/register.py distutils/command/sdist.py distutils/command/upload.py email/base64mime.py email/charset.py email/contentmanager.py email/_encoded_words.py email/encoders.py email/errors.py email/feedparser.py email/generator.py email/header.py email/headerregistry.py email/_header_value_parser.py email/__init__.py email/iterators.py email/message.py email/_parseaddr.py email/parser.py email/_policybase.py email/policy.py email/quoprimime.py email/utils.py email/mime/application.py email/mime/audio.py email/mime/base.py email/mime/image.py email/mime/__init__.py email/mime/message.py email/mime/multipart.py email/mime/nonmultipart.py email/mime/text.py encodings/aliases.py encodings/ascii.py encodings/base64_codec.py encodings/big5hkscs.py encodings/big5.py encodings/bz2_codec.py encodings/charmap.py encodings/cp037.py encodings/cp1006.py encodings/cp1026.py encodings/cp1125.py encodings/cp1140.py encodings/cp1250.py encodings/cp1251.py encodings/cp1252.py encodings/cp1253.py encodings/cp1254.py encodings/cp1255.py encodings/cp1256.py encodings/cp1257.py encodings/cp1258.py encodings/cp273.py encodings/cp424.py encodings/cp437.py encodings/cp500.py encodings/cp720.py encodings/cp737.py encodings/cp775.py encodings/cp850.py encodings/cp852.py encodings/cp855.py encodings/cp856.py encodings/cp857.py encodings/cp858.py encodings/cp860.py encodings/cp861.py encodings/cp862.py encodings/cp863.py encodings/cp864.py encodings/cp865.py encodings/cp866.py encodings/cp869.py encodings/cp874.py encodings/cp875.py encodings/cp932.py encodings/cp949.py encodings/cp950.py encodings/euc_jis_2004.py encodings/euc_jisx0213.py encodings/euc_jp.py encodings/euc_kr.py encodings/gb18030.py encodings/gb2312.py encodings/gbk.py encodings/hex_codec.py encodings/hp_roman8.py encodings/hz.py encodings/idna.py encodings/__init__.py encodings/iso2022_jp_1.py encodings/iso2022_jp_2004.py encodings/iso2022_jp_2.py encodings/iso2022_jp_3.py encodings/iso2022_jp_ext.py encodings/iso2022_jp.py encodings/iso2022_kr.py encodings/iso8859_10.py encodings/iso8859_11.py encodings/iso8859_13.py encodings/iso8859_14.py encodings/iso8859_15.py encodings/iso8859_16.py encodings/iso8859_1.py encodings/iso8859_2.py encodings/iso8859_3.py encodings/iso8859_4.py encodings/iso8859_5.py encodings/iso8859_6.py encodings/iso8859_7.py encodings/iso8859_8.py encodings/iso8859_9.py encodings/johab.py encodings/koi8_r.py encodings/koi8_t.py encodings/koi8_u.py encodings/kz1048.py encodings/latin_1.py encodings/mac_arabic.py encodings/mac_centeuro.py encodings/mac_croatian.py encodings/mac_cyrillic.py encodings/mac_farsi.py encodings/mac_greek.py encodings/mac_iceland.py encodings/mac_latin2.py encodings/mac_romanian.py encodings/mac_roman.py encodings/mac_turkish.py encodings/mbcs.py encodings/oem.py encodings/palmos.py encodings/ptcp154.py encodings/punycode.py encodings/quopri_codec.py encodings/raw_unicode_escape.py encodings/rot_13.py encodings/shift_jis_2004.py encodings/shift_jis.py encodings/shift_jisx0213.py encodings/tis_620.py encodings/undefined.py encodings/unicode_escape.py encodings/utf_16_be.py encodings/utf_16_le.py encodings/utf_16.py encodings/utf_32_be.py encodings/utf_32_le.py encodings/utf_32.py encodings/utf_7.py encodings/utf_8.py encodings/utf_8_sig.py encodings/uu_codec.py encodings/zlib_codec.py enum.py functools.py fnmatch.py genericpath.py gettext.py gzip.py hashlib.py heapq.py importlib/abc.py importlib/_bootstrap_external.py importlib/_bootstrap.py importlib/__init__.py importlib/machinery.py importlib/metadata.py importlib/resources.py importlib/util.py inspect.py io.py keyword.py lib-dynload/array.cpython*.so lib-dynload/_asyncio.cpython*.so lib-dynload/audioop.cpython*.so lib-dynload/binascii.cpython*.so lib-dynload/_bisect.cpython*.so lib-dynload/_blake2.cpython*.so lib-dynload/_bz2.cpython*.so lib-dynload/cmath.cpython*.so lib-dynload/_codecs_cn.cpython*.so lib-dynload/_codecs_hk.cpython*.so lib-dynload/_codecs_iso2022.cpython*.so lib-dynload/_codecs_jp.cpython*.so lib-dynload/_codecs_kr.cpython*.so lib-dynload/_codecs_tw.cpython*.so lib-dynload/_contextvars.cpython*.so lib-dynload/_crypt.cpython*.so lib-dynload/_csv.cpython*.so lib-dynload/_ctypes.cpython*.so lib-dynload/_datetime.cpython*.so lib-dynload/_decimal.cpython*.so lib-dynload/_elementtree.cpython*.so lib-dynload/fcntl.cpython*.so lib-dynload/grp.cpython*.so lib-dynload/_hashlib.cpython*.so lib-dynload/_heapq.cpython*.so lib-dynload/_json.cpython*.so lib-dynload/_lsprof.cpython*.so lib-dynload/_lzma.cpython*.so lib-dynload/math.cpython*.so lib-dynload/_md5.cpython*.so lib-dynload/mmap.cpython*.so lib-dynload/_multibytecodec.cpython*.so lib-dynload/_multiprocessing.cpython*.so lib-dynload/_opcode.cpython*.so lib-dynload/ossaudiodev.cpython*.so lib-dynload/parser.cpython*.so lib-dynload/_pickle.cpython*.so lib-dynload/_posixshmem.cpython*.so lib-dynload/_posixsubprocess.cpython*.so lib-dynload/pyexpat.cpython*.so lib-dynload/_queue.cpython*.so lib-dynload/_random.cpython*.so lib-dynload/resource.cpython*.so lib-dynload/select.cpython*.so lib-dynload/_sha1.cpython*.so lib-dynload/_sha256.cpython*.so lib-dynload/_sha3.cpython*.so lib-dynload/_sha512.cpython*.so lib-dynload/_socket.cpython*.so lib-dynload/spwd.cpython*.so lib-dynload/_ssl.cpython*.so lib-dynload/_statistics.cpython*.so lib-dynload/_struct.cpython*.so lib-dynload/syslog.cpython*.so lib-dynload/termios.cpython*.so lib-dynload/unicodedata.cpython*.so lib-dynload/_uuid.cpython*.so lib-dynload/_xxsubinterpreters.cpython*.so lib-dynload/_xxtestfuzz.cpython*.so lib-dynload/zlib.cpython*.so linecache.py locale.py logging/config.py logging/handlers.py logging/__init__.py lzma.py ntpath.py numbers.py opcode.py operator.py pathlib.py pickle.py pkgutil.py platform.py plistlib.py posixpath.py pprint.py profile.py pstats.py queue.py quopri.py os.py random.py re.py reprlib.py selectors.py shlex.py shutil.py signal.py site.py socket.py sre_compile.py sre_constants.py sre_parse.py stat.py string.py struct.py subprocess.py sysconfig.py tempfile.py textwrap.py threading.py token.py tokenize.py traceback.py types.py urllib/error.py urllib/__init__.py urllib/parse.py urllib/request.py urllib/response.py urllib/robotparser.py uu.py warnings.py weakref.py xml/__init__.py xml/dom/domreg.py xml/dom/expatbuilder.py xml/dom/__init__.py xml/dom/minicompat.py xml/dom/minidom.py xml/dom/NodeFilter.py xml/dom/pulldom.py xml/dom/xmlbuilder.py xml/etree/cElementTree.py xml/etree/ElementInclude.py xml/etree/ElementPath.py xml/etree/ElementTree.py xml/etree/__init__.py xml/parsers/expat.py xml/parsers/__init__.py xml/sax/_exceptions.py xml/sax/expatreader.py xml/sax/handler.py xml/sax/__init__.py xml/sax/saxutils.py xml/sax/xmlreader.py zipfile.py zipimport.py