mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
Merge branch 'develop' into 1064_tabs
This commit is contained in:
commit
097f5f6047
83
BUILD.md
83
BUILD.md
@ -1,3 +1,22 @@
|
||||
# Index
|
||||
* [Building OnionShare](#building-onionshare)
|
||||
* [Linux](#linux)
|
||||
* [For Debian-like distros](#for-debian-like-distros)
|
||||
* [For Fedora-like distros](#for-fedora-like-distros)
|
||||
* [macOS](#macos)
|
||||
* [Windows](#windows)
|
||||
* [Setting up your dev environment](#setting-up-your-dev-environment)
|
||||
* [To make a .exe](#to-make-a-exe)
|
||||
* [To build the installer](#to-build-the-installer)
|
||||
* [Running tests](#running-tests)
|
||||
* [Making releases](#making-releases)
|
||||
* [Changelog, version, and signed git tag](#changelog-version-and-signed-git-tag)
|
||||
* [Linux release](#linux-release)
|
||||
* [macOS release](#macos-release)
|
||||
* [Windows release](#windows-release)
|
||||
* [Source package](#source-package)
|
||||
* [Publishing the release](#publishing-the-release)
|
||||
|
||||
# Building OnionShare
|
||||
|
||||
Start by getting the source code:
|
||||
@ -11,13 +30,13 @@ cd onionshare
|
||||
|
||||
Install the needed dependencies:
|
||||
|
||||
For Debian-like distros:
|
||||
#### For Debian-like distros:
|
||||
|
||||
```
|
||||
apt install -y python3-flask python3-stem python3-pyqt5 python3-crypto python3-socks python-nautilus tor obfs4proxy python3-pytest build-essential fakeroot python3-all python3-stdeb dh-python python3-flask-httpauth python3-distutils python3-psutil python3-watchdog
|
||||
```
|
||||
|
||||
For Fedora-like distros:
|
||||
#### For Fedora-like distros:
|
||||
|
||||
```
|
||||
dnf install -y python3-flask python3-flask-httpauth python3-stem python3-qt5 python3-crypto python3-pysocks nautilus-python tor obfs4 python3-pytest rpm-build python3-psutil python3-watchdog
|
||||
@ -36,7 +55,7 @@ Create a .deb on Debian-like distros: `./install/build_deb.sh`
|
||||
|
||||
Create a .rpm on Fedora-like distros: `./install/build_rpm.sh`
|
||||
|
||||
For OpenSuSE: There are instructions for building [in the wiki](https://github.com/micahflee/onionshare/wiki/Linux-Distribution-Support#opensuse-leap-150).
|
||||
For openSUSE: There are instructions for building [in the wiki](https://github.com/micahflee/onionshare/wiki/Linux-Distribution-Support#opensuse-leap-150).
|
||||
|
||||
For ArchLinux: There is a PKBUILD available [here](https://aur.archlinux.org/packages/onionshare/) that can be used to install OnionShare.
|
||||
|
||||
@ -52,24 +71,17 @@ You may also need to run the command `/Applications/Python\ 3.7/Install\ Certifi
|
||||
|
||||
Install Qt 5.13.1 for macOS from https://www.qt.io/offline-installers. I downloaded `qt-opensource-mac-x64-5.13.1.dmg`. In the installer, you can skip making an account, and all you need is `Qt` > `Qt 5.13.1` > `macOS`.
|
||||
|
||||
Now install pip dependencies. If you want to use a virtualenv, create it and activate it first:
|
||||
If you don't have it already, install poetry (`pip3 install --user poetry`). Then install dependencies:
|
||||
|
||||
```sh
|
||||
python3 -m venv venv
|
||||
. venv/bin/activate
|
||||
```
|
||||
|
||||
Then install the dependencies:
|
||||
|
||||
```sh
|
||||
pip3 install -r install/requirements.txt
|
||||
poetry install
|
||||
```
|
||||
|
||||
#### You can run both the CLI and GUI versions of OnionShare without building an bundle
|
||||
|
||||
```sh
|
||||
./dev_scripts/onionshare
|
||||
./dev_scripts/onionshare-gui
|
||||
poetry run ./dev_scripts/onionshare
|
||||
poetry run ./dev_scripts/onionshare-gui
|
||||
```
|
||||
|
||||
#### To build the app bundle
|
||||
@ -94,19 +106,25 @@ Now you should have `dist/OnionShare.pkg`.
|
||||
|
||||
Download Python 3.7.4, 32-bit (x86) from https://www.python.org/downloads/release/python-374/. I downloaded `python-3.7.4.exe`. When installing it, make sure to check the "Add Python 3.7 to PATH" checkbox on the first page of the installer.
|
||||
|
||||
Open a command prompt, cd to the onionshare folder, and install dependencies with pip:
|
||||
Install the Qt 5.13.1 from https://www.qt.io/offline-installers. I downloaded `qt-opensource-windows-x86-5.13.1.exe`. In the installer, you can skip making an account, and all you need `Qt` > `Qt 5.13.1` > `MSVC 2017 32-bit`.
|
||||
|
||||
```cmd
|
||||
pip install -r install\requirements.txt
|
||||
Install [poetry](https://python-poetry.org/). Open PowerShell, and run:
|
||||
|
||||
```
|
||||
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python
|
||||
```
|
||||
|
||||
Install the Qt 5.13.1 from https://www.qt.io/offline-installers. I downloaded `qt-opensource-windows-x86-5.13.1.exe`. In the installer, you can skip making an account, and all you need `Qt` > `Qt 5.13.1` > `MSVC 2017 32-bit`.
|
||||
And add `%USERPROFILE%\.poetry\bin` to your path. Then open a command prompt and cd to the `dangerzone` folder, and install the poetry dependencies:
|
||||
|
||||
```
|
||||
poetry install
|
||||
```
|
||||
|
||||
After that you can try both the CLI and the GUI version of OnionShare:
|
||||
|
||||
```
|
||||
python dev_scripts\onionshare
|
||||
python dev_scripts\onionshare-gui
|
||||
poetry run python dev_scripts\onionshare
|
||||
poetry run python dev_scripts\onionshare-gui
|
||||
```
|
||||
|
||||
#### If you want to build a .exe
|
||||
@ -141,19 +159,6 @@ cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\
|
||||
vcvars32.bat
|
||||
```
|
||||
|
||||
Make sure you have a new enough `setuptools`:
|
||||
|
||||
```
|
||||
pip install --upgrade setuptools
|
||||
```
|
||||
|
||||
Now make sure you don't have PyInstaller installed from pip:
|
||||
|
||||
```
|
||||
pip uninstall PyInstaller
|
||||
rmdir C:\Users\user\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\PyInstaller /S
|
||||
```
|
||||
|
||||
Change to a folder where you keep source code, and clone the PyInstaller git repo and checkout the `v3.5` tag:
|
||||
|
||||
```
|
||||
@ -164,6 +169,14 @@ git tag -v v3.5
|
||||
|
||||
(Note that ideally you would verify the git tag, but the PGP key that has signed the `v3.5` git tag for is not published anywhere, so this isn't possible. See [this issue](https://github.com/pyinstaller/pyinstaller/issues/4430).)
|
||||
|
||||
The next step is to compile the bootloader. We should do this all in dangerzone's poetry shell:
|
||||
|
||||
```
|
||||
cd onionshare
|
||||
poetry shell
|
||||
cd ..\pyinstaller
|
||||
```
|
||||
|
||||
And compile the bootloader, following [these instructions](https://pythonhosted.org/PyInstaller/bootloader-building.html). To compile, run this:
|
||||
|
||||
```
|
||||
@ -171,11 +184,12 @@ cd bootloader
|
||||
python waf distclean all --target-arch=32bit --msvc_targets=x86
|
||||
```
|
||||
|
||||
Finally, install the PyInstaller module into your local site-packages:
|
||||
Finally, install the PyInstaller module into your poetry environment:
|
||||
|
||||
```
|
||||
cd ..
|
||||
python setup.py install
|
||||
exit
|
||||
```
|
||||
|
||||
Now the next time you use PyInstaller to build OnionShare, the `.exe` file should not be flagged as malicious by anti-virus.
|
||||
@ -245,6 +259,7 @@ This section documents the release process. Unless you're a core OnionShare deve
|
||||
Before making a release, all of these should be complete:
|
||||
|
||||
* `share/version.txt` should have the correct version
|
||||
* `pyproject.toml` should have the correct version
|
||||
* `install/onionshare.nsi` should have the correct version, for the Windows installer
|
||||
* `CHANGELOG.md` should be updated to include a list of all major changes since the last release
|
||||
* There must be a PGP-signed git tag for the version, e.g. for OnionShare 2.1, the tag must be `v2.1`
|
||||
|
@ -4,6 +4,7 @@ GenericName=OnionShare Client
|
||||
Comment=Share a file securely and anonymously over Tor
|
||||
Comment[da]=Del en fil sikkert og anonymt over Tor
|
||||
Comment[de]=Teile Dateien sicher und anonym über das Tor-Netzwerk
|
||||
Comment[hr]=Dijeli datoteku sigurno i anonimno preko Tora
|
||||
Exec=/usr/bin/onionshare-gui
|
||||
Terminal=false
|
||||
Type=Application
|
||||
@ -12,5 +13,6 @@ Categories=Network;FileTransfer;
|
||||
Keywords=tor;anonymity;privacy;onion service;file sharing;file hosting;
|
||||
Keywords[da]=tor;anonymitet;privatliv;onion-tjeneste;fildeling;filhosting;
|
||||
Keywords[de]=tor;Anonymität;Privatsphäre;Onion-Service;File-Sharing;File-Hosting;
|
||||
Keywords[hr]=tor;anonimnost;privatnost;Onion usluga;dijeljenje datoteka;hosting datoteka;
|
||||
StartupNotify=true
|
||||
StartupWMClass=onionshare
|
||||
|
@ -1,10 +0,0 @@
|
||||
atomicwrites==1.3.0
|
||||
attrs==19.1.0
|
||||
more-itertools==7.2.0
|
||||
pluggy==0.13.0
|
||||
py==1.8.0
|
||||
pytest==5.1.2
|
||||
pytest-faulthandler==2.0.1
|
||||
pytest-qt==3.2.2
|
||||
six==1.12.0
|
||||
urllib3==1.25.3
|
@ -1,24 +0,0 @@
|
||||
altgraph==0.16.1
|
||||
certifi==2019.9.11
|
||||
chardet==3.0.4
|
||||
Click==7.0
|
||||
Flask==1.1.1
|
||||
Flask-HTTPAuth==3.3.0
|
||||
future==0.17.1
|
||||
idna==2.8
|
||||
itsdangerous==1.1.0
|
||||
Jinja2==2.10.1
|
||||
macholib==1.11
|
||||
MarkupSafe==1.1.1
|
||||
pefile==2019.4.18
|
||||
pycryptodome==3.9.0
|
||||
PyInstaller==3.5
|
||||
PyQt5==5.13.1
|
||||
PyQt5-sip==4.19.19
|
||||
PySocks==1.7.0
|
||||
requests==2.22.0
|
||||
stem==1.7.1
|
||||
urllib3==1.25.3
|
||||
Werkzeug==0.15.6
|
||||
watchdog==0.9.0
|
||||
psutil==5.6.7
|
@ -46,6 +46,30 @@ def main(cwd=None):
|
||||
|
||||
# Display OnionShare banner
|
||||
print(f"OnionShare {common.version} | https://onionshare.org/")
|
||||
reset='\033[0m'
|
||||
purple='\33[95m'
|
||||
print(purple)
|
||||
print(" @@@@@@@@@ ")
|
||||
print(" @@@@@@@@@@@@@@@@@@@ ")
|
||||
print(" @@@@@@@@@@@@@@@@@@@@@@@@@ ")
|
||||
print(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ")
|
||||
print(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _ ")
|
||||
print(" @@@@@@ @@@@@@@@@@@@@ / _ \ (_) ")
|
||||
print(" @@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __ ")
|
||||
print(" @@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \ ")
|
||||
print(" @@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | | ")
|
||||
print(" @@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_| ")
|
||||
print(" @@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _ ")
|
||||
print(" @@@@@@@@@@ @@@@@@@@@@@@ / ___| | ")
|
||||
print(" @@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___ ")
|
||||
print(" @@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \\")
|
||||
print(" @@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/")
|
||||
print(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|")
|
||||
print(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ")
|
||||
print(" @@@@@@@@@@@@@@@@@@@@@@@@@ ")
|
||||
print(" @@@@@@@@@@@@@@@@@@@ ")
|
||||
print(" @@@@@@@@@ ")
|
||||
print(reset)
|
||||
|
||||
# OnionShare CLI in OSX needs to change current working directory (#132)
|
||||
if common.platform == "Darwin":
|
||||
|
1116
poetry.lock
generated
Normal file
1116
poetry.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
50
pyproject.toml
Normal file
50
pyproject.toml
Normal file
@ -0,0 +1,50 @@
|
||||
[tool.poetry]
|
||||
name = "onionshare"
|
||||
version = "2.2"
|
||||
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
|
||||
authors = ["Micah Lee <micah@micahflee.com>"]
|
||||
license = "GPLv3+"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "*"
|
||||
altgraph = "*"
|
||||
certifi = "*"
|
||||
chardet = "*"
|
||||
Click = "*"
|
||||
Flask = "*"
|
||||
Flask-HTTPAuth = "*"
|
||||
future = "*"
|
||||
idna = "*"
|
||||
itsdangerous = "*"
|
||||
Jinja2 = "*"
|
||||
macholib = "*"
|
||||
MarkupSafe = "*"
|
||||
pefile = "*"
|
||||
pycryptodome = "*"
|
||||
PyQt5 = "*"
|
||||
PyQt5-sip = "*"
|
||||
PySocks = "*"
|
||||
requests = "*"
|
||||
stem = "*"
|
||||
urllib3 = "*"
|
||||
Werkzeug = "*"
|
||||
watchdog = "*"
|
||||
psutil = "*"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
atomicwrites = "*"
|
||||
attrs = "*"
|
||||
more-itertools = "*"
|
||||
pluggy = "*"
|
||||
py = "*"
|
||||
pytest = "*"
|
||||
pytest-faulthandler = "*"
|
||||
pytest-qt = "*"
|
||||
six = "*"
|
||||
urllib3 = "*"
|
||||
pyinstaller = {version = "*", platform = "darwin"}
|
||||
setuptools = {version = "*", platform = "windows"}
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry>=0.12"]
|
||||
build-backend = "poetry.masonry.api"
|
Loading…
Reference in New Issue
Block a user