nixpkgs/pkgs/by-name/ud/udig/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

69 lines
2.1 KiB
Nix

{ stdenv, lib, fetchurl, unzip, makeWrapper, jre8, libXtst, gdal }:
let
pname = "udig";
version = "2.0.0";
srcs = {
x86_64-linux = fetchurl {
url = "http://udig.refractions.net/files/downloads/udig-${version}.linux.gtk.x86_64.zip";
hash = "sha256-ijuSWq1jSsB8K653bjcUdNwVGZscDaTuegBr01oNEg4=";
};
x86_64-darwin = fetchurl {
url = "http://udig.refractions.net/files/downloads/udig-${version}.macosx.cocoa.x86_64.zip";
hash = "sha256-Ihk3InHB3/tEYRqH2ozhokz2GN8Gfig5DJkO/8P1LJs=";
};
};
src = srcs.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
meta = with lib; {
description = "User-friendly Desktop Internet GIS";
homepage = "http://udig.refractions.net/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = with licenses; [ epl10 bsd3 ];
maintainers = with maintainers; [ sikmir ];
platforms = builtins.attrNames srcs;
mainProgram = "udig";
};
linux = stdenv.mkDerivation {
inherit pname version src meta;
nativeBuildInputs = [ unzip makeWrapper ];
installPhase = ''
install -dm755 $out/bin $out/opt/udig
cp -r . $out/opt/udig
makeWrapper $out/opt/udig/udig.sh $out/bin/udig \
--prefix PATH : ${jre8}/bin \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ libXtst gdal ])}
'';
postFixup = ''
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
$out/opt/udig/udig_internal
'';
};
darwin = stdenv.mkDerivation {
inherit pname version src meta;
nativeBuildInputs = [ unzip makeWrapper ];
postPatch = ''
substituteInPlace configuration/config.ini \
--replace "\$LOCALAPPDATA\$" "@user.home"
'';
installPhase = ''
mkdir -p $out/Applications/udig
cp -R . $out/Applications/udig
wrapProgram $out/Applications/udig/udig.app/Contents/MacOS/udig_internal \
--prefix DYLD_LIBRARY_PATH : ${lib.makeLibraryPath ([ gdal ])}
'';
};
in
if stdenv.hostPlatform.isDarwin
then darwin
else linux