Yesterday I attempted to package Orthanc 1.12.7. You can follow the progress here: github.com/NixOS/nixpkgs/pull/398450
(I don’t have the right to post a link).
Everything seemed to be working fine until I encountered an issue that didn’t appear in version 1.12.6. The build completes successfully, but the install phase fails with a permissions error. Here’s the relevant part of the log:
error: builder for '/nix/store/bl4db83r033jzjv2y9hyn7mpf15ngsn2-orthanc-1.12.7.drv' failed with exit code 1;
last 50 log lines:
> [ 95%] Building CXX object CMakeFiles/UnitTests.dir/build/hg-archive/OrthancFramework/UnitTestsSources/SQLiteTests.cpp.o
> [ 95%] Building CXX object CMakeFiles/UnitTests.dir/build/hg-archive/OrthancFramework/UnitTestsSources/StreamTests.cpp.o
> [ 96%] Building CXX object CMakeFiles/UnitTests.dir/build/hg-archive/OrthancFramework/UnitTestsSources/ToolboxTests.cpp.o
> [ 96%] Building CXX object CMakeFiles/UnitTests.dir/build/hg-archive/OrthancFramework/UnitTestsSources/ZipTests.cpp.o
> [ 96%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/DatabaseLookupTests.cpp.o
> [ 97%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/LuaServerTests.cpp.o
> [ 97%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/PluginsTests.cpp.o
> [ 97%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/ServerConfigTests.cpp.o
> [ 98%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/ServerIndexTests.cpp.o
> [ 98%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/ServerJobsTests.cpp.o
> [ 98%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/SizeOfTests.cpp.o
> [ 99%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/UnitTestsMain.cpp.o
> [ 99%] Building CXX object CMakeFiles/UnitTests.dir/UnitTestsSources/VersionsTests.cpp.o
> [100%] Linking CXX executable UnitTests
> [100%] Built target UnitTests
> buildPhase completed in 5 minutes 44 seconds
> Running phase: installPhase
> install flags: -j8 SHELL=/nix/store/9nw8b61s8lfdn8fkabxhbz0s775gjhbr-bash-5.2p37/bin/bash install
> [ 0%] Built target AutogeneratedTarget
> [ 0%] Built target ProtobufCompiler
> [ 0%] Built target OrthancDatabaseProtobuf
> [ 1%] Built target PluginsDependencies
> [ 2%] Built target Housekeeper
> [ 3%] Built target ServeFolders
> [ 4%] Built target ModalityWorklists
> [ 5%] Built target DelayedDeletion
> [ 9%] Built target MultitenantDicom
> [ 59%] Built target CoreLibrary
> [ 60%] Built target OrthancRecoverCompressedFile
> [ 89%] Built target ServerLibrary
> [ 90%] Built target Orthanc
> [100%] Built target UnitTests
> Install the project...
> -- Install configuration: "Release"
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/sbin/Orthanc
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libServeFolders.so.1.12.7
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libServeFolders.so
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libModalityWorklists.so.1.12.7
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libModalityWorklists.so
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libDelayedDeletion.so.1.12.7
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libDelayedDeletion.so
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libHousekeeper.so.1.12.7
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libHousekeeper.so
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libMultitenantDicom.so.1.12.7
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/share/orthanc/plugins/libMultitenantDicom.so
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/bin/OrthancRecoverCompressedFile
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/include/orthanc/OrthancCPlugin.h
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/include/orthanc/OrthancCDatabasePlugin.h
> -- Installing: /nix/store/yj049078162sypiagy1v8rg3mcdbdpd4-orthanc-1.12.7/include/orthanc/OrthancDatabasePlugin.proto
> mkdir: cannot create directory '/share': Permission denied
For full logs, run:
nix log /nix/store/bl4db83r033jzjv2y9hyn7mpf15ngsn2-orthanc-1.12.7.drv
It looks like something in the install phase is trying to write to an absolute /share
directory instead of respecting the $DESTDIR
or CMAKE_INSTALL_PREFIX
. This didn’t happen with 1.12.6, so I suspect a change in upstream install paths or scripts.
Has anyone encountered a similar issue or found a workaround or patch to correct the install path? I suspect this is specific to Nix, since it strictly forbids writing anywhere outside of /nix/store
.
I tried to check the diff between the 2 tags (Orthanc-1.12.6
and Orthanc-1.12.7
), but couldn’t find anything relevant so far.
Thanks.