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

Ivan Zakharyaschev imz на altlinux.org
Вс Апр 8 20:29:09 MSK 2018


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