nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 126 lines 2.9 kB view raw
1{ 2 stdenv, 3 lib, 4 fetchurl, 5 squashfsTools, 6 autoPatchelfHook, 7 copyDesktopItems, 8 alsa-lib, 9 nss, 10 libdrm, 11 libgbm, 12 libGL, 13 libxkbcommon, 14 pcsclite, 15 makeDesktopItem, 16 makeWrapper, 17 wrapGAppsHook3, 18 writeScript, 19 udev, 20}: 21 22stdenv.mkDerivation rec { 23 pname = "tk-safe"; 24 version = "25.12.0"; 25 revision = "24"; 26 27 src = fetchurl { 28 url = "https://api.snapcraft.io/api/v1/snaps/download/rLNeIGEaag0TKFQLO0TxF3ARXg3rcTNx_${revision}.snap"; 29 hash = "sha512-cAe982qjRgu3GJ1ttY+84ghAzorB1BREcEM+wY6pTW2kJvu5Czu881dPDUXpdSMil99lrtgZ7Mx3bPycDPXmMg=="; 30 }; 31 32 desktopItems = [ 33 (makeDesktopItem { 34 name = "tk-safe"; 35 icon = "tk-safe"; 36 exec = "tk-safe"; 37 desktopName = "TK-Safe"; 38 comment = meta.description; 39 genericName = "Eletronic medical record (ePA)"; 40 categories = [ "Utility" ]; 41 }) 42 ]; 43 44 nativeBuildInputs = [ 45 autoPatchelfHook 46 copyDesktopItems 47 makeWrapper 48 squashfsTools 49 wrapGAppsHook3 50 ]; 51 52 unpackPhase = '' 53 runHook preUnpack 54 55 unsquashfs $src 56 57 runHook postUnpack 58 ''; 59 60 sourceRoot = "squashfs-root"; 61 62 postPatch = '' 63 rm -rf lib usr 64 ''; 65 66 buildInputs = [ 67 alsa-lib 68 nss 69 libdrm 70 libgbm 71 libxkbcommon 72 udev 73 pcsclite 74 ]; 75 76 installPhase = '' 77 runHook preInstall 78 79 mkdir -p $out/{bin,opt/tk-safe} 80 mv * $out/opt/tk-safe 81 ln -s $out/opt/tk-safe/app/tk-safe $out/bin/tk-safe 82 83 mkdir -p $out/share/icons/hicolor/1024x1024/apps 84 ln -s $out/opt/tk-safe/meta/gui/icon.png $out/share/icons/hicolor/1024x1024/apps/tk-safe.png 85 86 runHook postInstall 87 ''; 88 89 preFixup = '' 90 wrapProgram $out/opt/tk-safe/app/tk-safe \ 91 --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" 92 ''; 93 94 passthru.updateScript = writeScript "update-tk-safe" '' 95 #!/usr/bin/env nix-shell 96 #!nix-shell -i bash -p common-updater-scripts curl jq 97 98 set -eu -o pipefail 99 100 data=$(curl -H 'X-Ubuntu-Series: 16' \ 101 'https://api.snapcraft.io/api/v1/snaps/details/tk-safe?fields=download_sha512,revision,version') 102 103 version=$(jq -r .version <<<"$data") 104 105 if [[ "x$UPDATE_NIX_OLD_VERSION" != "x$version" ]]; then 106 107 revision=$(jq -r .revision <<<"$data") 108 hash=$(nix --extra-experimental-features nix-command hash to-sri "sha512:$(jq -r .download_sha512 <<<"$data")") 109 110 update-source-version "$UPDATE_NIX_ATTR_PATH" "$version" "$hash" 111 update-source-version --ignore-same-hash --version-key=revision "$UPDATE_NIX_ATTR_PATH" "$revision" "$hash" 112 113 fi 114 ''; 115 116 meta = { 117 description = "Electronic medical record (ePA) by Techniker Krankenkasse (TK)"; 118 homepage = "https://snapcraft.io/tk-safe"; 119 license = lib.licenses.unfree; 120 platforms = [ "x86_64-linux" ]; 121 # Vendored copy of Electron. 122 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; 123 maintainers = with lib.maintainers; [ felschr ]; 124 mainProgram = "tk-safe"; 125 }; 126}