[tor-commits] [tor-browser-build/master] Bug 25485: replace firefox by a wrapper script

gk at torproject.org gk at torproject.org
Thu Aug 16 10:28:53 UTC 2018


commit 5933f5916a68fdafd7103a4800e156a0100c3a6c
Author: Nicolas Vigier <boklm at torproject.org>
Date:   Wed Aug 15 10:55:47 2018 +0200

    Bug 25485: replace firefox by a wrapper script
    
    In a previous patch for bug 25485 we changed how we set LD_LIBRARY_PATH
    in start-tor-browser. However this change is not taken into account when
    the browser is restarted by the updater. To avoid this issue we replace
    the firefox binary by a wrapper setting LD_LIBRARY_PATH.
---
 projects/firefox/build                              |  6 +++++-
 projects/firefox/config                             |  2 ++
 projects/firefox/start-firefox                      | 14 ++++++++++++++
 projects/tor-browser/RelativeLink/start-tor-browser |  9 ---------
 4 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/projects/firefox/build b/projects/firefox/build
index 4dd0945..489d087 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -165,6 +165,10 @@ rm -f js/src/configure
   # subsequent builds could test to see if they've been uploaded before...
   # But let's find out if it actually matters first..
   rm -f $distdir/Browser/*.chk
+  # Replace firefox by a wrapper script (#25485)
+  mv $distdir/Browser/firefox $distdir/Browser/firefox.real
+  mv $rootdir/start-firefox $distdir/Browser/firefox
+  chmod 755 $distdir/Browser/firefox
 [% END %]
 
 [% IF c("var/windows-x86_64") -%]
@@ -203,7 +207,7 @@ cd $distdir
 [% IF c("var/linux-x86_64") %]
   # Strip and generate debuginfo for the firefox binary that we keep, all *.so
   # files, the plugin-container, and the updater (see ticket #10126)
-  for LIB in Browser/*.so Browser/firefox Browser/plugin-container Browser/updater
+  for LIB in Browser/*.so Browser/firefox.real Browser/plugin-container Browser/updater
   do
       objcopy --only-keep-debug $LIB Debug/$LIB
       strip $LIB
diff --git a/projects/firefox/config b/projects/firefox/config
index 02a380d..7546d24 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -118,3 +118,5 @@ input_files:
     enable: '[% c("var/windows") %]'
   - filename: abicheck.cc
     enable: '[% c("var/linux") %]'
+  - filename: start-firefox
+    enable: '[% c("var/linux") %]'
diff --git a/projects/firefox/start-firefox b/projects/firefox/start-firefox
new file mode 100644
index 0000000..dc30574
--- /dev/null
+++ b/projects/firefox/start-firefox
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+basedir=$(dirname "$0")
+
+LD_LIBRARY_PATH="$basedir/TorBrowser/Tor/"
+# Check if the system has a more recent version of libstdc++.so.6; if yes, use
+# that instead of the bundled version.
+"$basedir/abicheck" >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+  LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$basedir/TorBrowser/Tor/libstdc++/"
+fi
+export LD_LIBRARY_PATH
+
+exec "$basedir/firefox.real" "$@"
diff --git a/projects/tor-browser/RelativeLink/start-tor-browser b/projects/tor-browser/RelativeLink/start-tor-browser
index 47fbdef..722caa5 100755
--- a/projects/tor-browser/RelativeLink/start-tor-browser
+++ b/projects/tor-browser/RelativeLink/start-tor-browser
@@ -273,15 +273,6 @@ if [ $SYSARCHITECTURE -ne $TORARCHITECTURE ]; then
    exit 1
 fi
 
-LD_LIBRARY_PATH="${HOME}/TorBrowser/Tor/"
-# Check if the system has a more recent version of libstdc++.so.6; if yes, use
-# that instead of the bundled version.
-./abicheck >/dev/null 2>&1
-if [ $? -ne 0 ]; then
-  LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${HOME}/TorBrowser/Tor/libstdc++/"
-fi
-export LD_LIBRARY_PATH
-
 [% IF ! c("var/release") %]
 export SELFRANDO_write_layout_file=
 [% END %]





More information about the tor-commits mailing list