Files
nixpkgs/pkgs/by-name/we/weasis/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

98 lines
2.4 KiB
Nix

{
lib,
stdenv,
fetchzip,
jdk25,
unzip,
copyDesktopItems,
makeDesktopItem,
}:
let
selectSystem =
attrs:
attrs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
platform = selectSystem {
"x86_64-linux" = "linux-x86-64";
"aarch64-linux" = "linux-aarch64";
"x86_64-darwin" = "macosx-x86-64";
"aarch64-darwin" = "macosx-aarch64";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "weasis";
version = "4.6.3";
# Their build instructions indicate to use the packaging script
src = fetchzip {
url = "https://github.com/nroduit/Weasis/releases/download/v${finalAttrs.version}/weasis-native.zip";
hash = "sha256-1dvBKxInuk8FpZjo59+LkIuEBTr57wkLaHfvvvT6bOg=";
stripRoot = false;
};
nativeBuildInputs = [
copyDesktopItems
]
++ lib.optional stdenv.isDarwin unzip;
desktopItems = [
(makeDesktopItem {
name = "DICOMizer";
exec = "Dicomizer";
icon = "Dicomizer";
desktopName = "DICOMizer";
comment = "Convert standard images into DICOM";
})
(makeDesktopItem {
name = "Weasis";
exec = "Weasis";
icon = "Weasis";
desktopName = "Weasis";
comment = finalAttrs.meta.description;
})
];
postPatch = ''
patchShebangs ./build/script/package-weasis.sh
'';
buildPhase = ''
runHook preBuild
./build/script/package-weasis.sh --no-installer --jdk ${jdk25}
runHook postBuild
'';
installPhase = ''
runHook preInstall
''
+ lib.optionalString stdenv.isLinux ''
mkdir -p $out/share/{applications,pixmaps}
mv weasis-${platform}-jdk${lib.versions.major jdk25.version}-${finalAttrs.version}/Weasis/* $out/
mv $out/lib/*.png $out/share/pixmaps/
''
+ lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv weasis-${platform}-jdk${lib.versions.major jdk25.version}-${finalAttrs.version}/Weasis.app $out/Applications/
''
+ ''
runHook postInstall
'';
meta = {
description = "Multipurpose standalone and web-based DICOM viewer with a highly modular architecture";
homepage = "https://weasis.org";
# Using changelog from releases as it is more accurate
changelog = "https://github.com/nroduit/Weasis/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [
asl20
epl20
];
maintainers = [ ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "Weasis";
};
})