diff --git a/projects/browser/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix b/projects/browser/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix index c15471bce404b0fd673b844793f6c437e25b34d9..34aaedc46185804c0240cb419a013ac45045d149 100644 --- a/projects/browser/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix +++ b/projects/browser/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix @@ -3,3 +3,6 @@ ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit exec ./TorBrowser ## snowflake configuration ClientTransportPlugin snowflake exec ./TorBrowser/Tor/PluggableTransports/snowflake-client + +## webtunnel configuration +ClientTransportPlugin webtunnel exec ./TorBrowser/Tor/PluggableTransports/webtunnel-client diff --git a/projects/browser/Bundle-Data/PTConfigs/mac/torrc-defaults-appendix b/projects/browser/Bundle-Data/PTConfigs/mac/torrc-defaults-appendix index 020b071adce97e0190e621eef624ef11aa35740b..9e17f053c2f73f6a3a4f356b05abfc3f2ec219e9 100644 --- a/projects/browser/Bundle-Data/PTConfigs/mac/torrc-defaults-appendix +++ b/projects/browser/Bundle-Data/PTConfigs/mac/torrc-defaults-appendix @@ -3,3 +3,6 @@ ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit exec PluggableTra ## snowflake configuration ClientTransportPlugin snowflake exec PluggableTransports/snowflake-client + +## webtunnel configuration +ClientTransportPlugin webtunnel exec PluggableTransports/webtunnel-client diff --git a/projects/browser/Bundle-Data/PTConfigs/windows/torrc-defaults-appendix b/projects/browser/Bundle-Data/PTConfigs/windows/torrc-defaults-appendix index 00166e08c0fe67e92f249b5dc3426188d3317f21..7c593a5efaf616dea3f1491ecc608769fde962a4 100644 --- a/projects/browser/Bundle-Data/PTConfigs/windows/torrc-defaults-appendix +++ b/projects/browser/Bundle-Data/PTConfigs/windows/torrc-defaults-appendix @@ -3,3 +3,6 @@ ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit exec TorBrowser\T ## snowflake configuration ClientTransportPlugin snowflake exec TorBrowser\Tor\PluggableTransports\snowflake-client.exe + +## webtunnel configuration +ClientTransportPlugin webtunnel exec TorBrowser\Tor\PluggableTransports\webtunnel-client.exe diff --git a/projects/browser/build b/projects/browser/build index 57544b461852a94d12420d0fec4be112c55305c3..cb42b5fb676e9c6b5ac8ff8768a113f7d2199e38 100644 --- a/projects/browser/build +++ b/projects/browser/build @@ -88,9 +88,13 @@ mv [% c('input_files_by_name/noscript') %] "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b rm -f aarch64/tor/pluggable_transports/bridges_list.*.txt [% END -%] - # Snowflake's README is the only documentation shipped in tor-expert-bundle + # Snowflake's README is a documentation shipped in tor-expert-bundle mkdir -p "$TBDIR/$DOCSPATH/snowflake" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$DOCSPATH/snowflake"[% END %] mv_tbdir tor/pluggable_transports/README.SNOWFLAKE.md "$DOCSPATH/snowflake/README.md" + + # WebTunnel's README is a documentation shipped in tor-expert-bundle + mkdir -p "$TBDIR/$DOCSPATH/webtunnel" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$DOCSPATH/webtunnel"[% END %] + mv_tbdir tor/pluggable_transports/README.WEBTUNNEL.md "$DOCSPATH/webtunnel/README.md" # Move the PTs to where TB expects them mkdir -p "$TBDIR/$TORBINPATH" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$TORBINPATH"[% END %] diff --git a/projects/go/config b/projects/go/config index 976f5485a3c19b754e32d71a8c87cb5d800e7ea0..c21c7765fdddcc0caf841fa227d3029234c107cd 100644 --- a/projects/go/config +++ b/projects/go/config @@ -26,7 +26,7 @@ var: export CGO_LDFLAGS_ALLOW="-z|noexecstack" export CGO_LDFLAGS="-z noexecstack" [% END -%] - [% IF c("var/linux-i686") -%] + [% IF c("var/cgo") -%] export CGO_ENABLED=1 [% END -%] export GOTMPDIR=/var/tmp/build/go-tmp diff --git a/projects/tor-expert-bundle/build b/projects/tor-expert-bundle/build index 0a8957c5cefad047c336734bf4796bae6af36c62..b8bd5558729a0a00fd9179fa5c8a1c1ae5eda11a 100644 --- a/projects/tor-expert-bundle/build +++ b/projects/tor-expert-bundle/build @@ -11,6 +11,7 @@ mkdir pluggable_transports && cd pluggable_transports tar -xkf $rootdir/[% c('input_files_by_name/obfs4') %] tar -xkf $rootdir/[% c('input_files_by_name/snowflake') %] +tar -xkf $rootdir/[% c('input_files_by_name/webtunnel') %] # copy in bridge lines for each pluggable transport mv $rootdir/bridges_list.obfs4.txt . diff --git a/projects/tor-expert-bundle/config b/projects/tor-expert-bundle/config index 894539efed806af30a09450b956d89436dca2f06..e93421da08712444b0af138f1b394b786b7ad81e 100644 --- a/projects/tor-expert-bundle/config +++ b/projects/tor-expert-bundle/config @@ -13,6 +13,8 @@ input_files: project: obfs4 - name: snowflake project: snowflake + - project: webtunnel + name: webtunnel - filename: bridges_list.obfs4.txt - filename: bridges_list.meek-azure.txt - - filename: bridges_list.snowflake.txt + - filename: bridges_list.snowflake.txt \ No newline at end of file diff --git a/projects/webtunnel/build b/projects/webtunnel/build new file mode 100644 index 0000000000000000000000000000000000000000..79450554c390763408545e90c6262b6fee0e0c68 --- /dev/null +++ b/projects/webtunnel/build @@ -0,0 +1,34 @@ +#!/bin/bash +[% c("var/set_default_env") -%] +[% pc('go', 'var/setup', { go_tarfile => c('input_files_by_name/go') }) %] +distdir=/var/tmp/dist/[% project %] +mkdir -p $distdir + +[% IF c("var/android") -%] + [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %] + # We need to explicitly set CGO_ENABLED with Go 1.13.x as the Android build + # breaks otherwise. + export CGO_ENABLED=1 +[% END -%] + +tar -C /var/tmp/dist -xf [% c('input_files_by_name/goptlib') %] + +mkdir -p /var/tmp/build +tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz +cd /var/tmp/build/[% project %]-[% c('version') %] + +mkdir -p "$GOPATH/src/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel.git" +ln -sf "$PWD" "$GOPATH/src/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel" + +cd main/client +go build -ldflags '-s' +cp -a client[% IF c("var/windows") %].exe[% END %] $distdir/webtunnel-client[% IF c("var/windows") %].exe[% END %] + +cd /var/tmp/build/[% project %]-[% c('version') %] +cp -a README.md $distdir/README.WEBTUNNEL.md + +cd $distdir +[% c('tar', { + tar_src => [ '.' ], + tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'), + }) %] diff --git a/projects/webtunnel/config b/projects/webtunnel/config new file mode 100644 index 0000000000000000000000000000000000000000..ef26aeffa398a40f095f024d891fa67fd2a1e17c --- /dev/null +++ b/projects/webtunnel/config @@ -0,0 +1,17 @@ +# vim: filetype=yaml sw=2 +version: '[% c("abbrev") %]' +git_url: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel.git +git_hash: 2ecf64381bad8a5db45c5871dcad7d12831dca69 +filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz' +container: + use_container: 1 + +input_files: + - project: container-image + - name: go + project: go + - name: goptlib + project: goptlib + - name: '[% c("var/compiler") %]' + project: '[% c("var/compiler") %]' + enable: '[% c("var/android") %]'