From 3112d31d9e8ae019835b6a92faa2ea3359e445405bbeadbaeceb61dd70fe6b52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Li=C5=A1ka?= Date: Mon, 12 Jul 2021 05:00:40 +0000 Subject: [PATCH] Accepting request 905729 from home:StevenK:branches:devel:openSUSE:Factory:rpmlint * Replace rpmlint-deps.txt with stdlib.txt, as we need to provide the Python standard library directly. OBS-URL: https://build.opensuse.org/request/show/905729 OBS-URL: https://build.opensuse.org/package/show/devel:openSUSE:Factory:rpmlint/rpmlint-mini?expand=0&rev=140 --- rpmlint-mini.changes | 5 +- rpmlint-mini.spec | 16 +- rpmlint.wrapper | 4 +- stdlib.txt | 393 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 410 insertions(+), 8 deletions(-) create mode 100644 stdlib.txt diff --git a/rpmlint-mini.changes b/rpmlint-mini.changes index 6c16dad..c6fcfc5 100644 --- a/rpmlint-mini.changes +++ b/rpmlint-mini.changes @@ -1,10 +1,11 @@ ------------------------------------------------------------------- -Tue Jun 22 07:56:52 UTC 2021 - Steve Kowalik +Mon Jul 12 02:29:45 UTC 2021 - Steve Kowalik - 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. - * Drop rpmlint-deps.txt as no longer required. + * 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. diff --git a/rpmlint-mini.spec b/rpmlint-mini.spec index 9e6321d..560fd7a 100644 --- a/rpmlint-mini.spec +++ b/rpmlint-mini.spec @@ -23,8 +23,9 @@ Summary: RPM file correctness checker License: GPL-2.0-or-later URL: http://rpmlint.zarb.org/ Source0: desktop-file-utils-0.24.tar.xz -Source1: rpmlint.wrapper -Source2: rpmlint-mini.rpmlintrc +Source1: stdlib.txt +Source2: rpmlint.wrapper +Source3: rpmlint-mini.rpmlintrc # need to fetch the file from there BuildRequires: checkbashisms BuildRequires: dash @@ -75,10 +76,17 @@ cp -a %{_sysconfdir}/xdg/rpmlint %{buildroot}/opt/testing/share 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 -# Python dependencies, along with the interpreter, and its library +# 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 +popd 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}/ @@ -92,7 +100,7 @@ find %{buildroot}/opt/testing/ -name __pycache__ -exec rm -rf {} + 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} -install -m 755 -D %{SOURCE1} %{buildroot}/opt/testing/bin/rpmlint +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 diff --git a/rpmlint.wrapper b/rpmlint.wrapper index 1c3b891..a1c46d7 100644 --- a/rpmlint.wrapper +++ b/rpmlint.wrapper @@ -2,10 +2,10 @@ LD_LIBRARY_PATH=/opt/testing/lib PATH="/opt/testing/bin:$PATH" -VIRTUAL_ENV=/opt/testing +PYTHONHOME=/opt/testing XDG_CONFIG_HOME="/opt/testing/share" LC_ALL=en_US.utf-8 -export VIRTUAL_ENV LD_LIBRARY_PATH LC_ALL XDG_CONFIG_HOME +export PYTHONHOME LD_LIBRARY_PATH LC_ALL XDG_CONFIG_HOME args="" rpmlintrc=$(ls -1 /home/abuild/rpmbuild/SOURCES/*rpmlintrc 2>/dev/null) if [ -n "$rpmlintrc" ]; then diff --git a/stdlib.txt b/stdlib.txt new file mode 100644 index 0000000..a89de7d --- /dev/null +++ b/stdlib.txt @@ -0,0 +1,393 @@ +__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