Issue 181 in rion-overlay: media-gfx/phatch conflicts with dev-python/pillow

1 view
Skip to first unread message

rion-o...@googlecode.com

unread,
Sep 15, 2013, 5:00:49 AM9/15/13
to rion-o...@googlegroups.com
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 181 by mish...@gmail.com: media-gfx/phatch conflicts with
dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

1. dev-python/pillow необходим для другого пакета
2. media-gfx/phatch требует dev-python/imaging
3. dev-python/pillow конфликтует с dev-python/imaging
4. dev-python/pillow - замена dev-python/imaging

решение:
1. добавить pillow в зависимости
--- phatch-0.2.7.1.ebuild
+++ phatch-0.2.7.1.ebuild
@@ -20,13 +20,20 @@
IUSE=""

DEPEND="dev-python/wxpython
- dev-python/imaging"
+ || (
+ dev-python/imaging
+ dev-python/pillow
+ )"

RDEPEND="${DEPEND}
sys-apps/mlocate"

S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)"

+src_prepare(){
+ epatch ${FILESDIR}/pillow_support.diff
+}
+
pkg_postinst()
{
distutils_pkg_postinst

Патч в аттаче
Да, этот патч - это костыль, но вроде не очень ужасный, плюс оно работает.

Attachments:
pillow_support.diff 294 bytes

--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

rion-o...@googlecode.com

unread,
Sep 15, 2013, 5:21:30 AM9/15/13
to rion-o...@googlegroups.com

Comment #1 on issue 181 by sterk...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

Для этого есть virtual/python-imaging

rion-o...@googlecode.com

unread,
Sep 15, 2013, 10:34:55 AM9/15/13
to rion-o...@googlegroups.com

Comment #2 on issue 181 by mish...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

> Для этого есть virtual/python-imaging
не нашел(не искал) сам его, согласен - он больше подойдет
Но этот патчик полюбому необходим

Плз - сообщите когда изменения примете в оверлей (надеюсь примете).

rion-o...@googlecode.com

unread,
Sep 15, 2013, 10:43:25 AM9/15/13
to rion-o...@googlegroups.com

Comment #3 on issue 181 by sterk...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

> Но этот патчик полюбому необходим

Чего-то я не уверен в этом, если честно. В чём соль этих манипуляций с
sys.path?

rion-o...@googlecode.com

unread,
Sep 15, 2013, 5:36:16 PM9/15/13
to rion-o...@googlegroups.com

Comment #4 on issue 181 by mish...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

> В чём соль этих манипуляций с sys.path?
лучше на примере покажу

Вариант приближенный к оригинальному:
$ tail /usr/lib/python2.7/site-packages/phatch/__init__.py
sys.path.insert(0, os.path.dirname(__file__))
#try:
# import PIL
#except ImportError:
# pass
#else:
# sys.path.append(PIL.__path__[0])

from core.config import init_config_paths
init_config_paths()
admb@M0TWd ~ $ phatch
Traceback (most recent call last):
File "/usr/bin/phatch-2.7", line 16, in <module>
main(config_paths, app_file = __file__)
File "/usr/lib/python2.7/site-packages/phatch/app.py", line 203, in main
from core.settings import create_settings
File "/usr/lib/python2.7/site-packages/phatch/core/settings.py", line 23,
in <module>
from pil import IMAGE_READ_EXTENSIONS
File "/usr/lib/python2.7/site-packages/phatch/core/pil.py", line 33, in
<module>
import Image
ImportError: No module named Image

в коде, в разных местах, полно импортов того, что находится в PIL,
правильнее было бы
from PIL import Image
но, как я писал выше, там много подобных импортов, так что проще выполнить
этот хитрый хак.
Тем более, что на работу с dev-python/imaging это никак не повлияет, т.е.
сохраняется обратная совместимость.

rion-o...@googlecode.com

unread,
Sep 15, 2013, 5:37:16 PM9/15/13
to rion-o...@googlegroups.com

Comment #5 on issue 181 by mish...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

пожалуй, надо было об этой ошибке с самого начала написать ))

rion-o...@googlecode.com

unread,
Sep 16, 2013, 1:30:20 AM9/16/13
to rion-o...@googlegroups.com
Updates:
Status: Accepted

Comment #6 on issue 181 by rion4ik: media-gfx/phatch conflicts with
dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

меня не будет пару недель. без меня зафиксите, ок?

rion-o...@googlecode.com

unread,
Sep 16, 2013, 11:12:11 AM9/16/13
to rion-o...@googlegroups.com

Comment #7 on issue 181 by sterk...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

О Сотона. Не, я не буду такое вытворять с пакетом, которым не занимаюсь.

По уму надо бы исправить импорты по-человечески, без костылей, и заслать
заплатку авторам.

rion-o...@googlecode.com

unread,
Sep 20, 2013, 6:14:14 AM9/20/13
to rion-o...@googlegroups.com

Comment #8 on issue 181 by mish...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

Ребят, никто не против чтоб из коробки все работало, и таких патчей делать
не приходилось.
И сделать по-человечески гораздо правильнее - согласен.
Но во-первых - это надо на launchpad-е регаться и на инглише писать (у меня
инглиш на уровне "моя твоя не понимай")
А во-вторых - даже если я смогу объяснить в чем проблема, и разрабы начнут
править код, то там
* или куча правок(try-except-ами обложить каждый вызов библиотек imaging-а)
* или надо отказаться от поддержки старой версии(правок меньше)
* или забить на новую версию(вообще самый ленивый вариант)
* или могут отреагировать вроде как - в нашей милой бубунточке все
работает, а если в вашем gentoo ничего не работает - правьте свой гентушный
pillow (что вернее всего случится).
* или прибегнуть к варианту обрисованному мною. Тем более это не костыль, а
использование стандартных функций языка для обхода нестандартной ситуации
(скорее хитрый хак)

Я не представляю ситуацию, в которой мое решение может что-либо поломать.
Напротив - это позволяет включить в зависимости virtual/python-imaging, на
что указал выше Sterkrig, без лишних хлопот уже в этой версии.

rion-o...@googlecode.com

unread,
Sep 20, 2013, 9:07:32 AM9/20/13
to rion-o...@googlegroups.com

Comment #9 on issue 181 by sterk...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

> или надо отказаться от поддержки старой версии

Старой версии чего? У PIL вообще все версии старые.

Я предлагаю:

1. Сделать заплатку для phatch 0.2.7.1 с заменой всего вроде `import
Image` -> `from PIL import Image` [1]_
2. Её и положить в наш уютный оверлейчик под видом 0.2.7.1-r1 с
зависимостью от виртуала
3. Отослать авторам с описанием типа "Please drop legacy PIL imports, thus
permitting to use Pillow, PIL fork and drop-in replacement" (и ссылку на
сайт Pillow). Всё.

.. [1]: http://comments.gmane.org/gmane.linux.gentoo.python/475

rion-o...@googlecode.com

unread,
Sep 20, 2013, 11:06:46 AM9/20/13
to rion-o...@googlegroups.com

Comment #10 on issue 181 by mish...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

> 1. Сделать заплатку для phatch 0.2.7.1 с заменой всего вроде `import
> Image` -> `from PIL import Image` [1]_
> 2. Её и положить в наш уютный оверлейчик под видом 0.2.7.1-r1 с
> зависимостью от виртуала

и поиметь проблемы с пакетом dev-python/imaging, ибо в нем нет такой
библиотеки PIL.
Как-то не gentoo-way отказывать в поддержке тем, кто по какой-либо причине
не хочет обновлять часть своих библиотек.

Чтоб сохранить совместимость со старой версией либы и добавить
совместимость с новой, надо заменить
<pre>
import Image
</pre>
на
<pre>
try:
import Image
except ImportError:
from PIL import Image
</pre>
А кроме Image* там импортится еще ряд либ из PIL-а, и все это необходимо
отследить.
Имхо, мой вариант гораздо эстетичнее и проще

rion-o...@googlecode.com

unread,
Sep 20, 2013, 11:49:27 AM9/20/13
to rion-o...@googlegroups.com

Comment #11 on issue 181 by sterk...@gmail.com: media-gfx/phatch conflicts
with dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

> и поиметь проблемы с пакетом dev-python/imaging, ибо в нем нет такой
> библиотеки PIL.

Ложь.

% python -c 'from PIL import Image; print Image'
<module 'PIL.Image' from '/usr/lib64/python2.7/site-packages/PIL/Image.pyc'>

% emerge -pvqO dev-python/imaging
[ebuild R ] dev-python/imaging-1.1.7-r4 USE="doc examples jpeg tiff
truetype zlib -lcms -scanner {-test} -tk" PYTHON_TARGETS="python2_7
-python2_6"

rion-o...@googlecode.com

unread,
Nov 9, 2013, 11:29:05 AM11/9/13
to rion-o...@googlegroups.com
Updates:
Status: Fixed

Comment #12 on issue 181 by rion4ik: media-gfx/phatch conflicts with
dev-python/pillow
http://code.google.com/p/rion-overlay/issues/detail?id=181

This issue was closed by revision 005465507670.
Reply all
Reply to author
Forward
0 new messages