{ fetchurl, lib, stdenv, autoPatchelfHook, glib, glibcLocales, libxcb, freetype, libGL, libXrender, libX11, fontconfig, qt5, makeDesktopItem, ... }: stdenv.mkDerivation rec { pname = "amlite"; version = "20232603"; src = fetchurl { url = "https://storage.googleapis.com/software-download-d79bb.appspot.com/software/AmLite/Linux/${version}/AmScopeAmLite.x64.tar.bz2"; sha256 = "sha256-GyA3ogtpsNA/pTIa21ha9P1YtNE0reRDTAI7VOcdxnY="; }; nativeBuildInputs = [ autoPatchelfHook glib glibcLocales libxcb freetype libGL libXrender libX11 fontconfig qt5.wrapQtAppsHook ]; # FIX: "unpacker appears to have produced no directories" sourceRoot = "."; postUnpack = '' cd $sourceRoot sed -n -e '1,/^exit 0$/!p' AmScopeAmLite.x64.sh > AmLite.tgz tar -xzf AmLite.tgz ''; preFixup = '' makeWrapperArgs+=("''${qtWrapperArgs[@]}") ''; installPhase = '' runHook preInstall mkdir -p $out/{lib,bin,share} \ $out/lib/udev/rules.d cp AmLite $out/bin cp *.so $out/lib cp 99-amcam.rules $out/lib/udev/rules.d cp -r i18n $out/share/ runHook postInstall ''; desktopItems = [ (makeDesktopItem { name = pname; exec = "AmLite"; icon = "AmLite"; desktopName = meta.description; genericName = meta.description; comment = meta.description; categories = ["Graphics" "Science" "Education"]; }) ]; meta = with lib; { description = "AmScope AmLite"; homepage = "https://amscope.com/"; license = licenses.unfree; platforms = ["x86_64-linux"]; }; }