nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at netboot-syslinux-multiplatform 121 lines 2.7 kB view raw
1{ lib 2, rustPlatform 3, fetchFromGitLab 4, fetchpatch 5, openssl 6, libGL 7, vulkan-loader 8, wayland 9, wayland-protocols 10, libxkbcommon 11, libX11 12, libXrandr 13, libXi 14, libXcursor 15, udev 16, alsa-lib 17, stdenv 18, libxcb 19, pkg-config 20, makeWrapper 21, writeShellScript 22, patchelf 23}: 24let 25 version = "0.10.0"; 26 # Patch for airshipper to install veloren 27 patch = let 28 runtimeLibs = [ 29 udev 30 alsa-lib 31 stdenv.cc.cc.lib 32 libxkbcommon 33 libxcb 34 libX11 35 libXcursor 36 libXrandr 37 libXi 38 vulkan-loader 39 libGL 40 ]; 41 in 42 writeShellScript "patch" '' 43 echo "making binaries executable" 44 chmod +x {veloren-voxygen,veloren-server-cli} 45 echo "patching dynamic linkers" 46 ${patchelf}/bin/patchelf \ 47 --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \ 48 veloren-server-cli 49 ${patchelf}/bin/patchelf \ 50 --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \ 51 --set-rpath "${lib.makeLibraryPath runtimeLibs}" \ 52 veloren-voxygen 53 ''; 54in 55rustPlatform.buildRustPackage { 56 pname = "airshipper"; 57 inherit version; 58 59 src = fetchFromGitLab { 60 owner = "Veloren"; 61 repo = "airshipper"; 62 rev = "v${version}"; 63 sha256 = "sha256-5zP1Ye1fJNQp8eWKwdxLqBr4qzBfWEEBsJ9s7+8idL4="; 64 }; 65 66 cargoLock = { 67 lockFile = ./Cargo.lock; 68 outputHashes = { 69 "octocrab-0.15.4" = "sha256-uKHLlb0EyWF0Ho8FP38DFZsEWXiAG8FEYzJgwO9W90U="; 70 }; 71 }; 72 73 buildInputs = [ 74 openssl 75 wayland 76 wayland-protocols 77 libxkbcommon 78 libX11 79 libXrandr 80 libXi 81 libXcursor 82 ]; 83 nativeBuildInputs = [ pkg-config makeWrapper ]; 84 85 RUSTC_BOOTSTRAP = 1; # We need rust unstable features 86 87 postInstall = '' 88 install -Dm444 -t "$out/share/applications" "client/assets/net.veloren.airshipper.desktop" 89 install -Dm444 "client/assets/net.veloren.airshipper.png" "$out/share/icons/net.veloren.airshipper.png" 90 ''; 91 92 postFixup = 93 let 94 libPath = lib.makeLibraryPath [ 95 libGL 96 vulkan-loader 97 wayland 98 wayland-protocols 99 libxkbcommon 100 libX11 101 libXrandr 102 libXi 103 libXcursor 104 ]; 105 in 106 '' 107 patchelf --set-rpath "${libPath}" "$out/bin/airshipper" 108 wrapProgram "$out/bin/airshipper" --set VELOREN_PATCHER "${patch}" 109 ''; 110 111 doCheck = false; 112 cargoBuildFlags = [ "--package" "airshipper" ]; 113 cargoTestFlags = [ "--package" "airshipper" ]; 114 115 meta = with lib; { 116 description = "Provides automatic updates for the voxel RPG Veloren."; 117 homepage = "https://www.veloren.net"; 118 license = licenses.gpl3; 119 maintainers = with maintainers; [ yusdacra ]; 120 }; 121}