diff --git a/pkgs/development/libraries/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix index 50ad7bdd9fd6..ca099da02354 100644 --- a/pkgs/development/libraries/gdcm/default.nix +++ b/pkgs/development/libraries/gdcm/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { "-DGDCM_USE_VTK=ON" ] ++ lib.optionals enablePython [ "-DGDCM_WRAP_PYTHON:BOOL=ON" - "-DGDCM_INSTALL_PYTHONMODULE_DIR=${placeholder "out"}/${python.sitePackages}" + "-DGDCM_INSTALL_PYTHONMODULE_DIR=${placeholder "out"}/${python.sitePackages}/python_gdcm" ]; nativeBuildInputs = [ @@ -66,6 +66,13 @@ stdenv.mkDerivation rec { libiconv ] ++ lib.optionals enablePython [ swig python ]; + postInstall = lib.optionalString enablePython '' + substitute \ + ${./python_gdcm.egg-info} \ + $out/${python.sitePackages}/python_gdcm-${version}.egg-info \ + --subst-var-by GDCM_VER "${version}" + ''; + disabledTests = [ # require networking: "TestEcho" @@ -77,6 +84,8 @@ stdenv.mkDerivation rec { "TestSCUValidation" # errors because 3 classes not wrapped: "TestWrapPython" + # AttributeError: module 'gdcm' has no attribute 'UIDGenerator_SetRoot'; maybe a wrapping regression: + "TestUIDGeneratorPython" ] ++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [ "TestRescaler2" ]; diff --git a/pkgs/development/libraries/gdcm/python_gdcm.egg-info b/pkgs/development/libraries/gdcm/python_gdcm.egg-info new file mode 100644 index 000000000000..d0b2e21f091d --- /dev/null +++ b/pkgs/development/libraries/gdcm/python_gdcm.egg-info @@ -0,0 +1,5 @@ +Metadata-Version: 2.1 +Name: python-gdcm +Version: @GDCM_VER@ +Summary: C++ library for DICOM medical files wrapped for Python using SWIG +Platform: UNKNOWN diff --git a/pkgs/development/python-modules/dicom2nifti/default.nix b/pkgs/development/python-modules/dicom2nifti/default.nix index 0e12fe09c775..a3b123f84302 100644 --- a/pkgs/development/python-modules/dicom2nifti/default.nix +++ b/pkgs/development/python-modules/dicom2nifti/default.nix @@ -8,6 +8,8 @@ nibabel, numpy, pydicom, + pylibjpeg, + pylibjpeg-libjpeg, scipy, setuptools, }: @@ -37,16 +39,16 @@ buildPythonPackage rec { scipy ]; - # python-gdcm just builds the python interface provided by the "gdcm" package, so - # we should be able to replace "python-gdcm" with "gdcm" but this doesn't work - # (similar to https://github.com/NixOS/nixpkgs/issues/84774) postPatch = '' - substituteInPlace setup.py --replace-fail "python-gdcm" "" substituteInPlace tests/test_generic.py --replace-fail "from common" "from dicom2nifti.common" substituteInPlace tests/test_ge.py --replace-fail "import convert_generic" "import dicom2nifti.convert_generic as convert_generic" ''; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytestCheckHook + pylibjpeg + pylibjpeg-libjpeg + ]; pythonImportsCheck = [ "dicom2nifti" ];