# zen-browser snap, (c) Valentin HAUDIQUET # inspired from https://github.com/canonical/firefox-snap # GNU General Public License version 3 name: zen-browser version: 1.14.11b license: MPL-2.0 summary: Zen Browser - Welcome to a calmer internet description: | Zen is a firefox-based browser with the aim of pushing your productivity to a new level! confinement: strict grade: stable base: core24 source-code: https://github.com/zen-browser/desktop compression: lzo apps: zen-browser: command: zen-browser.launcher desktop: usr/share/applications/zen-browser.desktop extensions: [gnome] environment: DICPATH: "$SNAP_COMMON/snap-hunspell" GTK_USE_PORTAL: 1 HOME: "$SNAP_USER_COMMON" PIPEWIRE_CONFIG_NAME: "$SNAP/usr/share/pipewire/pipewire.conf" PIPEWIRE_MODULE_DIR: "$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/pipewire-0.3" SPA_PLUGIN_DIR: "$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/spa-0.2" SPEECHD_ADDRESS: "unix_socket:/run/user/$SNAP_UID/speech-dispatcher/speechd.sock" LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib:$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libproxy slots: - mpris - dbus-daemon plugs: - alsa - audio-playback - audio-record - avahi-observe - browser-sandbox - camera - cups-control - gsettings - hardware-observe - home - host-hunspell - host-usr-share-hunspell - joystick - login-session-observe - mount-observe - network - network-observe - opengl - pcscd - removable-media - screen-inhibits-control - system-packages-doc - u2f-devices - unity7 - upower-observe platforms: amd64: plugs: browser-sandbox: interface: browser-support allow-sandbox: true dot-zen: interface: personal-files read: [$HOME/.zen] etc-zen: interface: system-files read: [/etc/zen] host-hunspell: interface: mount-control mount: - what: /usr/share/hunspell where: $SNAP_COMMON/host-hunspell persistent: true options: [ro, bind, noatime, noexec] host-usr-share-hunspell: interface: system-files read: - /var/lib/snapd/hostfs/usr/share/hunspell layout: /usr/share/libdrm: bind: $SNAP/gnome-platform/usr/share/libdrm /usr/share/alsa: bind: $SNAP/usr/share/alsa /usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/opensc-pkcs11.so: bind-file: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/opensc-pkcs11.so parts: # This is a temporary workaround to including the hunspell content # snap, which would cause breakage in the Ubuntu desktop image build # because of the Ubuntu policy. See: # https://bugzilla.mozilla.org/show_bug.cgi?id=1792006 # # The definition of this part is essentially a copy of the # corresponding part in hunspell-dictionaries-1-7-2004 by # Buo-ren, Lin. hunspell: plugin: nil override-build: | craftctl default set -eu apt download $(apt-cache search '^hunspell-.*$' | awk '!/myspell|dbgsym|tools|transitional|dependency/{printf "%s ", $1}') find . -name "*.deb" -exec dpkg-deb -x {} "$CRAFT_PART_INSTALL" \; prime: - usr/share/hunspell zen-browser: plugin: nil after: - launcher - desktop - icons build-packages: - curl - tar override-build: | mkdir -p "$CRAFT_PART_INSTALL/usr/lib" curl -L -O https://github.com/zen-browser/desktop/releases/download/$SNAPCRAFT_PROJECT_VERSION/zen.linux-x86_64.tar.xz tar xf zen.linux-x86_64.tar.xz -C "$CRAFT_PART_INSTALL/usr/lib" prime: - usr/lib/zen - usr/lib/*/libproxy - usr/lib/*/opensc-pkcs11.so - usr/lib/*/pkcs11/opensc-pkcs11.so - usr/lib/*/libasn1.so.* - usr/lib/*/libcurl.so.* - usr/lib/*/libgssapi.so.* - usr/lib/*/libhcrypto.so.* - usr/lib/*/libheimbase.so.* - usr/lib/*/libheimntlm.so.* - usr/lib/*/libhogweed.so.* - usr/lib/*/libhx509.so.* - usr/lib/*/libkrb5.so.* - usr/lib/*/liblber-2.4.so.* - usr/lib/*/libldap_r-2.4.so.* - usr/lib/*/libnettle.so.* - usr/lib/*/libnghttp2.so.* - usr/lib/*/libpci.so.* - usr/lib/*/libpipewire*.so* - usr/lib/*/libroken.so.* - usr/lib/*/librtmp.so.* - usr/lib/*/libsasl2.so.* - usr/lib/*/libspeechd.so.* - usr/lib/*/libssh.so.* - usr/lib/*/libssl.so.* - usr/lib/*/libvulkan* - usr/lib/*/libVkLayer* - usr/lib/*/libwind.so.* - usr/lib/*/libXt.so.* - usr/lib/*/pipewire-* - usr/lib/*/spa-* # alsa does not seem to be found # - usr/share/alsa - usr/share/pipewire - usr/share/vulkan stage-packages: - libproxy1v5 - glib-networking - libasound2 - libcurl4 - libpci3 - libpipewire-0.3-0 - libpipewire-0.3-modules - libspa-0.2-modules - libspeechd2 - libvulkan1 - libxt6 - mesa-vulkan-drivers - pipewire-bin - pipewire-pulse - opensc-pkcs11 desktop: plugin: dump source: . organize: zen-browser.desktop: usr/share/applications/zen-browser.desktop launcher: plugin: nil override-prime: | cp "$CRAFT_PROJECT_DIR/zen-browser.launcher" "$CRAFT_PRIME/" chmod a+rwx "$CRAFT_PRIME/zen-browser.launcher" icons: plugin: nil build-packages: - inkscape - curl override-build: | curl -L -O https://raw.githubusercontent.com/zen-browser/desktop/refs/heads/dev/docs/assets/zen-dark.svg inkscape -w 16 -h 16 "$SNAPCRAFT_PART_BUILD/zen-dark.svg" -o "$CRAFT_PART_INSTALL/16.png" inkscape -w 32 -h 32 "$SNAPCRAFT_PART_BUILD/zen-dark.svg" -o "$CRAFT_PART_INSTALL/32.png" inkscape -w 48 -h 48 "$SNAPCRAFT_PART_BUILD/zen-dark.svg" -o "$CRAFT_PART_INSTALL/48.png" inkscape -w 64 -h 64 "$SNAPCRAFT_PART_BUILD/zen-dark.svg" -o "$CRAFT_PART_INSTALL/64.png" inkscape -w 128 -h 128 "$SNAPCRAFT_PART_BUILD/zen-dark.svg" -o "$CRAFT_PART_INSTALL/128.png" organize: 16.png: usr/share/icons/hicolor/16x16/apps/zen-browser.png 32.png: usr/share/icons/hicolor/32x32/apps/zen-browser.png 48.png: usr/share/icons/hicolor/48x48/apps/zen-browser.png 64.png: usr/share/icons/hicolor/64x64/apps/zen-browser.png 128.png: usr/share/icons/hicolor/128x128/apps/zen-browser.png prime: - usr/share/icons/* slots: dbus-daemon: interface: dbus bus: session name: zen.desktop hooks: post-refresh: plugs: [host-usr-share-hunspell]