Bug 17028 - apt-get build-dep не может определиться с виртуальной build-requires
Summary: apt-get build-dep не может определиться с виртуальной build-requires
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: apt (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Ivan Zakharyaschev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-05 14:00 MSD by Konstantin Pavlov
Modified: 2022-11-10 13:53 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Konstantin Pavlov 2008-09-05 14:00:53 MSD
Видно из примера:
# apt-get build-dep vlc
E: Build-Depends dependency for vlc-0.9.1-alt2.src.rpm cannot be satisfied because no available versions of package liblive-devel can satisfy version requirements

#apt-cache show liblive-devel
Package liblive-devel is a virtual package provided by:
  liblive555-devel 0.0.0-alt0.2008.07.25
You should explicitly select one to show.
E: Package liblive-devel is a virtual package with multiple providers.
Comment 1 avm 2008-09-06 00:28:02 MSD
Надо заметить, что это старый и хорошо известный баг (http://b23.ru/l3k). Когда-то его уже чинили (http://b23.ru/l3y), но потом отломали снова. Текущий хозяин apt-rpm Panu Matilainen признаётся, что build-dep надо переписать нафиг (http://b23.ru/l3h).

Простейший вариант (вынуть из пакета зависимости и сделать на них install) не работает, потому что смысл получается другой: install подразумевает обновление имеющихся пакетов, а build-dep должен по возможности удовлетворяться тем, что есть.

Почитал код. Особенная прелесть заключена в последних строчках функции DoBuildDep в apt-get.cc:

if(condition == true)
  return true;
return true;

Чудеса копи-пейстного программирования (ср. функцию DoInstall).
Comment 2 Ivan Zakharyaschev 2018-11-19 23:13:01 MSK
(In reply to comment #1)

> Простейший вариант (вынуть из пакета зависимости и сделать на них install) не
> работает, потому что смысл получается другой: install подразумевает обновление
> имеющихся пакетов, а build-dep должен по возможности удовлетворяться тем, что
> есть.

Вот реализация этого простейшего workaround:

rpm -qp NAME.src.rpm -R | fgrep -v 'rpmlib(' | tr -d ' ' | xargs apt-get --yes install
Comment 3 Anton Farygin 2022-11-10 13:53:24 MSK
# apt-get build-dep curl
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
E: зависимость Build-Depends для curl-7.86.0-alt1.src.rpm не может быть удовлетворена, потому что отсутствует пакет rpmlib(PayloadIsLzma).

Собственно вопрос возник опять - как поставить в систему сборочные зависимости для удовлетворения процесса сборки какого-то пакета.

Можно придумывать workaround'ы, но лучше всё-таки заставить работать apt