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

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

    <bug>
          <bug_id>28762</bug_id>
          
          <creation_ts>2013-03-29 15:32:08 +0400</creation_ts>
          <short_desc>Не цепляет зависимости</short_desc>
          <delta_ts>2013-04-08 15:00:43 +0400</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>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey V Turchin">zerg</reporter>
          <assigned_to name="solo">solo</assigned_to>
          <cc>darktemplar</cc>
    
    <cc>george</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>iv</cc>
    
    <cc>kotopesutility</cc>
    
    <cc>ldv</cc>
    
    <cc>manowar</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>139137</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2013-03-29 15:32:08 +0400</bug_when>
    <thetext>Для
/usr/bin/maliit-exampleapp-gtk3-python.py
успешно цепляется зависомость на python2.7(gi), а для аналогичного &quot;from gi.repository import&quot; из Python3-скрипта
/usr/bin/maliit-exampleapp-settings-python3.py
на цепляется python3.2(gi).
Сейчас скрипт в пакете maliit-framework-examples, но скоро переместится в  maliit-framework-settings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139173</commentid>
    <comment_count>1</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2013-03-31 08:24:25 +0400</bug_when>
    <thetext>Workaround:

%add_python3_path %_bindir

Не понимаю, почему %_bindir нет в %_python3_path по умолчанию. Наверное забыли.

Ещё меньше понимаю, почему фильтрацией путей занимается python3.req.py, а не python3.req.files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139177</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-03-31 15:41:14 +0400</bug_when>
    <thetext>(In reply to comment #1)
&gt; Workaround:
&gt; 
&gt; %add_python3_path %_bindir
&gt; 
&gt; Не понимаю, почему %_bindir нет в %_python3_path по умолчанию. Наверное забыли.
&gt; 
&gt; Ещё меньше понимаю, почему фильтрацией путей занимается python3.req.py, а не
&gt; python3.req.files.

По идее, %_python3_path не нужен, python3.req.py должен обрабатывать все, что к нему приехало.  Эх, автора бы спросить...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139321</commentid>
    <comment_count>3</comment_count>
    <who name="solo">solo</who>
    <bug_when>2013-04-04 12:37:59 +0400</bug_when>
    <thetext>(В ответ на комментарий №2)
...
&gt; По идее, %_python3_path не нужен, python3.req.py должен обрабатывать все, что к
&gt; нему приехало.  Эх, автора бы спросить...

  При отладке картина вообще странная: После python3.req.files, python3.req.py (через python3.req) передаётся только один файл (только строка &quot;/usr/src/tmp/maliit-framework-buildroot/usr/bin/maliit-exampleapp-settings-python3.py&quot;). Но в переменную files (куда должен попадать весь in, если я правельно понял код) данная строка не попадает!

  Содержимое files, формируется так:

files = sys.argv[1:] or [ x.strip() for x in sys.stdin.readlines() ]
files = [p for p in files if is_python3(os.path.abspath(p))]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139323</commentid>
    <comment_count>4</comment_count>
    <who name="solo">solo</who>
    <bug_when>2013-04-04 13:49:19 +0400</bug_when>
    <thetext>(В ответ на комментарий №3)
...
&gt;   При отладке картина вообще странная: После python3.req.files, python3.req.py
&gt; (через python3.req) передаётся только один файл (только строка
&gt; &quot;/usr/src/tmp/maliit-framework-buildroot/usr/bin/maliit-exampleapp-settings-python3.py&quot;).
&gt; Но в переменную files (куда должен попадать весь in, если я правельно понял
&gt; код) данная строка не попадает!

  Точнее:

&gt; 
&gt;   Содержимое files, формируется так:
&gt; 
&gt; files = sys.argv[1:] or [ x.strip() for x in sys.stdin.readlines() ]

  Здесь, есть.

&gt; files = [p for p in files if is_python3(os.path.abspath(p))]

  А здесь -- уже нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139324</commentid>
    <comment_count>5</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2013-04-04 14:15:28 +0400</bug_when>
    <thetext>
&gt; &gt; files = sys.argv[1:] or [ x.strip() for x in sys.stdin.readlines() ]
&gt; 
&gt;   Здесь, есть.

  Видимо потому, что читаем из stdin всё, без проверки условий.

&gt; 
&gt; &gt; files = [p for p in files if is_python3(os.path.abspath(p))]
&gt; 
&gt;   А здесь -- уже нет.

  Ну тут уже есть ограничения в виде условия is_python3. А ещё странный p перед for. Я не являюсь носителем питоньего языка, но кажется, что эта конструкция может заносить в итоговый список ровно один элемент, нет?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139325</commentid>
    <comment_count>6</comment_count>
    <who name="solo">solo</who>
    <bug_when>2013-04-04 15:19:47 +0400</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; &gt; &gt; files = sys.argv[1:] or [ x.strip() for x in sys.stdin.readlines() ]
&gt; &gt; 
&gt; &gt;   Здесь, есть.
&gt; 
&gt;   Видимо потому, что читаем из stdin всё, без проверки условий.

  У меня ляп был при отладке -- был уверен что сюда ничего не попадает.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; files = [p for p in files if is_python3(os.path.abspath(p))]
&gt; &gt; 
&gt; &gt;   А здесь -- уже нет.
&gt; 
&gt;   Ну тут уже есть ограничения в виде условия is_python3. А ещё странный p перед
&gt; for. Я не являюсь носителем питоньего языка, но кажется, что эта конструкция
&gt; может заносить в итоговый список ровно один элемент, нет?

  Это один из способов записи цикла для обработки всего списка. Т. е. данная конструкция -- фильтр: оставляет только строки для которых is_python3(os.path.abspath(p)) истина.

(В ответ на комментарий №1)
...
&gt; Ещё меньше понимаю, почему фильтрацией путей занимается python3.req.py, а не
&gt; python3.req.files.

  Похоже, что это связано с тем, что python скрипты тоже попадают на вход python3.req.py (при отладке наблюдаю на входе &quot;/usr/src/tmp/maliit-framework-buildroot/usr/bin/maliit-exampleapp-gtk3-python.py&quot;). Возможно это попытка убрать их...

  Где сдеь причина, а где следствие и к чему приведёт закрутка гаек у python3.req.files -- ещё не разобрался.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139357</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-04-06 05:30:33 +0400</bug_when>
    <thetext>Try rpm-build-python3 commit 0.1.5-alt1-4-g33f386f.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139366</commentid>
    <comment_count>8</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2013-04-07 02:44:42 +0400</bug_when>
    <thetext>rpm-build-python3-0.1.6-alt1 -&gt; sisyphus:

* Sat Apr 06 2013 Dmitry V. Levin &lt;ldv@altlinux&gt; 0.1.6-alt1
- python3.{prov,req}.files:
  + skip files of type &quot;python script text executable&quot;;
  + enhanced &quot;python3 script text executable&quot; type check;
  + added is_python3_path check from python3.{prov,req}.py,
    which is now applied only to files of uncertain type.
- python3.{prov,req}.py: removed is_python3 check (closes: #28762).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139410</commentid>
    <comment_count>9</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2013-04-08 15:00:43 +0400</bug_when>
    <thetext>Теперь правильно цепляет зависимости при плюрализме в одном пакете.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>