[devel] Ложные зависимости при сборке пакета

Eugine Kosenko eugine.kosenko на gmail.com
Вс Апр 8 21:25:04 MSK 2018


Всем спасибо за помощь, проблема, по идее, решена.

Похоже, начиная с версии 8 у ghc в ключе пакета убран хэш-код, остались
только имя и версия пакета. В результате сломалась логика генерации
зависимостей в скрипте haskell.req из пакета rpm-build-haskell. Вообще
говоря, хэш был не нужен уже в версии ghc7.6.1, соответствующее поле в
haskell.req вычислялось, но никак не использовалось. А теперь оно исчезло и
в самом ghc, и haskell.req вместо версии получал имя библиотеки.
Естественно, такая "версия" не стыковалась с тем, что пакет предоставлял
--- там вычисление версии идет через сам rpm.

В общем, получается, что нужно определять отдельно rpm-build-haskell8, куда
вносить соответствующие изменения, а затем при сборке ghc версии 8 давать
зависимость уже на rpm-build-haskell8. В целом это не проверял, но думаю,
что должно заработать.

2018-04-08 20:29 GMT+03:00 Ivan Zakharyaschev <imz на altlinux.org>:

>
> On Sun, 8 Apr 2018, Eugine Kosenko wrote:
>
> > После сборки пакета ghc8.0.1 при попытке его установить его в систему
> > возникает куча неудовлетворенных зависимостей:
> >
> > # rpm -i ghc8.0.1-8.0.1-alt1.x86_64.rpm
> > ошибка: Неудовлетворенные зависимости:
> >         ghc8.0.1(array) = array нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(base) = base нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(binary) = binary нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(bytestring) = bytestring нужен для
> > ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(containers) = containers нужен для
> > ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(deepseq) = deepseq нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(directory) = directory нужен для
> ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(filepath) = filepath нужен для
> ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(ghc) = boot нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(ghc) = prim нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(ghc-boot) = th нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(ghci) = ghci нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(hoopl) = hoopl нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(hpc) = hpc нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(integer) = gmp нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(pretty) = pretty нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(process) = process нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(template) = haskell нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(terminfo) = terminfo нужен для
> ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(time) = time нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(transformers) = transformers нужен для
> > ghc8.0.1-8.0.1-alt1.x86_64
> >         ghc8.0.1(unix) = unix нужен для ghc8.0.1-8.0.1-alt1.x86_64
> >
> > Суть в том, что все эти библиотеки входят в ядро ghc и предоставляются
> > самим этим пакетом. При форсировании установки получается вполне
> > работоспособная версия, на которой удалось собрать ghc8.4.1 (именно
> этого я
> > сейчас добиваюсь). При сборке модифицированного ghc7.6.1 и даже ghc7.10.1
> > такой проблемы не возникало, хотя для спека во всех этих случаях я беру
> > один и тот же спек ghc7.6.1.spec из текущего Сизифа. На всякий случай
> > присоединяю к этому письму ghc8.0.1.spec.
> >
> > Если коротко, то как правильно и проще всего подавить такие ложные
> > зависимости?
>
> Мне кажется предпочтительным не подавлять зависимости, а заставить
> сгенерировать соответствующие Provides . Это будет правдой и полезно для
> удовлетворения таких зависимостей в других пакетах, если они возникнут.
>
> (В итоге в таком случае в этом пакете они просто будут соптимизированы
> самим rpm-build, чтобы не было у него большого количества ничего не
> значащих Requires.)
>
> --
> Best regards,
> Ivan
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
>
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20180408/266dc332/attachment-0001.html>


Подробная информация о списке рассылки Devel