<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>34658</bug_id>
          
          <creation_ts>2018-03-16 18:54:05 +0300</creation_ts>
          <short_desc>spoils buildreq results again (while reading the list of available pkgs)</short_desc>
          <delta_ts>2018-05-04 16:26:09 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>python3-module-setuptools</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>34660</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ivan Zakharyaschev">imz</reporter>
          <assigned_to name="Grigory Ustinov">grenka</assigned_to>
          <cc>slev</cc>
    
    <cc>slev</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>169692</commentid>
    <comment_count>0</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2018-03-16 18:54:05 +0300</bug_when>
    <thetext>python3-module-setuptools-1:38.4.0-alt2.S1

Let&apos;s install an extra unused python pkg and see buildreq results:

$ { hsh --apt-config=/home/imz/.hasher/sisyphus/apt.conf /ALT/Sisyphus/files/SRPMS/python3-module-enchant-2.0.0-alt2.src.rpm &amp;&amp; hsh-install rpm-utils python3-module-alabaster &amp;&amp; hsh-run -- sh -c &apos;buildreq ~/RPM/SPECS/*.spec&apos;; } 2&gt;&amp;1 | tail
tsort: *libssl10
tsort: *libkrb5
tsort: -: input contains a loop:
tsort: perl-parent
tsort: perl-base
tsort: -: input contains a loop:
tsort: glibc-kernheaders-generic
tsort: glibc-kernheaders-x86
packagereq: optimized out: python-base python-modules python3 python3-base python3-module-OpenSSL python3-module-Pygments python3-module-SQLAlchemy python3-module-asn1crypto python3-module-babel python3-module-cffi python3-module-chardet python3-module-cryptography python3-module-cssselect python3-module-docutils python3-module-genshi python3-module-idna python3-module-imagesize python3-module-jinja2 python3-module-lxml python3-module-markupsafe python3-module-ndg-httpsclient python3-module-ntlm python3-module-py python3-module-pycparser python3-module-pytest python3-module-pytz python3-module-requests python3-module-setuptools python3-module-six python3-module-snowballstemmer python3-module-sphinx python3-module-urllib3 python3-module-webencodings python3-module-whoosh
packagereq: BuildRequires: libenchant python3-dev python3-module-alabaster python3-module-html5lib python3-module-sphinxcontrib-websupport
$ 

Expected results are at least as in p8 (though the detected docutils and cssselect deps are of course wrong, too, but that&apos;s harder to overcome, because they use a single *.egg-info file, not an *.egg-info directory):

$ { hsh --apt-config=/home/imz/.hasher/p8/apt.conf /ALT/Sisyphus/files/SRPMS/python3-module-enchant-2.0.0-alt2.src.rpm &amp;&amp; hsh-install rpm-utils python3-module-alabaster &amp;&amp; hsh-run -- sh -c &apos;buildreq ~/RPM/SPECS/*.spec&apos;; } 2&gt;&amp;1 | tail
tsort: python-modules-unittest
tsort: *python-modules
tsort: -: input contains a loop:
tsort: *libssl10
tsort: *libkrb5
tsort: -: input contains a loop:
tsort: perl-parent
tsort: perl-base
packagereq: optimized out: python-base python-modules python3 python3-base python3-module-cssselect python3-module-setuptools
packagereq: BuildRequires: libenchant python3-dev python3-module-docutils python3-module-pytz python3-module-snowballstemmer
$ 

We used to have 2 patches to fight this spoiling:

https://packages.altlinux.org/en/p8/srpms/python-module-setuptools/patches/0001-command-test.py-skip-install_requires-and-tests_requ.patch
https://packages.altlinux.org/en/p8/srpms/python-module-setuptools/patches/0002-dist.py-skip-checking-the-existence-of-system-PKG-IN.patch

In Sisyphus, only the second one seems to be applied.

Some fix in the same spirit is needed. (The detected used files can be seen by running filereq FILELIST rpm -bc *.spec.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169757</commentid>
    <comment_count>1</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2018-03-20 21:38:32 +0300</bug_when>
    <thetext>(In reply to comment #0)

&gt; We used to have 2 patches to fight this spoiling:
&gt; 
&gt; https://packages.altlinux.org/en/p8/srpms/python-module-setuptools/patches/0001-command-test.py-skip-install_requires-and-tests_requ.patch
&gt; https://packages.altlinux.org/en/p8/srpms/python-module-setuptools/patches/0002-dist.py-skip-checking-the-existence-of-system-PKG-IN.patch
&gt; 
&gt; In Sisyphus, only the second one seems to be applied.
&gt; 
&gt; Some fix in the same spirit is needed. (The detected used files can be seen by
&gt; running filereq FILELIST rpm -bc *.spec.)

grenka@ and me know how to re-implement the first patch. Coming soon...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169827</commentid>
    <comment_count>2</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-03-23 02:49:38 +0300</bug_when>
    <thetext>python-module-setuptools-1:38.4.0-alt3 -&gt; sisyphus:

Thu Mar 22 2018 Grigory Ustinov &lt;grenka@altlinux&gt; 1:38.4.0-alt3
- Add patch for skipping some requires from glebfm@, adapted for new code.
  It restores feature from commit 362ea68 in 1:18.1-alt2 release. (Closes: #34658)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169885</commentid>
    <comment_count>3</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2018-03-25 15:15:22 +0300</bug_when>
    <thetext>(In reply to comment #0)

&gt; We used to have 2 patches to fight this spoiling:
&gt; 
&gt; https://packages.altlinux.org/en/p8/srpms/python-module-setuptools/patches/0001-command-test.py-skip-install_requires-and-tests_requ.patch
&gt; https://packages.altlinux.org/en/p8/srpms/python-module-setuptools/patches/0002-dist.py-skip-checking-the-existence-of-system-PKG-IN.patch

slev@: патч не имеет отношения к этой проблеме.

Но хорошо, что его вернули.

Вспомнил, зачем он был нужен:

Это было когда-то Глебом сделано вот ради чего: buildreq не записывает (и правильно делает) многие вещи, которые не используются во время прогона тестов в %%check в BuildRequires, а при попытке запуска тестов (какого0то пакета) без этих вещей в сборочной среде,
setuptools проверяет их начилие (просто так -- ради проверки, а не ради использования) и может случиться ошибка (он попытается скачать).

 
&gt; In Sisyphus, only the second one seems to be applied.
&gt; 
&gt; Some fix in the same spirit is needed. (The detected used files can be seen by
&gt; running filereq FILELIST rpm -bc *.spec.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169927</commentid>
    <comment_count>4</comment_count>
    <who name="Stanislav Levin">slev</who>
    <bug_when>2018-03-27 17:14:38 +0300</bug_when>
    <thetext>Let me try to fix this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169996</commentid>
    <comment_count>5</comment_count>
    <who name="Stanislav Levin">slev</who>
    <bug_when>2018-03-29 12:15:22 +0300</bug_when>
    <thetext>python setuptools during first import of pkg_resources builds the initial/master working set(a collection of importable distributions) from sys.path. For each egg info distribution the read of metadata is applied to read the distribution version.

I guess we should ignore these readings while building filereq list.
Please check the following patches:
python2 http://git.altlinux.org/people/slev/packages/?p=python.git;a=commitdiff;h=f788b33a1b2eebea7fb98b80ac6eea7610235154

python3 http://git.altlinux.org/people/slev/packages/?p=python3.git;a=commitdiff;h=cac7cb9d9d3a86fe9b2e6b1acc9046452b6c67d5

Test results:
1) python3
packagereq: optimized out: python-base python-modules python3 python3-base
packagereq: BuildRequires: libenchant python3-dev python3-module-setuptools

2) python
packagereq: optimized out: python-base python-devel python-modules python-modules-compiler python-modules-ctypes python-modules-email python-modules-encodings
packagereq: BuildRequires: libenchant python-module-setuptools python-module-sphinxcontrib

Waiting for your comments...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170038</commentid>
    <comment_count>6</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2018-03-29 21:38:26 +0300</bug_when>
    <thetext>(In reply to comment #5)
&gt; python setuptools during first import of pkg_resources builds the
&gt; initial/master working set(a collection of importable distributions) from
&gt; sys.path. For each egg info distribution the read of metadata is applied to
&gt; read the distribution version.
&gt; 
&gt; I guess we should ignore these readings while building filereq list.
&gt; Please check the following patches:
&gt; python2
&gt; http://git.altlinux.org/people/slev/packages/?p=python.git;a=commitdiff;h=f788b33a1b2eebea7fb98b80ac6eea7610235154
&gt; 
&gt; python3
&gt; http://git.altlinux.org/people/slev/packages/?p=python3.git;a=commitdiff;h=cac7cb9d9d3a86fe9b2e6b1acc9046452b6c67d5
&gt; 
&gt; Test results:
&gt; 1) python3
&gt; packagereq: optimized out: python-base python-modules python3 python3-base
&gt; packagereq: BuildRequires: libenchant python3-dev python3-module-setuptools
&gt; 
&gt; 2) python
&gt; packagereq: optimized out: python-base python-devel python-modules
&gt; python-modules-compiler python-modules-ctypes python-modules-email
&gt; python-modules-encodings
&gt; packagereq: BuildRequires: libenchant python-module-setuptools
&gt; python-module-sphinxcontrib
&gt; 
&gt; Waiting for your comments...

Simple comment: it&apos;s better to change the release &amp; changelog in a separate commit (so that it is easier to cherry-pick your essential changes).

Another not so important, historic comment: As for the presence of .pth in this regex in python{,3} package, it is justified by that .pth are interpreted by python itself, they affect python. As for the egg-info things such as entry_points, their presence in python{,3} packages seems not to be very justified because they are processed by setuptools/distutils, and not python{,3}. But I think that it&apos;s OK, anyway, the egg-info is tightly related with standardized Python infrastructure.

As for the real reason: it interesting to know better what happens. In older versions (e.g., 18.1-alt4 932975fde88184790eaacbd7bc0a65ddd081bde7), the following patch must have been enough not to read PKG-INFO: https://packages.altlinux.org/en/p8/srpms/python-module-setuptools/patches/0002-dist.py-skip-checking-the-existence-of-system-PKG-IN.patch ? Does reading 
PKG-INFO happens more times in setuptools now? Is this information really needed if BuildRequires and Requires must completely describe the requirements?

I don&apos;t understand yet the answer, and can&apos;t find the place in the new code where the additional reads happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170156</commentid>
    <comment_count>7</comment_count>
      <attachid>7483</attachid>
    <who name="Stanislav Levin">slev</who>
    <bug_when>2018-04-02 17:52:04 +0300</bug_when>
    <thetext>Created attachment 7483
setuptools-18.1-alt4.bt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170157</commentid>
    <comment_count>8</comment_count>
      <attachid>7484</attachid>
    <who name="Stanislav Levin">slev</who>
    <bug_when>2018-04-02 17:54:29 +0300</bug_when>
    <thetext>Created attachment 7484
setuptools-39.0.1.bt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170158</commentid>
    <comment_count>9</comment_count>
    <who name="Stanislav Levin">slev</who>
    <bug_when>2018-04-02 17:59:12 +0300</bug_when>
    <thetext>The key point here is classmethod &quot;from_location&quot; (pkg_resources/__init__.py).
Please check an attached backtraces for details.

setuptools 18.1: 

    @classmethod
    def from_location(cls, location, basename, metadata=None,**kw):
        project_name, version, py_version, platform = [None]*4
        basename, ext = os.path.splitext(basename)
        if ext.lower() in _distributionImpl:
            # .dist-info gets much metadata differently
            match = EGG_NAME(basename)
            if match:
                project_name, version, py_version, platform = match.group(
                    &apos;name&apos;,&apos;ver&apos;,&apos;pyver&apos;,&apos;plat&apos;
                )
            cls = _distributionImpl[ext.lower()]
        return cls(
            location, metadata, project_name=project_name, version=version,
            py_version=py_version, platform=platform, **kw
        )

But setuptools 39:

    @classmethod
    def from_location(cls, location, basename, metadata=None, **kw):
        project_name, version, py_version, platform = [None] * 4
        basename, ext = os.path.splitext(basename)
        if ext.lower() in _distributionImpl:
            cls = _distributionImpl[ext.lower()]

            match = EGG_NAME(basename)
            if match:
                project_name, version, py_version, platform = match.group(
                    &apos;name&apos;, &apos;ver&apos;, &apos;pyver&apos;, &apos;plat&apos;
                )
        return cls( 
            location, metadata, project_name=project_name, version=version,
            py_version=py_version, platform=platform, **kw 
        )._reload_version()

And for EggInfo Distribution:

class EggInfoDistribution(Distribution):
    def _reload_version(self):
        &quot;&quot;&quot;
        Packages installed by distutils (e.g. numpy or scipy),
        which uses an old safe_version, and so
        their version numbers can get mangled when
        converted to filenames (e.g., 1.11.0.dev0+2329eae to
        1.11.0.dev0_2329eae). These distributions will not be
        parsed properly
        downstream by Distribution and safe_version, so
        take an extra step and try to get the version number from
        the metadata file itself instead of the filename.
        &quot;&quot;&quot;
        md_version = _version_from_file(self._get_metadata(self.PKG_INFO))
        if md_version:
            self._version = md_version
        return self

So, import of pkg_resources &quot;calls&quot; the building of initial/master working set(a collection of importable distributions) with reading of PKG-INFO files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170911</commentid>
    <comment_count>10</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-05-04 16:26:09 +0300</bug_when>
    <thetext>python3-3.6.4-alt1 -&gt; sisyphus:

Tue Apr 03 2018 Aleksei Nikiforov &lt;darktemplar@altlinux&gt; 3.6.4-alt1
- Updated to upstream version 3.6.4.

Thu Mar 29 2018 Stanislav Levin &lt;slev@altlinux&gt; 3.5.4-alt7
- Add PKG-INFO files to ignore list (closes: #34658).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7483</attachid>
            <date>2018-04-02 17:52:04 +0300</date>
            <delta_ts>2018-04-02 17:52:04 +0300</delta_ts>
            <desc>setuptools-18.1-alt4.bt</desc>
            <filename>setuptools-18.1-alt4.bt</filename>
            <type>application/octet-stream</type>
            <size>3418</size>
            <attacher name="Stanislav Levin">slev</attacher>
            
              <data encoding="base64">KFBkYikgdwogIC91c3Ivc3JjL1JQTS9CVUlMRC9weWVuY2hhbnQtMi4wLjAvc2V0dXAucHkoOSk8
bW9kdWxlPigpCi0+IGZyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIGZpbmRfcGFja2FnZXMs
IEV4dGVuc2lvbgogIDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+KDk2OSlfZmluZF9hbmRf
bG9hZCgpCiAgPGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oOTU4KV9maW5kX2FuZF9sb2Fk
X3VubG9ja2VkKCkKICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwPig2NzMpX2xvYWRfdW5s
b2NrZWQoKQogIDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXBfZXh0ZXJuYWw+KDY2MilleGVj
X21vZHVsZSgpCiAgPGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oMjIyKV9jYWxsX3dpdGhf
ZnJhbWVzX3JlbW92ZWQoKQogIC91c3IvbGliL3B5dGhvbjMvc2l0ZS1wYWNrYWdlcy9zZXR1cHRv
b2xzL19faW5pdF9fLnB5KDEyKTxtb2R1bGU+KCkKLT4gZnJvbSBzZXR1cHRvb2xzLmV4dGVuc2lv
biBpbXBvcnQgRXh0ZW5zaW9uCiAgPGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oOTY5KV9m
aW5kX2FuZF9sb2FkKCkKICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwPig5NTgpX2ZpbmRf
YW5kX2xvYWRfdW5sb2NrZWQoKQogIDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+KDY3Mylf
bG9hZF91bmxvY2tlZCgpCiAgPGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcF9leHRlcm5hbD4o
NjYyKWV4ZWNfbW9kdWxlKCkKICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwPigyMjIpX2Nh
bGxfd2l0aF9mcmFtZXNfcmVtb3ZlZCgpCiAgL3Vzci9saWIvcHl0aG9uMy9zaXRlLXBhY2thZ2Vz
L3NldHVwdG9vbHMvZXh0ZW5zaW9uLnB5KDgpPG1vZHVsZT4oKQotPiBmcm9tIC5kaXN0IGltcG9y
dCBfZ2V0X3VucGF0Y2hlZAogIDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+KDk2OSlfZmlu
ZF9hbmRfbG9hZCgpCiAgPGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oOTU4KV9maW5kX2Fu
ZF9sb2FkX3VubG9ja2VkKCkKICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwPig2NzMpX2xv
YWRfdW5sb2NrZWQoKQogIDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXBfZXh0ZXJuYWw+KDY2
MilleGVjX21vZHVsZSgpCiAgPGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oMjIyKV9jYWxs
X3dpdGhfZnJhbWVzX3JlbW92ZWQoKQogIC91c3IvbGliL3B5dGhvbjMvc2l0ZS1wYWNrYWdlcy9z
ZXR1cHRvb2xzL2Rpc3QucHkoMTkpPG1vZHVsZT4oKQotPiBpbXBvcnQgcGtnX3Jlc291cmNlcwog
IDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+KDk2OSlfZmluZF9hbmRfbG9hZCgpCiAgPGZy
b3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oOTU4KV9maW5kX2FuZF9sb2FkX3VubG9ja2VkKCkK
ICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwPig2NzMpX2xvYWRfdW5sb2NrZWQoKQogIDxm
cm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXBfZXh0ZXJuYWw+KDY2MilleGVjX21vZHVsZSgpCiAg
PGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oMjIyKV9jYWxsX3dpdGhfZnJhbWVzX3JlbW92
ZWQoKQogIC91c3IvbGliL3B5dGhvbjMvc2l0ZS1wYWNrYWdlcy9wa2dfcmVzb3VyY2VzL19faW5p
dF9fLnB5KDMwOTYpPG1vZHVsZT4oKQotPiBAX2NhbGxfYXNpZGUKICAvdXNyL2xpYi9weXRob24z
L3NpdGUtcGFja2FnZXMvcGtnX3Jlc291cmNlcy9fX2luaXRfXy5weSgzMDgyKV9jYWxsX2FzaWRl
KCkKLT4gZigqYXJncywgKiprd2FyZ3MpCiAgL3Vzci9saWIvcHl0aG9uMy9zaXRlLXBhY2thZ2Vz
L3BrZ19yZXNvdXJjZXMvX19pbml0X18ucHkoMzEwOSlfaW5pdGlhbGl6ZV9tYXN0ZXJfd29ya2lu
Z19zZXQoKQogIC0+IHdvcmtpbmdfc2V0ID0gV29ya2luZ1NldC5fYnVpbGRfbWFzdGVyKCkKICAv
dXNyL2xpYi9weXRob24zL3NpdGUtcGFja2FnZXMvcGtnX3Jlc291cmNlcy9fX2luaXRfXy5weSg2
NDkpX2J1aWxkX21hc3RlcigpCi0+IHdzID0gY2xzKCkKICAvdXNyL2xpYi9weXRob24zL3NpdGUt
cGFja2FnZXMvcGtnX3Jlc291cmNlcy9fX2luaXRfXy5weSg2NDIpX19pbml0X18oKQotPiBzZWxm
LmFkZF9lbnRyeShlbnRyeSkKICAvdXNyL2xpYi9weXRob24zL3NpdGUtcGFja2FnZXMvcGtnX3Jl
c291cmNlcy9fX2luaXRfXy5weSg2OTgpYWRkX2VudHJ5KCkKLT4gZm9yIGRpc3QgaW4gZmluZF9k
aXN0cmlidXRpb25zKGVudHJ5LCBUcnVlKToKICAvdXNyL2xpYi9weXRob24zL3NpdGUtcGFja2Fn
ZXMvcGtnX3Jlc291cmNlcy9fX2luaXRfXy5weSgyMTM3KWZpbmRfb25fcGF0aCgpCi0+IHBhdGhf
aXRlbSwgZW50cnksIG1ldGFkYXRhLCBwcmVjZWRlbmNlPURFVkVMT1BfRElTVAo+IC91c3IvbGli
L3B5dGhvbjMvc2l0ZS1wYWNrYWdlcy9wa2dfcmVzb3VyY2VzL19faW5pdF9fLnB5KDI0ODgpZnJv
bV9sb2NhdGlvbigpCi0+IHByb2plY3RfbmFtZSwgdmVyc2lvbiwgcHlfdmVyc2lvbiwgcGxhdGZv
cm0gPSBbTm9uZV0qNAooUGRiKSBsbAoyNDg1ICAgICAgICBAY2xhc3NtZXRob2QKMjQ4NiAgICAg
ICAgZGVmIGZyb21fbG9jYXRpb24oY2xzLCBsb2NhdGlvbiwgYmFzZW5hbWUsIG1ldGFkYXRhPU5v
bmUsKiprdyk6CjI0ODcgICAgICAgICAgICBpbXBvcnQgcGRiO3BkYi5zZXRfdHJhY2UoKQoyNDg4
IC0+ICAgICAgICAgcHJvamVjdF9uYW1lLCB2ZXJzaW9uLCBweV92ZXJzaW9uLCBwbGF0Zm9ybSA9
IFtOb25lXSo0CjI0ODkgICAgICAgICAgICBiYXNlbmFtZSwgZXh0ID0gb3MucGF0aC5zcGxpdGV4
dChiYXNlbmFtZSkKMjQ5MCAgICAgICAgICAgIGlmIGV4dC5sb3dlcigpIGluIF9kaXN0cmlidXRp
b25JbXBsOgoyNDkxICAgICAgICAgICAgICAgICMgLmRpc3QtaW5mbyBnZXRzIG11Y2ggbWV0YWRh
dGEgZGlmZmVyZW50bHkKMjQ5MiAgICAgICAgICAgICAgICBtYXRjaCA9IEVHR19OQU1FKGJhc2Vu
YW1lKQoyNDkzICAgICAgICAgICAgICAgIGlmIG1hdGNoOgoyNDk0ICAgICAgICAgICAgICAgICAg
ICBwcm9qZWN0X25hbWUsIHZlcnNpb24sIHB5X3ZlcnNpb24sIHBsYXRmb3JtID0gbWF0Y2guZ3Jv
dXAoCjI0OTUgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScsJ3ZlcicsJ3B5dmVyJywncGxh
dCcKMjQ5NiAgICAgICAgICAgICAgICAgICAgKQoyNDk3ICAgICAgICAgICAgICAgIGNscyA9IF9k
aXN0cmlidXRpb25JbXBsW2V4dC5sb3dlcigpXQoyNDk4ICAgICAgICAgICAgcmV0dXJuIGNscygK
MjQ5OSAgICAgICAgICAgICAgICBsb2NhdGlvbiwgbWV0YWRhdGEsIHByb2plY3RfbmFtZT1wcm9q
ZWN0X25hbWUsIHZlcnNpb249dmVyc2lvbiwKMjUwMCAgICAgICAgICAgICAgICBweV92ZXJzaW9u
PXB5X3ZlcnNpb24sIHBsYXRmb3JtPXBsYXRmb3JtLCAqKmt3CjI1MDEgICAgICAgICAgICApCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7484</attachid>
            <date>2018-04-02 17:54:29 +0300</date>
            <delta_ts>2018-04-02 17:54:29 +0300</delta_ts>
            <desc>setuptools-39.0.1.bt</desc>
            <filename>setuptools-39.0.1.bt</filename>
            <type>application/octet-stream</type>
            <size>2377</size>
            <attacher name="Stanislav Levin">slev</attacher>
            
              <data encoding="base64">IChQZGIpIHcKICAvdXNyL3NyYy9SUE0vQlVJTEQvcHllbmNoYW50LTIuMC4wL3NldHVwLnB5KDkp
PG1vZHVsZT4oKQotPiBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwLCBmaW5kX3BhY2thZ2Vz
LCBFeHRlbnNpb24KICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwPig5NjgpX2ZpbmRfYW5k
X2xvYWQoKQogIDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+KDk1NylfZmluZF9hbmRfbG9h
ZF91bmxvY2tlZCgpCiAgPGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oNjczKV9sb2FkX3Vu
bG9ja2VkKCkKICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwX2V4dGVybmFsPig2OTcpZXhl
Y19tb2R1bGUoKQogIDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+KDIyMilfY2FsbF93aXRo
X2ZyYW1lc19yZW1vdmVkKCkKICAvdXNyL2xpYi9weXRob24zL3NpdGUtcGFja2FnZXMvc2V0dXB0
b29scy9fX2luaXRfXy5weSgxMik8bW9kdWxlPigpCi0+IGltcG9ydCBzZXR1cHRvb2xzLnZlcnNp
b24KICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwPig5NjgpX2ZpbmRfYW5kX2xvYWQoKQog
IDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+KDk1NylfZmluZF9hbmRfbG9hZF91bmxvY2tl
ZCgpCiAgPGZyb3plbiBpbXBvcnRsaWIuX2Jvb3RzdHJhcD4oNjczKV9sb2FkX3VubG9ja2VkKCkK
ICA8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwX2V4dGVybmFsPig2OTcpZXhlY19tb2R1bGUo
KQogIDxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+KDIyMilfY2FsbF93aXRoX2ZyYW1lc19y
ZW1vdmVkKCkKICAvdXNyL2xpYi9weXRob24zL3NpdGUtcGFja2FnZXMvc2V0dXB0b29scy92ZXJz
aW9uLnB5KDEpPG1vZHVsZT4oKQotPiBpbXBvcnQgcGtnX3Jlc291cmNlcwogIDxmcm96ZW4gaW1w
b3J0bGliLl9ib290c3RyYXA+KDk2OClfZmluZF9hbmRfbG9hZCgpCiAgPGZyb3plbiBpbXBvcnRs
aWIuX2Jvb3RzdHJhcD4oOTU3KV9maW5kX2FuZF9sb2FkX3VubG9ja2VkKCkKICA8ZnJvemVuIGlt
cG9ydGxpYi5fYm9vdHN0cmFwPig2NzMpX2xvYWRfdW5sb2NrZWQoKQogIDxmcm96ZW4gaW1wb3J0
bGliLl9ib290c3RyYXBfZXh0ZXJuYWw+KDY5NylleGVjX21vZHVsZSgpCiAgPGZyb3plbiBpbXBv
cnRsaWIuX2Jvb3RzdHJhcD4oMjIyKV9jYWxsX3dpdGhfZnJhbWVzX3JlbW92ZWQoKQogIC91c3Iv
bGliL3B5dGhvbjMvc2l0ZS1wYWNrYWdlcy9wa2dfcmVzb3VyY2VzL19faW5pdF9fLnB5KDMwODkp
PG1vZHVsZT4oKQotPiBAX2NhbGxfYXNpZGUKICAvdXNyL2xpYi9weXRob24zL3NpdGUtcGFja2Fn
ZXMvcGtnX3Jlc291cmNlcy9fX2luaXRfXy5weSgzMDczKV9jYWxsX2FzaWRlKCkKLT4gZigqYXJn
cywgKiprd2FyZ3MpCiAgL3Vzci9saWIvcHl0aG9uMy9zaXRlLXBhY2thZ2VzL3BrZ19yZXNvdXJj
ZXMvX19pbml0X18ucHkoMzEwMilfaW5pdGlhbGl6ZV9tYXN0ZXJfd29ya2luZ19zZXQoKQotPiB3
b3JraW5nX3NldCA9IFdvcmtpbmdTZXQuX2J1aWxkX21hc3RlcigpCiAgL3Vzci9saWIvcHl0aG9u
My9zaXRlLXBhY2thZ2VzL3BrZ19yZXNvdXJjZXMvX19pbml0X18ucHkoNTY1KV9idWlsZF9tYXN0
ZXIoKQotPiB3cyA9IGNscygpCiAgL3Vzci9saWIvcHl0aG9uMy9zaXRlLXBhY2thZ2VzL3BrZ19y
ZXNvdXJjZXMvX19pbml0X18ucHkoNTU4KV9faW5pdF9fKCkKLT4gc2VsZi5hZGRfZW50cnkoZW50
cnkpCiAgL3Vzci9saWIvcHl0aG9uMy9zaXRlLXBhY2thZ2VzL3BrZ19yZXNvdXJjZXMvX19pbml0
X18ucHkoNjE0KWFkZF9lbnRyeSgpCi0+IGZvciBkaXN0IGluIGZpbmRfZGlzdHJpYnV0aW9ucyhl
bnRyeSwgVHJ1ZSk6CiAgL3Vzci9saWIvcHl0aG9uMy9zaXRlLXBhY2thZ2VzL3BrZ19yZXNvdXJj
ZXMvX19pbml0X18ucHkoMTk2NClmaW5kX29uX3BhdGgoKQotPiBmb3IgZGlzdCBpbiBmYWN0b3J5
KGZ1bGxwYXRoKToKICAvdXNyL2xpYi9weXRob24zL3NpdGUtcGFja2FnZXMvcGtnX3Jlc291cmNl
cy9fX2luaXRfXy5weSgyMDM0KWRpc3RyaWJ1dGlvbnNfZnJvbV9tZXRhZGF0YSgpCi0+IHJvb3Qs
IGVudHJ5LCBtZXRhZGF0YSwgcHJlY2VkZW5jZT1ERVZFTE9QX0RJU1QsCiAgL3Vzci9saWIvcHl0
aG9uMy9zaXRlLXBhY2thZ2VzL3BrZ19yZXNvdXJjZXMvX19pbml0X18ucHkoMjQ3Mylmcm9tX2xv
Y2F0aW9uKCkKLT4gcHlfdmVyc2lvbj1weV92ZXJzaW9uLCBwbGF0Zm9ybT1wbGF0Zm9ybSwgKipr
dwo+IC91c3IvbGliL3B5dGhvbjMvc2l0ZS1wYWNrYWdlcy9wa2dfcmVzb3VyY2VzL19faW5pdF9f
LnB5KDI4MzYpX3JlbG9hZF92ZXJzaW9uKCkKLT4gbWRfdmVyc2lvbiA9IF92ZXJzaW9uX2Zyb21f
ZmlsZShzZWxmLl9nZXRfbWV0YWRhdGEoc2VsZi5QS0dfSU5GTykpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>