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

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

    <bug>
          <bug_id>31948</bug_id>
          
          <creation_ts>2016-04-07 08:27:49 +0300</creation_ts>
          <short_desc>Пересобрать с python3</short_desc>
          <delta_ts>2016-04-24 10:41:27 +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>youtube-dl</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>31992</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Антон Мидюков">antohami</reporter>
          <assigned_to name="Gleb F-Malinovskiy">glebfm</assigned_to>
          <cc>cronbuild</cc>
    
    <cc>glebfm</cc>
    
    <cc>gns</cc>
    
    <cc>imz</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155989</commentid>
    <comment_count>0</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2016-04-07 08:27:49 +0300</bug_when>
    <thetext>Захотел собрать ytfs ( https://github.com/rasguanabana/ytfs ), но столкнулся с проблемой, собранный пакет требует пакет с provides: python3(youtube_dl). То есть ему нужен youtube-dl, собранный с python3.  Нельзя ли youtube-dl пересобрать с python3 и проследить, чтоб пакет обзавёлся провайдесом python3(youtube_dl)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156005</commentid>
    <comment_count>1</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2016-04-08 18:39:22 +0300</bug_when>
    <thetext>* Fri Apr 08 2016 Gleb F-Malinovskiy &lt;glebfm@altlinux.org&gt; 2016.04.06-alt1
- Updated to 2016.04.06.
- Split package into youtube-dl and python module.
- Packaged python3 module (fixes ALT#31948).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156011</commentid>
    <comment_count>2</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2016-04-10 18:52:21 +0300</bug_when>
    <thetext>Собранный python3-module-youtube_dl не предоставляет нужную мне provides python3(youtube_dl). Может нужно добавить в спек %py3_provides ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156111</commentid>
    <comment_count>3</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2016-04-15 16:35:16 +0300</bug_when>
    <thetext>(In reply to comment #2)
&gt; Собранный python3-module-youtube_dl не предоставляет нужную мне provides
&gt; python3(youtube_dl). Может нужно добавить в спек %py3_provides ?

Проверил. Необходимо в пакет python3-module-%py_name добавить строчку:
%py3_provides %py_name
Ну, а для симметрии, аналогично добавить в python-module-%py_name строчку:
%py_provides %py_name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156112</commentid>
    <comment_count>4</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2016-04-15 16:41:51 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; Проверил. Необходимо в пакет python3-module-%py_name добавить строчку:
&gt; %py3_provides %py_name
&gt; Ну, а для симметрии, аналогично добавить в python-module-%py_name строчку:
&gt; %py_provides %py_name

Странность в том, что в одном модуле есть provide, а в другом нет:
$ rpm -q --provides -p python-module-youtube_dl-2016.04.06-alt1.noarch.rpm | grep &apos;(youtube_dl)&apos;
python2.7(youtube_dl)
$ rpm -q --provides -p python3-module-youtube_dl-2016.04.06-alt1.noarch.rpm | grep &apos;(youtube_dl)&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156116</commentid>
    <comment_count>5</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-04-15 17:54:55 +0300</bug_when>
    <thetext>youtube-dl-2016.04.13-alt1 -&gt; sisyphus:

* Fri Apr 15 2016 Gleb F-Malinovskiy &lt;glebfm@altlinux&gt; 2016.04.13-alt1
- Updated to 2016.04.13.
- python3-module-youtube_dl: added P: python3(youtube_dl) (ALT#31948).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156155</commentid>
    <comment_count>6</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-04-18 19:42:10 +0300</bug_when>
    <thetext>(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>
      
      

    </bug>

</bugzilla>