name: onionshare base: core24 version: "2.6.2" 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 platforms: amd64: arm64: apps: onionshare: common-id: org.onionshare.OnionShare command: bin/onionshare extensions: [gnome] 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: source: . 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 - 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 - libodbc2 override-pull: | craftctl default override-build: | test -e $CRAFT_PART_INSTALL/bin/python3 && chmod 755 $CRAFT_PART_INSTALL/bin/python3 || true python3 -m venv $CRAFT_PART_INSTALL . $CRAFT_PART_INSTALL/bin/activate pip install -r snap/local/cli-requirements.txt -r snap/local/desktop-requirements.txt cd desktop && pip install ../cli && pip install . 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 tor: source: https://dist.torproject.org/tor-0.4.8.14.tar.gz source-checksum: sha256/5047e1ded12d9aac4eb858f7634a627714dd58ce99053d517691a4b304a66d10 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 after: [tor] snowflake-client: plugin: go build-snaps: - go/latest/stable source: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git source-type: git source-tag: v2.10.1 organize: bin/client: bin/snowflake-client after: [obfs4] meek-client: plugin: go build-snaps: - go/latest/stable source: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/meek.git source-type: git source-tag: v0.38.0 override-build: | cd meek-client go build -o $SNAPCRAFT_PART_INSTALL/bin/meek-client ./... after: [snowflake-client] # This part removes all the files in this snap which already exist in # connected content and base snaps. Since these files will be available # at runtime from the content and base snaps, they do not need to be # included in this snap itself. # # More info: https://forum.snapcraft.io/t/reducing-the-size-of-desktop-snaps/17280#heading--cleanup-part # cleanup: after: # Make this part run last; list all your other parts here - onionshare - tor - libevent - obfs4 - snowflake-client - meek-client plugin: nil build-snaps: # List all content-snaps and base snaps you're using here - core24 - go/latest/stable - gnome-46-2404-sdk override-prime: | set -eux for snap in core24 go/latest/stable gnome-46-2404-sdk; do # List all content-snaps and base snaps you're using here cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$CRAFT_PRIME/{}" \; done