[devel] Как собирать для python3?

Vitaly Kuznetsov vitty на altlinux.ru
Чт Мар 22 09:51:43 MSK 2012


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)




Подробная информация о списке рассылки Devel