Channel scripts for ForkOS
Find a file
Eelco Dolstra 74c917454c
Add a command for indexing debug info files by build ID
For every file "lib/debug/.build-id/<build-id>.debug" in every store
path ending in -debug in a release, this command creates an S3 key
"debuginfo/<build-id>" specifying the location of the NAR that
contains the debug info file for that build ID. Thus,
https://cache.nixos.org/debuginfo allows debug info files to be looked
up by build ID. This allows debug info files to be fetched
automatically by dwarffs [1].

One minor issue is that in theory, multiple store paths could provide
debug info files for a particular build ID. So then when we garbage
collect a store path from the binary cache, we migth invalidate a
debug info link even though there are non-GC'ed store paths that
provide the file. Ah well.

I could have used HTTP redirects, but they're kind of a pain to
configure with S3.

[1] https://github.com/edolstra/dwarffs
2017-07-07 15:33:27 +02:00
default.nix Add a command for indexing debug info files by build ID 2017-07-07 15:33:27 +02:00
delete-binary-cache-garbage.pl Scripts for deleting garbage from the binary cache 2015-06-03 16:23:16 +02:00
delete-old-releases.sh * Clean up small releases. 2014-12-09 12:42:06 +00:00
file-cache.hh Factor out the file cache 2017-07-06 14:53:52 +02:00
find-binary-cache-garbage.pl Scripts for deleting garbage from the binary cache 2015-06-03 16:23:16 +02:00
generate-programs-index.cc Factor out the file cache 2017-07-06 14:53:52 +02:00
index-debuginfo.cc Add a command for indexing debug info files by build ID 2017-07-07 15:33:27 +02:00
mirror-channel.pl Check for errors when compressing NARs 2015-10-06 23:13:49 +02:00
mirror-nixos-branch.pl Fix the displayed hash name (SHA-512 -> SHA-256) 2017-03-31 06:39:24 +02:00
print-dead-files.pl * Handle .nar.xz. 2013-06-17 02:15:49 +00:00
README.md Store releases in S3 2016-09-26 18:06:51 +02:00
sign-binary-cache.pl Script for signing existing .narinfo files in a binary cache 2015-06-03 16:23:36 +02:00

Building

$ nix-build

Running

$ ./result/bin/mirror-nixos-branch nixos-16.03-small https://hydra.nixos.org/job/nixos/release-16.03-small/tested/latest-finished

$ ./result/bin/mirror-nixos-branch nixos-unstable-small https://hydra.nixos.org/job/nixos/unstable-small/tested/latest-finished

$ ./result/bin/generate-programs-index /data/releases/nixos-files.sqlite ./programs.sqlite http://nix-cache.s3.amazonaws.com/ /data/releases/nixos/unstable-small/nixos-16.09pre89017.9db1990-tmp/store-paths /data/releases/nixos/unstable-small/nixos-16.09pre89017.9db1990-tmp/unpack/nixos-16.09pre89017.9db1990/nixpkgs