keepassxc/snap/snapcraft.yaml
James Carroll 4bae9a40c9
Snap: Improve Web-browser Native Messaging host functionality
This commit allows for the snap distribution of KeepassXC to self-manage native messaging manifests
This is done by making the binary aware of the snapd environment changes that currently prevent this.
Furthermore, the snap sandbox is expanded to the bare minimum needed to access these privileged files.

Please note if running a self-compiled / untrusted KeepassXC snap build (I.E, installed with --dangerous)
that you must manually run `sudo snap connect keepassxc:browser-native-messaging` to grant permissions.

This will work on all distributions that expose `/snap/bin/` - such as Ubuntu, Debian, etc.
For systems which don't provide `/snap/`, such as Fedora, follow instructions for enabling "Classic" snaps.
e.g., `sudo ln -s /var/lib/snapd/snap /snap`
2024-06-19 08:16:20 -04:00

87 lines
2.4 KiB
YAML

name: keepassxc
adopt-info: keepassxc
grade: stable
base: core22
confinement: strict
compression: lzo
apps:
keepassxc:
command: usr/bin/keepassxc
common-id: org.keepassxc.KeePassXC.desktop
extensions: [kde-neon]
plugs: [home, unity7, network, network-bind, removable-media, raw-usb, password-manager-service, browser-native-messaging]
autostart: org.keepassxc.KeePassXC.desktop
cli:
command: usr/bin/keepassxc-cli
extensions: [kde-neon]
plugs: [home, removable-media, raw-usb]
proxy:
command: usr/bin/keepassxc-proxy
extensions: [kde-neon]
plugs: [home]
plugs:
browser-native-messaging:
interface: personal-files
write:
- $HOME/.mozilla/native-messaging-hosts/org.keepassxc.keepassxc_browser.json
- $HOME/.config/chromium/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json
- $HOME/.config/google-chrome/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json
- $HOME/.config/microsoft-edge/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json
- $HOME/.config/vivaldi/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json
- $HOME/.config/BraveSoftware/Brave-Browser/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json
- $HOME/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/TorBrowser/Data/Browser/.mozilla/native-messaging-hosts
slots:
session-dbus-interface:
interface: dbus
name: org.keepassxc.KeePassXC.MainWindow
bus: session
parts:
keepassxc:
source: .
plugin: cmake
parse-info: [usr/share/metainfo/org.keepassxc.KeePassXC.appdata.xml]
cmake-parameters:
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_INSTALL_PREFIX=/usr
- -DKEEPASSXC_DIST_TYPE=Snap
- -DKEEPASSXC_BUILD_TYPE=Release
- -DWITH_TESTS=OFF
- -DWITH_XC_ALL=ON
- -DWITH_XC_UPDATECHECK=OFF
build-packages:
- g++
- libbotan-2-dev
- libargon2-dev
- zlib1g-dev
- libqrencode-dev
- libusb-1.0-0-dev
- libreadline-dev
- libpcsclite-dev
- libminizip-dev
- libxi-dev
- libxtst-dev
- asciidoctor
- libfreetype-dev
- libkeyutils-dev
stage-packages:
- dbus
- libbotan-2-19
- libqrencode4
- libusb-1.0-0
- libreadline8
- libpcsclite1
- libminizip1
- libxtst6
- libfreetype6
- xclip
- libkeyutils1
lint:
ignore:
- library:
- lib/**/libhistory.so*