commit f531a004aaa169d9a4a06a3b6d7c04c6fd812f9c Author: Georg Koppen gk@torproject.org Date: Sun Jan 19 21:06:37 2020 +0000
Bug 32976: Build and bundle geckodriver
Geckodriver is not built by default in release builds. However, it's useful if we build it reproducibly so we can avoid trusting some binary downloaded from the Internet for our QA and Selenium related work.
Only the 64bit Linux version is built and included as I doubt we'll need geckodriver on anything else for our purposes. --- projects/firefox/build | 9 +++++++++ projects/firefox/mozconfig-linux-x86_64 | 4 +++- projects/tor-browser/build | 1 + 3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/projects/firefox/build b/projects/firefox/build index b42b301..22c5b5d 100644 --- a/projects/firefox/build +++ b/projects/firefox/build @@ -151,6 +151,9 @@ rm -f js/src/configure [% END %]
[% IF c("var/linux") %] + [% IF c("var/linux-x86_64") %] + cp obj-*/testing/geckodriver/x86_64-unknown-linux-gnu/release/geckodriver $distdir + [% END %] cp -a obj-*/dist/firefox/* $distdir/Browser/ # Remove firefox-bin (we don't use it, see ticket #10126) rm -f $distdir/Browser/firefox-bin @@ -213,6 +216,8 @@ cp -p obj-*/dist/host/bin/mbsdiff $MARTOOLS/ cd $distdir
[% IF c("var/linux-x86_64") %] + # No need for an unstripped geckodriver + strip geckodriver mkdir -p $distdir/Debug/Browser/gtk2 # Strip and generate debuginfo for the firefox binary that we keep, all *.so # files, the plugin-container, and the updater (see ticket #10126) @@ -258,6 +263,10 @@ END; tar_src => [ 'Debug' ], tar_args => '-cJf ' _ dest_dir _ '/' _ c('filename') _ '/tor-browser-debug.tar.xz', }) %] +[% c('tar', { + tar_src => [ 'geckodriver' ], + tar_args => '-cJf ' _ dest_dir _ '/' _ c('filename') _ '/geckodriver-linux64.tar.xz', + }) %] [% END %]
[% c('zip', { diff --git a/projects/firefox/mozconfig-linux-x86_64 b/projects/firefox/mozconfig-linux-x86_64 index 19d2885..59517cd 100755 --- a/projects/firefox/mozconfig-linux-x86_64 +++ b/projects/firefox/mozconfig-linux-x86_64 @@ -33,6 +33,8 @@ ac_add_options --disable-webrtc # Let's make sure no preference is enabling either Adobe's or Google's CDM. ac_add_options --disable-eme ac_add_options --enable-proxy-bypass-protection +# We want to bundle an own geckodriver, so we can use it for QA and other work +ac_add_options --enable-geckodriver
# Disable telemetry -ac_add_options MOZ_TELEMETRY_REPORTING= \ No newline at end of file +ac_add_options MOZ_TELEMETRY_REPORTING= diff --git a/projects/tor-browser/build b/projects/tor-browser/build index 2c72e03..4d44f12 100644 --- a/projects/tor-browser/build +++ b/projects/tor-browser/build @@ -292,6 +292,7 @@ SCRIPT_EOF cp $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip "$OUTDIR"/ [% IF c("var/linux-x86_64") -%] cp $rootdir/[% c('input_files_by_name/firefox') %]/tor-browser-debug.tar.xz "$OUTDIR"/tor-browser-[% c("var/mar_osname") %]-debug.tar.xz + cp $rootdir/[% c('input_files_by_name/firefox') %]/geckodriver-linux64.tar.xz "$OUTDIR"/ [% END -%] [% IF c("var/linux") -%] cp $rootdir/[% c('input_files_by_name/tor') %]/tor-debug.tar.xz "$OUTDIR"/tor-[% c("var/mar_osname") %]-debug.tar.xz