Summary: | Пересобрать с python3 | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Антон Мидюков <antohami> |
Component: | youtube-dl | Assignee: | Gleb F-Malinovskiy <glebfm> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | cronbuild, glebfm, gns, imz |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | 31992 | ||
Bug Blocks: |
Description
Антон Мидюков
2016-04-07 08:27:49 MSK
* Fri Apr 08 2016 Gleb F-Malinovskiy <glebfm@altlinux.org> 2016.04.06-alt1 - Updated to 2016.04.06. - Split package into youtube-dl and python module. - Packaged python3 module (fixes ALT#31948). Собранный python3-module-youtube_dl не предоставляет нужную мне provides python3(youtube_dl). Может нужно добавить в спек %py3_provides ? (In reply to comment #2) > Собранный python3-module-youtube_dl не предоставляет нужную мне provides > python3(youtube_dl). Может нужно добавить в спек %py3_provides ? Проверил. Необходимо в пакет python3-module-%py_name добавить строчку: %py3_provides %py_name Ну, а для симметрии, аналогично добавить в python-module-%py_name строчку: %py_provides %py_name (In reply to comment #3) > Проверил. Необходимо в пакет python3-module-%py_name добавить строчку: > %py3_provides %py_name > Ну, а для симметрии, аналогично добавить в python-module-%py_name строчку: > %py_provides %py_name Странность в том, что в одном модуле есть provide, а в другом нет: $ rpm -q --provides -p python-module-youtube_dl-2016.04.06-alt1.noarch.rpm | grep '(youtube_dl)' python2.7(youtube_dl) $ rpm -q --provides -p python3-module-youtube_dl-2016.04.06-alt1.noarch.rpm | grep '(youtube_dl)' youtube-dl-2016.04.13-alt1 -> sisyphus: * Fri Apr 15 2016 Gleb F-Malinovskiy <glebfm@altlinux> 2016.04.13-alt1 - Updated to 2016.04.13. - python3-module-youtube_dl: added P: python3(youtube_dl) (ALT#31948). (In reply to comment #4) > Странность в том, что в одном модуле есть provide, а в другом нет: > $ rpm -q --provides -p python-module-youtube_dl-2016.04.06-alt1.noarch.rpm | > grep '(youtube_dl)' > python2.7(youtube_dl) > $ rpm -q --provides -p python3-module-youtube_dl-2016.04.06-alt1.noarch.rpm | > grep '(youtube_dl)' Понял, почему. Там довольно извращённая логика, особенно в python3.prov.files. Вот сравните отрывки из начала python.prov.files и python3.prov.files. python.prov.files: case "$t" in # skip python3 files *"python3 script text"*) continue ;; # shortcut for real python scripts "python script text executable") echo "$f" continue ;; # shortcut for possible python extensions *ELF*" shared object"*) ... continue ;; esac python3.prov.files: case "$t" in # skip python2 files "python script text executable") continue ;; # shortcut for real python scripts "python3 script text executable") echo "$f" continue ;; # shortcut for possible python extensions *ELF*" shared object"*) case "$f" in ${RPM_BUILD_ROOT-}*/python3*/*.so) echo "$f" ;; esac continue ;; esac А file говорит на них просто "python script text executable" (версию у него нет возможности определить) и мы радостно игнорируем его в 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 не должен быть причиной игнорирования. Может быть, придумаю, как переписать. Или предлагайте варианты. |