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

Reply via email to