ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Как собирать для python3?
@ 2012-03-19  8:12 Sergei Epiphanov
  2012-03-19 11:00 ` Vitaly Kuznetsov
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Sergei Epiphanov @ 2012-03-19  8:12 UTC (permalink / raw)
  To: Рассылка Devel

Добрый день!

Пытаюсь сделать так, чтобы блендер и ко собирались бы и обрабатывались 
python3, а не python2. Попытка скомандовать через

%add_python_exclude_list %_libexec/%name
%add_python3_include_list %_libexec/%name

с треском провалилась (каталог получается правильным) на этапе проверки. Можно 
узнать хотя бы в общих чертах принципы сборки под python3? Пакеты python3-dev 
и rpm-build-python3 установлены.

Сама программа собирается в пакет, но только с отключением поиска зависимостей 
питоньего хозяйства, но это некошерно:

AutoReqSkip: nopython
AutoProvSkip: nopython

-- 
С уважением, Епифанов Сергей

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-19  8:12 [devel] Как собирать для python3? Sergei Epiphanov
@ 2012-03-19 11:00 ` Vitaly Kuznetsov
  2012-03-20 15:45   ` Sergey Kurakin
  2012-03-20 14:40 ` Sergey Kurakin
  2012-03-22  5:51 ` Vitaly Kuznetsov
  2 siblings, 1 reply; 13+ messages in thread
From: Vitaly Kuznetsov @ 2012-03-19 11:00 UTC (permalink / raw)
  To: devel

On Mon, 19 Mar 2012 12:12:48 +0400, Sergei Epiphanov wrote:
> Добрый день!
>
> Пытаюсь сделать так, чтобы блендер и ко собирались бы и 
> обрабатывались
> python3, а не python2. Попытка скомандовать через
>
> %add_python_exclude_list %_libexec/%name
> %add_python3_include_list %_libexec/%name
>
> с треском провалилась (каталог получается правильным) на этапе
> проверки. Можно
> узнать хотя бы в общих чертах принципы сборки под python3? Пакеты
> python3-dev
> и rpm-build-python3 установлены.
>
> Сама программа собирается в пакет, но только с отключением поиска
> зависимостей
> питоньего хозяйства, но это некошерно:
>
> AutoReqSkip: nopython
> AutoProvSkip: nopython

Дайте мне, пожалуйста, ссылку на коммит, который вы собираете, я изучу 
вопрос.



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-19  8:12 [devel] Как собирать для python3? Sergei Epiphanov
  2012-03-19 11:00 ` Vitaly Kuznetsov
@ 2012-03-20 14:40 ` Sergey Kurakin
  2012-03-21  6:05   ` Sergei Epiphanov
  2012-03-22  5:51 ` Vitaly Kuznetsov
  2 siblings, 1 reply; 13+ messages in thread
From: Sergey Kurakin @ 2012-03-20 14:40 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Добрый вечер.

On 19/03/12 12:12, Sergei Epiphanov wrote:
> Сама программа собирается в пакет, но только с отключением поиска зависимостей 
> питоньего хозяйства, но это некошерно:
> 
> AutoReqSkip: nopython
> AutoProvSkip: nopython

AutoReq: nopython
AutoProv: nopython

  Эти две строки отключают поиск зависимости как раз только
по python2.7. А поиск зависимостей по Python3 при этом остается, если
установлен rpm-build-python3. Соответствующее значение для отключения
третьего называется nopython3.

  Здесь всё кошерно. А то, что не находится ни одной зависимости по
модулям третьего питона -- так и в blender'е 2.49 они не находились ко
второму питону. Просто их там нет. Такое впечатление, что разработчики
Блендера, озабоченные всеобъемлющей кроссплатформенностью, изначально
пишут скрипты самодостаточными и не нуждающимися в нестандартных
модулях.

-- 
WBR,
Sergey Kurakin


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-19 11:00 ` Vitaly Kuznetsov
@ 2012-03-20 15:45   ` Sergey Kurakin
  0 siblings, 0 replies; 13+ messages in thread
From: Sergey Kurakin @ 2012-03-20 15:45 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On 19/03/12 15:00, Vitaly Kuznetsov wrote:
> On Mon, 19 Mar 2012 12:12:48 +0400, Sergei Epiphanov wrote:
>> Сама программа собирается в пакет, но только с отключением поиска
>> зависимостей
> Дайте мне, пожалуйста, ссылку на коммит, который вы собираете, я изучу
> вопрос.

  Наверное, тёзка имел ввиду что-то вроде этого:

http://git.altlinux.org/people/kurakin/packages/?p=blender.git;a=tree;h=5a1500e7f5a36524fc705b0f2c07802aa367f423;hb=5a1500e7f5a36524fc705b0f2c07802aa367f423

  Еще у меня была тестовая задача, из логов которой было видно,
что отключен поиск зависимостей только по python2.7, а поиск по python3
отрабатывал. Вот только задача почила, сделаю еще одну, пожалуй.

  Кстати, никто не напомнит, с каким максимальным периодом
можно поливать задачу, чтобы она не засохла?

-- 
WBR,
Sergey Kurakin


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-20 14:40 ` Sergey Kurakin
@ 2012-03-21  6:05   ` Sergei Epiphanov
  2012-03-21  8:00     ` Sergey Kurakin
  0 siblings, 1 reply; 13+ messages in thread
From: Sergei Epiphanov @ 2012-03-21  6:05 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On 20 марта 2012 18:40 Sergey Kurakin wrote:
>   Здесь всё кошерно. А то, что не находится ни одной зависимости по
> модулям третьего питона -- так и в blender'е 2.49 они не находились ко
> второму питону. Просто их там нет. Такое впечатление, что разработчики
> Блендера, озабоченные всеобъемлющей кроссплатформенностью, изначально
> пишут скрипты самодостаточными и не нуждающимися в нестандартных
> модулях.

Не в этом дело. Я попробовал допилить пакеты, которые опираются на blender 
(например openshot), то никакие шаманства не позволили мне заставить openshot 
сделать зависимость python3.2(bpy) вместо python2.7(bpy). Спек я правил, 
внедрял эти параметры (nopython), добавил python3-dev, rpm-build-python3. 
Бился неделю, после чего решил спросить что же я делаю не так.

-- 
С уважением, Епифанов Сергей

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-21  6:05   ` Sergei Epiphanov
@ 2012-03-21  8:00     ` Sergey Kurakin
  0 siblings, 0 replies; 13+ messages in thread
From: Sergey Kurakin @ 2012-03-21  8:00 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On 21/03/12 10:05, Sergei Epiphanov wrote:
> Не в этом дело. Я попробовал допилить пакеты, которые опираются на blender 
> (например openshot), то никакие шаманства не позволили мне заставить openshot 
> сделать зависимость python3.2(bpy) вместо python2.7(bpy).

  Понятно. Именно этого я и опасался. Никак не наберусь решимости
совершить подход к вопросу хотя бы со стороны yafaray...

-- 
WBR,
Sergey Kurakin


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-19  8:12 [devel] Как собирать для python3? Sergei Epiphanov
  2012-03-19 11:00 ` Vitaly Kuznetsov
  2012-03-20 14:40 ` Sergey Kurakin
@ 2012-03-22  5:51 ` Vitaly Kuznetsov
  2012-03-22  5:57   ` Vitaly Kuznetsov
                     ` (3 more replies)
  2 siblings, 4 replies; 13+ messages in thread
From: Vitaly Kuznetsov @ 2012-03-22  5:51 UTC (permalink / raw)
  To: devel; +Cc: Sergey Kurakin, Sergei Epiphanov

On Mon, 19 Mar 2012 12:12:48 +0400, Sergei Epiphanov wrote:
> Добрый день!
>
> Пытаюсь сделать так, чтобы блендер и ко собирались бы и 
> обрабатывались
> python3, а не python2.

У нас действительно нет механизма сказать "Вот в этом каталоге - 
python3, а не python3", есть только механизм переключения компиляции 
(%add_python{,3}_compile_include/%add_python{,3}_compile_exclude) и 
механизм выбрасывания ненужных найденных зависимостей 
(%add_python{,3}_req_skip).

Я хочу добавить новый механизм вида %add_python3_path для указания 
того, что в конкретном каталоге .py файлы следует рассматривать как 
python3 со всеми вытекающими (компиляция, поиск requires и provides) 
последствиями.

С blender при этом надо будет поступить следующим образом:

diff --git a/blender.spec b/blender.spec
index a1378f5..88921cc 100644
--- a/blender.spec
+++ b/blender.spec
@@ -22,16 +22,11 @@ Patch10: 
0011-look_for_droid_ttf_with_fontconfig.patch

  BuildRequires(pre): rpm-build-python3

-Provides: python%_python3_version(Blender)
-Provides: python%_python3_version(bpy)
-Provides: python%_python3_version(BPyMesh)
+%add_python3_path /usr/lib/blender/scripts/

  # Automatically added by buildreq on Fri Feb 17 2012
  BuildRequires: cmake gcc-c++ libSDL-devel libXi-devel 
libavdevice-devel libavformat-devel libfftw3-devel libfreetype-devel 
libglew-devel libjpeg-devel libopenal-devel

-AutoReq: nopython
-AutoProv: nopython
-
  %description
  Fully integrated creation suite, offering a broad range of essential
  tools for the creation of 3D content, including modeling, uv-mapping,

При этом на выходе мы получим следующие python3-зависимости:

$ rpm -qp --requires ~/RPM/RPMS/x86_64/blender-2.62-alt0.2.x86_64.rpm | 
grep python3.2\(.*\)
python3.2(BPyWindow)
python3.2(_bpy)
python3.2(array)
python3.2(bge)
python3.2(bgl)
python3.2(binascii)
python3.2(bisect)
python3.2(blf)
python3.2(chunk)
python3.2(codecs)
python3.2(collections)
python3.2(configparser)
python3.2(contextlib)
python3.2(datetime)
python3.2(encodings)
python3.2(functools)
python3.2(hashlib)
python3.2(http)
python3.2(inspect)
python3.2(io)
python3.2(json)
python3.2(math)
python3.2(mathutils)
python3.2(mmap)
python3.2(os)
python3.2(pickle)
python3.2(platform)
python3.2(queue)
python3.2(random)
python3.2(re)
python3.2(rlcompleter)
python3.2(select)
python3.2(shutil)
python3.2(socket)
python3.2(socketserver)
python3.2(string)
python3.2(struct)
python3.2(subprocess)
python3.2(tempfile)
python3.2(textwrap)
python3.2(threading)
python3.2(time)
python3.2(traceback)
python3.2(urllib)
python3.2(webbrowser)
python3.2(xml)
python3.2(xmlrpc)
python3.2(zipfile)




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-22  5:51 ` Vitaly Kuznetsov
@ 2012-03-22  5:57   ` Vitaly Kuznetsov
  2012-03-22  6:42   ` Sergei Epiphanov
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 13+ messages in thread
From: Vitaly Kuznetsov @ 2012-03-22  5:57 UTC (permalink / raw)
  To: devel

On Thu, 22 Mar 2012 09:51:43 +0400, Vitaly Kuznetsov wrote:
> On Mon, 19 Mar 2012 12:12:48 +0400, Sergei Epiphanov wrote:
>> Добрый день!
>>
>> Пытаюсь сделать так, чтобы блендер и ко собирались бы и 
>> обрабатывались
>> python3, а не python2.
>
> У нас действительно нет механизма сказать "Вот в этом каталоге -
> python3, а не python3"

"python3, а не python2", конечно же ;)


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-22  5:51 ` Vitaly Kuznetsov
  2012-03-22  5:57   ` Vitaly Kuznetsov
@ 2012-03-22  6:42   ` Sergei Epiphanov
    2012-03-23 12:57   ` Vitaly Kuznetsov
  3 siblings, 0 replies; 13+ messages in thread
From: Sergei Epiphanov @ 2012-03-22  6:42 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On 22 марта 2012 09:51 Vitaly Kuznetsov wrote:
> Я хочу добавить новый механизм вида %add_python3_path для указания 
> того, что в конкретном каталоге .py файлы следует рассматривать как 
> python3 со всеми вытекающими (компиляция, поиск requires и provides) 
> последствиями.

Ждём отмашки!

> При этом на выходе мы получим следующие python3-зависимости:
> 
> $ rpm -qp --requires ~/RPM/RPMS/x86_64/blender-2.62-alt0.2.x86_64.rpm | 
> grep python3.2\(.*\)
> python3.2(BPyWindow)
> python3.2(_bpy)

Это должно было попасть в секцию Provides, а не Requires. Иначе пакет не 
встанет. Но это уже лучше, чем ничего! ;)

-- 
С уважением, Епифанов Сергей

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  @ 2012-03-22  7:29     ` Vitaly Kuznetsov
  2012-03-22 10:25       ` Vitaly Kuznetsov
  2012-03-22 11:44       ` Sergei Epiphanov
  0 siblings, 2 replies; 13+ messages in thread
From: Vitaly Kuznetsov @ 2012-03-22  7:29 UTC (permalink / raw)
  To: Sergei Epiphanov; +Cc: ALT Linux Team general development

On Thu, 22 Mar 2012 10:39:07 +0400, Sergei Epiphanov wrote:
> Добрый день!
>
> On 22 марта 2012 09:51 Vitaly Kuznetsov wrote:
>> Я хочу добавить новый механизм вида %add_python3_path для указания
>> того, что в конкретном каталоге .py файлы следует рассматривать как
>> python3 со всеми вытекающими (компиляция, поиск requires и provides)
>> последствиями.
>
> То есть пока со сборкой blender подождать до выхода этой 
> функциональности?

Я постараюсь собрать rpm-build-python/rpm-build-python3 сегодня.

>> При этом на выходе мы получим следующие python3-зависимости:
>>
>> $ rpm -qp --requires 
>> ~/RPM/RPMS/x86_64/blender-2.62-alt0.2.x86_64.rpm |
>> grep python3.2\(.*\)
>
> Тогда уж необходимо, чтобы они (зависимости самого blender) были как
> Provides, а не Requires. А то такой пакет не встанет никуда, так как 
> он требует самого
> себя, но не знает об этом. :)

blender таскает модули по нестандартному пути (кстати, зачем?). Для 
того, чтобы воспринимать их как модули нужно добавить в spec следующее:
%add_python3_lib_path /usr/lib/blender/scripts/modules
(следите за отсутствием trailing slash, с ним работать не будет)

Мы получим вот что:

$ rpm -qp --provides ~/RPM/RPMS/x86_64/blender-2.62-alt0.2.x86_64.rpm
python3.2(addon_utils)
python3.2(animsys_refactor)
python3.2(blend_render_info)
python3.2(bpy)
python3.2(bpy.ops)
python3.2(bpy.path)
python3.2(bpy.utils)
python3.2(bpy_extras)
python3.2(bpy_extras.anim_utils)
python3.2(bpy_extras.image_utils)
python3.2(bpy_extras.io_utils)
python3.2(bpy_extras.keyconfig_utils)
python3.2(bpy_extras.mesh_utils)
python3.2(bpy_extras.object_utils)
python3.2(bpy_extras.view3d_utils)
python3.2(bpy_types)
python3.2(bpyml)
python3.2(bpyml_ui)
python3.2(console)
python3.2(console.complete_calltip)
python3.2(console.complete_import)
python3.2(console.complete_namespace)
python3.2(console.intellisense)
python3.2(console_python)
python3.2(console_shell)
python3.2(graphviz_export)
python3.2(keyingsets_utils)
python3.2(rna_info)
python3.2(rna_prop_ui)
python3.2(rna_xml)
python3.2(sys_info)
blender = 2.62-alt0.2

Но, видимо, этого будет недостаточно, всё равно останутся странные 
зависимости вида python3.2(_bpy)
С ними легко побороться с помощью
%add_python3_req_skip _bpy

либо нужно разобрать откуда она таки импортирует эти недостающие модули 
и включить эти пути с помощью %add_python3_lib_path. Но это имеет смысл 
только в том случае, если эту зависимость надо экспортировать в пакете 
(и, соответственно, использовать в каких-то других пакетах).



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-22  7:29     ` Vitaly Kuznetsov
@ 2012-03-22 10:25       ` Vitaly Kuznetsov
  2012-03-22 11:44       ` Sergei Epiphanov
  1 sibling, 0 replies; 13+ messages in thread
From: Vitaly Kuznetsov @ 2012-03-22 10:25 UTC (permalink / raw)
  To: devel

On Thu, 22 Mar 2012 11:29:21 +0400, Vitaly Kuznetsov wrote:
>>
> Но, видимо, этого будет недостаточно, всё равно останутся странные
> зависимости вида python3.2(_bpy)
> С ними легко побороться с помощью
> %add_python3_req_skip _bpy

Если ничего из нижеприведённого не является настоящим анметом, то 
удавить или экспортировать следует следующее:
python3.2(_bpy)
python3.2(BPyWindow)
python3.2(bge)
python3.2(bgl)
python3.2(blf)
python3.2(mathutils)



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-22  7:29     ` Vitaly Kuznetsov
  2012-03-22 10:25       ` Vitaly Kuznetsov
@ 2012-03-22 11:44       ` Sergei Epiphanov
  1 sibling, 0 replies; 13+ messages in thread
From: Sergei Epiphanov @ 2012-03-22 11:44 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On 22 марта 2012 11:29 Vitaly Kuznetsov wrote:
> blender таскает модули по нестандартному пути (кстати, зачем?). Для 
> того, чтобы воспринимать их как модули нужно добавить в spec следующее:
> %add_python3_lib_path /usr/lib/blender/scripts/modules
> (следите за отсутствием trailing slash, с ним работать не будет)

Спасибо большое за советы!

Blender вообще приходится допиливать до более-менее нормального состояния. 
Попробую (для пробы) перенести его питоньи файлы в подкаталоги python3, может, 
дело пойдёт на лад со сборкой.

-- 
С уважением, Епифанов Сергей

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] Как собирать для python3?
  2012-03-22  5:51 ` Vitaly Kuznetsov
                     ` (2 preceding siblings ...)
  @ 2012-03-23 12:57   ` Vitaly Kuznetsov
  3 siblings, 0 replies; 13+ messages in thread
From: Vitaly Kuznetsov @ 2012-03-23 12:57 UTC (permalink / raw)
  To: devel

On Thu, 22 Mar 2012 09:51:43 +0400, Vitaly Kuznetsov wrote:
> On Mon, 19 Mar 2012 12:12:48 +0400, Sergei Epiphanov wrote:
>> Добрый день!
>>
>> Пытаюсь сделать так, чтобы блендер и ко собирались бы и 
>> обрабатывались
>> python3, а не python2.
>
> У нас действительно нет механизма сказать "Вот в этом каталоге -
> python3, а не python3", есть только механизм переключения компиляции
> (%add_python{,3}_compile_include/%add_python{,3}_compile_exclude) и
> механизм выбрасывания ненужных найденных зависимостей
> (%add_python{,3}_req_skip).
>
> Я хочу добавить новый механизм вида %add_python3_path для указания
> того, что в конкретном каталоге .py файлы следует рассматривать как
> python3 со всеми вытекающими (компиляция, поиск requires и provides)
> последствиями.
>

Собственно, механизм %add_python3_path реализован, на 
altlinux.org/Python3 упомянут.


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-03-23 12:57 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-19  8:12 [devel] Как собирать для python3? Sergei Epiphanov
2012-03-19 11:00 ` Vitaly Kuznetsov
2012-03-20 15:45   ` Sergey Kurakin
2012-03-20 14:40 ` Sergey Kurakin
2012-03-21  6:05   ` Sergei Epiphanov
2012-03-21  8:00     ` Sergey Kurakin
2012-03-22  5:51 ` Vitaly Kuznetsov
2012-03-22  5:57   ` Vitaly Kuznetsov
2012-03-22  6:42   ` Sergei Epiphanov
2012-03-22  7:29     ` Vitaly Kuznetsov
2012-03-22 10:25       ` Vitaly Kuznetsov
2012-03-22 11:44       ` Sergei Epiphanov
2012-03-23 12:57   ` Vitaly Kuznetsov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git