Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 84 lines 1.7 kB view raw
1{ 2 stdenv, 3 fetchurl, 4 lib, 5 brand, 6 type, 7 version, 8 homepage, 9 url, 10 hash, 11 runCommand, 12 dpkg, 13 vmTools, 14 runtimeShell, 15 bubblewrap, 16 ... 17}: 18let 19 debian = 20 let 21 debs = lib.flatten (import ./deps.nix { inherit fetchurl; }); 22 in 23 runCommand "x32edit-debian" { nativeBuildInputs = [ dpkg ]; } ( 24 lib.concatMapStringsSep "\n" (deb: '' 25 dpkg-deb -x ${deb} $out 26 '') debs 27 ); 28in 29stdenv.mkDerivation rec { 30 pname = "${lib.toLower type}-edit"; 31 inherit version; 32 33 src = fetchurl { 34 inherit url hash; 35 }; 36 37 sourceRoot = "."; 38 dontBuild = true; 39 dontStrip = true; 40 41 installPhase = '' 42 mkdir -p $out/bin 43 cp ${type}-Edit $out/bin/.${pname} 44 45 cat >$out/bin/${pname} <<EOF 46 #!${runtimeShell} -eu 47 exec ${lib.getExe bubblewrap} \ 48 --dev-bind / / \ 49 --ro-bind "${debian}/lib" /lib \ 50 --ro-bind "${debian}/lib64" /lib64 \ 51 --tmpfs /usr \ 52 --ro-bind "${debian}/usr/lib" /usr/lib \ 53 $out/bin/.${pname} 54 EOF 55 chmod 755 $out/bin/${pname} 56 ''; 57 58 passthru.deps = 59 let 60 distro = vmTools.debDistros.debian12x86_64; 61 in 62 vmTools.debClosureGenerator { 63 name = "x32edit-dependencies"; 64 inherit (distro) urlPrefix; 65 packagesLists = [ distro.packagesList ]; 66 packages = [ 67 "libstdc++6" 68 "libcurl4" 69 "libfreetype6" 70 "libasound2" 71 "libx11-6" 72 "libxext6" 73 ]; 74 }; 75 76 meta = with lib; { 77 inherit homepage; 78 description = "Editor for the ${brand} ${type} digital mixer"; 79 sourceProvenance = with sourceTypes; [ binaryNativeCode ]; 80 license = licenses.unfree; 81 platforms = platforms.linux; 82 maintainers = [ maintainers.magnetophon ]; 83 }; 84}