ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Эссе о lib%name-devel :)
@ 2001-11-08 23:58 Mikhail Zabaluev
  2001-11-09  8:35 ` Dmitry V. Levin
  2001-11-10  8:44 ` [devel] " Michael Shigorin
  0 siblings, 2 replies; 5+ messages in thread
From: Mikhail Zabaluev @ 2001-11-08 23:58 UTC (permalink / raw)
  To: devel

Доброго времени суток.

Считаю нужным обстоятельно высказаться на столь активно обсуждаемую
тему, хотя бы потому, чтобы разъяснить, за что я так взъелся по,
казалось бы, пустяковому вопросу.

Вы правы, поезд ушел и с delibification не стоит торопиться накануне
релиза.  Но я хочу показать, почему принятое сейчас правило может быть
неудобным и недружественным к пользователю. О логичности спорить
не будем, потому что логика в правиле все же есть. Я буду обозначать
принятую в нашем дистрибутиве конвенцию lib%name-devel "правилом
ALTLinux", а конвенцию %name-devel -- "правилом RedHat".

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

1. Пользователь много слышал о софте по имени foo, видел ссылки на
freshmeat'е и горит желанием эту штуку поставить. Он находит пакет foo
в дистрибутиве и радостно его устанавливает. По пути выясняется, что
пакет foo требует libfoo. Пользователь, недолго думая, удовлетворяет
зависимость, либо это за него делает автоматика. Факт наличия libfoo
быстро выветривается из памяти пользователя.

2. Спустя некоторое время пользователь решает собрать нечто с
использованием foo. Собирает он не из source RPM, поэтому никаких
BuildRequires не существует. Пользователю быстро становится ясно, что
для разработки нужны некие дополнительные файлы. Если он знаком с
RedHat и не ведает подвоха, он ищет foo-devel и, не найдя, приходит в
горькое недоумение. Если пользователь стреляный, он будет искать и
libfoo-devel и foo-devel (поскольку второй вариант тоже
встречается). Понятно, что цена вопроса -- один glob, но в гуевых
средствах этот glob придется делать вручную :( Поиск еще усложняется,
когда lib-пакеты меняют "корень" по имени библиотеки, которую
они содержат -- что, кстати, правильно для пакета с самой библиотекой,
по тем же соображениям легкости поиска. Когда от вас требуют
libcapplet.so.0, вы первым делом станете искать пакет libcapplet.
Но чтобы догадаться, что для разработки под control-center нужен
libcapplet-devel, нужно обладать инсайдерской информацией :)

С "правилом RH" проблема часто решается еще на этапе 1, когда
пользователь видит в листинге foo и foo-devel рядом и устанавливает их
вместе "до кучи". Так было и в Spring.

Были возражения, что в дистрибутиве с "правилом RH" не однозначно
выводится имя -devel пакета из имени libfoo. Во-первых, эта
неоднозначность симметрична описанной выше для "правила AltLinux".
Во-вторых, ниже приведена shell-функция, которая выдает имя
соответствующего -devel по имени _любого_ пакета, если действует
"правило RH".

FindDevel() {
	local name=$1

	# Try the obvious
	local develname="${name}-devel"
	if CheckPackage $develname; then
		echo $develname
		return
	fi

	# Deduce from the name of the source package
	local srcname=$(rpm -q --qf='%{SOURCERPM}\n' $name)
	develname=${srcname%%-[0-9]*}-devel
	if CheckPackage $develname; then
		echo $develname
		return
	fi

	return 1
}

Не приведенная здесь функция CheckPackage проверяет наличие пакета в
репозитарии. Теперь попробуйте-ка вычислить libcapplet-devel из
control-center по "правилу AltLinux" без доступа к spec'у.

И еще. Будет ли 'apt-get install libfoo-devel' устанавливать foo-devel,
если у того прописан соответствующий Provides? Если да, то можно
обязать в -devel писать Provides: lib%name-devel для всех пакетов
lib%name, которые данный -devel покрывает. Тогда, имея libfoo, можно
будет не думая набрать приведенную выше команду и получить ровно то,
что нужно.

-- 
Stay tuned,
  MhZ                                     JID: mookid@jabber.org
___________
God is Dead.
		-- Nietzsche
Nietzsche is Dead.
		-- God
Nietzsche is God.
		-- Dead
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


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

* Re: [devel] Эссе о lib%name-devel :)
  2001-11-08 23:58 [devel] Эссе о lib%name-devel :) Mikhail Zabaluev
@ 2001-11-09  8:35 ` Dmitry V. Levin
  2001-11-09  9:25   ` [devel] " Mikhail Zabaluev
  2001-11-10  8:44 ` [devel] " Michael Shigorin
  1 sibling, 1 reply; 5+ messages in thread
From: Dmitry V. Levin @ 2001-11-09  8:35 UTC (permalink / raw)
  To: devel

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

On Fri, Nov 09, 2001 at 02:58:12AM +0300, Mikhail Zabaluev wrote:
> И еще. Будет ли 'apt-get install libfoo-devel' устанавливать foo-devel,
> если у того прописан соответствующий Provides? Если да, то можно

Да.

> обязать в -devel писать Provides: lib%name-devel для всех пакетов

Обязать сложно. Но рекомендовать можно.

> lib%name, которые данный -devel покрывает. Тогда, имея libfoo, можно

Как определить такие пакеты?

> будет не думая набрать приведенную выше команду и получить ровно то,
> что нужно.

Имеет смысл также проверить, все ли lib%name-devel пакеты содержат тэги
Provides: %name-devel = %version


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@alt-linux.org
ALT Linux Team      http://www.altlinux.ru/
Fandra Project      http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

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

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

* [devel] Re: Эссе о lib%name-devel :)
  2001-11-09  8:35 ` Dmitry V. Levin
@ 2001-11-09  9:25   ` Mikhail Zabaluev
  0 siblings, 0 replies; 5+ messages in thread
From: Mikhail Zabaluev @ 2001-11-09  9:25 UTC (permalink / raw)
  To: devel

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

Hello Dmitry,

On Fri, Nov 09, 2001 at 11:35:55AM +0300, Dmitry V. Levin wrote:
>
> On Fri, Nov 09, 2001 at 02:58:12AM +0300, Mikhail Zabaluev wrote:
> > И еще. Будет ли 'apt-get install libfoo-devel' устанавливать foo-devel,
> > если у того прописан соответствующий Provides? Если да, то можно
> 
> Да.
> 
> > обязать в -devel писать Provides: lib%name-devel для всех пакетов
> 
> Обязать сложно. Но рекомендовать можно.
> 
> > lib%name, которые данный -devel покрывает. Тогда, имея libfoo, можно
> 
> Как определить такие пакеты?

Если из одного исходного пакета A строятся A, libB и A-devel,
т.е. нецелесообразно оделять libB собственным -devel, потому что:
1) он не используется вне контекста A; 2) разработка под A
требует development файлов для libB; тогда A-devel должен
предоставлять libB-devel. Если есть подпакеты libB1, libB2 etc.
это правило распространяется и на них.

Посмотрите, как сделано в bonobo: для разработки под bonobo нужны
файлы из bonobo-devel, но для libefs созданы libefs-devel{,-static},
потому что наличие заголовков и проч. к libefs для разработки под
Bonobo не требуется, вдобавок libefs может быть использована
независимо от Bonobo.

-- 
Stay tuned,
  MhZ                                     JID: mookid@jabber.org
___________
Once, I read that a man be never stronger than when he truly realizes how
weak he is.
		-- Jim Starlin, "Captain Marvel #31"

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

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

* Re: [devel] Эссе о lib%name-devel :)
  2001-11-08 23:58 [devel] Эссе о lib%name-devel :) Mikhail Zabaluev
  2001-11-09  8:35 ` Dmitry V. Levin
@ 2001-11-10  8:44 ` Michael Shigorin
  2001-11-10  9:42   ` [devel] " Mikhail Zabaluev
  1 sibling, 1 reply; 5+ messages in thread
From: Michael Shigorin @ 2001-11-10  8:44 UTC (permalink / raw)
  To: devel; +Cc: Mikhail Zabaluev

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

On Fri, Nov 09, 2001 at 02:58:12AM +0300, Mikhail Zabaluev wrote:
> Считаю нужным обстоятельно высказаться на столь активно обсуждаемую
> тему, хотя бы потому, чтобы разъяснить, за что я так взъелся по,
> казалось бы, пустяковому вопросу.
[skip]

"А как в дебиане?" (С)

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ http://visa.chem.univ.kiev.ua/~mike/

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

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

* [devel] Re: Эссе о lib%name-devel :)
  2001-11-10  8:44 ` [devel] " Michael Shigorin
@ 2001-11-10  9:42   ` Mikhail Zabaluev
  0 siblings, 0 replies; 5+ messages in thread
From: Mikhail Zabaluev @ 2001-11-10  9:42 UTC (permalink / raw)
  To: devel

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

Hello Michael,

On Sat, Nov 10, 2001 at 10:44:10AM +0200, Michael Shigorin wrote:
>
> On Fri, Nov 09, 2001 at 02:58:12AM +0300, Mikhail Zabaluev wrote:
> > Считаю нужным обстоятельно высказаться на столь активно обсуждаемую
> > тему, хотя бы потому, чтобы разъяснить, за что я так взъелся по,
> > казалось бы, пустяковому вопросу.
> [skip]
> 
> "А как в дебиане?" (С)

Посмотрел -- действительно, похоже, где lib%name, там и lib%name-dev.
Не знаю, чем это им помогает, не будучи знаком с их системой packaging'а.

-- 
Stay tuned,
  MhZ                                     JID: mookid@jabber.org
___________
There comes a time to stop being angry.
		-- A Small Circle of Friends

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

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

end of thread, other threads:[~2001-11-10  9:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-08 23:58 [devel] Эссе о lib%name-devel :) Mikhail Zabaluev
2001-11-09  8:35 ` Dmitry V. Levin
2001-11-09  9:25   ` [devel] " Mikhail Zabaluev
2001-11-10  8:44 ` [devel] " Michael Shigorin
2001-11-10  9:42   ` [devel] " Mikhail Zabaluev

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