summaryrefslogtreecommitdiffstats
path: root/zarafa-6.40.5-rpath.patch
diff options
context:
space:
mode:
Diffstat (limited to 'zarafa-6.40.5-rpath.patch')
-rw-r--r--zarafa-6.40.5-rpath.patch115
1 files changed, 115 insertions, 0 deletions
diff --git a/zarafa-6.40.5-rpath.patch b/zarafa-6.40.5-rpath.patch
new file mode 100644
index 0000000..b39097c
--- /dev/null
+++ b/zarafa-6.40.5-rpath.patch
@@ -0,0 +1,115 @@
+Patch by Robert Scheck <robert@fedoraproject.org> for zarafa >= 6.40.5, which works
+around the broken libtool of Debian. Multilib/multiarch systems like Fedora or Red
+Hat Enterprise Linux are using /usr/lib64 for 64 bit libraries and /usr/lib is used
+for 32 bit libraries. That allows to run 32 bit software on 64 bit systems. Debian
+systems only use /usr/lib which contains only 32 or 64 bit systems depending on the
+architecture.
+
+Libtool hardcodes the runtime search path in a library (rpath), if the library that
+is used for linking is not within the default system library path. The result is,
+that if aclocal.m4/configure files are generated by a Debian system, but used on a
+Fedora or Red Hat Enterprise Linux 64 bit system for compiling, "-rpath /usr/lib64"
+makes it into the binary.
+
+Fedora and EPEL (for Red Hat Enterprise Linux) do not allow binaries with rpath, as
+the Linux dynamic linker is usually smarter than the hardcoded path.
+
+The fix for this issue is to add the optional /lib64 and /usr/lib64 directories at/
+within libtool in front of the regular /lib and /usr/lib directories at the system
+library path. These libtool information are hold in aclocal.m4, which is generated
+by running aclocal. As the content of aclocal.m4 is included into configure during
+a run of autoconf, aclocal.m4 needs to be modified within the upstream build system
+each time after a aclocal run - until Debian's libtool is fixed at Debian upstream.
+
+Applying the fix is either possible by using the first hunk of the patch (second
+hunk is runtime-only if configure file has been already generated) or by running
+the following sed command after each aclocal run within the upstream build system:
+
+ sed -e 's@\(# Append ld.so.conf contents to the search path\)@# Add ABI-specific directories to the system library path.\n sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"\n\n \1@' \
+ -e 's@/lib /usr/lib $lt_ld_extra@$sys_lib_dlsearch_path_spec $lt_ld_extra@' -i zarafa-6.40.5/aclocal.m4
+
+More information regarding this topic can be found for example at:
+
+ - http://osdir.com/ml/bug-libtool-gnu/2009-12/msg00034.html
+ - http://lists.gnu.org/archive/html/libtool/2009-01/msg00039.html
+ - http://thread.gmane.org/gmane.comp.gnu.libtool.general/8339/focus=8345
+
+--- zarafa-6.40.5/aclocal.m4 2011-01-24 13:06:08.000000000 +0100
++++ zarafa-6.40.5/aclocal.m4.rpath 2011-02-27 14:00:53.371489885 +0100
+@@ -1708,10 +1708,13 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # Add ABI-specific directories to the system library path.
++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+--- zarafa-6.40.5/configure 2011-01-24 13:06:11.000000000 +0100
++++ zarafa-6.40.5/configure.rpath 2011-02-27 14:00:35.902552604 +0100
+@@ -9614,10 +9614,13 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # Add ABI-specific directories to the system library path.
++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+@@ -13592,10 +13595,13 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # Add ABI-specific directories to the system library path.
++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+@@ -16226,10 +16232,13 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # Add ABI-specific directories to the system library path.
++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+@@ -18860,10 +18869,13 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # Add ABI-specific directories to the system library path.
++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on