ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] QA: Unmets в питоновских модулях , как с ними боротся
@ 2004-05-24  9:40 Andrey Orlov
  2004-06-18 13:54 ` Michael Shigorin
  2004-06-23  9:54 ` Igor Tertishny
  0 siblings, 2 replies; 8+ messages in thread
From: Andrey Orlov @ 2004-05-24  9:40 UTC (permalink / raw)
  To: ALT Devel discussion list

Hi!

Это письмо уже проходило по рассылке, но судя по тому, что цитаты из него
попрежнему помогают решать проблемы, его стоит запостить еще раз:

Должен заметить - данная инструкция позволяет быстро решить проблему.
== CUT ==
Q15: Unmets в питоновксих модулях, как с ними боротся?
    > The following packages have unmet dependencies:
    >   solfege: Depends: python2.3(gnome) but it is not installable
    >            Depends: python2.3(gobject) but it is not installable
    >            Depends: python2.3(gtk) but it is not installable
    >            Depends: python2.3(mpd) but it is not installable
    >            Depends: python2.3(pango) but it is not installable
    >            Depends: python2.3(soundcard) but it is not installable
    >            Depends: python2.3(src) but it is not installable

    A15:

    Надо разбиратся с конкретными пакетами, которые провайдят эти дела и 
    разбираться почему они не встают. Типовой вариант один: автоматический
    поиск зависимостей нашел  такие зависимости, которые не могут быть 
    удовлетворены в принципе - напремер, на модули для макоса.

    Методы борьбы зависят от причин возникновения:

    1. Зависимости порождаются файлами, которые не используются пакетом (встречается).

    Решение: прибить такие файлы

    2. Зависимости порождаются тестовыми модулями.

    Решение: вынести тестовые модули в отдельный подпакет (python-module-SOMETHAT-test)
    и поставить на нем AutoReqProv: nopython. Еще вариант - стереть.

    3. Зависимости порождаются конструкциями вида:

    if EXPR :
        import MACOSMODULE

    Большая часть таких проблем не возникает (я научился это отлавливать, подробности в доке),
    но если вдруг возникли - решений два: пропатчить модуль чбы исключить такой код или
    явно исключить зависимость указанием в спеке выражения:

    %add_python_req_skip <ИМЯ_МОДУЛЯ>

 4. Наверно, в поиске зависимостей и провайдес есть ошибки. В этом случае
    нужно удалять зависимости или проставлять провайдес вручную:

    %add_python_req_skip <ИМЯ_МОДУЛЯ>

    Provide: python%__python_version( <ИМЯ_МОДУЛЯ> )

    После этого подвесте баг на пакет rpm-build-python с указанием пакета и проблемной зависимости.

5. Наконец, есть плохой, неправильный, но очень быстрый способ решить проблему "временно": отключить
поиск зависимостей:

AutoReqProv: yes, nopython
Requires: python-strict

По зависимости python-strict вытянется "стандартная установка python", а поиск зависимостей
будет отключен. Помните, что в этом случае предполагается что все необходимые
зависимости вы проставите сами (скорее всего, они у вас уже стоят, только на сами пакеты, а не на 
автоматически найденные Provides, только обратите внимание еще и на то, что для подавляющегео большинства
пакетов-модулей изменилось  имя (например MySQL-python -> python-module-MySQLdb))).

Иными словами, вы возвращаетесь к ситуации, которая была до введения полиси. Разумеется, 
т.о., ваш пакет будет ее нарушать, но это даст вам время решить проблемы одним из более 
правильных способов, изложенных выше.
== CUT ==

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] QA: Unmets в питоновских модулях , как с ними боротся
  2004-05-24  9:40 [devel] QA: Unmets в питоновских модулях , как с ними боротся Andrey Orlov
@ 2004-06-18 13:54 ` Michael Shigorin
  2004-06-18 14:28   ` Andrey Orlov
  2004-06-23  9:54 ` Igor Tertishny
  1 sibling, 1 reply; 8+ messages in thread
From: Michael Shigorin @ 2004-06-18 13:54 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 816 bytes --]

On Mon, May 24, 2004 at 01:40:37PM +0400, Andrey Orlov wrote:
> == CUT ==
> Q15: Unmets в питоновксих модулях, как с ними боротся?
>     > The following packages have unmet dependencies:
>     >   solfege: Depends: python2.3(gnome) but it is not installable
>     A15:
>     Надо разбиратся с конкретными пакетами, которые провайдят
>     эти дела и разбираться почему они не встают.
[...]
> 5. Наконец, есть плохой, неправильный, но очень быстрый способ
> решить проблему "временно": отключить поиск зависимостей:
> AutoReqProv: yes, nopython
> Requires: python-strict

Увы, пришлось лечить solfege-2.0.5-alt2 именно таким образом.
Я не питонист, да и пакет поддерживаю скорее "по доброй памяти".

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] QA: Unmets в питоновских модулях , как с ними боротся
  2004-06-18 13:54 ` Michael Shigorin
@ 2004-06-18 14:28   ` Andrey Orlov
  0 siblings, 0 replies; 8+ messages in thread
From: Andrey Orlov @ 2004-06-18 14:28 UTC (permalink / raw)
  To: ALT Devel discussion list

On Friday 18 June 2004 17:54, Michael Shigorin wrote:
> Увы, пришлось лечить solfege-2.0.5-alt2 именно таким образом.
> Я не питонист, да и пакет поддерживаю скорее "по доброй памяти".

Повесь багу на rpm-build-python. Иначе я забуду. 

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] QA: Unmets в питоновских модулях , как с ними боротся
  2004-05-24  9:40 [devel] QA: Unmets в питоновских модулях , как с ними боротся Andrey Orlov
  2004-06-18 13:54 ` Michael Shigorin
@ 2004-06-23  9:54 ` Igor Tertishny
  2004-06-23 10:19   ` Andrey Orlov
  1 sibling, 1 reply; 8+ messages in thread
From: Igor Tertishny @ 2004-06-23  9:54 UTC (permalink / raw)
  To: ALT Devel discussion list

>
>  4. Наверно, в поиске зависимостей и провайдес есть ошибки. В этом случае
>     нужно удалять зависимости или проставлять провайдес вручную:
>
>     %add_python_req_skip <ИМЯ_МОДУЛЯ>
>
>     Provide: python%__python_version( <ИМЯ_МОДУЛЯ> )
>

Со scribus сработал этот вариант. Спасибо за подсказку, я уж голову 
сломал... :-))


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] QA: Unmets в питоновских модулях , как с ними боротся
  2004-06-23  9:54 ` Igor Tertishny
@ 2004-06-23 10:19   ` Andrey Orlov
  2004-06-23 10:32     ` Igor Tertishny
  0 siblings, 1 reply; 8+ messages in thread
From: Andrey Orlov @ 2004-06-23 10:19 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 23 June 2004 13:54, Igor Tertishny wrote:
> >
> >  4. Наверно, в поиске зависимостей и провайдес есть ошибки. В этом случае
> >     нужно удалять зависимости или проставлять провайдес вручную:
> >
> >     %add_python_req_skip <ИМЯ_МОДУЛЯ>
> >
> >     Provide: python%__python_version( <ИМЯ_МОДУЛЯ> )
> >
> 
> Со scribus сработал этот вариант. Спасибо за подсказку, я уж голову 
> сломал... :-))

Разумеется этот вариант сработал, но этот вариан - паллиатив и вы должны очень 
четко это понимать. Отключение системы автоматического определения зависимостей
- полное или частичное - это принципиально неверный шаг, шаг в сторону внезапной
потери работоспособности. Этот шаг допустим только в том случае, если:

 1. Вы точно знаете где возникает зависимость;

 2. Вы точно знаете, что зависимость будет либо удовлетворена другим способом,
либо никогда не понабдобится.

В противном случае, вы рискуете получить пакет который будет установлен, но не будет
работать. Причем - он может работать сегодня и не работать завтра. Он может
работать у вас и не работать у соседа.

К сожалению, я слишком часто наблюдаю в последнее время такое решение вопроса,
и я не думаю что это пойдет на пользу дистрибутиву.

Так что я рад, что у вас все получилось, но боюсь что выбранный вами способ решения - не
самый лучший и грозит серьезными проблемами в ближайшем будущем.

PS: Кстати, при любом из этих двух случаев лучше наложить патч на исходный код. Пожалуй,
единственная ситуация, которую сейчас не удаетс разрешить без skip-requires - это
удовлетворение внутримодульных зависимостей у модуля разрезанного на части. Это 
очень редкая ситуация, я ее видел только один раз у себя и слышал о еще одном
случае, в принципе ее возникновения я склонен считать результатом плохого дизайна
модуля, но, тем не менее, иногда хороший дизайн невозможен.

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] QA: Unmets в питоновских модулях , как с ними боротся
  2004-06-23 10:19   ` Andrey Orlov
@ 2004-06-23 10:32     ` Igor Tertishny
  2004-06-23 13:26       ` Andrey Orlov
  2004-06-23 14:21       ` Andrey Orlov
  0 siblings, 2 replies; 8+ messages in thread
From: Igor Tertishny @ 2004-06-23 10:32 UTC (permalink / raw)
  To: ALT Devel discussion list

Что самое интересное, не находился модуль python2.3(scribus)... Вы правы, это 
не выход, но я пока другого не нашел. Буду еще думать. Может стоит вынести 
питоновский модуль из scribus  в отдельный пакет? Откровенно говоря, никак не 
пойму, что с ним делать.

%add_python_req_skip python2.3(scribus)
Provides: python%__python_version python2.3(scribus)

Я поступил вышеуказанным образом. Что еще интересно, остальные питоновские 
модули находятся автоматически.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] QA: Unmets в питоновских модулях , как с ними боротся
  2004-06-23 10:32     ` Igor Tertishny
@ 2004-06-23 13:26       ` Andrey Orlov
  2004-06-23 14:21       ` Andrey Orlov
  1 sibling, 0 replies; 8+ messages in thread
From: Andrey Orlov @ 2004-06-23 13:26 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 23 June 2004 14:32, Igor Tertishny wrote:
> Что самое интересное, не находился модуль python2.3(scribus)... Вы правы, это 
> не выход, но я пока другого не нашел. Буду еще думать. Может стоит вынести 
> питоновский модуль из scribus  в отдельный пакет? Откровенно говоря, никак не 
> пойму, что с ним делать.
> 
> %add_python_req_skip python2.3(scribus)
> Provides: python%__python_version python2.3(scribus)

Откуда вы это взяли?! Кришна, неужели я так написал в FAQ? ;)
Правильно - 

%add_python_req_skip scribus (специально сделано так, чбы можно было пересобрать
с другим питоном)

Provides: python%__python_version(scribus)

Кроме того, если я правильно понял проблему, то достаточно только одной (любой из) этих
кляуз. Причем. видимо лучше использовать вторую. Ваш модуль уже в инкоминге, я посмотрю его?

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [devel] QA: Unmets в питоновских модулях , как с ними боротся
  2004-06-23 10:32     ` Igor Tertishny
  2004-06-23 13:26       ` Andrey Orlov
@ 2004-06-23 14:21       ` Andrey Orlov
  1 sibling, 0 replies; 8+ messages in thread
From: Andrey Orlov @ 2004-06-23 14:21 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 23 June 2004 14:32, Igor Tertishny wrote:
> Я поступил вышеуказанным образом. Что еще интересно, остальные питоновские 
> модули находятся автоматически.

Я посмотрел scribus. Дело в том, python.find.prov провайдес sсribus не находит,
потому что его там нет. Иными словами, scribus python2.3(scribus) не провайдит:

%python
>>> import scribus
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named scribus
>>>

так что все вполне допустимо.

Я просмотрель исходники, насколько я понял, scribus - это некая утилита (не суть) слинкованная
с питоном, которая может использовать питон в качестве внутреннего скрптового языка, для работы
с которым она провайдит builtin модуль scribus - поправьте меня, если я не прав.

А раз так, то нужно ставить не provide, а skip - т.е. когда я писал про лушче в предыдущем письоме,
 я был неправ: 

%add_python_req_skip scribus  - вот это правильный выбор.

Теперь  вопросу о построении пакета. Не думаю, что имеет смысл прямо сейчас, но если
пакет будет развиваться, то в будущем стоит подумать о таком варианте.

В принципе, питоновские скрипты из него надо выносить. Во что-то типа 
scribus-module-<имя скрипта>. Наша полиси такой случай вообще-то не описывает (это в чистом
виде второй случай такого рода, правда, есть еще Zope - это третий, но там хоть проблемы сходные,
причины, формально, другие). Можно предложить что-то типа следующего:

1. Завести подпакет scribus - это собственно сам scribus;

2. Который провайдит что-то типа srcibus-core

3. Все скрипты к srcibus разбить либо по одному, либо пучками на подпакеты.

4. В каждом из них вписать

%add_python_skip_req scribus
Require: scribus-core

Последнюю операцию, насколько я понимаю, можно автоматизировать, 
но я этим некогда не пользовался.

Насчет именования пакетов - ну, я прям даже не знаю. Система именования питоновских
модулей к ним не применима, потому как по совокупности признаков они
питоновскими модулями не являются, хотя и написаны на питоне. Так что
стандартное 

"python" [<X> ". " <Y>] "-module-" <NAME> 

им не подходит. 

4all: Прошу считать вышеизложенное предложением для обсуждения. Так как такие
пакеты будут появлятся и дальше.

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-06-23 14:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-24  9:40 [devel] QA: Unmets в питоновских модулях , как с ними боротся Andrey Orlov
2004-06-18 13:54 ` Michael Shigorin
2004-06-18 14:28   ` Andrey Orlov
2004-06-23  9:54 ` Igor Tertishny
2004-06-23 10:19   ` Andrey Orlov
2004-06-23 10:32     ` Igor Tertishny
2004-06-23 13:26       ` Andrey Orlov
2004-06-23 14:21       ` Andrey Orlov

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