#1092668 sbuild: ctrl-c does not work after %s hook

#1092668#5
Date:
2025-01-10 15:20:31 UTC
From:
To:
Hi,

Ctrl-C'ing the actual build (dpkg-buildpackage et al) seems to be
ignored, if sbuild ran %SBUILD_SHELL before that.

Maybe more clear example:

Run: sbuild --chroot-mode=unshare --dist=unstable --anything-failed-commands=%SBUILD_SHELL --starting-build-commands=%SBUILD_SHELL hello

After sbuild does its setup steps, cleanly exit the initial shell:

  +------------------------------------------------------------------------------+
  | Starting Timed Build Commands                Fri, 10 Jan 2025 15:16:13 +0000 |
  +------------------------------------------------------------------------------+

  bash -i </dev/tty >/dev/tty 2>/dev/tty
  --------------------------------------

  root@sbuild:/build/reproducible-path# exit


  I: Finished running 'bash -i </dev/tty >/dev/tty 2>/dev/tty'.

  Finished processing commands.
  --------------------------------------------------------------------------------

Then, press Ctrl-C at any time. For example here:

  dpkg-buildpackage
  -----------------

  Command: dpkg-buildpackage --sanitize-env -us -uc -b
  dpkg-buildpackage: info: source package hello
  dpkg-buildpackage: info: source version 2.10-3
  dpkg-buildpackage: info: source distribution unstable
  dpkg-buildpackage: info: source changed by Santiago Vila <sanvila@debian.org>
  dpkg-source --before-build .
  dpkg-buildpackage: info: host architecture arm64
  debian/rules clean
  dh clean
  debian/rules override_dh_auto_clean
  make[1]: Entering directory
  '/build/reproducible-path/hello-2.10'
  [ ! -f Makefile ] || /usr/bin/make distclean
  make[1]: Leaving directory
  '/build/reproducible-path/hello-2.10'
  dh_clean
  debian/rules binary
  dh binary
  dh_update_autotools_config
  dh_autoreconf
  Copying file build-aux/config.rpath
  Copying file m4/glibc2.m4
  Copying file m4/intdiv0.m4
  Copying file m4/intl.m4
  Copying file m4/intldir.m4
  Copying file m4/intmax.m4
  Copying file m4/inttypes-pri.m4
  Copying file m4/inttypes_h.m4
  Copying file m4/lcmessage.m4
  Copying file m4/lock.m4
  Copying file m4/longlong.m4
  Copying file m4/printf-posix.m4
  Copying file m4/size_max.m4
  Copying file m4/stdint_h.m4
  Copying file m4/threadlib.m4
  Copying file m4/uintmax_t.m4
  Copying file m4/visibility.m4
  Copying file m4/xsize.m4
  Copying file po/Makefile.in.in
  Copying file po/Makevars.template
  ^Csh: 1: build-aux/git-version-gen: not found

Observe that the ^C gets ignored.

It seems that all stages after the initial shell ignore ^C; incl.
building the package, installing lintian, running lintian, etc.

For the hello package, waiting for it to build is kinda okay, but
with other packages its more annoying.

Thanks,
Chris