onionshare/snap/snapcraft.yaml

195 lines
4.8 KiB
YAML

name: onionshare
base: core18
version: '2.4.dev1'
summary: Securely and anonymously share files, host websites, and chat using Tor
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.
grade: devel # stable or devel
confinement: strict
architectures: [amd64, i386, arm64, armhf]
apps:
onionshare:
common-id: org.onionshare.OnionShare
command: onionshare
plugs:
- desktop
- home
- network
- network-bind
- removable-media
environment:
LANG: C.UTF-8
cli:
common-id: org.onionshare.OnionShareCli
command: onionshare-cli
plugs:
- home
- network
- network-bind
- removable-media
environment:
LANG: C.UTF-8
parts:
onionshare:
source: ./desktop/src
plugin: python
python-version: python3
python-packages:
- psutil
- qrcode
stage-packages:
- libasound2
- libatk1.0-0
- libcairo2
- libcairo-gobject2
- libcups2
- libdrm2
- libegl1
- libfreetype6
- libgdk-pixbuf2.0-0
- libgl1
- libglvnd0
- libglx0
- libgtk-3-0
- libharfbuzz0b
- libicu60
- libjpeg8
- liblcms2-2
- libnspr4
- libnss3
- libodbc1
- libpango-1.0-0
- libpangocairo-1.0-0
- libpng16-16
- libpq5
- libpulse-mainloop-glib0
- librsvg2-2
- libspeechd2
- libwayland-client0
- libwayland-cursor0
- libwayland-egl1
- libwayland-server0
- libx11-6
- libx11-xcb1
- libxau6
- libxcb1
- libxcb-glx0
- libxcb-icccm4
- libxcb-image0
- libxcb-keysyms1
- libxcb-render0
- libxcb-render-util0
- libxcb-shm0
- libxcb-sync1
- libxcb-xfixes0
- libxcb-xinerama0
- libxcb-xkb1
- libxcomposite1
- libxcursor1
- libxdamage1
- libxdmcp6
- libxext6
- libxfixes3
- libxi6
- libxkbcommon0
- libxkbcommon-x11-0
- libxml2
- libxrandr2
- libxrender1
- libxslt1.1
- libxtst6
- qtwayland5
after: [onionshare-cli, pyside2]
onionshare-cli:
source: ./cli
plugin: python
python-version: python3
python-packages:
- click
- flask
- flask-socketio == 5.0.1
- psutil
- pysocks
- requests
- unidecode
- urllib3
- eventlet
- setuptools
- pynacl
- colorama
- git+https://github.com/onionshare/stem.git@1.8.1
stage-packages:
- build-essential
- libssl-dev
- libffi-dev
- python3-dev
- cargo
stage:
- -usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
- -usr/share/doc/libssl1.1/changelog.Debian.gz
after: [tor, obfs4]
qt5:
source: git://code.qt.io/qt/qt5.git
source-type: git
source-tag: v5.15.2
plugin: autotools
build-packages:
- python3
- libwayland-dev
- libwayland-egl1
- libgl1-mesa-dev
- libglu1-mesa-dev
override-build: |
perl init-repository -f
mkdir build
cd build
../configure -opensource -confirm-license -nomake examples -nomake tests -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtdocgallery -skip qtfeedback -skip qtgamepad -skip qtlocation -skip qtlottie -skip qtpurchasing -skip qtquick3d -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquicktimeline -skip qtremoteobjects -skip qtspeech -skip qtwebengine -skip qtwebglplugin -skip qtwebview
make -j$(nproc)
make install
pyside2:
source: https://code.qt.io/pyside/pyside-setup.git
source-type: git
source-tag: "5.15.2"
build-packages:
- cmake
plugin: python
python-version: python3
python-packages:
- packaging
- setuptools
- wheel
after: [qt5]
tor:
source: https://dist.torproject.org/tor-0.4.6.7.tar.gz
source-checksum: sha256/ff665ce121b2952110bd98b9c8741b5593bf6c01ac09033ad848ed92c2510f9a
source-type: tar
plugin: autotools
build-packages:
- libssl-dev
- zlib1g-dev
after: [libevent]
libevent:
source: https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
source-checksum: sha256/92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
source-type: tar
plugin: autotools
obfs4:
plugin: go
go-importpath: gitlab.com/yawning/obfs4
source: https://gitlab.com/yawning/obfs4
source-type: git