* [devel] Q: is python-module-sphinx build-recursion OK?
@ 2016-03-01 0:46 Ivan Zakharyaschev
2016-03-01 1:04 ` Ivan Zakharyaschev
0 siblings, 1 reply; 6+ messages in thread
From: Ivan Zakharyaschev @ 2016-03-01 0:46 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 1836 bytes --]
Здравствуйте!
Как говорилось, в пересборке python3 самое неудобное -- непонятные циклы
зависимостей.
Я сейчас пытаюсь осуществить первый шаг озвученной схемы: по формальному
переезду не связанных с libpython питоновских пакетов в независмое от
точной версии python положение. (Идея, что они будут работать без заботы о
порядке пересборки.)
И выявился очень неприятный на мой взгляд цикл (уже на этом
noarch-этапе -- из-за переезда /usr/lib/python3.3/site-packages в
/usr/lib/python3/site-packages). Суть такая:
python-module-sphinx для своей сборки устанвливает пакет
python-module-sphinx и копирует оттуда (по фиксированному пути) к себе в
сборочную директорию парочку *.inv-файлов (из себя самого, только
предыдущего релиза).
%prep
%setup
cp %SOURCE4 sphinx/ext/
%if_with python3
rm -rf ../python3
cp -a . ../python3
%endif
install -p -m644 %SOURCE1 %SOURCE2 .
install -p -m644 %SOURCE1 %SOURCE3 ../python3
install -p -m644 %python_sitelibdir/%oname/objects.inv doc
install -p -m644 %python_sitelibdir/%oname/objects.inv tests
%if_with python3
install -p -m644 %python3_sitelibdir/%oname/objects.inv ../python3/doc
install -p -m644 %python3_sitelibdir/%oname/objects.inv ../python3/tests
%endif
(Понятно, почему это обнаружилось: благодаря тому, что %python3_sitelibdir
поменялось.)
Мне кажется это плохим. (Скажем, компилятор себя компилирующий ещё куда ни
шло -- в конце концов, в таком случае речь просто о компиляторе,
подчиняющемся стандарту языка), но копировать какой-то генерат... Ведь нет
никакой гарантии, что старый пакет имеет какое-то разумное отношение к
новой версии.
Что вы думаете?
Можно реализовать сборку python-module-sphinx как-то правильнее?
(Для проверки сборки в новых условиях вполне подойдёт репо из задания
160266, хоть там rpm-build-python3 неидеален.)
--
Best regards,
Ivan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [devel] Q: is python-module-sphinx build-recursion OK?
2016-03-01 0:46 [devel] Q: is python-module-sphinx build-recursion OK? Ivan Zakharyaschev
@ 2016-03-01 1:04 ` Ivan Zakharyaschev
2016-03-01 22:05 ` Igor Vlasenko
0 siblings, 1 reply; 6+ messages in thread
From: Ivan Zakharyaschev @ 2016-03-01 1:04 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1961 bytes --]
On Tue, 1 Mar 2016, Ivan Zakharyaschev wrote:
> python-module-sphinx для своей сборки устанвливает пакет python-module-sphinx
> и копирует оттуда (по фиксированному пути) к себе в сборочную директорию
> парочку *.inv-файлов (из себя самого, только предыдущего релиза).
На самом деле, это из специального автообновляемого пакета
python3-module-objects.inv и это копируется только в doc/ и tests/, т.е.
можно предположить, что нужно для тестов (можно легко понять) и ещё для
чего-то, возможно, документации (не очень понятно, почему документация
пакета не может быть собрана из своих исходников без зависимости на данные
из внешнего мира). Я в этом мало что смыслю. Надеюсь на комментарий
кого-нибудь, кто знает: есть ли причины делать так странно или можно
сделать по-другому и лучше?
>
> % prep
> % setup
>
> cp %SOURCE4 sphinx/ext/
>
> % if_with python3
> rm -rf ../python3
> cp -a . ../python3
> % endif
>
> install -p -m644 %SOURCE1 %SOURCE2 .
> install -p -m644 %SOURCE1 %SOURCE3 ../python3
>
> install -p -m644 %python_sitelibdir/%oname/objects.inv doc
> install -p -m644 %python_sitelibdir/%oname/objects.inv tests
>
> % if_with python3
> install -p -m644 %python3_sitelibdir/%oname/objects.inv ../python3/doc
> install -p -m644 %python3_sitelibdir/%oname/objects.inv ../python3/tests
> % endif
>
> (Понятно, почему это обнаружилось: благодаря тому, что %python3_sitelibdir
> поменялось.)
>
> Мне кажется это плохим. (Скажем, компилятор себя компилирующий ещё куда ни
> шло -- в конце концов, в таком случае речь просто о компиляторе,
> подчиняющемся стандарту языка), но копировать какой-то генерат... Ведь нет
> никакой гарантии, что старый пакет имеет какое-то разумное отношение к новой
> версии.
>
> Что вы думаете?
>
> Можно реализовать сборку python-module-sphinx как-то правильнее?
>
> (Для проверки сборки в новых условиях вполне подойдёт репо из задания 160266,
> хоть там rpm-build-python3 неидеален.)
--
Best regards,
Ivan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [devel] Q: is python-module-sphinx build-recursion OK?
2016-03-01 1:04 ` Ivan Zakharyaschev
@ 2016-03-01 22:05 ` Igor Vlasenko
2016-03-01 22:19 ` Dmitry V. Levin
0 siblings, 1 reply; 6+ messages in thread
From: Igor Vlasenko @ 2016-03-01 22:05 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: Ivan Zakharyaschev
On Tue, Mar 01, 2016 at 04:04:55AM +0300, Ivan Zakharyaschev wrote:
> На самом деле, это из специального автообновляемого пакета
> python3-module-objects.inv и это копируется только в doc/ и tests/, т.е.
> можно предположить, что нужно для тестов (можно легко понять) и ещё для
> чего-то, возможно, документации (не очень понятно, почему документация
> пакета не может быть собрана из своих исходников без зависимости на данные
> из внешнего мира). Я в этом мало что смыслю. Надеюсь на комментарий
> кого-нибудь, кто знает: есть ли причины делать так странно или можно сделать
> по-другому и лучше?
objects.inv -- это база данных, которую sphinx
использует для создания кросс-ссылок на документацию
других модулей из документации текущего проекта.
К примеру, javadoc тоже может ссылаться в документации
текущего пакета на документацию из других пакетов;
для этого javadoc требует, чтобы соответствующая документация
других пакетов была доступна.
У sphinx другой подход. У него есть централизованная
публичная постоянно обновляемая доступная через интернет
база данных кросс-ссылок.
Когда sphinx генерирует документацию, он смотрит в эту базу
и вставляет там где надо кросс-ссылки.
Раньше sphinx просто автоматом при своей сборке выкачивал
свежий objects.inv из сети.
Когда Дмитрий запретил интернет в hasher chroot,
Евгению пришлось оторвать objects.inv в отдельный
пакет, а я по его просьбе поручил обновение
этой базы сервису cronbuild.
--
I V
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [devel] Q: is python-module-sphinx build-recursion OK?
2016-03-01 22:05 ` Igor Vlasenko
@ 2016-03-01 22:19 ` Dmitry V. Levin
2016-03-01 22:45 ` Igor Vlasenko
2016-03-02 2:06 ` Dmitry V. Levin
0 siblings, 2 replies; 6+ messages in thread
From: Dmitry V. Levin @ 2016-03-01 22:19 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 2039 bytes --]
On Wed, Mar 02, 2016 at 12:05:21AM +0200, Igor Vlasenko wrote:
> On Tue, Mar 01, 2016 at 04:04:55AM +0300, Ivan Zakharyaschev wrote:
> > На самом деле, это из специального автообновляемого пакета
> > python3-module-objects.inv и это копируется только в doc/ и tests/, т.е.
> > можно предположить, что нужно для тестов (можно легко понять) и ещё для
> > чего-то, возможно, документации (не очень понятно, почему документация
> > пакета не может быть собрана из своих исходников без зависимости на данные
> > из внешнего мира). Я в этом мало что смыслю. Надеюсь на комментарий
> > кого-нибудь, кто знает: есть ли причины делать так странно или можно сделать
> > по-другому и лучше?
>
> objects.inv -- это база данных, которую sphinx
> использует для создания кросс-ссылок на документацию
> других модулей из документации текущего проекта.
>
> К примеру, javadoc тоже может ссылаться в документации
> текущего пакета на документацию из других пакетов;
> для этого javadoc требует, чтобы соответствующая документация
> других пакетов была доступна.
>
> У sphinx другой подход. У него есть централизованная
> публичная постоянно обновляемая доступная через интернет
> база данных кросс-ссылок.
>
> Когда sphinx генерирует документацию, он смотрит в эту базу
> и вставляет там где надо кросс-ссылки.
>
> Раньше sphinx просто автоматом при своей сборке выкачивал
> свежий objects.inv из сети.
>
> Когда Дмитрий запретил интернет в hasher chroot,
> Евгению пришлось оторвать objects.inv в отдельный
> пакет, а я по его просьбе поручил обновение
> этой базы сервису cronbuild.
Сейчас в /usr/lib/python2.7/site-packages/sphinx/objects.inv и
/usr/lib/python3.3/site-packages/sphinx/objects.inv лежат идентичные
файлы, принадлежащие пакетам python-module-objects.inv и
python3-module-objects.inv, соответственно.
При этом
$ GET http://docs.python.org/dev/objects.inv | head -3
# Sphinx inventory version 2
# Project: Python
# Version: 3.6
Теперь придётся эту кривизну выпрямить.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [devel] Q: is python-module-sphinx build-recursion OK?
2016-03-01 22:19 ` Dmitry V. Levin
@ 2016-03-01 22:45 ` Igor Vlasenko
2016-03-02 2:06 ` Dmitry V. Levin
1 sibling, 0 replies; 6+ messages in thread
From: Igor Vlasenko @ 2016-03-01 22:45 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 02, 2016 at 01:19:40AM +0300, Dmitry V. Levin wrote:
> Сейчас в /usr/lib/python2.7/site-packages/sphinx/objects.inv и
> /usr/lib/python3.3/site-packages/sphinx/objects.inv лежат идентичные
> файлы, принадлежащие пакетам python-module-objects.inv и
> python3-module-objects.inv, соответственно.
>
> При этом
> $ GET http://docs.python.org/dev/objects.inv | head -3
> # Sphinx inventory version 2
> # Project: Python
> # Version: 3.6
>
> Теперь придётся эту кривизну выпрямить.
Судя по заметкам Евгения
https://www.altlinux.org/Python/Refactoring#python-module-objects.inv
[...]
Пакет содержит репозиторий ("инвентарь объектов"?) для Sphinx, и если hasher или сборочница имеет доступ к интернету, в интернет без данного пакета лезут все, чья документация собирается при помощи python-module-sphinx. Чтобы этого не происходило, у python-module-sphinx в [Build]Requires прописан пакет python-module-objects.inv. Планируется еженедельное обновление этого пакета. В этом случае, думаю, еженедельное обновление будет более адекватной заменой нынешней практике, когда модули лезут в сеть при каждой сборке.
[...]
python*-module-objects.inv
как я понимаю, скорее использовался Евгением как отрывалка
у пакетов желания лезть в интернет.
Хотя, конечно, objects.inv от python3 как-то не очень
хорошо выглядит, когда скормлен python'у 2.
Впрочем, как понимаю, при сборке документации python2 модулей
сфинксом все равно именно этот objects.inv штатно выкачивается,
так что это вопрос скорее к разработчикам.
--
I V
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [devel] Q: is python-module-sphinx build-recursion OK?
2016-03-01 22:19 ` Dmitry V. Levin
2016-03-01 22:45 ` Igor Vlasenko
@ 2016-03-02 2:06 ` Dmitry V. Levin
1 sibling, 0 replies; 6+ messages in thread
From: Dmitry V. Levin @ 2016-03-02 2:06 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 619 bytes --]
On Wed, Mar 02, 2016 at 01:19:40AM +0300, Dmitry V. Levin wrote:
[...]
> Сейчас в /usr/lib/python2.7/site-packages/sphinx/objects.inv и
> /usr/lib/python3.3/site-packages/sphinx/objects.inv лежат идентичные
> файлы, принадлежащие пакетам python-module-objects.inv и
> python3-module-objects.inv, соответственно.
>
> При этом
> $ GET http://docs.python.org/dev/objects.inv | head -3
> # Sphinx inventory version 2
> # Project: Python
> # Version: 3.6
>
> Теперь придётся эту кривизну выпрямить.
python*-module-objects.inv => python-sphinx-objects.inv
Интересно, cronbuild догадается?
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-03-02 2:06 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-01 0:46 [devel] Q: is python-module-sphinx build-recursion OK? Ivan Zakharyaschev
2016-03-01 1:04 ` Ivan Zakharyaschev
2016-03-01 22:05 ` Igor Vlasenko
2016-03-01 22:19 ` Dmitry V. Levin
2016-03-01 22:45 ` Igor Vlasenko
2016-03-02 2:06 ` Dmitry V. Levin
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