default.nix (2022B)
1 { lib 2 , stdenv 3 , fetchurl 4 , fetchgit 5 , fetchgdrive 6 , unzip 7 , wine 8 , makeWrapper 9 , withMaps ? true 10 , withExtremum ? false 11 }: 12 let 13 maps = fetchgit { 14 url = "http://parasite.kicks-ass.org:3000/sasgis/maps.git"; 15 rev = "10221f2959ece3d430326adbc2daaf11c302f858"; 16 hash = "sha256-6j4KZlAKbBYoFr2ZBcfW0j8kmUTRbnzsaT1UNGXyKIo="; 17 }; 18 extremum = fetchgdrive { 19 id = "12PM_mEE8Xck036vXd5TAzPsUZeCnztJ5"; 20 hash = "sha256-6ZF4PsEFEGYt85umWJ/ToBW3JdeKEF4n6uU73hU8oLs="; 21 name = "Extremum.zip"; 22 }; 23 in 24 stdenv.mkDerivation (finalAttrs: { 25 pname = "sasplanet"; 26 version = "230909"; 27 28 src = fetchurl { 29 url = "http://www.sasgis.org/programs/sasplanet/SASPlanet_${finalAttrs.version}.zip"; 30 hash = "sha256-tW82sjpiJqkbKpAI+5uvBfgI7Uqtii3Rn8ulnY3MxQM="; 31 }; 32 33 sourceRoot = "."; 34 35 nativeBuildInputs = [ unzip makeWrapper ]; 36 37 # Post install regedit: 38 # * increase font size: https://askubuntu.com/a/1313810 39 # * dark theme: https://gist.github.com/Zeinok/ceaf6ff204792dde0ae31e0199d89398 40 installPhase = '' 41 mkdir -p $out/opt/sasplanet 42 cp -r . $out/opt/sasplanet 43 44 makeWrapper ${wine}/bin/wine $out/bin/sasplanet \ 45 --run "[ -d \$HOME/.sasplanet ] || { cp -r $out/opt/sasplanet \$HOME/.sasplanet && chmod -R +w \$HOME/.sasplanet; }" \ 46 --add-flags "\$HOME/.sasplanet/SASPlanet.exe" 47 '' + lib.optionalString withMaps '' 48 cp -r ${maps}/* $out/opt/sasplanet/Maps/sas.maps 49 '' + lib.optionalString withExtremum '' 50 unzip ${extremum} -d $out/opt/sasplanet/Maps/sas.maps 51 ''; 52 53 preferLocalBuild = true; 54 55 meta = with lib; { 56 description = "SAS.Planet is a program designed for viewing and downloading high-resolution satellite imagery and conventional maps"; 57 homepage = "http://www.sasgis.org/sasplaneta/"; 58 changelog = "http://www.sasgis.org/mantis/changelog_page.php"; 59 sourceProvenance = with sourceTypes; [ binaryNativeCode ]; 60 license = licenses.gpl3Plus; 61 maintainers = [ maintainers.sikmir ]; 62 platforms = platforms.all; 63 skip.ci = true; 64 }; 65 })