* [sisyphus] Fwd: [devel] Новый python триллер
@ 2004-10-05 13:12 Andrey Orlov
0 siblings, 0 replies; only message in thread
From: Andrey Orlov @ 2004-10-05 13:12 UTC (permalink / raw)
To: sisyphus
---------- Forwarded Message ----------
Subject: [devel] Новый python триллер
Date: Tuesday 05 October 2004 17:09
From: Andrey Orlov <cray_@neural.ru>
To: ALT Devel discussion list <devel@altlinux.ru>
Hi!
Только что я залил в дедалус пакет rpm-build-python-0.16-alt6.src.rpm. Это искалка зависимостей с доработанной
логикой. Суть доработки сводится к тому, что теперь могут искаться зависимости вида
"python" <N> "." <M> "(" <NAME> [ "." <NAME>]* ")", чего раньше не было. Соответствующие Provides тоже
ищутся. Наличие таких зависимостей позволило ввести возможность "распиливать" пакеты модулей на
подпакеты, входящие в один модуль, что мы с Алексеем Морозовым назвали "Распиленные модули". Зачем
это нужно - Алексей расскажет лучше меня, я же только могу посоветовать прочитать ответы на вопросы
28-30 FAQ (прилагается).
Теперь немножко предупреждений. Так как до сих пор все пакеты собирались с упрощенной искалкой зависимостей,
пересборка модуля с новой искалкой скорее всего вызовет unmets. Поэтому поиск зависимостей по умолчанию
эмулируется старый, а вот provides ищутся уже новые - это не вызывает unmets (наверно). Чбы отключить эмуляцию
нужно набрать в спеке
%python_req_hier
После чего, как уже было написано, ваш модуль, скорее всего, перестанент работать и нужно будет что-то
с этим сделать.
Через некоторое время rpm-build-python переедет в сизиф. А еще через некоторое время %python_req_hier окажется
по умолчанию включенным. Вам стоит подготовится к этому, чбы не было как всегда - т.е. включить его самим.
Ситуация осложняется тем, что чбы использовать все новые фичи нужно патчить rpm. Патч будет отправлен LDV
и rpm пропатчится.
Если кому-то опять не нравится имя макроса - python-hier или какого-либо еще из вновь добавленных - самое
время наглюкать багрепорт: пожалуста, не тяните до сизифа, а тем более до релиза, как обычно бывает.
Новые показания FAQ следуют, полная версия доступна в пакете или на http://www.neural.ru.
== FAQ ==
Q28: Я хочу разбить модуль на две подпакета, только одна из которых
содержит файл __init__.py, но искалка Provides находит только зависимости из
одного пакета (в который входит __init__.py). Что делать?
A28: Нужно воспользоваться макросом python_module_declare <PATH>, где
<PATH> - путь к каталогу содержащему файл __init__.py :
python_module_declare /usr/lib/python2.3/email/
Тогда поиск Provides для любого подпакета будет считать, что он
обнаружил в каталоге <PATH> файл __init__.py, а для пакета, в
который включена такая декларация автоматически добавится
зависимость на модуль, соответствующий пути <PATH>;
(в текущей версии макрос python_module_declare может не работать)
Q29: Что такое иерархическая зависимость?
A29: Иерархическая зависимость - это зависимость на модуль, вложенный
внутрь другого модуля. Такая зависимтость записывается как :
"python" <N> "." <M> "(" <NAME> [ "." <NAME> ] * ")"
И порождается синтаксической конструкцией вида :
"import" " " <NAME> [ "." <NAME> ]*
Имеющий смысл "импортировать модуль NAME (2) из модуля NAME (1)".
Q30: Почему конструкция from <MODULE> import <NAME> не порождает
иерархическую зависимость?
A30: Потому что в этой конструкции <NAME> не обязательно
соответствует модулю - т.е. файлу (каталогу), а может
соответствовать любому имени, определенному в модуле MODULE. Для
языка Python не существует способа составить полный список таких
имен до исполнения программы (хотя бы потому, что их список может
изменятся в процессе выполнения программы произвольным образом).
================
--
WthBstRgrds -- Андрей Орлов --
--- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------
_______________________________________________
Devel mailing list
Devel@altlinux.ru
https://lists.altlinux.ru/mailman/listinfo/devel
-------------------------------------------------------
--
WthBstRgrds -- Андрей Орлов --
--- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-10-05 13:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-10-05 13:12 [sisyphus] Fwd: [devel] Новый python триллер Andrey Orlov
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git