nixpkgs-suyu/pkgs/build-support/setup-hooks
Jörg Thalheim f10b935f84
breakpointHook: add for debugging failing builds
Usuage: Add breakpointHook to your `buildInputs` like this:

  stdenv.mkDerivation rec {
    # ...
    buildInputs = [ breakpointHook ];
  });

When the build fails as show in this example:

  pkgs.hello.overrideAttrs (old: {
    buildInputs = [ breakpointHook ];
    postPatch = ''
      false
    '';
  });

It will halt execution printing the following message:

build failed in patchPhase with exit code 1
To attach to this build run the following command as root:

   cntr attach -t command cntr-/nix/store/ynyb4n82x2r7sldd58pbb405jdqh5f00-hello-2.10

Installing cntr and running the command will provide shell access to the
build sandbox of failed build:

sudo cntr attach -t command cntr-/nix/store/ynyb4n82x2r7sldd58pbb405jdqh5f00-hello-2.10
WARNING: bad ownership on /nix/var/nix/profiles/per-user/root, should be 1000
[nixbld@localhost:/var/lib/cntr]$

At /var/lib/cntr the sandbox filesystem is mounted. All commands and
files of the system are still accessible within the shell.
To execute commands from the sandbox use the `cntr exec` subcommand.
2018-10-25 10:19:41 +01:00
..
audit-tmpdir.sh audit-tmpdir: fix processing of files with spaces, quote variables 2018-08-20 13:08:32 -05:00
auto-patchelf.sh autoPatchelfHook: Silence errors in isExecutable 2018-09-25 04:48:12 +02:00
autoreconf.sh autoreconfHook: Simplify by avoiding findInputs 2017-09-14 13:16:12 -04:00
breakpoint-hook.sh breakpointHook: add for debugging failing builds 2018-10-25 10:19:41 +01:00
compress-man-pages.sh
die.sh dieHook: Add die utility function 2017-08-08 00:17:56 -05:00
enable-coverage-instrumentation.sh
find-xml-catalogs.sh treewide: Don't use envHook anymore 2017-12-30 22:04:22 -05:00
fix-darwin-dylib-names.sh replace "Mac OS X" and "OS X" with "macOS" 2017-08-07 21:41:30 +02:00
gog-unpack.sh build-support gogUnpackHook: support for unpacking games from gog.com 2018-02-12 22:28:06 +08:00
keep-build-tree.sh
ld-is-cc-hook.sh ld-is-cc-hook: init 2017-12-19 01:45:42 +00:00
make-coverage-analysis-report.sh
make-wrapper.sh makeWrapper: document --set-default 2018-08-24 19:46:16 +02:00
move-docs.sh
move-lib64.sh
move-sbin.sh
multiple-outputs.sh Merge pull request #31987 from jtojnar/devhelp-devdoc 2017-11-25 23:14:47 +00:00
patch-shebangs.sh patch-shebangs.sh: use more robust 'for each file' loop, check for dir 2018-09-28 11:21:51 -05:00
prune-libtool-files.sh pruneLibtoolFiles: init setup hook (#41819) 2018-06-11 18:11:02 +00:00
role.bash treewide: Use pkgs/build-support/roles.bash to remove copy pasta 2018-05-07 15:10:37 -04:00
separate-debug-info.sh misc setup-hooks: Use env vars to refer to binutils programs 2017-12-13 16:08:18 -05:00
set-java-classpath.sh treewide: Don't use envHook anymore 2017-12-30 22:04:22 -05:00
set-source-date-epoch-to-latest.sh set-source-date-epoch-to-latest.sh: shut up a warning 2017-09-17 10:35:44 +02:00
setup-debug-info-dirs.sh treewide: Don't use envHook anymore 2017-12-30 22:04:22 -05:00
strip.sh strip setup hook: Learn about only stripping host/target binaries alone 2017-12-30 22:04:22 -05:00
update-autotools-gnu-config-scripts.sh
use-old-cxx-abi.sh
win-dll-link.sh misc setup-hooks: Use env vars to refer to binutils programs 2017-12-13 16:08:18 -05:00
wrap-gapps-hook.sh treewide: Don't use envHook anymore 2017-12-30 22:04:22 -05:00