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

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

    <bug>
          <bug_id>28606</bug_id>
          
          <creation_ts>2013-02-26 19:26:06 +0400</creation_ts>
          <short_desc>способ выключить rpm-build-python</short_desc>
          <delta_ts>2016-03-10 01:07:22 +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</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="Yuri N. Sedunov">aris</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>arseny</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>real.altlinux.org</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>138181</commentid>
    <comment_count>0</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2013-02-26 19:26:06 +0400</bug_when>
    <thetext>Наступает эра python3 и от rpm-build-python, который неизбежно оказывается в сборочной системе, практически невозможно предохраниться. Необходимо иметь способ отключить rpm-build-python вообще, либо оторвать его от rpm-build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138184</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-02-26 19:36:44 +0400</bug_when>
    <thetext>python.{req,prov} отключается обычным nopython&apos;ом.
А весь rpm-build-python зачем отключать?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138186</commentid>
    <comment_count>2</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2013-02-26 19:51:39 +0400</bug_when>
    <thetext>(In reply to comment #1)
&gt; python.{req,prov} отключается обычным nopython&apos;ом.
&gt; А весь rpm-build-python зачем отключать?

Затем, что он лезет компилять и вычислять зависимости в python3-файлы. Нужен глобальный рубильник.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138188</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-02-26 20:01:00 +0400</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; python.{req,prov} отключается обычным nopython&apos;ом.
&gt; &gt; А весь rpm-build-python зачем отключать?
&gt; 
&gt; Затем, что он лезет компилять и вычислять зависимости в python3-файлы.

Он вряд ли станет смотреть на python3-файлы, находящиеся в отведенных для них частях файловой системы.  Есть пример, когда это работает неправильно?

&gt; Нужен глобальный рубильник.

Напротив, автоматика должна работать сама.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138190</commentid>
    <comment_count>4</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2013-02-26 20:10:49 +0400</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; python.{req,prov} отключается обычным nopython&apos;ом.
&gt; &gt; &gt; А весь rpm-build-python зачем отключать?
&gt; &gt; 
&gt; &gt; Затем, что он лезет компилять и вычислять зависимости в python3-файлы.
&gt; 
&gt; Он вряд ли станет смотреть на python3-файлы, находящиеся в отведенных для них
&gt; частях файловой системы.  Есть пример, когда это работает неправильно?
&gt;
Про отведенные места, разумеется, и речи нет.
 
&gt; &gt; Нужен глобальный рубильник.
&gt; 
&gt; Напротив, автоматика должна работать сама.

Как в нештатных местах будет работать автоматика?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138192</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-02-26 20:31:23 +0400</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; python.{req,prov} отключается обычным nopython&apos;ом.
&gt; &gt; &gt; &gt; А весь rpm-build-python зачем отключать?
&gt; &gt; &gt; 
&gt; &gt; &gt; Затем, что он лезет компилять и вычислять зависимости в python3-файлы.
&gt; &gt; 
&gt; &gt; Он вряд ли станет смотреть на python3-файлы, находящиеся в отведенных для них
&gt; &gt; частях файловой системы.  Есть пример, когда это работает неправильно?
&gt; &gt;
&gt; Про отведенные места, разумеется, и речи нет.
&gt; 
&gt; &gt; &gt; Нужен глобальный рубильник.
&gt; &gt; 
&gt; &gt; Напротив, автоматика должна работать сама.
&gt; 
&gt; Как в нештатных местах будет работать автоматика?

Для нештатных случаев есть рубильники вроде
AutoReqProv: nopython
и
%define __python %nil

Но если таких случаев перестанет быть мало, значит, надо автоматику совершенствовать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138195</commentid>
    <comment_count>6</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2013-02-26 20:57:52 +0400</bug_when>
    <thetext>(In reply to comment #5)
&gt; 
&gt; Для нештатных случаев есть рубильники вроде
Таких &quot;нештатных&quot; ситуаций будет больше и больше.

&gt; AutoReqProv: nopython
&gt; и
&gt; %define __python %nil

Эти два заклинания следует объединить в одно типа %nopython или %nopython2 -- на сейчас устроит. 

&gt; Но если таких случаев перестанет быть мало, значит, надо автоматику
&gt; совершенствовать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138196</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-02-26 21:11:43 +0400</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; 
&gt; &gt; Для нештатных случаев есть рубильники вроде
&gt; Таких &quot;нештатных&quot; ситуаций будет больше и больше.

Почему?  Может, примеры есть какие-нибудь?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138197</commentid>
    <comment_count>8</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2013-02-26 21:27:54 +0400</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; 
&gt; &gt; &gt; Для нештатных случаев есть рубильники вроде
&gt; &gt; Таких &quot;нештатных&quot; ситуаций будет больше и больше.
&gt; 
&gt; Почему?  Может, примеры есть какие-нибудь?

Вот, сейчас собираю новые gedit и gedit-plugins, -- штепсели, написанные на третьем питоне, разложены по папкам в /usr/lib/gedit. Следующий будет totem, видимо с такой же иерархией плагинов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139365</commentid>
    <comment_count>9</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2013-04-07 02:44:40 +0400</bug_when>
    <thetext>rpm-build-python-0.36.2-alt1 -&gt; sisyphus:

* Sat Apr 06 2013 Dmitry V. Levin &lt;ldv@altlinux&gt; 0.36.2-alt1
- python.compileall.py:
  + removed python version &lt;= 2.2 py_compile workaround;
  + fixed file executability check (by iv@).
- python.{prov,req}.files:
  + enhanced &quot;python script text executable&quot; type check;
  + added is_python3_path check from python.{prov,req}.py,
    which is now applied only to files of uncertain type.
- python.{prov,req}.py: removed is_python3 check.
- brp-bytecompile_python:
  added $RPM_PYTHON3_COMPILE_INCLUDE to the exclude list (closes: #28606).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139367</commentid>
    <comment_count>10</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2013-04-07 03:05:12 +0400</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; 
&gt; &gt; Для нештатных случаев есть рубильники вроде
&gt; Таких &quot;нештатных&quot; ситуаций будет больше и больше.
&gt; 
&gt; &gt; AutoReqProv: nopython
&gt; &gt; и
&gt; &gt; %define __python %nil
&gt; 
&gt; Эти два заклинания следует объединить в одно типа %nopython или %nopython2 --
&gt; на сейчас устроит.

Недостаточно выключить один питон, надо ведь еще и включить на полную катушку другой питон.  Не представляю себе ни интерфейса, ни реализации подобного трюка.

&gt; Вот, сейчас собираю новые gedit и gedit-plugins, -- штепсели, написанные на
&gt; третьем питоне, разложены по папкам в /usr/lib/gedit. Следующий будет totem,
&gt; видимо с такой же иерархией плагинов.

С теми изменениями, которые сейчас в Сизифе, достаточно было бы написать:
%add_python3_compile_include /usr/lib/gedit
Этого достаточно, чтобы, с одной стороны, скрипты python2 утратили интерес к /usr/lib/gedit, и, с другой стороны, скрипты python3 сделали с /usr/lib/gedit все, что они считают нужным.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155580</commentid>
    <comment_count>11</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-03-09 16:49:49 +0300</bug_when>
    <thetext>Сейчас используется скрипт без этой фичи:

[root@c253 ~]# rpm -qf /usr/lib/rpm/brp.d/072-bytecompile_python.brp 
rpm-build-4.0.4-alt100.88
[root@c253 ~]# fgrep -i python3 /usr/lib/rpm/brp.d/072-bytecompile_python.brp 
[root@c253 ~]# 

Так и задумано?

Я так понимаю, для сборки gedit автоматику как-то насильно вырубили (ведь на эту фичи нельзя полагаться), потому что он даже не делает попытки компилировать python-ом (не 3):

$ fgrep Bytecompiling /beehive/logs/Sisyphus-x86_64/latest/success/gedit-* 
/beehive/logs/Sisyphus-x86_64/latest/success/gedit-3.18.3-alt1:Bytecompiling python3 modules in /usr/src/tmp/gedit-buildroot using python3
/beehive/logs/Sisyphus-x86_64/latest/success/gedit-3.18.3-alt1:Bytecompiling python3 modules with optimization in /usr/src/tmp/gedit-buildroot using python3 -O
/beehive/logs/Sisyphus-x86_64/latest/success/gedit-plugins-3.18.0-alt1:Bytecompiling python3 modules in /usr/src/tmp/gedit-plugins-buildroot using python3
/beehive/logs/Sisyphus-x86_64/latest/success/gedit-plugins-3.18.0-alt1:Bytecompiling python3 modules with optimization in /usr/src/tmp/gedit-plugins-buildroot using python3 -O
/beehive/logs/Sisyphus-x86_64/latest/success/gedit-plugins-latex-3.4.1-alt1:Bytecompiling python modules in /usr/src/tmp/gedit-plugins-latex-buildroot using /usr/bin/python
/beehive/logs/Sisyphus-x86_64/latest/success/gedit-plugins-latex-3.4.1-alt1:Bytecompiling python modules with optimization in /usr/src/tmp/gedit-plugins-latex-buildroot using /usr/bin/python -O

Только для gedit-plugins-latex наоборот: там про python3 не знают. Зато python работает. (Тоже странно, что разные версии плагинов к одной программе...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155584</commentid>
    <comment_count>12</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-03-10 00:57:30 +0300</bug_when>
    <thetext>Если бы не george@ полез смотреть скрипт у себя, я бы так и продолжил читать неактивную версию из rpm-build-python и не понимать, почему оно не действует.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155585</commentid>
    <comment_count>13</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-03-10 01:07:22 +0300</bug_when>
    <thetext>rpm-4.0.4-alt100.89 -&gt; sisyphus:

* Wed Mar 09 2016 Dmitry V. Levin &lt;ldv@altlinux&gt; 4.0.4-alt100.89
- brp-bytecompile_python: exclude paths listed
  in $RPM_PYTHON3_COMPILE_INCLUDE (ALT#28606).
- ldd: pass --list to rtld.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>