Package: orthanc Version: 1.9.7+dfsg-3 Severity: important Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu jammy ubuntu-patch
Dear maintainers, In Ubuntu, we have upgraded to glibc 2.34 which results in orthanc failing to build from source, because it includes a test that tries to dlopen() libdl.so and in glibc 2.34 libdl.so no longer exists, its functionality having been rolled into libc6. To fix this test, orthanc will need to dlopen some other library. Attached is a patch which switches the test to dlopen libmemusage.so instead, which is also provided by libc6-dev so should always be available. Please consider applying this patch or a similar one in Debian. This is obviously not critical in Debian yet, since experimental still only has glibc 2.33. Cheers, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org
diff -Nru orthanc-1.9.7+dfsg/debian/patches/glibc-2.34.patch orthanc-1.9.7+dfsg/debian/patches/glibc-2.34.patch --- orthanc-1.9.7+dfsg/debian/patches/glibc-2.34.patch 1969-12-31 16:00:00.000000000 -0800 +++ orthanc-1.9.7+dfsg/debian/patches/glibc-2.34.patch 2021-12-07 18:52:24.000000000 -0800 @@ -0,0 +1,26 @@ +Description: fix compatibility with glibc 2.34 + In glibc 2.34, libdl.so no longer exists because the shared library has been + rolled into libc.so. This causes the dlopen tests to fail. Use + libmemusage.so instead, which is also provided by libc6-dev. +Author: Steve Langasek <steve.langa...@ubuntu.com> +Last-Update: 2021-12-07 +Forwarded: no + +Index: orthanc-1.9.7+dfsg/OrthancServer/UnitTestsSources/PluginsTests.cpp +=================================================================== +--- orthanc-1.9.7+dfsg.orig/OrthancServer/UnitTestsSources/PluginsTests.cpp ++++ orthanc-1.9.7+dfsg/OrthancServer/UnitTestsSources/PluginsTests.cpp +@@ -86,10 +86,10 @@ + //ASSERT_TRUE(l.HasFunction("_init")); + + #elif defined(__linux__) || defined(__FreeBSD_kernel__) +- SharedLibrary l("libdl.so"); ++ SharedLibrary l("libmemusage.so"); + ASSERT_THROW(l.GetFunction("world"), OrthancException); +- ASSERT_TRUE(l.GetFunction("dlopen") != NULL); +- ASSERT_TRUE(l.HasFunction("dlclose")); ++ ASSERT_TRUE(l.GetFunction("munmap") != NULL); ++ ASSERT_TRUE(l.HasFunction("free")); + ASSERT_FALSE(l.HasFunction("world")); + + #elif defined(__FreeBSD__) || defined(__OpenBSD__) diff -Nru orthanc-1.9.7+dfsg/debian/patches/series orthanc-1.9.7+dfsg/debian/patches/series --- orthanc-1.9.7+dfsg/debian/patches/series 2021-11-22 06:22:14.000000000 -0800 +++ orthanc-1.9.7+dfsg/debian/patches/series 2021-12-07 18:50:42.000000000 -0800 @@ -1 +1,2 @@ donotforcec++11.patch +glibc-2.34.patch