onionshare/snap/snapcraft.yaml

243 lines
6.4 KiB
YAML
Raw Normal View History

2020-05-03 16:56:18 -04:00
name: onionshare
base: core20
version: "2.6.1"
summary: Securely and anonymously share files, host websites, and chat using Tor
2020-05-03 16:56:18 -04:00
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.
2020-05-03 16:56:18 -04:00
grade: stable # stable or devel
confinement: strict
2020-05-03 16:56:18 -04:00
architectures:
- build-on: i386
- build-on: amd64
- build-on: arm64
- build-on: armhf
2020-05-03 16:56:18 -04:00
apps:
onionshare:
common-id: org.onionshare.OnionShare
command: bin/onionshare-launcher
extensions: [gnome-3-38]
2020-05-03 16:56:18 -04:00
plugs:
- desktop
2020-05-03 16:56:18 -04:00
- home
- network
- network-bind
- removable-media
2021-05-31 17:08:29 -04:00
environment:
LANG: C.UTF-8
cli:
common-id: org.onionshare.OnionShareCli
command: bin/onionshare-cli-launcher
plugs:
- home
- network
- network-bind
- removable-media
2021-05-31 17:08:29 -04:00
environment:
LANG: C.UTF-8
2020-05-03 16:56:18 -04:00
parts:
launcher:
plugin: nil
override-build: |
mkdir -p $SNAPCRAFT_PART_INSTALL/bin
cat > $SNAPCRAFT_PART_INSTALL/bin/launcher-setup << EOF
#!/bin/sh
export PATH=\$SNAP/bin:\$SNAP/usr/bin:\$SNAP/usr/local/bin:\$PATH
export PYTHONPATH=\$SNAP/lib/python3.8/site-packages:\$SNAP/usr/lib/python3/dist-packages
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$SNAP/usr/local/lib
ORIG_IFS=\$IFS
IFS=":"
LIB_BASE=\$(for D in \$LD_LIBRARY_PATH; do echo \$D; done | grep \$SNAP/usr/lib/)
IFS=\$ORIGIN_IFS
export QT_PLUGIN_PATH=\$LIB_BASE/qt5/plugins
EOF
cat > $SNAPCRAFT_PART_INSTALL/bin/onionshare-launcher << EOF
#!/bin/sh
. \$SNAP/bin/launcher-setup
onionshare \$@
EOF
cat > $SNAPCRAFT_PART_INSTALL/bin/onionshare-cli-launcher << EOF
#!/bin/sh
. \$SNAP/bin/launcher-setup
onionshare-cli \$@
EOF
chmod 755 $SNAPCRAFT_PART_INSTALL/bin/launcher-setup
chmod 755 $SNAPCRAFT_PART_INSTALL/bin/onionshare-launcher
chmod 755 $SNAPCRAFT_PART_INSTALL/bin/onionshare-cli-launcher
2022-10-09 10:20:25 -04:00
onionshare-cli:
source: ./cli
plugin: nil
override-pull: |
snapcraftctl pull
rm pyproject.toml poetry.lock
2022-10-09 10:20:25 -04:00
after: [tor, obfs4, snowflake-client, meek-client]
2020-05-03 16:56:18 -04:00
onionshare:
2021-12-19 20:36:45 -05:00
source: ./desktop
2020-05-03 16:56:18 -04:00
plugin: python
2022-10-09 10:20:25 -04:00
build-packages:
- build-essential
- libssl-dev
- libffi-dev
- python3-dev
- python3-pip
- rustc
- cargo
build-environment:
- PATH: /usr/bin:$PATH
- PYTHONPATH: ""
stage-packages:
- libasound2
- libatk1.0-0
- libcairo2
- libcairo-gobject2
- libcups2
- libdrm2
- libegl1
- libfreetype6
- libgdk-pixbuf2.0-0
- libgl1
- libglvnd0
- libglx0
- libgtk-3-0
- libharfbuzz0b
- 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
2021-09-12 21:45:44 -04:00
- qtwayland5
- python3-pyside2.qtcore
- python3-pyside2.qtgui
- python3-pyside2.qtwidgets
2022-10-09 10:20:25 -04:00
override-pull: |
snapcraftctl pull
rm pyproject.toml poetry.lock
cat > requirements.txt << EOF
# onionshare_cli
click
flask==2.0.3
flask-socketio==5.3.1
psutil
pysocks
requests[socks]
unidecode
urllib3
eventlet
setuptools
pynacl
colorama
gevent-websocket
stem==1.8.1
werkzeug==2.0.3
# onionshare
qrcode
EOF
override-build: |
2022-10-09 10:20:25 -04:00
python3 -m venv $SNAPCRAFT_PART_INSTALL
. $SNAPCRAFT_PART_INSTALL/bin/activate
pip install -U pip setuptools wheel
2022-10-09 16:38:53 -04:00
pip install -U -r requirements.txt
pip install -U ../../onionshare-cli/src
pip install -U .
2022-10-09 10:20:25 -04:00
deactivate
sed -i 's|'$SNAPCRAFT_PART_INSTALL'/bin/python3|/usr/bin/env python3|g' $SNAPCRAFT_PART_INSTALL/bin/onionshare
sed -i 's|'$SNAPCRAFT_PART_INSTALL'/bin/python3|/usr/bin/env python3|g' $SNAPCRAFT_PART_INSTALL/bin/onionshare-cli
2021-02-21 20:13:15 -05:00
after: [onionshare-cli]
2020-05-03 16:56:18 -04:00
tor:
source: https://dist.torproject.org/tor-0.4.7.12.tar.gz
source-checksum: sha256/3b5d969712c467851bd028f314343ef15a97ea457191e93ffa97310b05b9e395
2020-05-03 16:56:18 -04:00
source-type: tar
plugin: autotools
autotools-configure-parameters:
- "--with-libevent-dir=$SNAPCRAFT_PART_INSTALL/../../libevent/install/usr/local"
2020-05-03 16:56:18 -04:00
build-packages:
- libssl-dev
- zlib1g-dev
after: [libevent]
2020-05-03 16:56:18 -04:00
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
2020-05-03 16:56:18 -04:00
source-type: tar
plugin: autotools
obfs4:
plugin: go
build-snaps:
- go/latest/stable
2022-07-04 18:08:58 -04:00
source: https://gitlab.com/yawning/obfs4.git
2020-05-03 16:56:18 -04:00
source-type: git
source-tag: obfs4proxy-0.0.14
snowflake-client:
plugin: go
build-snaps:
- go/latest/stable
source: https://git.torproject.org/pluggable-transports/snowflake.git
source-type: git
source-tag: v2.3.1
organize:
bin/client: bin/snowflake-client
meek-client:
plugin: go
build-snaps:
- go/latest/stable
source: https://git.torproject.org/pluggable-transports/meek.git
source-type: git
source-tag: v0.37.0
override-build: |
cd meek-client
2022-10-02 19:46:27 -04:00
mkdir -p /build/onionshare/meek-client/install/bin
go build -o /build/onionshare/meek-client/install/bin/meek-client ./...