commit 78bf2fd72676ca92fecfc464fb2bf494cbe19126 Author: Sukhbir Singh sukhbir@torproject.org Date: Mon Jan 29 17:11:31 2018 -0500
Build 64bit Tor Messenger for Windows
Inspired by #20636, build the 64bit version of Tor Messenger --- Makefile | 5 ++- projects/ctypes-otr/config | 2 +- projects/instantbird/config | 4 +++ projects/instantbird/mozconfig-windows-x86_64 | 10 ++++++ projects/libgpg-error/config | 2 +- projects/libotr/config | 7 +++-- projects/mozilla/STL_win64.patch | 24 ++++++++++++++ projects/mozilla/config | 2 ++ projects/tor-browser/config | 2 +- projects/tor-messenger/config | 18 +++++++---- rbm | 2 +- rbm.conf | 45 ++++++++++++++++++++------- tor-browser-build | 2 +- 13 files changed, 99 insertions(+), 26 deletions(-)
diff --git a/Makefile b/Makefile index cdef67c..699ff19 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ rbm=./rbm/rbm
all: tor-messenger
-tor-messenger: tor-messenger-linux-x86_64 tor-messenger-linux-i686 tor-messenger-windows-i686 tor-messenger-osx-x86_64 +tor-messenger: tor-messenger-linux-x86_64 tor-messenger-linux-i686 tor-messenger-windows-i686 tor-messenger-windows-x86_64 tor-messenger-osx-x86_64
tor-messenger-release: submodule-update $(rbm) build tor-messenger-release --target tormessenger-all @@ -18,6 +18,9 @@ tor-messenger-linux-i686: submodule-update tor-messenger-windows-i686: submodule-update $(rbm) build tor-messenger --target tor-messenger --target tormessenger-windows-i686
+tor-messenger-windows-x86_64: submodule-update + $(rbm) build tor-messenger --target tor-messenger --target tormessenger-windows-x86_64 + tor-messenger-osx-x86_64: submodule-update $(rbm) build tor-messenger --target tor-messenger --target tormessenger-osx-x86_64
diff --git a/projects/ctypes-otr/config b/projects/ctypes-otr/config index a3feb2a..0642a5b 100644 --- a/projects/ctypes-otr/config +++ b/projects/ctypes-otr/config @@ -10,7 +10,7 @@ filename: 'ctypes-otr-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_i var: lib_glob: 'lib/*.so*' targets: - windows-i686: + windows: var: lib_glob: 'bin/*.dll' osx-x86_64: diff --git a/projects/instantbird/config b/projects/instantbird/config index 446330c..1ab021a 100644 --- a/projects/instantbird/config +++ b/projects/instantbird/config @@ -21,6 +21,10 @@ targets: var: martools_filename: mar-tools-win32.zip archive_suffix: zip + windows-x86_64: + var: + martools_filename: mar-tools-win64.zip + archive_suffix: zip linux: var: arch_deps: diff --git a/projects/instantbird/mozconfig-windows-x86_64 b/projects/instantbird/mozconfig-windows-x86_64 new file mode 100644 index 0000000..a8fbcc3 --- /dev/null +++ b/projects/instantbird/mozconfig-windows-x86_64 @@ -0,0 +1,10 @@ +export CROSS_COMPILE=1 + +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-mingw + +ac_add_options --target=x86_64-w64-mingw32 +ac_add_options --with-toolchain-prefix=x86_64-w64-mingw32- + +ac_add_options --enable-default-toolkit=cairo-windows +ac_add_options --enable-strip +ac_add_options --disable-sandbox diff --git a/projects/libgpg-error/config b/projects/libgpg-error/config index a815397..512f5a8 100644 --- a/projects/libgpg-error/config +++ b/projects/libgpg-error/config @@ -9,7 +9,7 @@ var: container: use_container: 1 targets: - windows-i686: + windows: var: arch_deps: - gettext diff --git a/projects/libotr/config b/projects/libotr/config index 12cf34b..6a76aec 100644 --- a/projects/libotr/config +++ b/projects/libotr/config @@ -10,13 +10,16 @@ var: container: use_container: 1 targets: - windows-i686: + windows: var: arch_deps: - gettext - configure_opt: '--host=i686-w64-mingw32 CFLAGS="[% c("var/CFLAGS_otr") %]" LDFLAGS="[% c("var/LDFLAGS_otr") %]" CC="i686-w64-mingw32-gcc -static-libgcc"' + configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% c("var/CFLAGS_otr") %]" LDFLAGS="[% c("var/LDFLAGS_otr") %]"' CFLAGS_otr: '[% c("var/CFLAGS") %] -Wl,-Bstatic,-L/var/tmp/dist/libgcrypt/lib,-lgcrypt,-L/var/tmp/dist/libgpg-error/lib,-lgpg-error,-Bdynamic' LDFLAGS_otr: '[% c("var/LDFLAGS") %] -Wl,-Bstatic,-L/var/tmp/dist/libgcrypt/lib,-lgcrypt,-L/var/tmp/dist/libgpg-error/lib,-lgpg-error,-Bdynamic' + flag_mwindows: '-mwindows' + compiler: mingw-w64 + osx-x86_64: var: arch_deps: diff --git a/projects/mozilla/STL_win64.patch b/projects/mozilla/STL_win64.patch new file mode 100644 index 0000000..e528905 --- /dev/null +++ b/projects/mozilla/STL_win64.patch @@ -0,0 +1,24 @@ +From 8f8c1a1069d4907d3cedae578975225d8caeecaf Mon Sep 17 00:00:00 2001 +From: Nicolas Vigier boklm@torproject.org +Date: Sat, 12 Aug 2017 22:00:13 +0200 +Subject: [PATCH] Bug 23231: disable STL Wrappers on Windows + +Workaround for: +https://bugzilla.mozilla.org/show_bug.cgi?id=1392604 +--- + old-configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/old-configure.in b/old-configure.in +index f5a2f05..e247551 100644 +--- a/old-configure.in ++++ b/old-configure.in +@@ -1338,7 +1338,7 @@ MOZ_CXX11 + AC_LANG_C + + case "${OS_TARGET}" in +-Darwin) ++WINNT|Darwin) + ;; + *) + STL_FLAGS="-I${DIST}/stl_wrappers" diff --git a/projects/mozilla/config b/projects/mozilla/config index 39a2f81..f3c4234 100644 --- a/projects/mozilla/config +++ b/projects/mozilla/config @@ -11,3 +11,5 @@ input_files: - filename: 0003-OSX-package-as-tar.bz2.patch - filename: 0004-Updater-fixups-for-TM.patch - filename: 0005-Permit-storing-exceptions-even-w-inPrivateBrowsingMo.patch + - filename: STL_win64.patch + enable: '[% c("var/windows-x86_64") %]' diff --git a/projects/tor-browser/config b/projects/tor-browser/config index 56c4171..949b048 100644 --- a/projects/tor-browser/config +++ b/projects/tor-browser/config @@ -11,7 +11,7 @@ input_files: var: base_url: "https://dist.torproject.org/torbrowser/%5B% c('version') %]" targets: - windows-i686: + windows: URL: "[% c('var/base_url') %]/torbrowser-install-[% c('version') %]_en-US.exe" osx-x86_64: URL: "[% c('var/base_url') %]/TorBrowser-[% c('version') %]-osx64_en-US.dmg" diff --git a/projects/tor-messenger/config b/projects/tor-messenger/config index 92fc588..61b439a 100644 --- a/projects/tor-messenger/config +++ b/projects/tor-messenger/config @@ -41,6 +41,8 @@ input_files: enable: '[% c("var/osx") %]' - project: nsis name: nsis + target: + - tormessenger-windows-i686 enable: '[% c("var/windows") %]' - URL: https://people.torproject.org/~mikeperry/mirrors/sources/msvcr100.dll sha256sum: 1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067 @@ -55,16 +57,20 @@ var: container: use_container: 1 targets: + windows: + var: + arch_deps: + - python-pefile windows-i686: var: bundle_filename: 'tormessenger-install-[% c("version") %]_en-US.exe' mar_osname: win32 - arch_deps: - - nsis - - python - - python-dev - - build-essential - - python-pefile + windows-x86_64: + var: + bundle_filename: 'tormessenger-install-[% c("version") %]_en-US.exe' + mar_osname: win64 + container: + arch: i386 osx-x86_64: var: bundle_filename: 'TorMessenger-[% c("version") %]-osx64_en-US.dmg' diff --git a/rbm b/rbm index 5c89374..b83c74c 160000 --- a/rbm +++ b/rbm @@ -1 +1 @@ -Subproject commit 5c89374df7957238a9565c0b938ee3f30f880438 +Subproject commit b83c74ca4b91732f64011f0255a1594f7747b340 diff --git a/rbm.conf b/rbm.conf index 74af21e..886d777 100644 --- a/rbm.conf +++ b/rbm.conf @@ -11,7 +11,7 @@ pkg_type: build # When adding a new option to buildconf, a default value should be defined # in var/build_id, so that changing this option does not affect the build_id. buildconf: - num_procs: '[% GET ENV.RBM_NUM_PROCS ? ENV.RBM_NUM_PROCS : "8" %]' + num_procs: '[% GET ENV.RBM_NUM_PROCS ? ENV.RBM_NUM_PROCS : "2" %]'
var: tormessenger_version: '0.6.0b1' @@ -24,7 +24,7 @@ var: # in the same order. In the cases where the installation order is # important, sort_deps should be set to 0. sort_deps: 1 - build_id: '[% sha256(c("var/build_id_txt", { buildconf => { num_procs => 8 } })).substr(0, 6) %]' + build_id: '[% sha256(c("var/build_id_txt", { buildconf => { num_procs => 2 } })).substr(0, 6) %]' build_id_txt: | [% c("version") %] [% IF c("git_hash") || c("hg_hash"); GET c("abbrev"); END; %] @@ -121,18 +121,46 @@ targets: - zip - unzip
+ tormessenger-windows-x86_64: + - windows-x86_64 + - windows + - tor-messenger + tormessenger-windows-i686: - windows-i686 + - windows - tor-messenger + + windows-x86_64: + arch: x86_64 + var: + windows-x86_64: 1 + osname: windows-x86_64 + container: + arch: amd64 + faketime_path: /usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 + windows-i686: arch: i686 var: - windows: 1 + windows-i686: 1 osname: windows-i686 container: - suite: precise arch: i386 - configure_opt: '--host=i686-w64-mingw32 CFLAGS="[% c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]"' + faketime_path: /usr/lib/i386-linux-gnu/faketime/libfaketime.so.1 + setarch: | + if test -z "$RBM_SETARCH" + then + export RBM_SETARCH=1 + exec setarch i686 ./build + fi + + windows: + var: + windows: 1 + container: + suite: jessie + configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]"' CFLAGS: '[% c("var/flag_mwindows") %] -fstack-protector-all -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security' LDFLAGS: '[% c("var/flag_mwindows") %] -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -lssp -L$gcclibs' flag_mwindows: '-mwindows' @@ -145,13 +173,6 @@ targets: - libtool - zip - unzip - faketime_path: /usr/lib/faketime/libfaketime.so.1 - setarch: | - if test -z "$RBM_SETARCH" - then - export RBM_SETARCH=1 - exec setarch i686 ./build - fi
tormessenger-osx-x86_64: - osx-x86_64 diff --git a/tor-browser-build b/tor-browser-build index d2dee35..62ee652 160000 --- a/tor-browser-build +++ b/tor-browser-build @@ -1 +1 @@ -Subproject commit d2dee352354ee77cd26ac37bef41322df2729ff8 +Subproject commit 62ee652c588858ded1aa02261510f1c05234795a
tor-commits@lists.torproject.org