name: onionshare base: core22 version: "2.6.1" 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: stable # stable or devel confinement: strict architectures: - build-on: i386 - build-on: amd64 - build-on: arm64 - build-on: armhf apps: onionshare: common-id: org.onionshare.OnionShare command: bin/onionshare plugs: - desktop - home - network - network-bind - removable-media environment: LANG: C.UTF-8 PATH: $SNAP/bin:$SNAP/usr/bin:$SNAP/usr/local/bin:$PATH LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/local/lib cli: common-id: org.onionshare.OnionShareCli command: bin/onionshare-cli plugs: - home - network - network-bind - removable-media environment: LANG: C.UTF-8 PATH: $SNAP/bin:$SNAP/usr/bin:$SNAP/usr/local/bin:$PATH LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/local/lib parts: onionshare-cli: source: ./cli plugin: nil override-pull: | craftctl default rm pyproject.toml poetry.lock after: [tor, obfs4, snowflake-client, meek-client] onionshare: source: ./desktop plugin: python 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 - qtwayland5 - libgstreamer1.0-0 - libgstreamer1.0-dev - libgstreamer-gl1.0-0 - libgstreamer-plugins-base1.0-0 - libmysqlclient21 - libxcb-cursor0 - libxkbfile1 override-pull: | craftctl default rm pyproject.toml poetry.lock cat > requirements.txt << EOF # onionshare_cli click flask==2.3.2 flask-compress==1.13 flask-socketio==5.3.4 psutil pysocks requests[socks] unidecode urllib3 eventlet setuptools pynacl colorama gevent-websocket stem==1.8.1 waitress werkzeug==2.3.4 # onionshare PySide6==6.5.2 qrcode packaging EOF override-build: | python3 -m venv $CRAFT_PART_INSTALL . $CRAFT_PART_INSTALL/bin/activate pip install -U pip setuptools wheel pip install -U -r requirements.txt pip install -U ../../onionshare-cli/src pip install -U . deactivate sed -i 's|'$CRAFT_PART_INSTALL'/bin/python3|/usr/bin/env python3|g' $CRAFT_PART_INSTALL/bin/onionshare sed -i 's|'$CRAFT_PART_INSTALL'/bin/python3|/usr/bin/env python3|g' $CRAFT_PART_INSTALL/bin/onionshare-cli after: [onionshare-cli] tor: source: https://dist.torproject.org/tor-0.4.8.5.tar.gz source-checksum: sha256/6957cfd14a29eee7555c52f8387a46f2ce2f5fe7dadf93547f1bc74b1657e119 source-type: tar plugin: autotools autotools-configure-parameters: - "--with-libevent-dir=$CRAFT_PART_INSTALL/../../libevent/install/usr/local" 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 build-snaps: - go/latest/stable source: https://gitlab.com/yawning/obfs4.git 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.6.0 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.38.0 override-build: | cd meek-client mkdir -p /build/onionshare/meek-client/install/bin go build -o /build/onionshare/meek-client/install/bin/meek-client ./...