commit fb0ffbecae5c102230ee6b789dcc02c11b862689 Author: Georg Koppen gk@torproject.org Date: Wed Oct 8 21:35:50 2014 +0000
Bug 13359: Revert LD_LIBRARY_PATH + move libstdc++.
Amending the LD_LIBRARY_PATH in our start script breaks the update from a Tor Browser with the older value to a Tor Browser requiring the new one. We therefore move the libstdc++ to the directory with the libraries tor depends upon and LD_LIBRARY_PATH used to point to and change the LD_LIBRARY_PATH value back to the old one. --- RelativeLink/RelativeLink.sh | 2 +- gitian/descriptors/linux/gitian-firefox.yml | 2 -- gitian/descriptors/linux/gitian-tor.yml | 16 ++++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/RelativeLink/RelativeLink.sh b/RelativeLink/RelativeLink.sh index 88f9f8e..e75482a 100755 --- a/RelativeLink/RelativeLink.sh +++ b/RelativeLink/RelativeLink.sh @@ -215,7 +215,7 @@ if [ $SYSARCHITECTURE -ne $TORARCHITECTURE ]; then exit 1 fi
-LD_LIBRARY_PATH="${HOME}:${HOME}/TorBrowser/Tor/" +LD_LIBRARY_PATH="${HOME}/TorBrowser/Tor/" export LD_LIBRARY_PATH
function setControlPortPasswd() { diff --git a/gitian/descriptors/linux/gitian-firefox.yml b/gitian/descriptors/linux/gitian-firefox.yml index 27ba077..5f96b6e 100644 --- a/gitian/descriptors/linux/gitian-firefox.yml +++ b/gitian/descriptors/linux/gitian-firefox.yml @@ -155,8 +155,6 @@ script: | strip $LIB objcopy --add-gnu-debuglink=./Debug/$LIB $LIB done - # We need to copy the libstdc++.so.6 for older Linux distros. - cp $INSTDIR/gcc/lib$ARCH/libstdc++.so.6 Browser # ~/build/re-dzip.sh Browser/omni.ja ~/build/re-dzip.sh Browser/webapprt/omni.ja diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml index aad9368..e678203 100644 --- a/gitian/descriptors/linux/gitian-tor.yml +++ b/gitian/descriptors/linux/gitian-tor.yml @@ -32,6 +32,8 @@ files: - "openssl-linux64-utils.zip" - "libevent-linux32-utils.zip" - "libevent-linux64-utils.zip" +- "gcc-linux32-utils.zip" +- "gcc-linux64-utils.zip" script: | INSTDIR="$HOME/install" source versions @@ -53,9 +55,23 @@ script: | mkdir -p $INSTDIR/Debug/Tor/ unzip -d $INSTDIR openssl-linux$GBUILD_BITS-utils.zip unzip -d $INSTDIR libevent-linux$GBUILD_BITS-utils.zip + unzip -d $INSTDIR gcc-linux$GBUILD_BITS-utils.zip cp $INSTDIR/openssl/lib/libssl.so.1.0.0 $INSTDIR/Tor/ cp $INSTDIR/openssl/lib/libcrypto.so.1.0.0 $INSTDIR/Tor/ cp $INSTDIR/libevent/lib/libevent-2.0.so.5 $INSTDIR/Tor/ + # We need to copy the libstdc++.so.6 for Tor Browser on older Linux distros. + # Copying it into /Browser, which feels more natural, and amending + # LD_LIBRARY_PATH breaks updates from a Tor Browser with the old + # LD_LIBRARY_PATH value to the Tor Browser with the newer one. Thus, we copy + # the libstdc++ into the directory with the libs tor depends on, too. See bug + # 13359 for further details. + ARCH="" + if [ $GBUILD_BITS == "64" ]; + then + ARCH="64" + fi + cp $INSTDIR/gcc/lib$ARCH/libstdc++.so.6 $INSTDIR/Tor/ + chmod 700 $INSTDIR/Tor/*so* # This is needed to make RPATH unavailable. See bug 9150. export LD_LIBRARY_PATH="$INSTDIR/Tor/"