Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / relibc / default.nix
blob437da86e8c21e342b94ef1fe9b51ac4a06523b85
1 { lib, stdenvNoCC, buildPackages }:
3 let
4   rpath = lib.makeLibraryPath [
5     buildPackages.stdenv.cc.libc
6     "$out"
7   ];
8   bootstrapCrossRust = stdenvNoCC.mkDerivation {
9     name = "binary-redox-rust";
11     src = buildPackages.fetchzip {
12       name = "redox-rust-toolchain.tar.gz";
13       url = "https://www.dropbox.com/s/qt7as0j7cwnin8z/redox-rust-toolchain.tar.gz?dl=1";
14       sha256 = "1g17qp2q6b88p04yclkw6amm374pqlakrmw9kd86vw8z4g70jkxm";
15     };
17     dontBuild = true;
18     dontPatchELF = true;
19     dontStrip = true;
20     installPhase = ''
21       mkdir $out/
22       cp -r * $out/
24       find $out/ -executable -type f -exec patchelf \
25           --set-interpreter "${buildPackages.stdenv.cc.libc}/lib/ld-linux-x86-64.so.2" \
26           --set-rpath "${rpath}" \
27           "{}" \;
28       find $out/ -name "*.so" -type f -exec patchelf \
29           --set-rpath "${rpath}" \
30           "{}" \;
31     '';
33     meta.platforms = with lib; platforms.redox ++ platforms.linux;
34   };
36   redoxRustPlatform = buildPackages.makeRustPlatform {
37     rustc = bootstrapCrossRust;
38     cargo = bootstrapCrossRust;
39   };
42 redoxRustPlatform.buildRustPackage rec {
43   pname = "relibc";
44   version = "latest";
46   LD_LIBRARY_PATH = "${buildPackages.zlib}/lib";
48   src = buildPackages.fetchgit {
49     url = "https://gitlab.redox-os.org/redox-os/relibc/";
50     rev = "5af8e3ca35ad401014a867ac1a0cc3b08dee682b";
51     sha256 = "1j4wsga9psl453031izkl3clkvm31d1wg4y8f3yqqvhml2aliws5";
52     fetchSubmodules = true;
53   };
55   RUSTC_BOOTSTRAP = 1;
57   dontInstall = true;
58   dontFixup = true;
59   doCheck = false;
61   postBuild = ''
62     mkdir -p $out
63     DESTDIR=$out make install
64   '';
66   TARGET = stdenvNoCC.hostPlatform.rust.rustcTargetSpec;
68   cargoLock = {
69     lockFile = ./Cargo.lock;
70     outputHashes = {
71       "redox_syscall-0.2.0" = "sha256-nwbJBrhuc01fPbBgd5ShboNu0Nauqp2UjkA+sm9oCeE=";
72     };
73   };
75   # error: Usage of `RUSTC_WORKSPACE_WRAPPER` requires `-Z unstable-options`
76   auditable = false;
78   meta = with lib; {
79     homepage = "https://gitlab.redox-os.org/redox-os/relibc";
80     description = "C Library in Rust for Redox and Linux";
81     license = licenses.mit;
82     maintainers = [ maintainers.aaronjanse ];
83     platforms = platforms.redox ++ [ "x86_64-linux" ];
84   };