Commit fc95a151 authored by Chris Lamb's avatar Chris Lamb 💬

New upstream version 2.1

parent 5e8f8bd9
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
version: 2
workflows:
version: 2
test:
jobs:
- test-3.5
- test-3.6
- test-3.7
jobs:
test-3.5: &test-template
docker:
- image: circleci/python:3.5.6
working_directory: ~/repo
steps:
- checkout
- run:
name: install dependencies
command: |
sudo apt-get update
sudo apt-get install -y python3-pip python3-flask python3-stem python3-pyqt5 python3-crypto python3-socks python3-stdeb python3-all python-nautilus xvfb obfs4proxy
sudo pip3 install -r install/requirements.txt
sudo pip3 install -r install/requirements-tests.txt
sudo pip3 install pytest-cov flake8
# run tests!
- run:
name: run flake tests
command: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- run:
name: run tests
command: |
xvfb-run pytest --rungui --cov=onionshare --cov=onionshare_gui --cov-report=term-missing -vvv tests/
test-3.6:
<<: *test-template
docker:
- image: circleci/python:3.6.6
test-3.7:
<<: *test-template
docker:
- image: circleci/python:3.7.1
* @micahflee
# localization
/share/locale/ @emmapeel2
# tests
/tests/ @mig5
/tests_gui_local/ @mig5
/tests_gui_tor/ @mig5
__pycache__
*.py[cod]
# C extensions
......@@ -47,3 +48,6 @@ tags
# OSX
.DS_Store
# virtualenv
venv
language: python
# sudo: required
dist: trusty
python:
- "3.4"
- "3.5"
- "3.6"
- "3.6-dev"
- "3.7-dev"
- "nightly"
# command to install dependencies
install:
- pip install Flask==0.12 stem==1.5.4 pytest-cov coveralls flake8
before_script:
# stop the build if there are Python syntax errors or undefined names
- flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
# command to run tests
script: pytest --cov=onionshare test/
after_success:
- coveralls
This diff is collapsed.
# OnionShare Changelog
## 2.1
* New feature: Auto-start timer, which allows scheduling when the server starts
* Renamed CLI argument --debug to --verbose
* Make Tor connection timeout configurable as a CLI argument
* Updated various dependencies, including to fix third-party security issues in urllib3, jinja2, and jQuery
* Update Tor to 0.3.5.8
* New translations:
* Traditional Chinese (正體中文 (繁體)),
* Simplified Chinese (中文 (简体))
* Finnish (Suomi)
* German (Deutsch)
* Icelandic (Íslenska)
* Irish (Gaeilge)
* Norwegian Bokmål (Norsk Bokmål)
* Polish (Polski)
* Portuguese Portugal (Português (Portugal))
* Telugu (తెలుగు)
* Turkish (Türkçe)
* Ukrainian (Українська)
* Removed translations because less than 90% of the strings were translated:
* Bengali (বাংলা)
* Persian (فارسی),
## 2.0
* New feature: Receiver mode allows you to receive files with OnionShare, instead of only sending files
* New feature: Support for next generation onion services
* New feature: macOS sandbox is enabled
* New feature: Public mode feature, for public uses of OnionShare, which when enabled turns off slugs in the URL and removes the limit on how many 404 requests can be made
* New feature: If you're sharing a single file, don't zip it up
* New feature: Full support for meek_lite (Azure) bridges
* New feature: Allow selecting your language from a dropdown
* New translations: Bengali (বাংলা), Catalan (Català), Danish (Dansk), French (Français), Greek (Ελληνικά), Italian (Italiano), Japanese (日本語), Persian (فارسی), Portuguese Brazil (Português Brasil), Russian (Русский), Spanish (Español), Swedish (Svenska)
* Several bugfixes
* Invisible to users, but this version includes some major refactoring of the codebase, and a robust set of unit tests which makes OnionShare easier to maintain going forward
## 1.3.2
* Bug fix: In debug mode, stop saving flask debug log in /tmp, where all users can access it
......
(Note: Third-party licenses can be found under install/licenses/.)
OnionShare
Copyright © 2018 Micah Lee <micah@micahflee.com>
Copyright © 2014-2018 Micah Lee <micah@micahflee.com>
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
......
......@@ -4,9 +4,10 @@ include BUILD.md
include share/*
include share/images/*
include share/locale/*
include share/html/*
include share/templates/*
include share/static/*
include install/onionshare.desktop
include install/onionshare.appdata.xml
include install/onionshare80.xpm
include install/scripts/onionshare-nautilus.py
include test/*.py
include tests/*.py
# OnionShare
[![Build Status](https://travis-ci.org/micahflee/onionshare.png)](https://travis-ci.org/micahflee/onionshare)
[OnionShare](https://onionshare.org) is an open source tool for securely and anonymously sending and receiving files using Tor onion services. It works by starting a web server directly on your computer and making it accessible as an unguessable Tor web address that others can load in [Tor Browser](https://www.torproject.org/) to download files from you, or upload files to you. It doesn't require setting up a separate server, using a third party file-sharing service, or even logging into an account.
[OnionShare](https://onionshare.org) lets you securely and anonymously share files of any size. It works by starting a web server, making it accessible as a Tor Onion Service, and generating an unguessable URL to access and download the files. It does _not_ require setting up a separate server or using a third party file-sharing service. You host the files on your own computer and use a Tor Onion Service to make it temporarily accessible over the internet. The receiving user just needs to open the URL in Tor Browser to download the file.
Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly any other way people typically send files to each other, when you use OnionShare you don't give any companies access to the files that you're sharing. So long as you share the unguessable web address in a secure way (like pasting it in an encrypted messaging app), _no one_ but you and the person you're sharing with can access the files.
## Documentation
To learn how OnionShare works, what its security properties are, and how to use it, check out the [wiki](https://github.com/micahflee/onionshare/wiki).
## Downloading Onionshare
## Installing OnionShare
You can download OnionShare for Windows and macOS from the [OnionShare website](https://onionshare.org). It should be available in your package manager for Linux, and it's included by default in [Tails](https://tails.boum.org).
You can download OnionShare for Windows and macOS from the [OnionShare website](https://onionshare.org).
## Developing OnionShare
For macOS you can also use [Homebrew](https://brew.sh/):
You can set up your development environment to build OnionShare yourself by following [these instructions](/BUILD.md). You may also subscribe to our developers mailing list [here](https://lists.riseup.net/www/info/onionshare-dev).
```
brew cask install onionshare
```
# Screenshots
For Ubuntu-like Linux distributions, you can use this PPA:
![Server Screenshot](/screenshots/server.png)
![Client Screenshot](/screenshots/client.png)
```
sudo add-apt-repository ppa:micahflee/ppa
sudo apt install -y onionshare
```
OnionShare may also be available in your Linux distribution's package manager. Check [this wiki page](https://github.com/micahflee/onionshare/wiki/How-Do-I-Install-Onionshare) for more information.
## Contributing to OnionShare
You can set up your development environment to build OnionShare yourself by following [these instructions](/BUILD.md). You may also subscribe to our mailing list [here](https://lists.riseup.net/www/info/onionshare-dev), and join our public Keybase team [here](https://keybase.io/team/onionshare).
Test status: [![CircleCI](https://circleci.com/gh/micahflee/onionshare.svg?style=svg)](https://circleci.com/gh/micahflee/onionshare)
# Screenshots
![Share mode OnionShare](/screenshots/onionshare-share-server.png)
![Share mode Tor Browser](/screenshots/onionshare-share-client.png)
![Receive mode OnionShare](/screenshots/onionshare-receive-server.png)
![Receive mode Tor Browser](/screenshots/onionshare-receive-client.png)
......@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
Copyright (C) 2018 Micah Lee <micah@micahflee.com>
Copyright (C) 2014-2018 Micah Lee <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
......
......@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
Copyright (C) 2018 Micah Lee <micah@micahflee.com>
Copyright (C) 2014-2018 Micah Lee <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
......
......@@ -23,12 +23,30 @@ if [ "$1" = "--release" ]; then
PKG_PATH="$ROOT/dist/OnionShare.pkg"
IDENTITY_NAME_APPLICATION="Developer ID Application: Micah Lee"
IDENTITY_NAME_INSTALLER="Developer ID Installer: Micah Lee"
ENTITLEMENTS_CHILD_PATH="$ROOT/install/macos_sandbox/child.plist"
ENTITLEMENTS_PARENT_PATH="$ROOT/install/macos_sandbox/parent.plist"
echo "Codesigning the app bundle"
codesign --deep -s "$IDENTITY_NAME_APPLICATION" "$APP_PATH"
codesign \
--deep \
-s "$IDENTITY_NAME_APPLICATION" \
--force \
--entitlements "$ENTITLEMENTS_CHILD_PATH" \
--timestamp \
"$APP_PATH"
codesign \
-s "$IDENTITY_NAME_APPLICATION" \
--force \
--entitlements "$ENTITLEMENTS_PARENT_PATH" \
--timestamp \
"$APP_PATH"
echo "Creating an installer"
productbuild --sign "$IDENTITY_NAME_INSTALLER" --component "$APP_PATH" /Applications "$PKG_PATH"
productbuild \
--sign "$IDENTITY_NAME_INSTALLER" \
--component "$APP_PATH" /Applications \
--timestamp \
"$PKG_PATH"
echo "Cleaning up"
rm -rf "$APP_PATH"
......
......@@ -9,7 +9,7 @@ VERSION=`cat share/version.txt`
rm -r build dist >/dev/null 2>&1
# build binary package
python3 setup.py bdist_rpm --requires="python3-flask, python3-stem, python3-qt5, nautilus-python, tor, obfs4"
python3 setup.py bdist_rpm --requires="python3-flask, python3-stem, python3-qt5, python3-crypto, python3-pysocks, nautilus-python, tor, obfs4"
# install it
echo ""
......
#!/bin/bash
# The script builds a source package
# See https://github.com/micahflee/onionshare/blob/develop/BUILD.md#source-package
# Usage
display_usage() {
echo "Usage: $0 [tag]"
}
if [ $# -lt 1 ]
then
display_usage
exit 1
fi
# Input validation
TAG=$1
if [ "${TAG:0:1}" != "v" ]
then
echo "Tag must start with 'v' character"
exit 1
fi
VERSION=${TAG:1}
# Make sure tag exists
git tag | grep "^$TAG\$"
if [ $? -ne 0 ]
then
echo "Tag does not exist"
exit 1
fi
# Clone source
mkdir -p build/source
mkdir -p dist
cd build/source
git clone https://github.com/micahflee/onionshare.git
cd onionshare
# Verify tag
git tag -v $TAG 2> ../verify.txt
if [ $? -ne 0 ]
then
echo "Tag does not verify"
exit 1
fi
cat ../verify.txt |grep "using RSA key 927F419D7EC82C2F149C1BD1403C2657CD994F73"
if [ $? -ne 0 ]
then
echo "Tag signed with wrong key"
exit 1
fi
cat ../verify.txt |grep "^gpg: Good signature from"
if [ $? -ne 0 ]
then
echo "Tag verification missing 'Good signature from'"
exit 1
fi
# Checkout code
git checkout $TAG
# Delete .git, compress, and PGP sign
cd ..
rm -rf onionshare/.git
tar -cf onionshare-$VERSION.tar.gz onionshare/
gpg -a --detach-sign onionshare-$VERSION.tar.gz
# Move source package to dist
cd ../..
mv build/source/onionshare-$VERSION.tar.gz dist
mv build/source/onionshare-$VERSION.tar.gz.asc dist
# Clean up
rm -rf build/source/onionshare
rm build/source/verify.txt
echo "Source package complete, files are in dist"
......@@ -54,7 +54,13 @@ def main():
dir = args.onionshare_dir
src = files_in(dir, 'onionshare') + files_in(dir, 'onionshare_gui')
src = files_in(dir, 'onionshare') + \
files_in(dir, 'onionshare_gui') + \
files_in(dir, 'onionshare_gui/mode') + \
files_in(dir, 'onionshare_gui/mode/share_mode') + \
files_in(dir, 'onionshare_gui/mode/receive_mode') + \
files_in(dir, 'install/scripts') + \
files_in(dir, 'tests')
pysrc = [p for p in src if p.endswith('.py')]
lang_code = args.lang_code
......@@ -64,11 +70,11 @@ def main():
for line in fileinput.input(pysrc, openhook=fileinput.hook_encoded('utf-8')):
# search `strings._('translate_key')`
# `strings._('translate_key', True)`
m = re.search(r'strings\._\((.*?)\)', line)
m = re.findall(r'strings\._\((.*?)\)', line)
if m:
arg = m.group(1)
key = arg.split(',')[0].strip('''"' ''')
translate_keys.add(key)
for match in m:
key = match.split(',')[0].strip('''"' ''')
translate_keys.add(key)
if args.show_all_keys:
for k in sorted(translate_keys):
......
......@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
Copyright (C) 2018 Micah Lee <micah@micahflee.com>
Copyright (C) 2014-2018 Micah Lee <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
......@@ -35,14 +35,14 @@ import subprocess
import requests
def main():
dmg_url = 'https://archive.torproject.org/tor-package-archive/torbrowser/7.5.5/TorBrowser-7.5.5-osx64_en-US.dmg'
dmg_filename = 'TorBrowser-7.5.5-osx64_en-US.dmg'
expected_dmg_sha256 = '2b445e4237cdd9be0e71e65f76db5d36f0d6c37532982d642803b57e388e4636'
dmg_url = 'https://archive.torproject.org/tor-package-archive/torbrowser/8.0.8/TorBrowser-8.0.8-osx64_en-US.dmg'
dmg_filename = 'TorBrowser-8.0.8-osx64_en-US.dmg'
expected_dmg_sha256 = '1dc01b95146352593c3f18ece25f8735120565f921e22c2827df819effdddca3'
# Build paths
root_path = os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))
working_path = os.path.join(root_path, 'build', 'tor')
dmg_tor_path = os.path.join('/Volumes', 'Tor Browser', 'TorBrowser.app', 'Contents')
dmg_tor_path = os.path.join('/Volumes', 'Tor Browser', 'Tor Browser.app', 'Contents')
dmg_path = os.path.join(working_path, dmg_filename)
dist_path = os.path.join(root_path, 'dist', 'OnionShare.app', 'Contents')
......@@ -88,7 +88,7 @@ def main():
shutil.copyfile(os.path.join(dmg_tor_path, 'Resources', 'TorBrowser', 'Tor', 'geoip6'), os.path.join(dist_path, 'Resources', 'Tor', 'geoip6'))
os.chmod(os.path.join(dist_path, 'Resources', 'Tor', 'tor'), 0o755)
shutil.copyfile(os.path.join(dmg_tor_path, 'MacOS', 'Tor', 'tor.real'), os.path.join(dist_path, 'MacOS', 'Tor', 'tor.real'))
shutil.copyfile(os.path.join(dmg_tor_path, 'MacOS', 'Tor', 'libevent-2.0.5.dylib'), os.path.join(dist_path, 'MacOS', 'Tor', 'libevent-2.0.5.dylib'))
shutil.copyfile(os.path.join(dmg_tor_path, 'MacOS', 'Tor', 'libevent-2.1.6.dylib'), os.path.join(dist_path, 'MacOS', 'Tor', 'libevent-2.1.6.dylib'))
os.chmod(os.path.join(dist_path, 'MacOS', 'Tor', 'tor.real'), 0o755)
# obfs4proxy binary
shutil.copyfile(os.path.join(dmg_tor_path, 'MacOS', 'Tor', 'PluggableTransports', 'obfs4proxy'), os.path.join(dist_path, 'Resources', 'Tor', 'obfs4proxy'))
......
......@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
Copyright (C) 2018 Micah Lee <micah@micahflee.com>
Copyright (C) 2014-2018 Micah Lee <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
......@@ -33,9 +33,9 @@ import subprocess
import requests
def main():
exe_url = 'https://archive.torproject.org/tor-package-archive/torbrowser/7.5.5/torbrowser-install-7.5.5_en-US.exe'
exe_filename = 'torbrowser-install-7.5.5_en-US.exe'
expected_exe_sha256 = '992f9a6658001c3419ed3695a908eef4fb7feb1cd549389bdacbadb7f8cb08a7'
exe_url = 'https://archive.torproject.org/tor-package-archive/torbrowser/8.0.8/torbrowser-install-8.0.8_en-US.exe'
exe_filename = 'torbrowser-install-8.0.8_en-US.exe'
expected_exe_sha256 = 'bfe32a737e9fa37bf0c8837dbf3385be41cd9e8f9a88850d8f2946bb736e784f'
# Build paths
root_path = os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))
working_path = os.path.join(os.path.join(root_path, 'build'), 'tor')
......
Copyright JS Foundation and other contributors, https://js.foundation/
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
OnionShare
Copyright © 2018 Micah Lee <micah@micahflee.com>
Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
......
This folder contains the software licenses for 3rd-party binaries included with OnionShare.
This folder contains 3rd-party licenses for software included with OnionShare.
......@@ -2,17 +2,9 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>onionshare-gui</string>
<key>CFBundleIdentifier</key>
<string>com.micahflee.onionshare</string>
<key>NSHighResolutionCapable</key>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>CFBundleShortVersionString</key>
<string>{VERSION}</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>com.apple.security.inherit</key>
<true/>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Enable app sandbox -->
<key>com.apple.security.app-sandbox</key>
<true/>
<!-- Both OnionShare and Tor need network server and client -->
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<!-- In share mode, users need to be able to select files, and in receive mode,
users need to be able to choose a folder to save files to -->
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<!-- Flask needs to read this mime.types file when starting an HTTP server -->
<key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
<array>
<string>/private/etc/apache2/mime.types</string>
</array>
<!-- For OnionShare to be able to connect to Tor Browser's tor control port,
it needs to read it's control_auth_cookie file -->
<key>com.apple.security.temporary-exception.files.home-relative-path.read-only</key>
<array>
<string>/Library/Application Support/TorBrowser-Data/Tor/control_auth_cookie</string>
</array>
<!-- In receive mode, OnionShare needs to be able to write to ~/OnionShare -->
<key>com.apple.security.temporary-exception.files.home-relative-path.read-write</key>
<array>
<string>/OnionShare/</string>
</array>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2016 Micah Lee <micah@micahflee.com> -->
<!-- Copyright 2018 Micah Lee <micah@micahflee.com> -->
<component type="desktop">
<id>onionshare.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
......@@ -8,25 +8,36 @@
<summary>Securely and anonymously share a file of any size</summary>
<description>
<p>
OnionShare lets you securely and anonymously share a file of any size with someone. It works
by starting a web server, making it accessible as a Tor hidden service, and generating an
unguessable URL to access and download the file.
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 <em>not</em>
require setting up a separate server or using a third party file-sharing service.
</p>
<p>
It doesn't require setting up a server on the internet somewhere or using a third party
filesharing service. You host the file on your own computer and use a Tor hidden service to
make it temporarily accessible over the internet. The other user just needs to use Tor Browser
to download the file from you.
If you want to send files to someone, OnionShare hosts them on your own computer and uses a Tor
onion service to make them temporarily accessible over the internet. The receiving user just
needs to open the web address in Tor Browser to download the files. If you want to receive files,
OnionShare hosts an anonymous dropbox directly on your computer and uses a Tor onion service to
make it temporarily accessible over the internet. Other users can upload files to you from by
loading the web address in Tor Browser.
</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-server.png</image>
<caption>Sender sharing files with OnionShare</caption>
<image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-onionshare-share-server.png</image>
<caption>Sharing files with OnionShare</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-client.png</image>
<caption>Receiver downloading files with Tor Browser</caption>
<image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-onionshare-share-client.png</image>
<caption>Downloading OnionShare files using Tor Browser</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-onionshare-receive-server.png</image>
<caption>Receiving files with OnionShare</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-onionshare-receive-client.png</image>
<caption>Uploading files to OnionShare user using Tor Browser</caption>
</screenshot>
</screenshots>
<url type="homepage">https://onionshare.org/</url>
......
[Desktop Entry]
Name=OnionShare
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
Exec=/usr/bin/onionshare-gui
Terminal=false
Type=Application
Icon=/usr/share/pixmaps/onionshare80.xpm
Categories=Network;
Icon=onionshare80
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;
StartupNotify=true
StartupWMClass=onionshare
This diff is collapsed.
......@@ -14,12 +14,14 @@ a = Analysis(
('../share/wordlist.txt', 'share'),
('../share/torrc_template', 'share'),
('../share/torrc_template-obfs4', 'share'),
('../share/torrc_template-meek_lite_amazon', 'share'),
('../share/torrc_template-meek_lite_azure', 'share'),
('../share/torrc_template-windows', 'share'),
('../share/images/*', 'share/images'),
('../share/locale/*', 'share/locale'),
('../share/html/*', 'share/html'),
('../share/static/*', 'share/static'),
('../share/templates/*', 'share/templates'),
('../share/static/css/*', 'share/static/css'),
('../share/static/img/*', 'share/static/img'),
('../share/static/js/*', 'share/static/js'),
('../install/licenses/*', 'licenses')
],
hiddenimports=[],
......
atomicwrites==1.3.0
attrs==19.1.0
more-itertools==5.0.0
pluggy==0.9.0
py==1.8.0
pytest==4.4.1
pytest-faulthandler==1.5.0
pytest-qt==3.2.2
six==1.12.0
urllib3==1.24.2