Package: apt Version: 2.7.7 Followup-For: Bug #229775 This bug (#229775) is still reproducible with current apt version (apt 2.7.7). The bug can be summarized so: "apt-get build-dep" fails to install a package from a repo if its priority is slightly less than priority of installed release. In more details: "apt-get build-dep" fails to install a package from backports if backports priority is set to 499 and installed release have its default priority (i. e. 500, as well as I understand).
Here are steps to reproduce. But please note: the steps to reproduce below involve stretch. But despite this, please note that the bug is reproducible with apt 2.7.7! Yes, I did run apt 2.7.7 on stretch! Now let me show you steps to reproduce: Build docker container using this dockerfile: FROM debian:stretch ENV LC_ALL C.UTF-8 RUN echo deb http://archive.debian.org/debian stretch main > /etc/apt/sources.list RUN echo deb http://archive.debian.org/debian-security stretch/updates main >> /etc/apt/sources.list RUN apt-get update RUN apt-get install -y --no-install-recommends apt-utils whiptail RUN apt-get dist-upgrade -y --no-install-recommends RUN apt-get install -y --no-install-recommends build-essential RUN echo deb http://archive.debian.org/debian stretch-backports main >> /etc/apt/sources.list RUN echo deb-src http://deb.debian.org/debian buster main >> /etc/apt/sources.list RUN apt-get update RUN printf 'Package: *\nPin: release n=*backports*\nPin-Priority: 499\n' > /etc/apt/preferences RUN apt-get build-dep -y --no-install-recommends cmake || : # This command fails RUN printf 'Package: *\nPin: release n=*backports*\nPin-Priority: 500\n' > /etc/apt/preferences RUN apt-get build-dep -y --no-install-recommends cmake # Success If you don't have docker, then you can do this instead: - Create fresh stretch system using "debootstrap --variant=minbase" - Then run commands above in this stretch one after one I tried commands above in docker and was able to reproduce the bug. I didn't try debootstrap way, but I'm nearly sure the bug will reproduce, too. If backports priority is set to 499, then "apt-get build-dep -y --no-install-recommends cmake" will print this: === # apt-get build-dep -y --no-install-recommends cmake Reading package lists... Done Building dependency tree... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:cmake : Depends: libuv1-dev (>= 1.10) but 1.9.1-3 is to be installed E: Unable to correct problems, you have held broken packages. === I think this is a bug: dependecies can be satisfied if one really tries. If I set backports priority to 500, then "apt-get build-dep" is able to install needed packages. So, apt-get doesn't try hard enough. Requirement "libuv1-dev (>= 1.10)" can be satisfied: stretch-backports has libuv1-dev 1.34.2-1~bpo9+1, but it is ignored, and this is a bug. I reproduced this bug using apt 2.7.7. To do this I copied apt 2.7.7 binary and all its .so files to stretch and then I did run this: /tmp/apt-get.d/ld.so --library-path /tmp/apt-get.d/libs /tmp/apt-get.d/apt-get ... I. e. I was able to do this using "ld.so --library-path" trickery. Okay, now you may wonder why I think this is a bug, why I need this and why I don't like current behavior. Let me answer. Go to Debian IRC (a. k. a. OFTC IRC), join #debian channel and write to bot nicknamed "dpkg" the following text: "simple sid backport". The bot will respond to you with the following *very* helpful text: === First, check for a backport on <debian-backports>. If unavailable: 1) Add a deb-src line for sid (not a deb line!); ask me about <deb-src sid> 2) enable debian-backports (see <bdo>) 3) apt update; apt install build-essential; apt build-dep packagename 4) apt -b source packagename 5) dpkg -i packagename-ver.deb To change compilation options, see <package recompile>; for versions newer than sid see <uupdate>. === I use stretch as my main system. So I often need to backport packages. And I do this using instruction above. When I do 3rd step, i. e. "apt-get build-dep", I want apt to search in stretch and then in stretch-backports. Unfortunately, I was unable to find configuration, which achieve this. If I do not set apt_preferences at all, then stretch-backports is ignored by "apt-get build-dep" (reproduction steps listed above). If I set backports priority to 499, then the same happens. If I set backports priority to 500, then stretch-backports is prefered if its package is newer than stretch's. But stretch-backports always has newer packages than stretch, so stretch-backports is always prefered! But I want stretch to be prefered. Hence there is simply no configuration, which meets my goals. Again: I want stretch-backports to be visible, but I want stretch to be prefered over stretch-backports. Because stretch seems to be more stable than stretch-backports, but stretch-backports still can contain something useful. You may say: "Okay, what is problem? If "apt-get build-dep" doesn't work, then simply raise stretch-backports priority or type "apt-get build-dep -t stretch-backports"". Well, this will work if I do everything manually. But I currently write script, which automates that instruction from IRC bot. You may say: okay, just add to your script this: === if ! apt-get build-dep -y "$PKG"; then apt-get build-dep -t "$CODENAME"-backports -y "$PKG" fi === Well, I can write this. But this is a hack. Workaround for a bug! Okay, so I hope I described the bug well. Now let me tell you how I sent this mail. I sent it from docker container (with stretch inside), described above, using "reportbug". The container has apt 1.4.11 installed (as well as I understand, this is default stretch version). When "reportbug" spawned editor I manually replaced reportbug-generated header "Version: 1.4.11" with "Version: 2.7.7". But again: this is not lie! I actually was able to reproduce this bug using apt 2.7.7 using "ld.so --library-path". Again: the mail was sent from very same environment I used for reproducing this bug. I typed "apt-get build-dep -y --no-install-recommends cmake", saw that it fails and then typed "reportbug". Julian Klode said to me ( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005752#10 ) that letters from @mail.ru are not delivered properly. So I sent this report from @gmail.com . I hope this time the letter will be delivered properly -- Package-specific info: -- apt-config dump -- APT ""; APT::Architecture "amd64"; APT::Build-Essential ""; APT::Build-Essential:: "build-essential"; APT::Install-Recommends "1"; APT::Install-Suggests "0"; APT::Sandbox ""; APT::Sandbox::User "_apt"; APT::NeverAutoRemove ""; APT::NeverAutoRemove:: "^firmware-linux.*"; APT::NeverAutoRemove:: "^linux-firmware$"; APT::VersionedKernelPackages ""; APT::VersionedKernelPackages:: "linux-image"; APT::VersionedKernelPackages:: "linux-headers"; APT::VersionedKernelPackages:: "linux-image-extra"; APT::VersionedKernelPackages:: "linux-signed-image"; APT::VersionedKernelPackages:: "kfreebsd-image"; APT::VersionedKernelPackages:: "kfreebsd-headers"; APT::VersionedKernelPackages:: "gnumach-image"; APT::VersionedKernelPackages:: ".*-modules"; APT::VersionedKernelPackages:: ".*-kernel"; APT::VersionedKernelPackages:: "linux-backports-modules-.*"; APT::VersionedKernelPackages:: "linux-tools"; APT::Never-MarkAuto-Sections ""; APT::Never-MarkAuto-Sections:: "metapackages"; APT::Never-MarkAuto-Sections:: "contrib/metapackages"; APT::Never-MarkAuto-Sections:: "non-free/metapackages"; APT::Never-MarkAuto-Sections:: "restricted/metapackages"; APT::Never-MarkAuto-Sections:: "universe/metapackages"; APT::Never-MarkAuto-Sections:: "multiverse/metapackages"; APT::Move-Autobit-Sections ""; APT::Move-Autobit-Sections:: "oldlibs"; APT::Move-Autobit-Sections:: "contrib/oldlibs"; APT::Move-Autobit-Sections:: "non-free/oldlibs"; APT::Move-Autobit-Sections:: "restricted/oldlibs"; APT::Move-Autobit-Sections:: "universe/oldlibs"; APT::Move-Autobit-Sections:: "multiverse/oldlibs"; APT::AutoRemove ""; APT::AutoRemove::SuggestsImportant "false"; APT::Update ""; APT::Update::Post-Invoke ""; APT::Update::Post-Invoke:: "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; APT::Architectures ""; APT::Architectures:: "amd64"; APT::Compressor ""; APT::Compressor::. ""; APT::Compressor::.::Name "."; APT::Compressor::.::Extension ""; APT::Compressor::.::Binary ""; APT::Compressor::.::Cost "0"; APT::Compressor::lz4 ""; APT::Compressor::lz4::Name "lz4"; APT::Compressor::lz4::Extension ".lz4"; APT::Compressor::lz4::Binary "false"; APT::Compressor::lz4::Cost "50"; APT::Compressor::gzip ""; APT::Compressor::gzip::Name "gzip"; APT::Compressor::gzip::Extension ".gz"; APT::Compressor::gzip::Binary "gzip"; APT::Compressor::gzip::Cost "100"; APT::Compressor::gzip::CompressArg ""; APT::Compressor::gzip::CompressArg:: "-6n"; APT::Compressor::gzip::UncompressArg ""; APT::Compressor::gzip::UncompressArg:: "-d"; APT::Compressor::xz ""; APT::Compressor::xz::Name "xz"; APT::Compressor::xz::Extension ".xz"; APT::Compressor::xz::Binary "xz"; APT::Compressor::xz::Cost "200"; APT::Compressor::xz::CompressArg ""; APT::Compressor::xz::CompressArg:: "-6"; APT::Compressor::xz::UncompressArg ""; APT::Compressor::xz::UncompressArg:: "-d"; APT::Compressor::bzip2 ""; APT::Compressor::bzip2::Name "bzip2"; APT::Compressor::bzip2::Extension ".bz2"; APT::Compressor::bzip2::Binary "bzip2"; APT::Compressor::bzip2::Cost "300"; APT::Compressor::bzip2::CompressArg ""; APT::Compressor::bzip2::CompressArg:: "-6"; APT::Compressor::bzip2::UncompressArg ""; APT::Compressor::bzip2::UncompressArg:: "-d"; APT::Compressor::lzma ""; APT::Compressor::lzma::Name "lzma"; APT::Compressor::lzma::Extension ".lzma"; APT::Compressor::lzma::Binary "xz"; APT::Compressor::lzma::Cost "400"; APT::Compressor::lzma::CompressArg ""; APT::Compressor::lzma::CompressArg:: "--format=lzma"; APT::Compressor::lzma::CompressArg:: "-6"; APT::Compressor::lzma::UncompressArg ""; APT::Compressor::lzma::UncompressArg:: "--format=lzma"; APT::Compressor::lzma::UncompressArg:: "-d"; Dir "/"; Dir::State "var/lib/apt"; Dir::State::lists "lists/"; Dir::State::cdroms "cdroms.list"; Dir::State::mirrors "mirrors/"; Dir::State::extended_states "extended_states"; Dir::State::status "/var/lib/dpkg/status"; Dir::Cache "var/cache/apt"; Dir::Cache::archives "archives/"; Dir::Cache::srcpkgcache ""; Dir::Cache::pkgcache ""; Dir::Etc "etc/apt"; Dir::Etc::sourcelist "sources.list"; Dir::Etc::sourceparts "sources.list.d"; Dir::Etc::main "apt.conf"; Dir::Etc::netrc "auth.conf"; Dir::Etc::parts "apt.conf.d"; Dir::Etc::preferences "preferences"; Dir::Etc::preferencesparts "preferences.d"; Dir::Etc::trusted "trusted.gpg"; Dir::Etc::trustedparts "trusted.gpg.d"; Dir::Bin ""; Dir::Bin::methods "/usr/lib/apt/methods"; Dir::Bin::solvers ""; Dir::Bin::solvers:: "/usr/lib/apt/solvers"; Dir::Bin::planners ""; Dir::Bin::planners:: "/usr/lib/apt/planners"; Dir::Bin::dpkg "/usr/bin/dpkg"; Dir::Bin::gzip "/bin/gzip"; Dir::Bin::bzip2 "/bin/bzip2"; Dir::Bin::xz "/usr/bin/xz"; Dir::Bin::lz4 "/usr/bin/lz4"; Dir::Bin::lzma "/usr/bin/xz"; Dir::Media ""; Dir::Media::MountPath "/media/apt"; Dir::Log "var/log/apt"; Dir::Log::Terminal "term.log"; Dir::Log::History "history.log"; Dir::Log::Planner "eipp.log.xz"; Dir::Ignore-Files-Silently ""; Dir::Ignore-Files-Silently:: "~$"; Dir::Ignore-Files-Silently:: "\.disabled$"; Dir::Ignore-Files-Silently:: "\.bak$"; Dir::Ignore-Files-Silently:: "\.dpkg-[a-z]+$"; Dir::Ignore-Files-Silently:: "\.ucf-[a-z]+$"; Dir::Ignore-Files-Silently:: "\.save$"; Dir::Ignore-Files-Silently:: "\.orig$"; Dir::Ignore-Files-Silently:: "\.distUpgrade$"; Acquire ""; Acquire::AllowInsecureRepositories "0"; Acquire::AllowWeakRepositories "0"; Acquire::AllowDowngradeToInsecureRepositories "0"; Acquire::cdrom ""; Acquire::cdrom::mount "/media/cdrom/"; Acquire::IndexTargets ""; Acquire::IndexTargets::deb ""; Acquire::IndexTargets::deb::Packages ""; Acquire::IndexTargets::deb::Packages::MetaKey "$(COMPONENT)/binary-$(ARCHITECTURE)/Packages"; Acquire::IndexTargets::deb::Packages::flatMetaKey "Packages"; Acquire::IndexTargets::deb::Packages::ShortDescription "Packages"; Acquire::IndexTargets::deb::Packages::Description "$(RELEASE)/$(COMPONENT) $(ARCHITECTURE) Packages"; Acquire::IndexTargets::deb::Packages::flatDescription "$(RELEASE) Packages"; Acquire::IndexTargets::deb::Packages::Optional "0"; Acquire::IndexTargets::deb::Translations ""; Acquire::IndexTargets::deb::Translations::MetaKey "$(COMPONENT)/i18n/Translation-$(LANGUAGE)"; Acquire::IndexTargets::deb::Translations::flatMetaKey "$(LANGUAGE)"; Acquire::IndexTargets::deb::Translations::ShortDescription "Translation-$(LANGUAGE)"; Acquire::IndexTargets::deb::Translations::Description "$(RELEASE)/$(COMPONENT) Translation-$(LANGUAGE)"; Acquire::IndexTargets::deb::Translations::flatDescription "$(RELEASE) Translation-$(LANGUAGE)"; Acquire::IndexTargets::deb-src ""; Acquire::IndexTargets::deb-src::Sources ""; Acquire::IndexTargets::deb-src::Sources::MetaKey "$(COMPONENT)/source/Sources"; Acquire::IndexTargets::deb-src::Sources::flatMetaKey "Sources"; Acquire::IndexTargets::deb-src::Sources::ShortDescription "Sources"; Acquire::IndexTargets::deb-src::Sources::Description "$(RELEASE)/$(COMPONENT) Sources"; Acquire::IndexTargets::deb-src::Sources::flatDescription "$(RELEASE) Sources"; Acquire::IndexTargets::deb-src::Sources::Optional "0"; Acquire::Changelogs ""; Acquire::Changelogs::URI ""; Acquire::Changelogs::URI::Origin ""; Acquire::Changelogs::URI::Origin::Debian "http://metadata.ftp-master.debian.org/changelogs/@CHANGEPATH@_changelog"; Acquire::Changelogs::URI::Origin::Tanglu "http://metadata.tanglu.org/changelogs/@CHANGEPATH@_changelog"; Acquire::Changelogs::URI::Origin::Ubuntu "http://changelogs.ubuntu.com/changelogs/pool/@CHANGEPATH@/changelog"; Acquire::Changelogs::URI::Origin::Ultimedia "http://packages.ultimediaos.com/changelogs/pool/@CHANGEPATH@/changelog.txt"; Acquire::Changelogs::AlwaysOnline ""; Acquire::Changelogs::AlwaysOnline::Origin ""; Acquire::Changelogs::AlwaysOnline::Origin::Ubuntu "1"; Acquire::GzipIndexes "true"; Acquire::Languages ""; Acquire::Languages:: "none"; Acquire::CompressionTypes ""; Acquire::CompressionTypes::xz "xz"; Acquire::CompressionTypes::bz2 "bzip2"; Acquire::CompressionTypes::lzma "lzma"; Acquire::CompressionTypes::gz "gzip"; Acquire::CompressionTypes::lz4 "lz4"; DPkg ""; DPkg::Pre-Install-Pkgs ""; DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true"; DPkg::Post-Invoke ""; DPkg::Post-Invoke:: "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; Binary "apt-config"; Binary::apt ""; Binary::apt::APT ""; Binary::apt::APT::Color "1"; Binary::apt::APT::Cache ""; Binary::apt::APT::Cache::Show ""; Binary::apt::APT::Cache::Show::Version "2"; Binary::apt::APT::Cache::AllVersions "0"; Binary::apt::APT::Cache::ShowVirtuals "1"; Binary::apt::APT::Cache::Search ""; Binary::apt::APT::Cache::Search::Version "2"; Binary::apt::APT::Cache::ShowDependencyType "1"; Binary::apt::APT::Cache::ShowVersion "1"; Binary::apt::APT::Get ""; Binary::apt::APT::Get::Upgrade-Allow-New "1"; Binary::apt::APT::Cmd ""; Binary::apt::APT::Cmd::Show-Update-Stats "1"; Binary::apt::APT::Keep-Downloaded-Packages "0"; Binary::apt::DPkg ""; Binary::apt::DPkg::Progress-Fancy "1"; Binary::apt-get ""; Binary::apt-get::Acquire ""; Binary::apt-get::Acquire::AllowInsecureRepositories "1"; CommandLine ""; CommandLine::AsString "apt-config dump"; -- /etc/apt/preferences -- Package: * Pin: release n=*backports* Pin-Priority: 499 -- (no /etc/apt/preferences.d/* present) -- -- /etc/apt/sources.list -- deb http://archive.debian.org/debian stretch main deb http://archive.debian.org/debian-security stretch/updates main deb http://archive.debian.org/debian stretch-backports main deb-src http://deb.debian.org/debian buster main -- (no /etc/apt/sources.list.d/* present) -- -- System Information: Debian Release: 9.13 APT prefers oldoldstable APT policy: (500, 'oldoldstable') Architecture: amd64 (x86_64) Kernel: Linux 5.10.0-0.deb9.24-amd64 (SMP w/4 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to C.UTF-8), LANGUAGE=C (charmap=UTF-8) (ignored: LC_ALL set to C.UTF-8) Shell: /bin/sh linked to /bin/dash Init: unable to detect Versions of packages apt depends on: ii adduser 3.115 ii debian-archive-keyring 2017.5+deb9u2 ii gpgv 2.1.18-8~deb9u4 ii init-system-helpers 1.48 ii libapt-pkg5.0 1.4.11 ii libc6 2.24-11+deb9u4 ii libgcc1 1:6.3.0-18+deb9u1 ii libstdc++6 6.3.0-18+deb9u1 Versions of packages apt recommends: pn gnupg | gnupg2 | gnupg1 <none> Versions of packages apt suggests: pn apt-doc <none> pn aptitude | synaptic | wajig <none> ii dpkg-dev 1.18.26 pn powermgmt-base <none> pn python-apt <none> -- no debconf information