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

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

    <bug>
          <bug_id>31992</bug_id>
          
          <creation_ts>2016-04-18 20:25:54 +0300</creation_ts>
          <short_desc>python3.prov.files skips many Python3 files and doesn&apos;t generate the corresponding Provides</short_desc>
          <delta_ts>2016-04-21 23:42:08 +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>rpm-build-python3</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>
          
          <blocked>31948</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ivan Zakharyaschev">imz</reporter>
          <assigned_to name="Ivan Zakharyaschev">imz</assigned_to>
          <cc>darktemplar</cc>
    
    <cc>george</cc>
    
    <cc>glebfm</cc>
    
    <cc>gns</cc>
    
    <cc>imz</cc>
    
    <cc>kotopesutility</cc>
    
    <cc>ldv</cc>
    
    <cc>slev</cc>
    
    <cc>vitty</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>156156</commentid>
    <comment_count>0</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-04-18 20:25:54 +0300</bug_when>
    <thetext>rpm-build-python3-0.1.10

+++ This bug was initially created as a clone of Bug #31948 +++

https://bugzilla.altlinux.org/show_bug.cgi?id=31948#c6

(In reply to comment #4)

&gt; Странность в том, что в одном модуле есть provide, а в другом нет:
&gt; $ rpm -q --provides -p python-module-youtube_dl-2016.04.06-alt1.noarch.rpm |
&gt; grep &apos;(youtube_dl)&apos;
&gt; python2.7(youtube_dl)
&gt; $ rpm -q --provides -p python3-module-youtube_dl-2016.04.06-alt1.noarch.rpm |
&gt; grep &apos;(youtube_dl)&apos;

Понял, почему. Там довольно извращённая логика, особенно в python3.prov.files.
Вот сравните отрывки из начала python.prov.files и python3.prov.files.

python.prov.files:

    case &quot;$t&quot; in
        # skip python3 files
        *&quot;python3 script text&quot;*)
            continue ;;
        # shortcut for real python scripts
        &quot;python script text executable&quot;)
            echo &quot;$f&quot;
            continue ;;
        # shortcut for possible python extensions
        *ELF*&quot; shared object&quot;*)

...

            continue ;;
    esac

python3.prov.files:

    case &quot;$t&quot; in
        # skip python2 files
        &quot;python script text executable&quot;)
            continue ;;
        # shortcut for real python scripts
        &quot;python3 script text executable&quot;)
            echo &quot;$f&quot;
            continue ;;
        # shortcut for possible python extensions
        *ELF*&quot; shared object&quot;*)
            case &quot;$f&quot; in
                ${RPM_BUILD_ROOT-}*/python3*/*.so)
                    echo &quot;$f&quot; ;;
            esac
            continue ;;
    esac

А file говорит на них просто &quot;python script text executable&quot; (версию у него нет
возможности определить) и мы радостно игнорируем его в python3.prov.files.

$ file /usr/lib/python3/site-packages/youtube_dl/*
/usr/lib/python3/site-packages/youtube_dl/YoutubeDL.py:  python script text
executable
/usr/lib/python3/site-packages/youtube_dl/__init__.py:   python script text
executable
/usr/lib/python3/site-packages/youtube_dl/__main__.py:   python script text
executable
/usr/lib/python3/site-packages/youtube_dl/__pycache__:   directory
/usr/lib/python3/site-packages/youtube_dl/aes.py:        ASCII Java program
text
/usr/lib/python3/site-packages/youtube_dl/cache.py:      ASCII Java program
text
/usr/lib/python3/site-packages/youtube_dl/compat.py:     ASCII Java program
text
/usr/lib/python3/site-packages/youtube_dl/downloader:    directory
/usr/lib/python3/site-packages/youtube_dl/extractor:     directory
/usr/lib/python3/site-packages/youtube_dl/jsinterp.py:   ASCII Java program
text
/usr/lib/python3/site-packages/youtube_dl/options.py:    ASCII Java program
text, with very long lines
/usr/lib/python3/site-packages/youtube_dl/postprocessor: directory
/usr/lib/python3/site-packages/youtube_dl/swfinterp.py:  ASCII Java program
text
/usr/lib/python3/site-packages/youtube_dl/update.py:     ASCII Java program
text
/usr/lib/python3/site-packages/youtube_dl/utils.py:      python script text
executable
/usr/lib/python3/site-packages/youtube_dl/version.py:    ASCII Java program
text


Я недавно немного поменял похожую штуку в python3.req.files (потому что
недополучение requires меня беспокоило больше -- с точки зрения создания
дистрибутива) -- да и то, только в том, что касалось .so (сделал основным
критерием ответ is_python3_path, о чём сообщал в одном письме в devel).

Переписывать сильнее у меня не было сил.

Но вот в этом месте вроде очевидно, что такой ответ file не должен быть
причиной игнорирования. Может быть, придумаю, как переписать. Или предлагайте
варианты.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156231</commentid>
    <comment_count>1</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-04-21 23:42:08 +0300</bug_when>
    <thetext>rpm-build-python3-0.1.10.2-alt1 -&gt; sisyphus:

* Wed Apr 20 2016 Ivan Zakharyaschev &lt;imz@altlinux&gt; 0.1.10.2-alt1
- generate more Requires (many Python3 files used to be skipped
  because &quot;python script text executable&quot; were considered to be
  non-Python3; now, Python files under standard Python3 paths and
  %_python3_path are considered).
- generate more Provides (ALT#31992) similarly
  (for Python files under standard Python3 paths).
- generate additional (specially-modified) Provides for modules under
  non-standard/non-builtin paths.
- generate more liberal Requires if %_python3_path or
  %_python3_compile_include has non-standard/non-builtin paths.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>