On 2022-05-26 16:03:04, Christian Kastner wrote: > Hi Antoine, > > On 2022-05-25 17:40, Antoine Beaupre wrote: >> Setting up dose-distcheck (7.0.0-1+b1) ... >> Setting up sbuild-build-depends-dose3-dummy (0.invalid.0) ... >> (I)Doseparse: Parsing and normalizing... >> (I)Dose_deb: Parsing Packages file -... >> >> ... and then it's just *stuck* there forever. In fact, even getting >> rid of that thing is hard: just one good old control-c doesn't cut >> it. You need to ^C the *heck* out of it and it eventually succeeds. >> >> I would expect this to fail early. In fact, there *is* an error in apt >> earlier, but it seems the error is ignored as it just carries on from >> there: >> >> The following packages have unmet dependencies: >> sbuild-build-depends-main-dummy : Depends: python (>= 2.7) but it is not >> installable >> E: Unable to correct problems, you have held broken packages. >> apt-get failed. >> E: Package installation failed > > I've seen this super-hard-to-kill hang with dose encountering > uninstallable packages before (although it seems that I didn't file a > bug about this). > > The simple solution that I found was to use apt as the build dependency > resolver. To this end, sbuild-qemu passes > > --bd-uninstallable-explainer apt > > to sbuild. And on my host, gbp cloning userdir-ldap and running > > $ sbuild-qemu *.dsc > > terminates just fine with an error message. > > What's odd is that this sbuild option seems to get lost on your end. Are > you perhaps overriding this option somehow? > > Otherwise, I would suspect an option parsing issue similar to the > --overlay-dir issue that we have been discussing privately. > > Will look into this, but if you have any info on a possible override of > --bd-uninstallable-explainer to share, please do.
I don't believe I do have an override like this. Attached is my (messy) .sbuildrc. -- Being cynical is the only way to deal with modern civilization — you can't just swallow it whole. - Frank Zappa
# taken from the Debian wiki: # https://wiki.debian.org/sbuild # build Arch: All by default (same as -A) $build_arch_all = 1; # build source package as well (same as -s) # this is necessary, otherwise the _amd64.changes file doesn't include the .dsc $build_source = 1; # also produce a ..._source.changes file for source-only uploads, same # as --source-only-changes # fails in jessie chroots $source_only_changes = 1; #$purge_session = 'successful'; #$purge_build_directory = 'successful'; my $_notify_cmd = '/usr/bin/notify-send "Build completed" "Build of %SBUILD_DSC on %SBUILD_DISTRIBUTION-%SBUILD_HOST_ARCH completed."'; $external_commands = { #"chroot-update-failed-commands" => [ [ $_notify_cmd ] ], #"build-deps-failed-commands" => [ [ $_notify_cmd ] ], #"build-failed-commands" => [ [ $_notify_cmd ] ], "post-build-commands" => [ [ $_notify_cmd ] ], "post-build-failed-commands" => [ [ $_notify_cmd ] ], }; # do not build as the calling user # fails, see https://bugs.debian.org/920386 #$build_user = "sbuild"; # do not clean session on failure $purge_build_directory = 'successful'; # disabled this after sbuild spent a full hour preparing the # libreoffice build, only to fail with: # # df: Warning: cannot read table of mounted file systems: No such file or directory # # seriously. wtf. $check_space = 1; # we run in sbuild. we don't need to clean. this would normally be # harmless but there's just too many packages that have extra # build-deps that make clean fail. $clean_source = 0; # run autopkgtest inside the schroot $run_autopkgtest = 1; # tell sbuild to use autopkgtest as a chroot $chroot_mode = 'autopkgtest'; # tell autopkgtest to use qemu $autopkgtest_virt_server = 'qemu'; # extra parameters to pass to qemu # --enable-kvm is not necessary, detected on the fly by autopkgtest my @_qemu_options = ('--ram-size=4096', '--cpus=2'); # tell autopkgtest-virt-qemu the path to the image # use --debug there to show what autopkgtest is doing $autopkgtest_virt_server_options = [ @_qemu_options, '--', '/srv/sbuild/qemu/%r-autopkgtest-%a.img' ]; $autopkgtest_opts = [ '--', 'qemu', @_qemu_options, '/srv/sbuild/qemu/%r-autopkgtest-%a.img']; # no need to cleanup the chroot after build, we run in a completely clean VM $purge_build_deps = 'never'; # no need for sudo $autopkgtest_root_args = '';