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 --]
next prev 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