Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Dec 2008 18:14:27 GMT
From:      Bengt Ahlgren <bengta@sics.se>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/129553: [patch] print/acroread8 can't launch some programs due to LD_LIBRARY_PATH
Message-ID:  <200812101814.mBAIERYg071437@www.freebsd.org>
Resent-Message-ID: <200812101820.mBAIK1AM056664@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         129553
>Category:       ports
>Synopsis:       [patch] print/acroread8 can't launch some programs due to LD_LIBRARY_PATH
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Dec 10 18:20:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Bengt Ahlgren
>Release:        7.1-BETA2 (approx)
>Organization:
>Environment:
FreeBSD zeus.bga.sics.se 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #1: Mon Nov  3 00:52:40 CET 2008     root@zeus.bga.sics.se:/usr/obj/usr/src/sys/ZEUS71  amd64
>Description:
When testing acroread8 (on 7.1-PRE) I got the following error when
trying to print using KDE's kprinter on i386:

The following error occurred while printing...
'/libexec/ld-elf.so.1: /usr/local/Adobe/Reader8/ENU/Adobe/Reader8/Reader/intellinux/lib/libstdc++.so.6: unsupported file layout'

and on amd64:

The following error occurred while printing...
'/libexec/ld-elf.so.1: Shared object "libm.so.6" not found, required by "libstdc++.so.6"'

The reason is that the acroread launch script sets LD_LIBRARY_PATH to:

LD_LIBRARY_PATH=/usr/local/Adobe/Reader8/ENU/Adobe/Reader8/Reader/intellinux/lib:/usr/local/Adobe/Reader8/ENU/Adobe/Reader8/Reader/intellinux/sidecars:/..//usr/local/lib/linux-nvu

which makes (some) helper programs fail to link its shared libs if it
happens to pick up a (Linux) library from the above.  libstdc++.so.6
is one of them.

The problem also exist for launching a browser.

>How-To-Repeat:
Enter "kprinter" as the print program in the print dialogue, or try to
use firefox as the browser (in edit/preferences/internet).  The latter
does however not result in an error message.
>Fix:
The problem is easily worked around for the print program - you can do
"env -u LD_LIBRARY_PATH kprinter" for instance directly in the print
dialogue.  But that does not work for the browser executable set in
the "edit/preferences/internet" dialogue.  So if you want to be able
to launch a browser from acroread, you need a wrapper script.

I see that the Linux dynamic linker
(/usr/compat/linux/lib/ld-linux.so.2) has a flag:

  --library-path PATH   use given PATH instead of content of the environment
                        variable LD_LIBRARY_PATH

so I tried to patch the acroread launch script in
/usr/local/Adobe/Reader8/ENU/Adobe/Reader8/bin with:

--- acroread.orig	2008-10-08 06:28:27.000000000 +0200
+++ acroread	2008-12-08 22:59:46.000000000 +0100
@@ -16,7 +16,9 @@
 LaunchBinary()
 {
     if [ "`uname -s`" = "Linux" ] && [ ! -x /lib/ld-lsb.so.3 ]; then
-        exec /lib/ld-linux.so.2 ${1+"$@"}
+        TEMP_LIB_PATH="$LD_LIBRARY_PATH"
+        unset LD_LIBRARY_PATH
+        exec /lib/ld-linux.so.2 --library-path "$TEMP_LIB_PATH" ${1+"$@"}
     else
         exec ${1+"$@"}
     fi

Question: what is a proper fix for these problems???


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812101814.mBAIERYg071437>