From: Andrey Orlov <cray_@neural.ru> To: sisyphus@altlinux.ru Subject: [sisyphus] Fwd: [devel] Новый python триллер Date: Tue, 5 Oct 2004 17:12:11 +0400 Message-ID: <200410051712.11600.cray_@neural.ru> (raw) ---------- 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 --- ----------------------------------------
reply other threads:[~2004-10-05 13:12 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=200410051712.11600.cray_@neural.ru \ --to=cray_@neural.ru \ --cc=sisyphus@altlinux.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
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