On 2019-03-29, Sebastien Delafond wrote: > Using a very basic configuration for simple-cdd, I can't build a stretch > image: > > # cat > cdd.conf > debian_mirror=http://deb.debian.org/debian > security_mirror=http://security.debian.org/ > dist=stretch > profiles=test > ^D > # mkdir -p profiles > # echo nano > profiles/test.packages > # build-simple-cdd --conf cdd.conf > [...] > WARNING Found uninstallable packages in > /root/cdd/tmp/mirror/dists/stretch/main/binary-amd64/Packages: > WARNING output-version: 1.2 > WARNING report: > WARNING - > WARNING package: libpam-systemd > WARNING version: 232-25+deb9u8 > WARNING architecture: amd64 > WARNING status: broken > WARNING reasons: > WARNING - > WARNING missing: > WARNING pkg: > WARNING package: libpam-systemd > WARNING version: 232-25+deb9u8 > WARNING architecture: amd64 > WARNING unsat-dependency: systemd (= 232-25+deb9u8) > WARNING > WARNING total-packages: 364 > WARNING broken-packages: 1 > > libpam-systemd is version 232-25+deb9u8 in stretch, but 232-25+deb9u9 in > stretch/updates, so 232-25+deb9u9 should of course be selected.
I haven't confirmed exactly, but this is not terribly surprising; the dependency resolver doesn't do any versioned dependency checking, it simply loops through trying to find more depends/recommends and then stops once no new packages are found. Maybe just doing 1 or more extra passes in the loop would fix it, making sure all packages are updated... I might try and reproduce this kind of issue and see if that wouldn't fix it. Though I have my doubts, as the package should already be added to the list of packages to include in the repository... The proper thing to do is use dose-distcheck or another more sophisticated tool to actually resolve the dependencies; that's what's used to check if there are missing dependencies, but actually using them to resolve the dependency tree up-front might very well result in a more reliable and quite possibly faster process all around. > If I explicitely add libpam-systemd to my list of packages, everything > works as it should: > > # echo libpam-systemd >> profiles/test.packages > # build-simple-cdd --conf cdd.conf > # echo $? > 0 > > When running with --debug, you see 232-25+deb9u8 being downloaded from > stretch in both cases. However, when libpam-systemd is listed in > test.packages, 232-25+deb9u9 is also later downloaded from > stretch/updates, and used to correctly satisfy the dependency. At the moment, that's unfortunately the recommended workaround for these situations. It particularly comes up with multiple repositories, such as the primary repository and the security repository, or when pulling packages from backports. live well, vagrant
signature.asc
Description: PGP signature

