ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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