ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] rpm: find-package
@ 2009-02-16 15:00 Sergey Bolshakov
  2009-02-16 15:35 ` Alexey Tourbin
  0 siblings, 1 reply; 2+ messages in thread
From: Sergey Bolshakov @ 2009-02-16 15:00 UTC (permalink / raw)
  To: devel


Обнаружен (внезапно!) некоторый неприятный момент в логике
скрипта find-package, вид по ссылке:
http://tinyurl.com/c7tzgq
а именно: если однажды каким-либо образом в сборочной итерации N-1
путь внешней зависимости не был разрешён в имя пакета, то такой путь
будет внесён в зависимости пакета as is, и, таким образом, клауза
'The path is also "safe enough" if it is already required by someone'
будет сама себя поддерживать сколь угодно большое количество
пересборок, несмотря на то, что путь (уже) может быть разрешён в имя
пакета, если пакет сборочно зависит, пусть непрямо, сам от себя.

На примере пакета openssl098:
однажды в нём возникла зависимость на
/usr/share/ca-certificates/ca-bundle.crt из-за ссылки
/var/lib/ssl/cert.pem -> ../../../usr/share/ca-certificates/ca-bundle.crt,
которая не могла (на тот момент) быть разрешена в ca-certificates.
Последующие пересборки openssl098 ничего не принесут, поскольку 
в сборочном окружении неизбежно оказывается предыдущий (кривой)
openssl098, и клауза 'already required by, well, OMFG, ME!' не пустит
пройти посмотреть в contents_index_all. Круг замкнулся.

Есть идеи ?

-- 


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

* Re: [devel] rpm: find-package
  2009-02-16 15:00 [devel] rpm: find-package Sergey Bolshakov
@ 2009-02-16 15:35 ` Alexey Tourbin
  0 siblings, 0 replies; 2+ messages in thread
From: Alexey Tourbin @ 2009-02-16 15:35 UTC (permalink / raw)
  To: devel

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

On Mon, Feb 16, 2009 at 06:00:32PM +0300, Sergey Bolshakov wrote:
> Обнаружен (внезапно!) некоторый неприятный момент в логике
> скрипта find-package, вид по ссылке:
> http://tinyurl.com/c7tzgq
> а именно: если однажды каким-либо образом в сборочной итерации N-1
> путь внешней зависимости не был разрешён в имя пакета, то такой путь
> будет внесён в зависимости пакета as is, и, таким образом, клауза
> 'The path is also "safe enough" if it is already required by someone'
> будет сама себя поддерживать сколь угодно большое количество
> пересборок, несмотря на то, что путь (уже) может быть разрешён в имя
> пакета, если пакет сборочно зависит, пусть непрямо, сам от себя.
> 
> На примере пакета openssl098:
> однажды в нём возникла зависимость на
> /usr/share/ca-certificates/ca-bundle.crt из-за ссылки
> /var/lib/ssl/cert.pem -> ../../../usr/share/ca-certificates/ca-bundle.crt,
> которая не могла (на тот момент) быть разрешена в ca-certificates.
> Последующие пересборки openssl098 ничего не принесут, поскольку 
> в сборочном окружении неизбежно оказывается предыдущий (кривой)
> openssl098, и клауза 'already required by, well, OMFG, ME!' не пустит
> пройти посмотреть в contents_index_all. Круг замкнулся.
> 
> Есть идеи ?

Идея такая: отображать путь в название пакета -- это вообще порочная
практика.  Эту практику приходится до сих пор поддерживать, потому
что у нас раздельно генерируются arch и $noarch репозитарии; и нет
способа учитывать взаимные влияния путей между этими репозитариями
(а все лишние пути обрезаются, чтобы уменьшить размер pkglist.classic).

Решение состоит в том, чтобы генерировать arch и noarch репозитарии
совместно.  Для этого достаточно поддерживать общий список путей,
которые нельзя урезать из pkglist.classic.

Короче, если путь точно известен, то лучше ставить зависимость
именно на этот точный путь.

Отображать в названия пакетов, как правило, нужно только названия команд
из шелл-скриптов.  Для них нет отдельного пространства зависимостей,
но их также нежелательно отображить и в путь (потому что существует
неоднозначность, где файл должен находиться, в /usr/bin или /usr/sbin
и т.д.).

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

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

end of thread, other threads:[~2009-02-16 15:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-16 15:00 [devel] rpm: find-package Sergey Bolshakov
2009-02-16 15:35 ` Alexey Tourbin

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