[devel] robot friendship [was: eclipse-platform-3.3.0-alt5_30jpp5.0 -- file deps]
Igor Vlasenko
=?iso-8859-1?q?vlasenko_=CE=C1_imath=2Ekiev=2Eua?=
Чт Янв 31 19:38:15 MSK 2008
On Mon, Jan 21, 2008 at 12:54:28AM +0300, Alexey Tourbin wrote:
> > +eclipse-platform-3.3.0-alt5_30jpp5.0 Requires /usr/share/java/lucene.jar
> > -eclipse-platform-3.3.0-alt5_30jpp5.0 Requires lucene
> У пакета eclipse-* в очередной раз "плавают" зависимости.
> Дело здесь в том, что разрешение файлового пути в зависимость
> идёт через механизм contents_index_all. Этот механизм по сути нужен
> для того, чтобы разрешать файловые (виртуальные) зависимости в реальные
> зависимости -- в тех случаях, когда такое разрешение однозначно.
>
> А возможно однозначно разрешить файловую зависимость в имя пакета или
> нет -- это зависит от того репозитария, на котором мы собираем пакеты.
>
> Раньше файловая зависимость /usr/share/java/lucene.jar однозначно
> разрешалась в пакет lucene. Теперь в репозитарии есть два пакета --
> lucene и lucene1, которые содержат этот файл, поэтому ничего не
> остаётся, как только сохранить файловую зависимость as is.
> Если же удалить из репозитария пакет lucene1, то опять "восстановится"
> зависимость на lucene.
>
> Это наводит меня на мысль, что, по идее, сам механизм contents_index_all
> в общем-то не нужен. Результат слишком сильно варьируется от текущего
> состояния репозитария. Если пакет явно требует какой-то файл, то пусть
> он просто требует этот файл, а дополнительный шаг по поиску реального
> пакета с этим файлом ничего хорошего не даёт, а только "не по делу"
> преобразует зависимость (и, кстати, ослабляет гарантию по наличию
> соответствующего файла в новых сборках пакета).
>
> К сожалению, сейчас нельзя явно генерировать файловые зависимости между
> произвольными пакетами, т.к. при формировании репозитария apt обрезает
> файловые листы, так что есл пакеты находятся в разных репозитариях, то
> будет так называемый cross-arch semi-unmet.
>
> Решения тут может быть два:
> 1) отказаться от раздельных $arch и noarch репозитариев; или же
> 2) не обрезать файловые листы при формировании $arch/noarch репозитариев.
Прошу прощения за задержку с ответом, был крайне перегружен :(
Напрашивается вариант #3.
пока нет ясности с 1) и 2),
генерировать зависимости,
1) в случае, если согласно content_index_all такого файла нет
(вешать unmet)
2) файл есть и единственен (разрешать в зависимость на пакет)
Если же согласно content_index_all файл есть, но находится в разных
пакетах, то если эту зависимость нельзя разрешить на альтернативы,
то вообще ее не ставить.
Все равно apt ее не сможет разрешить. Зачем ее вообще ставить?
это же вредительство.
И робот станет другом человека :)
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
Подробная информация о списке рассылки Devel