ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] contents_index_*
Date: Wed, 23 Jan 2008 20:18:40 +0300
Message-ID: <20080123171840.GB7544@solemn.turbinal> (raw)
In-Reply-To: <20080123003411.GB5448@wo.int.altlinux.org>

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

On Wed, Jan 23, 2008 at 03:34:11AM +0300, Dmitry V. Levin wrote:
> On Wed, Jan 23, 2008 at 03:11:39AM +0300, Alexey Tourbin wrote:
> > > Раньше файловая зависимость /usr/share/java/lucene.jar однозначно
> > > разрешалась в пакет lucene.  Теперь в репозитарии есть два пакета --
> > > lucene и lucene1, которые содержат этот файл, поэтому ничего не
> > > остаётся, как только сохранить файловую зависимость as is.
> > > Если же удалить из репозитария пакет lucene1, то опять "восстановится"
> > > зависимость на lucene.
> > > 
> > > Это наводит меня на мысль, что, по идее, сам механизм contents_index_all
> > > в общем-то не нужен.  Результат слишком сильно варьируется от текущего
> > > состояния репозитария.  Если пакет явно требует какой-то файл, то пусть
> > > он просто требует этот файл, а дополнительный шаг по поиску реального
> > > пакета с этим файлом ничего хорошего не даёт, а только "не по делу"
> > > преобразует зависимость (и, кстати, ослабляет гарантию по наличию
> > > соответствующего файла в новых сборках пакета).
> > 
> > Вообще у меня появилась мысль, что contents_index_* -- плохая идея.
> > Результат сборки пакета должен быть функцией от src.rpm'а и содержимого
> > сборочного чрута.  А contents_index_* сейчас позволяет в значительной
> > степени варьировать зависимости у пакета, который собирается в одном и
> > том же чруте, но на разных репозитариях.  Нужно это влияние хотя бы
> > свести к минимуму.
> 
> Каким образом?
> Если файла нет в сборочном чруте, то что написать в зависимость?

Если известен путь к файлу, то дело в шляпе -- можно просто
писать в зависимости путь к файлу.

/usr/lib/rpm/find-package:
   213          # Not found; output raw dependence.
   214          Info "$f: $rep -> $rep (raw, not found)"
   215          printf %s\\n "$rep"

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

> Например, в скрипте используется утилита foo, которая неизвестно где в
> $PATH находится, и в сборочном чруте её нет.

А вот когда пути неизвестно, тогда начинается гадание на
кофейной гуще.  Прежде всего, мы хотим выяснить, есть ли вообще
где-то в репозитарии такая утилита.  Если её нигде нет, то
правдоподобнее считать, что у нас левый скрипт.  Это может быть
функция из файла в каком-то другом пакете или adjusted PATH или
что угодно.  Приходится даже подавлять диганостику, потому что
слишком много высыпает:

   378          # Not found.
   379          local maybe_function=
   380          case "$r" in
   381                  *[!A-Za-z0-9_]*) ;;
   382                  [!A-Za-z_]*) ;;
   383                  *[A-Z_]*) maybe_function=1 ;;
   384          esac
   385          if [ -n "$maybe_function" ]; then
   386                  $Verbose "$f: $r not found (skip, maybe function)"
   387          else
   388                  Info "$f: $r not found (skip)"
   389          fi

Кроме "прежде всего" выяснения, есть ли вообще такое дело,
нам нужно также соблюдать баланс между 1) возможностью перемещения
команды между каталогами PATH, из-за чего нежелательно ставить
файловую зависимость; 2) сохранить зависимость достаточно виртуальной,
чтобы облегчить переименование пакетов, из-за чего нежелательно ставить
зависимость на имя пакета.  Понятно, что эти пункты противоречат друг
другу.  Если бы можно было "отсрочить" сразу два этих пункта, тогда бы
мы могли получить бОльшую независимость от contents_index_*.

Можно было бы отсрочить это введением дополнительного неймспеса
зависимостей executable(...) -- возможно, с поддержкой со стороны
rpm и apt.

Но решение есть такой executable в репозитарии или нет (и
соответственно, генерировать вообще зависимость или нет) отсрочить
никак нельзя.  А раз его нельзя отсрочить, то мы неизбежно пользуемся
информацией о том, что такой executable существует в репозитарии, а это
близко связано с тем, какому пакету этот executable принадлежит...

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

  parent reply	other threads:[~2008-01-23 17:18 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-20 19:19 [devel] rpm 4.0.4-alt82+ [2] Alexey Tourbin
2008-01-20 19:28 ` [devel] alsa-utils-1.0.14-alt3 Alexey Tourbin
2008-01-20 20:10 ` [devel] alterator-install-common-desktop-0.11-alt1 Alexey Tourbin
2008-01-21  6:40   ` Stanislav Ievlev
2008-01-21  6:40     ` Stanislav Ievlev
2008-01-20 20:17 ` [devel] ant-1.7.0-alt8 Alexey Tourbin
2008-01-20 20:21 ` [devel] apache2-mod_python-3.3.1-alt2.3 Alexey Tourbin
2008-01-20 20:51 ` [devel] bacula-director-2.2.7-alt1 Alexey Tourbin
2008-01-20 21:39 ` [devel] eciadsl-usermode-0.12-alt1 Alexey Tourbin
2008-01-23 18:29   ` Kirill Maslinsky
2008-01-20 21:54 ` [devel] eclipse-platform-3.3.0-alt5_30jpp5.0 -- file deps Alexey Tourbin
2008-01-23  0:11   ` [devel] contents_index_* Alexey Tourbin
2008-01-23  0:34     ` Dmitry V. Levin
2008-01-23  3:28       ` Ildar Mulyukov
2008-01-23  4:10         ` Хихин Руслан
2008-01-23 17:18       ` Alexey Tourbin [this message]
2008-01-23 20:06         ` Dmitry V. Levin
2008-01-23 20:45           ` Alexey Tourbin
2008-01-31 16:38   ` [devel] robot friendship [was: eclipse-platform-3.3.0-alt5_30jpp5.0 -- file deps] Igor Vlasenko
2008-01-20 22:03 ` [devel] f-spot-0.3.5-alt2 Alexey Tourbin
2008-01-20 22:13 ` [devel] fedora-ds-1.1.0-alt1 Alexey Tourbin
2008-01-26 16:57   ` Dmitry V. Levin
2008-01-20 22:49 ` [devel] firefox-devel-2.0.0.11-alt1 Alexey Tourbin
2008-01-20 23:03 ` [devel] flags-1.6-alt2 Alexey Tourbin
2008-01-20 23:12 ` [devel] flam3-devel-2.7.7-alt1 Alexey Tourbin
2008-01-20 23:59   ` Motsyo Gennadi aka Drool
2008-01-21  0:03     ` Dmitry V. Levin
2008-01-21  0:06     ` Alexey Tourbin
2008-01-20 23:38 ` [devel] fonts-type1-cm-super-tex-0.3.3-alt7 Alexey Tourbin
2008-01-20 23:41 ` [devel] fonts-type1-cm-super-tex-afm-0.3.3-alt7 Alexey Tourbin
2008-01-20 23:55 ` [devel] freevo-1.7.5-alt1 Alexey Tourbin
2008-01-21  1:05   ` Vitaly Lipatov
2008-01-21  0:41 ` [devel] gftp-common-2.0.18stable-alt4 Alexey Tourbin
2008-01-21 22:22   ` Pavel Vainerman
2008-01-21 22:43     ` Alexey Tourbin
2008-01-21 23:11       ` Pavel Vainerman
2008-01-21 23:17         ` Alexey Tourbin
2008-01-21 17:16 ` [devel] guile16-1.6.8-alt1.1 Alexey Tourbin
2008-01-21 17:32 ` [devel] jed-common-0.99.18-alt1 Alexey Tourbin
2008-01-21 17:36 ` [devel] juddi-webapps-0.9-alt1_0.rc4.2jpp1.7 Alexey Tourbin
2008-01-21 17:47 ` [devel] krb5-kdc-1.6.3-alt2 Alexey Tourbin
2008-01-21 17:51 ` [devel] rpm 4.0.4-alt82+ [2] Alexey Tourbin
2008-01-21 18:04 ` [devel] libavahi-qt3-0.6.22-alt4 Alexey Tourbin
2008-01-21 18:13 ` [devel] libdiacanvas2-devel-0.14.4-alt1 Alexey Tourbin
2008-01-21 18:23 ` [devel] libexml-devel-0.1.1-alt1.20070917 Alexey Tourbin
2008-01-21 21:28   ` [devel] [JT] ackager :) Michael Shigorin
2008-01-21 18:59 ` [devel] libextractor-0.5.18a-alt1 -- libtool? Alexey Tourbin
2008-01-21 19:11   ` Valery V. Inozemtsev
2008-01-21 19:09 ` [devel] libg-wrap-devel-1.9.6-alt5 Alexey Tourbin
2008-01-21 21:40   ` Vitaly Lipatov
2008-01-21 22:17     ` Alexey Tourbin
2008-01-21 22:45       ` led
2008-01-21 22:47         ` Alexey Tourbin
2008-01-21 23:01       ` Alexey Tourbin
2008-01-21 23:43       ` Vitaly Lipatov
2008-01-21 19:20 ` [devel] libgig-devel-2.0.1-alt1 Alexey Tourbin
2008-01-21 19:53 ` [devel] libkexif-devel-0.2.5-alt2 Alexey Tourbin
2008-01-21 19:54 ` [devel] libkipi-devel-0.1.5-alt2 Alexey Tourbin
2008-01-21 19:55 ` [devel] liblscp-devel-0.3.1-alt1 Alexey Tourbin
2008-01-21 19:58 ` [devel] libnl-devel-1.0-alt1.svn30 Alexey Tourbin
2008-01-21 20:01 ` [devel] libopensync-devel-0.22-alt1 Alexey Tourbin
2008-01-21 20:03 ` [devel] libortp-devel-0.13.1-alt1 Alexey Tourbin
2008-01-21 20:04 ` [devel] libplanner-devel-0.14.2-alt5 Alexey Tourbin
2008-01-21 20:09 ` [devel] libqscintilla2-qt4-2-alt1.20080103 Alexey Tourbin
2008-01-21 20:13 ` [devel] (без темы) Alexey Tourbin
2008-01-21 20:16 ` [devel] libsynfig-devel-0.61.07-alt2 Alexey Tourbin
2008-01-21 20:17 ` [devel] libtracker-devel-0.6.4-alt1 Alexey Tourbin
2008-01-21 20:19 ` [devel] libwebkit-gtk-devel-0.r27953-alt1 Alexey Tourbin
2008-01-21 20:24 ` [devel] libzvbi-0.2.24-alt0.1 Alexey Tourbin
2008-01-21 20:32 ` [devel] ltsp5-client-5.0-alt0.67 Alexey Tourbin
2008-01-21 21:32   ` Michael Shigorin
2008-01-21 21:37     ` Alexey I. Froloff
2008-01-22  0:28       ` Michael Shigorin
2008-01-21 21:50     ` Alexey Tourbin
2008-01-22  1:40   ` led
2008-01-22 10:10     ` led
2008-01-21 21:21 ` [devel] maven-1.1-alt6_0.beta3.2jpp1.7 -- dir deps Alexey Tourbin
2008-01-21 21:24 ` [devel] mod_python-2.7.11-alt5 Alexey Tourbin
2008-01-21 23:47 ` [devel] mono-1.2.6-alt3 Alexey Tourbin
2008-01-22  0:02 ` [devel] osec-mailreport-1.1.0-alt1 Alexey Tourbin
2008-01-22  0:18 ` [devel] perl-Gtk2-GladeXML-1.006-alt1 Alexey Tourbin
2008-01-22  0:50 ` [devel] povray-common-3.6-alt2 Alexey Tourbin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080123171840.GB7544@solemn.turbinal \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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