aboutsummaryrefslogtreecommitdiff
path: root/desktop/scripts/build-meek-client.py
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2021-10-24 11:48:18 -0700
committerMicah Lee <micah@micahflee.com>2021-10-24 11:48:18 -0700
commitdbeb0f21945b07e949ac751d2b5f6311445bb24d (patch)
treef6e6755a9cbf8c1a7182cc080671353764fb9bd5 /desktop/scripts/build-meek-client.py
parent7a45f801d92edea5329363e82a8e4d6ef3ab2000 (diff)
downloadonionshare-dbeb0f21945b07e949ac751d2b5f6311445bb24d.tar.gz
onionshare-dbeb0f21945b07e949ac751d2b5f6311445bb24d.zip
Add script to compile meek-client and copy into resources
Diffstat (limited to 'desktop/scripts/build-meek-client.py')
-rwxr-xr-xdesktop/scripts/build-meek-client.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/desktop/scripts/build-meek-client.py b/desktop/scripts/build-meek-client.py
new file mode 100755
index 00000000..d043754c
--- /dev/null
+++ b/desktop/scripts/build-meek-client.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+
+"""
+This script downloads a pre-built tor binary to bundle with OnionShare.
+In order to avoid a Mac gnupg dependency, I manually verify the signature
+and hard-code the sha256 hash.
+"""
+import shutil
+import os
+import subprocess
+import inspect
+
+
+def main():
+ if shutil.which("go") is None:
+ print("Install go: https://golang.org/doc/install")
+ return
+
+ subprocess.run(
+ [
+ "go",
+ "install",
+ "git.torproject.org/pluggable-transports/meek.git/meek-client@v0.37.0",
+ ]
+ )
+
+ root_path = os.path.dirname(
+ os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
+ )
+ dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor")
+
+ bin_path = os.path.expanduser("~/go/bin/meek-client")
+ shutil.copyfile(
+ os.path.join(bin_path),
+ os.path.join(dist_path, "meek-client"),
+ )
+ os.chmod(os.path.join(dist_path, "meek-client"), 0o755)
+
+ print(f"Installed meek-client in {dist_path}")
+
+
+if __name__ == "__main__":
+ main()