aboutsummaryrefslogtreecommitdiffstats
path: root/build/platform/python
diff options
context:
space:
mode:
authorneksard <neksard@yandex-team.ru>2022-02-10 16:45:23 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:23 +0300
commit8f7cf138264e0caa318144bf8a2c950e0b0a8593 (patch)
tree83bf5c8c8047c42d8475e6095df90ccdc3d1b57f /build/platform/python
parentd3a398281c6fd1d3672036cb2d63f842d2cb28c5 (diff)
downloadydb-8f7cf138264e0caa318144bf8a2c950e0b0a8593.tar.gz
Restoring authorship annotation for <neksard@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'build/platform/python')
-rw-r--r--build/platform/python/readme.md158
-rw-r--r--build/platform/python/ya.make42
2 files changed, 100 insertions, 100 deletions
diff --git a/build/platform/python/readme.md b/build/platform/python/readme.md
index 1eaafad35b..5e74dcb6f6 100644
--- a/build/platform/python/readme.md
+++ b/build/platform/python/readme.md
@@ -1,83 +1,83 @@
-# Инструкция по добавлению нового бандла с системным питоном
-
-## Майним бандлы системного питона
-Бандлы системного питон майнятся для трех платформ: linux, darwin, windows.
-Подставляем под PYTHON_VERSION - версию нужного питона
-### Linux
-
-1. Устанавливаем систему с версией ubuntu, из которой планируется брать системный питон. Здесь есть два варианта
- 1. Если нужно собрать системный питон, который будет запускать тесты на дистбилде, то нужно использовать ubuntu такой же версии, что и на дистбилде.
- Тут стоит учитывать, что на дистбилде может быть достаточно старая версия ubuntu, на котором не будет нужной версии питона.
- 2. Выбрать ту версию ubuntu, в которой есть нужный питон
-2. `mkdir -p ~/work/packages`
-3. `cd ~/work/packages`
-4. майним deb-пакеты питона
- 1. Майним системный питон для запуска на дистбилде:
-
- apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances python{PYTHON_VERSION}-dev python{|3}-pkg-resources python{|3}-setuptools | grep "^\w" | sort -u)
- rm libc6* libc-*
-
- 2. Майним системный питон для сборки сошек:
-
- apt download python{PYTHON_VERSION} python{PYTHON_VERSION}-dev python{PYTHON_VERSION}-minimal libpython{PYTHON_VERSION} libpython{PYTHON_VERSION}-dev libpython{PYTHON_VERSION}-stdlib libpython{PYTHON_VERSION}-minimal
-
-5. `cd ..`
-6. `for path in $(ls packages); do ar -xf packages/$path; tar -xf data.tar.xz; done;`
-7. `mv usr python`
-8. `tar -czf python{PYTHON_VERSION}_linux.tar.gz python`
+# Инструкция по добавлению нового бандла с системным питоном
+
+## Майним бандлы системного питона
+Бандлы системного питон майнятся для трех платформ: linux, darwin, windows.
+Подставляем под PYTHON_VERSION - версию нужного питона
+### Linux
+
+1. Устанавливаем систему с версией ubuntu, из которой планируется брать системный питон. Здесь есть два варианта
+ 1. Если нужно собрать системный питон, который будет запускать тесты на дистбилде, то нужно использовать ubuntu такой же версии, что и на дистбилде.
+ Тут стоит учитывать, что на дистбилде может быть достаточно старая версия ubuntu, на котором не будет нужной версии питона.
+ 2. Выбрать ту версию ubuntu, в которой есть нужный питон
+2. `mkdir -p ~/work/packages`
+3. `cd ~/work/packages`
+4. майним deb-пакеты питона
+ 1. Майним системный питон для запуска на дистбилде:
+
+ apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances python{PYTHON_VERSION}-dev python{|3}-pkg-resources python{|3}-setuptools | grep "^\w" | sort -u)
+ rm libc6* libc-*
+
+ 2. Майним системный питон для сборки сошек:
+
+ apt download python{PYTHON_VERSION} python{PYTHON_VERSION}-dev python{PYTHON_VERSION}-minimal libpython{PYTHON_VERSION} libpython{PYTHON_VERSION}-dev libpython{PYTHON_VERSION}-stdlib libpython{PYTHON_VERSION}-minimal
+
+5. `cd ..`
+6. `for path in $(ls packages); do ar -xf packages/$path; tar -xf data.tar.xz; done;`
+7. `mv usr python`
+8. `tar -czf python{PYTHON_VERSION}_linux.tar.gz python`
9. `ya upload python{PYTHON_VERSION}_linux.tar.gz -d "Ubuntu {UBUNTU_VERSION} x86_64 python{PYTHON_VERSION} installation" --do-not-remove`
-
-UBUNTU_VERSION - версия ubuntu, на которой майнился системный питон
-
-### Darwin
-1. Находим macbook.
-2. Все установленные питоны лежат в `/Library/Frameworks/Python.framework/Versions`
-3. Копируем `/Library/Frameworks/Python.framework` в директорию с именем `python`
-4. Чистим `python/Python.framework/Versions/` от ненужных питонов
-5. Проверяем, что симлинки указывают в правильные места
- 1. `python/Python.framework/Versions/Current -> {PYTHON_VERSION}`
- 2. `python/Python.framework/Headers -> Versions/Current/Headers`
- 3. `python/Python.framework/Python -> Versions/Current/Python`
- 4. `python/Python.framework/Resources -> Versions/Current/Resources`
-6. `tar -czf python{PYTHON_VERSION}_darwin.tar.gz python`
+
+UBUNTU_VERSION - версия ubuntu, на которой майнился системный питон
+
+### Darwin
+1. Находим macbook.
+2. Все установленные питоны лежат в `/Library/Frameworks/Python.framework/Versions`
+3. Копируем `/Library/Frameworks/Python.framework` в директорию с именем `python`
+4. Чистим `python/Python.framework/Versions/` от ненужных питонов
+5. Проверяем, что симлинки указывают в правильные места
+ 1. `python/Python.framework/Versions/Current -> {PYTHON_VERSION}`
+ 2. `python/Python.framework/Headers -> Versions/Current/Headers`
+ 3. `python/Python.framework/Python -> Versions/Current/Python`
+ 4. `python/Python.framework/Resources -> Versions/Current/Resources`
+6. `tar -czf python{PYTHON_VERSION}_darwin.tar.gz python`
7. `ya upload python{PYTHON_VERSION}_darwin.tar.gz -d "Darwin x86_64 python{PYTHON_VERSION} installation" --do-not-remove`
-
-Если нужного питона нет в системе, его нужно установить из `python.org`, его установку можно найти в стандартном месте.
-
-Если нужен питон из `brew`, его установку можно найти в `/usr/local/Cellar/python*/{python_version}/Frameworks/`,
- а дальше следовать стандартной инструкции
-
-### Windows
-1. Находим машинку с windows
-2. Устанавливаем нужную версию питона из `python.org`
-3. Копируем содержимое установки питона в директорию `python`
-4. Пакуем директорию `python` в `python{PYTHON_VERSION}_windows.tar.gz`
+
+Если нужного питона нет в системе, его нужно установить из `python.org`, его установку можно найти в стандартном месте.
+
+Если нужен питон из `brew`, его установку можно найти в `/usr/local/Cellar/python*/{python_version}/Frameworks/`,
+ а дальше следовать стандартной инструкции
+
+### Windows
+1. Находим машинку с windows
+2. Устанавливаем нужную версию питона из `python.org`
+3. Копируем содержимое установки питона в директорию `python`
+4. Пакуем директорию `python` в `python{PYTHON_VERSION}_windows.tar.gz`
5. `ya upload python{PYTHON_VERSION}_windows.tar.gz -d "Windows x86_64 python{PYTHON_VERSION} installation" --do-not-remove`
-
-## Добавляем бандлы системного питона в сборку
-
-1. Конфигурация бандлов системных питонов находится здесь [build/platform/python](https://a.yandex-team.ru/arc/trunk/arcadia/build/platform/python)
-2. Добавляем сендбокс ресурсы собранных бандлов в файл [resources.inc](https://a.yandex-team.ru/arc/trunk/arcadia/build/platform/python/resources.inc)
-
- SET(PYTHON38_LINUX sbr:1211259884)
-
-3. Добавляем служебные переменные `_SYSTEM_PYTHON*, PY_VERSION, PY_FRAMEWORK_VERSION` для системного питона, если их еще нет,
-в [ymake.core.conf](https://a.yandex-team.ru/arc/trunk/arcadia/build/ymake.core.conf?rev=7640792#L380) по аналогии.
-
- "3.8" ? {
- _SYSTEM_PYTHON38=yes
- PY_VERSION=3.8
- PY_FRAMEWORK_VERSION=3.8
- }
-
-4. Добавляем ресурс в [build/platform/python/ya.make](https://a.yandex-team.ru/arc/trunk/arcadia/build/platform/python/ya.make)
-
- DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON38_LINUX})
-
-## Проверяем сборку
+
+## Добавляем бандлы системного питона в сборку
+
+1. Конфигурация бандлов системных питонов находится здесь [build/platform/python](https://a.yandex-team.ru/arc/trunk/arcadia/build/platform/python)
+2. Добавляем сендбокс ресурсы собранных бандлов в файл [resources.inc](https://a.yandex-team.ru/arc/trunk/arcadia/build/platform/python/resources.inc)
+
+ SET(PYTHON38_LINUX sbr:1211259884)
+
+3. Добавляем служебные переменные `_SYSTEM_PYTHON*, PY_VERSION, PY_FRAMEWORK_VERSION` для системного питона, если их еще нет,
+в [ymake.core.conf](https://a.yandex-team.ru/arc/trunk/arcadia/build/ymake.core.conf?rev=7640792#L380) по аналогии.
+
+ "3.8" ? {
+ _SYSTEM_PYTHON38=yes
+ PY_VERSION=3.8
+ PY_FRAMEWORK_VERSION=3.8
+ }
+
+4. Добавляем ресурс в [build/platform/python/ya.make](https://a.yandex-team.ru/arc/trunk/arcadia/build/platform/python/ya.make)
+
+ DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON38_LINUX})
+
+## Проверяем сборку
1. Создаем тривиальный PY2MODULE с использование `c api` положенного питона, или находим подходящий в репозитории
-2. Собираем его:
- 1. linux `ya make -DUSE_SYSTEM_PYTHON=3.8 --target-platform linux`
- 2. darwin `ya make -DUSE_SYSTEM_PYTHON=3.8 --target-platform darwin`
- 3. windows `ya make -DUSE_SYSTEM_PYTHON=3.8 --target-platform win`
-3. Проверяем, что получившиеся модули импортятся в питонах на соответсвующих системах
+2. Собираем его:
+ 1. linux `ya make -DUSE_SYSTEM_PYTHON=3.8 --target-platform linux`
+ 2. darwin `ya make -DUSE_SYSTEM_PYTHON=3.8 --target-platform darwin`
+ 3. windows `ya make -DUSE_SYSTEM_PYTHON=3.8 --target-platform win`
+3. Проверяем, что получившиеся модули импортятся в питонах на соответсвующих системах
diff --git a/build/platform/python/ya.make b/build/platform/python/ya.make
index 247e65f4c9..2a8854baed 100644
--- a/build/platform/python/ya.make
+++ b/build/platform/python/ya.make
@@ -1,14 +1,14 @@
-RESOURCES_LIBRARY()
-
+RESOURCES_LIBRARY()
+
OWNER(
g:contrib
g:yatool
)
-
+
INCLUDE(resources.inc)
IF (USE_SYSTEM_PYTHON)
- IF (OS_LINUX)
+ IF (OS_LINUX)
IF (ARCH_ARM64 OR ARCH_AARCH64)
IF (_SYSTEM_PYTHON27)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON27_LINUX_ARM64})
@@ -37,12 +37,12 @@ IF (USE_SYSTEM_PYTHON)
ENDIF()
ELSE()
ENABLE(PYTHON_NOT_FOUND)
- ENDIF()
- CFLAGS(
+ ENDIF()
+ CFLAGS(
GLOBAL "-isystem$EXTERNAL_PYTHON_RESOURCE_GLOBAL/python/include"
GLOBAL "-isystem$EXTERNAL_PYTHON_RESOURCE_GLOBAL/python/include/python${PY_VERSION}"
)
- ELSEIF (OS_DARWIN)
+ ELSEIF (OS_DARWIN)
IF (PYTHON_DISTR == "macos-brew")
IF (ARCH_X86_64)
IF (_SYSTEM_PYTHON27)
@@ -54,8 +54,8 @@ IF (USE_SYSTEM_PYTHON)
ENDIF()
ELSE()
ENABLE(PYTHON_NOT_FOUND)
- ENDIF()
- ELSE()
+ ENDIF()
+ ELSE()
IF (ARCH_X86_64)
IF (_SYSTEM_PYTHON27)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON27_DARWIN})
@@ -93,17 +93,17 @@ IF (USE_SYSTEM_PYTHON)
CFLAGS(GLOBAL "-isystem$EXTERNAL_PYTHON_RESOURCE_GLOBAL/python/Python.framework/Versions/${PY_FRAMEWORK_VERSION}/include/python${PY_VERSION}")
ELSEIF (OS_WINDOWS)
IF (ARCH_X86_64)
- IF (_SYSTEM_PYTHON27)
+ IF (_SYSTEM_PYTHON27)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON27_WINDOWS})
- ELSEIF (_SYSTEM_PYTHON34)
+ ELSEIF (_SYSTEM_PYTHON34)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON34_WINDOWS})
- ELSEIF (_SYSTEM_PYTHON35)
+ ELSEIF (_SYSTEM_PYTHON35)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON35_WINDOWS})
- ELSEIF (_SYSTEM_PYTHON36)
+ ELSEIF (_SYSTEM_PYTHON36)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON36_WINDOWS})
- ELSEIF (_SYSTEM_PYTHON37)
+ ELSEIF (_SYSTEM_PYTHON37)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON37_WINDOWS})
- ELSEIF (_SYSTEM_PYTHON38)
+ ELSEIF (_SYSTEM_PYTHON38)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON38_WINDOWS})
ELSEIF (_SYSTEM_PYTHON39)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON39_WINDOWS})
@@ -111,11 +111,11 @@ IF (USE_SYSTEM_PYTHON)
DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON310_WINDOWS})
ELSE()
ENABLE(PYTHON_NOT_FOUND)
- ENDIF()
+ ENDIF()
ELSE()
ENABLE(PYTHON_NOT_FOUND)
- ENDIF()
- CFLAGS(GLOBAL "/I$EXTERNAL_PYTHON_RESOURCE_GLOBAL/python/include")
+ ENDIF()
+ CFLAGS(GLOBAL "/I$EXTERNAL_PYTHON_RESOURCE_GLOBAL/python/include")
LDFLAGS("/LIBPATH:$EXTERNAL_PYTHON_RESOURCE_GLOBAL/python/libs")
ENDIF()
@@ -127,9 +127,9 @@ ELSEIF (NOT USE_ARCADIA_PYTHON)
IF (OS_WINDOWS)
LDFLAGS($PYTHON_LDFLAGS $PYTHON_LIBRARIES)
ENDIF()
-ENDIF()
-
-END()
+ENDIF()
+
+END()
RECURSE_FOR_TESTS(
tests