Build issue 1.11.2

Hi Sebastien,

I was about to update orthanc to the latest version and notice an issue with the libConnectivityChecks.so and libDelayedDeletion.so since version 1.11.1 - I think the libs were introduced at that time.

Are there additional compiler options required for these plugins? Or anything else to consider?

Thanks
Axel

Maybe you could elaborate a bit ?

Operating System (SUSE ?), Environment, Compiler Warning / Errors, Specific issue you are having with those Plug-ins ?

Hi Alex,

The DelayedDeletion plugin was indeed added in 1.11.1 but the ConnectivityChecks plugin has been added in 1.6.0.

Could you elaborate a bit more on the problems you are having?

Alain.

Hi,
I got a hint from one of our reviewers. I quote :

Upstream has a broken invocation of ExternalProject_Add,
https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/CMakeLists.txt#l638

externalproject_add(DelayedDeletion
...
CMAKE_ARGS
...
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}

CMAKE_CURRENT_BINARY_DIR is “/home/abuild/rpmbuild /BUILD/Orthanc-1.11.2/
build/” here.

When “make DESTDIR=/ install” is invoked, this gets contatenated to
“/home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-0.x86_64/home/abuild/rpmbuild
/BUILD/Orthanc-1.11.2/build/”.

The correct approach is to pass INSTALL_COMMAND "" to ExternalProject_Add.

Cheers
Axel (and thanks to Stefan Brüns)

Hi Axel,

I’ve just added these 2 lines in the 1.11.2 branch. Could you give it a try ?
https://hg.orthanc-server.com/orthanc/rev/d9c4d77dedf4

Best regards,

Alain

Hi Axel,

Any news on this topic ? Could you validate that it works for you ?

It has an impact on all our build processes so I’d like to know if I should keep it as is or revert the change.

Thx

Alain.

Hello Alain,
sorry for my late reply

Your patch fixes the original issue, however, I see only 2 of the 4 plugins in the build-directory:
libModalityWorklists.so
libServeFolders.so
Build Log: https://build.opensuse.org/public/build/home:DocB:Orthanc/openSUSE_Tumbleweed/x86_64/orthanc/_log

Where I find:
[ 31s] [ 82%] No install step for ‘ConnectivityChecks’
Is there something missing in the make file?

Cheers
Axel

Hi Axel,

Thanks for your feedback.

In the last build logs, I see the install steps does not find the plugins:
image.png

This commit (still in the 1.11.2 branch) should fix it: https://hg.orthanc-server.com/orthanc/rev/3b1ae7a81d9b

HTH

Alain.

Hello Alain,
I’m seeing a slightly different error message, though still ‘No install step for…’ message.
Why are the new plgins handled different than the existing ones?
Cheers
Axel

Hi Axel,

From what I see today here, it’s not that bad:

[ 156s] Install the project…
[ 156s] /usr/bin/cmake -P cmake_install.cmake
[ 156s] – Install configuration: “RelWithDebInfo”
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/sbin/Orthanc
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libServeFolders.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libServeFolders.so
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libModalityWorklists.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libModalityWorklists.so
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libConnectivityChecks.so
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libConnectivityChecks.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libDelayedDeletion.so
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libDelayedDeletion.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libHousekeeper.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libHousekeeper.so


[ 156s] + mv /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/sbin/Orthanc /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/sbin/orthanc
[ 156s] + rm /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libConnectivityChecks.so /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libConnectivityChecks.so.1.11.2 /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libDelayedDeletion.so /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libDelayedDeletion.so.1.11.2 /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libHousekeeper.so /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libHousekeeper.so.1.11.2 /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libModalityWorklists.so /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libModalityWorklists.so.1.11.2 /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libServeFolders.so /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libServeFolders.so.1.11.2
[ 156s] + ln -s …/…/…/…/usr/lib64/orthanc/libServeFolders.so.1.11.2 /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libServeFolders.so
[ 156s] + ln -s …/…/…/…/usr/lib64/orthanc/libModalityWorklists.so.1.11.2 /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libModalityWorklists.so
[ 156s] + ln -s …/…/…/…/usr/lib64/orthanc/libConnectivityChecks.so.1.11.2 /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libConnectivityChecks.so
[ 156s] + ln -s …/…/…/…/usr/lib64/orthanc/libDelayedDeletion.so.1.11.2 /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libDelayedDeletion.so
[ 156s] + cp -r /home/abuild/rpmbuild/SOURCES/index.html /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/doc/packages/orthanc/
[ 156s] + cp -r OrthancServer/Resources/Samples/ /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/doc/packages/orthanc/Samples
[ 156s] + cp -r OrthancServer/Plugins/Samples/ /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/doc/packages/orthanc/OrthancPluginSamples
[ 156s] + echo ‘ldconfig -v | grep libcrypto.so’
[ 156s] ldconfig -v | grep libcrypto.so
[ 156s] + /usr/lib/rpm/brp-compress
[ 156s] + /usr/lib/rpm/brp-suse
[ 156s] calling /usr/lib/rpm/brp-suse.d/brp-05-permissions
[ 156s] calling /usr/lib/rpm/brp-suse.d/brp-15-strip-debug
[ 156s] calling /usr/lib/rpm/brp-suse.d/brp-25-symlink
[ 156s] ERROR: link target doesn’t exist (neither in build root nor in installed system):
[ 156s] /usr/share/orthanc/plugins/libConnectivityChecks.so → …/…/…/…/usr/lib64/orthanc/libConnectivityChecks.so.1.11.2
[ 156s] Add the package providing the target to BuildRequires and Requires
[ 156s] ERROR: link target doesn’t exist (neither in build root nor in installed system):
[ 156s] /usr/share/orthanc/plugins/libDelayedDeletion.so → …/…/…/…/usr/lib64/orthanc/libDelayedDeletion.so.1.11.2
[ 156s] Add the package providing the target to BuildRequires and Requires
[ 156s] INFO: relinking /usr/share/orthanc/plugins/libModalityWorklists.so → …/…/…/lib64/orthanc/libModalityWorklists.so.1.11.2 (was …/…/…/…/usr/lib64/orthanc/libModalityWorklists.so.1.11.2)

It seems that the paths are not the same for ConnectivityChecks compared with ModalityWorklists although the first part of the logs show they all seem to be in the same folder.

Could not understand what could be wrong in this file (if that is the right file to look at)

HTH

Alain

Hello Alain,

[ 156s] Install the project…
[ 156s] /usr/bin/cmake -P cmake_install.cmake
[ 156s] – Install configuration: “RelWithDebInfo”
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/sbin/Orthanc
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libServeFolders.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libServeFolders.so
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libModalityWorklists.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libModalityWorklists.so
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libConnectivityChecks.so
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libConnectivityChecks.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libDelayedDeletion.so
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libDelayedDeletion.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libHousekeeper.so.1.11.2
[ 156s] – Installing: /home/abuild/rpmbuild/BUILDROOT/orthanc-1.11.2-70.1.x86_64/usr/share/orthanc/plugins/libHousekeeper.so

Indeed, but thats not the source of our problem, as the versioned and unversioned libs will be deleted and linked in from /usr/lib64/… (see below)

[…]

[ 156s] ERROR: link target doesn’t exist (neither in build root nor in installed system):
[ 156s] /usr/share/orthanc/plugins/libConnectivityChecks.so → …/…/…/…/usr/lib64/orthanc/libConnectivityChecks.so.1.11.2
[ 156s] Add the package providing the target to BuildRequires and Requires
[ 156s] ERROR: link target doesn’t exist (neither in build root nor in installed system):
[ 156s] /usr/share/orthanc/plugins/libDelayedDeletion.so → …/…/…/…/usr/lib64/orthanc/libDelayedDeletion.so.1.11.2
[ 156s] Add the package providing the target to BuildRequires and Requires
[ 156s] INFO: relinking /usr/share/orthanc/plugins/libModalityWorklists.so → …/…/…/lib64/orthanc/libModalityWorklists.so.1.11.2 (was …/…/…/…/usr/lib64/orthanc/libModalityWorklists.so.1.11.2)

It seems that the paths are not the same for ConnectivityChecks compared with ModalityWorklists although the first part of the logs show they all seem to be in the same folder.

Could not understand what could be wrong in this file (if that is the right file to look at)

The spec file is what drives this, correct.

The difference between the ‘old’ plugins (up to version 1.11.0) and the new is: for the old modules is a cmake command to install the plugins to %{buildroot}%{_libdir}/%{name} (/usr/lib64/orthanc), but for the new ones not. All all modules are treated equal in the build process, this causes the issue. At least in my understanding…but I’m not a C++ expert

I could try to work around this in the installation process, ut should that not be coming from cmake?

Cheers
Axel

Hi Axel,

My problem is that cmake handles this correctly already… Here’s what happens when I run “make install” on my Ubuntu system:

~/o/build/orthanc-bis$ sudo make install
[ 92%] Built target CoreLibrary

[100%] Built target DelayedDeletion
Install the project…
– Install configuration: “Debug”
– Up-to-date: /usr/local/sbin/Orthanc
– Installing: /usr/local/share/orthanc/plugins/libServeFolders.so.1.11.2
– Installing: /usr/local/share/orthanc/plugins/libServeFolders.so
– Installing: /usr/local/share/orthanc/plugins/libModalityWorklists.so.1.11.2
– Installing: /usr/local/share/orthanc/plugins/libModalityWorklists.so
– Installing: /usr/local/share/orthanc/plugins/libConnectivityChecks.so
– Installing: /usr/local/share/orthanc/plugins/libConnectivityChecks.so.1.11.2
– Installing: /usr/local/share/orthanc/plugins/libDelayedDeletion.so
– Installing: /usr/local/share/orthanc/plugins/libDelayedDeletion.so.1.11.2
– Installing: /usr/local/share/orthanc/plugins/libHousekeeper.so.1.11.2
– Installing: /usr/local/share/orthanc/plugins/libHousekeeper.so
– Up-to-date: /usr/local/bin/OrthancRecoverCompressedFile
– Up-to-date: /usr/local/include/orthanc/OrthancCPlugin.h
– Up-to-date: /usr/local/include/orthanc/OrthancCDatabasePlugin.h
~/o/build/orthanc-bis$ la -al /usr/local/share/orthanc/plugins/
total 44836
drwxr-xr-x 2 root root 4096 Oct 25 07:08 .
drwxr-xr-x 3 root root 4096 Oct 17 10:03 …
lrwxrwxrwx 1 root root 31 Oct 25 07:08 libConnectivityChecks.so → libConnectivityChecks.so.1.11.2
-rw-r–r-- 1 root root 12472584 Oct 25 07:02 libConnectivityChecks.so.1.11.2
lrwxrwxrwx 1 root root 28 Oct 25 07:08 libDelayedDeletion.so → libDelayedDeletion.so.1.11.2
-rw-r–r-- 1 root root 19593360 Oct 25 07:03 libDelayedDeletion.so.1.11.2
lrwxrwxrwx 1 root root 24 Oct 25 07:08 libHousekeeper.so → libHousekeeper.so.1.11.2
-rw-r–r-- 1 root root 4459568 Oct 25 07:02 libHousekeeper.so.1.11.2
lrwxrwxrwx 1 root root 30 Oct 25 07:08 libModalityWorklists.so → libModalityWorklists.so.1.11.2
-rw-r–r-- 1 root root 4628520 Oct 25 07:02 libModalityWorklists.so.1.11.2
lrwxrwxrwx 1 root root 25 Oct 25 07:08 libServeFolders.so → libServeFolders.so.1.11.2
-rw-r–r-- 1 root root 4736544 Oct 25 07:02 libServeFolders.so.1.11.2

Best regards,

Alain.

Hi Alain,