From b03c49c31c101bee4444b912ebba662b1ad28b8b Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Mon, 30 Sep 2019 14:40:09 +0200 Subject: [PATCH] Add a pinned fetch list for Genode Labs binaries --- default.nix | 3 ++- depot/default.nix | 43 ++++++++++++++++++++++++++++++++++++++ depot/gen-list.sh | 15 ++++++++++++++ depot/list.nix | 53 +++++++++++++++++++++++++++++++++++++++++++++++ release.nix | 2 +- 5 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 depot/default.nix create mode 100755 depot/gen-list.sh create mode 100644 depot/list.nix diff --git a/default.nix b/default.nix index 4aca488..3b5575f 100644 --- a/default.nix +++ b/default.nix @@ -6,6 +6,7 @@ let pkgOverlay = self: super: # Overlay of locally defined packages with self; { + depot = callPackage ./depot { }; dhall = callPackage ./dhall { }; genode = callPackage ./upstream { }; nova = callPackage ./NOVA { }; @@ -18,7 +19,7 @@ let # A branch of Nixpkgs with a custom "crossSystem" mechanism url = "https://github.com/ehmry/nixpkgs.git"; ref = "hybrid"; - rev = "e4d734ace275cae70a776771d034c051956c9cab"; + rev = "3985d04b2cfe144beaf0fde58b2904763004197f"; }; in { nixpkgs ? nixpkgs' }: diff --git a/depot/default.nix b/depot/default.nix new file mode 100644 index 0000000..e70b040 --- /dev/null +++ b/depot/default.nix @@ -0,0 +1,43 @@ +# SPDX-FileCopyrightText: Emery Hemingway +# +# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1 + +{ stdenvNoCC, fetchurl }: + +let + stdenv = stdenvNoCC; + unpack = { name, value }: { + inherit name; + value = stdenv.mkDerivation { + pname = name; + inherit (value) version; + preferLocalBuild = true; + src = fetchurl { + url = + "http://depot.genode.org/genodelabs/bin/x86_64/${name}/${value.version}.tar.xz"; + inherit (value) sha256; + }; + phases = [ "unpackPhase" "installPhase" "fixupPhase" "distPhase" ]; + installPhase = '' + find . -type f | while read FILE; do + local DEST=$out/bin + case $FILE in + *.a) DEST=$out/lib ;; + *.o) DEST=$out/lib ;; + *.so) DEST=$out/lib ;; + *.tar) DEST=$out/tar ;; + esac + install -Dm444 -t $DEST $FILE + done + ''; + meta = { + license = [ "LicenseRef-Genode" ]; + downloadPage = "http://depot.genode.org/genodelabs/bin/x86_64/${name}/"; + maintainers = with stdenv.lib.maintainers; [ ehmry ]; + }; + }; + }; + + listing = import ./list.nix; + derivations = map unpack listing; +in builtins.listToAttrs derivations diff --git a/depot/gen-list.sh b/depot/gen-list.sh new file mode 100755 index 0000000..81453e3 --- /dev/null +++ b/depot/gen-list.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# TODO: git clone shallow, fhs environment, make -f depot/whatever + +echo "/* DO NOT EDIT - this file generated by gen-list.sh */ [" + +find /home/repo/genode/public/genodelabs/bin -name '*.tar.xz' -print \ + | awk --field-separator / '{print $9" "$10" "$0}' \ + | while read NAME VERSION LOCAL +do + SHA256=`nix-prefetch-url file://$LOCAL` + echo "{name=\"$NAME\";value={sha256=\"$SHA256\";version=\"${VERSION%%.tar.xz}\";};}" +done + +echo ']' diff --git a/depot/list.nix b/depot/list.nix new file mode 100644 index 0000000..d581b57 --- /dev/null +++ b/depot/list.nix @@ -0,0 +1,53 @@ +/* DO NOT EDIT - this file generated by gen-list.sh */ [ +{name="expat";value={sha256="0qpiwv2klcgq61prrn7h5kwms4cmk0bqjcpkkpml2zrz17yzyg1p";version="2019-08-27";};} +{name="themed_decorator";value={sha256="1vcvjfx5h94kzrvrfi3ybyl146f1c954xcf2m8yx7y1h7pvlady3";version="2019-08-27";};} +{name="noux";value={sha256="1i9bxy7rmcn3hvl4n8wx9d2cla3xld4jqwawhs10iv0iv6c3apb1";version="2019-08-27";};} +{name="fs_rom";value={sha256="1lp2ssjbb0hbjymlr17xbpy2mncpi31hbf50ijn689hkbjggrv58";version="2019-08-27";};} +{name="qt5_qjpeg";value={sha256="1j2153rkf47qs7i9nkyg4dsr84yf8bdw66hi2nm8w7kvz8m5a6dd";version="2019-08-28";};} +{name="libpng";value={sha256="1y18g1ypdjiw43shcrjpvi0mn9055nnjmsnanaqxwvhfpi787aj6";version="2019-08-27";};} +{name="qt5_gui";value={sha256="01g5qphkqn6a2rlcc5dmvrd1q7dvj2crbhasidjfpsiklb88736j";version="2019-08-28";};} +{name="base-nova";value={sha256="12249m7awh2hn9cwa4ck19cxgk6cv7m2bz996hs366lm70j69w9b";version="2019-08-27";};} +{name="vfs_jitterentropy";value={sha256="1m9flx0n21wgkfqbvrghpn53rf4cfsziv848zawr9jk6ygns5rn1";version="2019-08-27";};} +{name="qt5_textedit";value={sha256="0lag3s9xkncy7s2vr5x2j4f0rnr7xylfc1f9281s34xk7vcyrv9i";version="2019-08-28";};} +{name="mesa";value={sha256="1sa9wlwbsldjvynh13i75c9np7rm914h3nksw710apm3js3yjkcg";version="2019-08-27";};} +{name="backdrop";value={sha256="0jy9qwmjfy1zra9hd829fhnkp933yv798pzihqlhfbyf3zcf4m01";version="2019-08-27";};} +{name="decorator";value={sha256="057wf5i3vkq4l8s400zg0zs1qjf1mj29585b4fjjk23ml3kpr89j";version="2019-08-27";};} +{name="qt5_component";value={sha256="1jbr0fqai7mvwvdxmhngbbnya4ziwxkrnl0amv13k1nrxsgha4jg";version="2019-08-27";};} +{name="qt5_core";value={sha256="0abg9h99jkis9f57zcfq4mw97bwrczqichmnvg9kfwqy17limrgg";version="2019-08-28";};} +{name="nano3d";value={sha256="0p0rkx49816d8n4jwnnpj09ndvjrixj36kk64m4x6j0f90icqj2v";version="2019-08-27";};} +{name="zlib";value={sha256="160y5hl49hhjqy3132f0k8xi7c3x5yz4h29dsjrfb8sl1ccmsaca";version="2019-08-27";};} +{name="vfs_ttf";value={sha256="10ypnhk1r8yavmagpv3ylbyz3gw2nrgrplfabnap2nmavai03dff";version="2019-08-27";};} +{name="qt5_widgets";value={sha256="04xn5lrbskvw5lslfhqj46j5ihb6y1kw5p8br1dcsgc517nxvjdi";version="2019-08-28";};} +{name="vfs";value={sha256="0jqgj9zq10zy9gq2lzkprbq8pdy3v90jb61di09fdrsmc1y76pi1";version="2019-08-27";};} +{name="qt5_qpa_nitpicker";value={sha256="1svfmw768hxx1hpxvslazcs0czqv7ib88n5yb8cxalqdrmhaa3s6";version="2019-08-28";};} +{name="freetype";value={sha256="1851hladn19lps5fp2g31cps7620wi94cpz7c70baqw7n4j71xhc";version="2019-08-27";};} +{name="coreutils-minimal";value={sha256="1hb385gnn1m5phjvfs5nkfkh8xn59k7gjw9ivh35czixkh2rp658";version="2019-08-27";};} +{name="rom_reporter";value={sha256="1zvmi5mxcj2xxzj3ipsr3xh9qf43xplymcmmjjbapnswwhnqc9a8";version="2019-08-27";};} +{name="chroot";value={sha256="1x0xzlsjvcrpj59kn487aa1hf892bwyy5ck25d2wd4j0nsin3rjd";version="2019-08-27";};} +{name="libiconv";value={sha256="0kkc76vkv0hdgid6ygrfl88c957q21v2zpbvqqz0pjrmxwi98kly";version="2019-08-27";};} +{name="fs_report";value={sha256="0mdxmhk5mw2q6gb46zxsdsw9zps5lpmqkmj5fmr3b9wa3mjlw2vq";version="2019-08-27";};} +{name="ncurses";value={sha256="0x912bf63iz28bjj4j9hz0ppvc365x5zg574g1ghi4xgcrm6rr0m";version="2019-08-27";};} +{name="nic_router";value={sha256="0y136w6y8y0vrmzi5nakvphxd3x1zmr8g4jxadj4s0s525rm3qgy";version="2019-08-27";};} +{name="nit_focus";value={sha256="109kzplshlday4z89an0pfpkaf42mxb7fj5ql2dbvmc8zb276185";version="2019-08-27";};} +{name="libcrypto";value={sha256="1yya3pxbzg7m1zrip3vh5m44vx38ckmb5hqcs61dxqid71py7r6b";version="2019-08-27";};} +{name="libc";value={sha256="0f2rcjsfb79zgs0v34w4qnf85i7d2p61p9wy2i0k9hq3d1yqb3fl";version="2019-08-27";};} +{name="ipxe_nic_drv";value={sha256="0ai1yl2iz9j0lhxhi0lxc0qv9r1q9pyn1rkyb6l05ijxvwbcqma6";version="2019-08-27";};} +{name="vbox5-nova";value={sha256="00215vwxyc77q8s4kh7v1fn1cs120wm1l6dqd1jm4dxq6pq3fqfv";version="2019-08-27";};} +{name="report_rom";value={sha256="1fc2qg8lfiznysn47m22c90v2z2kc6cdpnd8ny4j22rwmc5ya03l";version="2019-08-27";};} +{name="nit_fb";value={sha256="1c3xqyqppqwygfhnbvpgsy5j2dir1k7sdfb9s9ld5j0psav742iy";version="2019-08-27";};} +{name="posix";value={sha256="1z08w7lwgq49crbjrim2dh5wi80czfxawwcq7cxbjbfap5nw8ak6";version="2019-08-27";};} +{name="wifi_drv";value={sha256="1fmwwrp0w7iinn70h09imlmxqnd5x9kn6fagmj3ria6mqai8za8s";version="2019-08-27";};} +{name="libssl";value={sha256="0kafqbpzvx9hvdcq91ksqw5s6ynyzf9c2kq2186sgwqdy8kgkq9r";version="2019-08-27";};} +{name="coreutils";value={sha256="002lvh16kxgb41acksjrl0phsm8idaby0z7jcmddzpybgdjj60dx";version="2019-08-27";};} +{name="terminal";value={sha256="1yw7gn22fyw65dn481rx1lph0bawrdcj72mr4kddjdf4hajk7n75";version="2019-08-27";};} +{name="acpica";value={sha256="19g0i2cixvn4smwykmr27a763njcyccjl1fh81pcqdygdqni56bp";version="2019-08-27";};} +{name="wm";value={sha256="0y2v0frxhpkvw8mzn71xn8z4pap459r0bk8w14dnrw61fv8rxjkh";version="2019-08-27";};} +{name="rom_filter";value={sha256="1s2xnklvwrmpfmynl44k5m0w3mwnhplxsfcgw8k2cap4vkh8vchr";version="2019-08-27";};} +{name="stdcxx";value={sha256="0ahbj80kwblp0ll7gwn05krmfx0hgbmfjy9g1991d0ppabw52d8w";version="2019-08-27";};} +{name="init";value={sha256="15z9fscqh91mapc28bpfbsh1dxb8k0vcq75x6f7v2hs11jb8r6xf";version="2019-08-27";};} +{name="window_layouter";value={sha256="0fbr5wfpbabzi1h1bwa9558m05hcgnwa5van9rxbzp934krmwch7";version="2019-08-27";};} +{name="qt5_printsupport";value={sha256="0rfvvafv2lh65hx17k6hn1kfrhsddzjrq0nhb2xc2q1nvr3wnpli";version="2019-08-28";};} +{name="vim-minimal";value={sha256="18cj7dirg3kplj6277gajfbiv7in28dfxx7dxwzwlkhcppnm9v3y";version="2019-08-27";};} +{name="jpeg";value={sha256="0261wahfx24gjfj5a34ggzqka4nzgnc19l9arypf4b2p1vmd4gwa";version="2019-08-27";};} +{name="bash-minimal";value={sha256="08rpnsvywrp2a7a464xza7mi89sw81qfrxr626phc5hfviiyjp5j";version="2019-08-27";};} +] diff --git a/release.nix b/release.nix index 95e4402..49532a4 100644 --- a/release.nix +++ b/release.nix @@ -6,5 +6,5 @@ { build.x86_64 = let pkgs = import ./default.nix { inherit nixpkgs; }; - in { inherit (pkgs) genode nova stdenv; }; + in { inherit (pkgs) depot genode nova stdenv; }; }