NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.28k stars 13.53k forks source link

Package request: Medical 3D Slicer #284537

Open norpol opened 7 months ago

norpol commented 7 months ago

Project description

The standard open source tool to view and modify DICOM datasets such as MRI, X-Ray and CT scans.

[...] Slicer, or 3D Slicer, is a free, open source software package for visualization and image analysis. [...]

Metadata

Example of @ryanorendorff who packaged the binary Linux build a while ago to demonstrate the benefits of nix: https://github.com/ryanorendorff/medical-imaging-nix/blob/master/src/nix/3DSlicer/default.nix


Add a :+1: reaction to issues you find important.

raspher commented 7 months ago

I've tried... Seems a lot of work... The problem is at buildPhase, when it does not find an dependency it's trying to download it.

[  3%] Performing download step (git clone) for 'SurfaceToolbox'
[  3%] Performing download step (git clone) for 'MultiVolumeExplorer'
[  4%] Performing download step (git clone) for 'BRAINSTools'
[  4%] Performing download step (git clone) for 'vtkAddon'
[  5%] Performing download step (download, verify and extract) for 'CTKAPPLAUNCHER'
[  5%] Performing download step (git clone) for 'CompareVolumes'
[  5%] Performing download step (git clone) for 'LandmarkRegistration'
[  5%] Performing download step (git clone) for 'SimpleFilters'
[  5%] Performing download step (git clone) for 'MultiVolumeImporter'
[  5%] Performing download step (download, verify and extract) for 'python-source'
[  6%] Performing download step (git clone) for 'CTKAppLauncherLib'

I'm not sure it will require additional work to force it to use system python.

Requires at least:

BUT when trying to enable system vtk i've got

-- SuperBuild -         CTKAPPLAUNCHER[OK] (SYSTEM)
CMake Error at SuperBuild/External_CTKAPPLAUNCHER.cmake:21 (message):
  Enabling Slicer_USE_SYSTEM_CTKAPPLAUNCHER is not supported !
Call Stack (most recent call first):
  CMake/ExternalProjectDependency.cmake:890 (include)
  SuperBuild/External_python.cmake:35 (ExternalProject_Include_Dependencies)
  CMake/ExternalProjectDependency.cmake:890 (include)
  SuperBuild/External_VTK.cmake:14 (ExternalProject_Include_Dependencies)
  CMake/ExternalProjectDependency.cmake:890 (include)
  SuperBuild/External_teem.cmake:11 (ExternalProject_Include_Dependencies)
  CMake/ExternalProjectDependency.cmake:890 (include)
  CMake/ExternalProjectDependency.cmake:964 (ExternalProject_Include_Dependencies)
  SuperBuild.cmake:473 (ExternalProject_Include_Dependencies)
  CMakeLists.txt:773 (include)

If someone want's to work on this, my work: gist I don't have idea how to package it (i'm novice here 🥲 )

norpol commented 7 months ago

Oh, was trying to motivate myself to look into this as well. Thanks for your work already, I'll see what I can get working.

I'm not sure it will require additional work to force it to use system python.

If the fixup phase detect hard-coded executable paths like #!/usr/bin/python3, it will automatically patch them to match to the appropriate nix store path.

Not exactly sure what the right way would be concerning the git clones. I suppose packaging each of them will be necessary. Someone already opened a ticket at https://github.com/Slicer/Slicer/issues/5271 a while back concerning NixOS.

Understanding the cmake flags can be tricky, I only see some archlinux packages mentioning the flag Slicer_USE_SYSTEM_CTKAPPLAUNCHER as a direct name, but there might be some automatic stuff going on in all the different layers of cmake.

I'll give your gitst a try.