name: remmina
version: git
adopt-info: remmina
architectures:
- build-on: amd64
- build-on: arm64
- build-on: armhf
base: core22
grade: stable
confinement: strict
# this line enables LZO compression for the snap
compression: lzo
slots:
dbus-daemon:
interface: dbus
bus: session
name: org.remmina.Remmina
environment:
SSH_AUTH_SOCK: "${SNAP_DATA}/ssh-agent.socket"
SNAP_USER_DATA: "${SNAP_REAL_HOME}/snap/${SNAP_NAME}/current"
apps:
remmina:
command: usr/bin/remmina
extensions: [gnome]
common-id: org.remmina.Remmina
desktop: usr/share/applications/org.remmina.Remmina.desktop
plugs:
- alsa
- audio-playback
- audio-record
- avahi-observe
- browser-support
- cups-control
- home
- media-hub
- mount-observe
- network
- network-bind
- optical-drive
- password-manager-service
- process-control
- raw-usb
- removable-media
- screen-inhibit-control
- ssh-keys
- ssh-public-keys
- unity7
slots:
- dbus-daemon
ssh-agent:
command: usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
daemon: simple
# adapter: none
plugs:
- home
- network-bind
- ssh-keys
parts:
tools:
plugin: nil
stage-packages:
- openssh-client
pyhoca:
plugin: nil
stage-packages:
- pyhoca-cli
freerdp:
plugin: cmake
source: https://github.com/FreeRDP/FreeRDP.git
source-tag: 3.1.0
source-depth: 1
# override-build: |
# current_dir=$PWD
# cd "$SNAPCRAFT_PART_SRC"
# git apply --verbose "$SNAPCRAFT_STAGE/0003-Fixed-6298-Mask-CACHED_BRUSH-when-checking-brush-sty.patch"
# git apply --verbose "$SNAPCRAFT_STAGE/0001-Fix-seeking-in-Cache-Brush-and-other-Secondary-Drawi.patch"
# cd "$current_dir"
# snapcraftctl build
build-packages:
- libasound2-dev
- libavcodec-dev
- libavutil-dev
- libcups2-dev
- libffi-dev
- libnacl-dev
- libpcsclite-dev
- libpulse-dev
- libsecret-1-dev
- libssl-dev
- libx11-dev
- libusb-1.0-0-dev
- libxkbfile-dev
- libxv-dev
- libfuse3-dev
- libkrb5-dev
- libpkcs11-helper1-dev
- libswscale-dev
stage-packages:
- libffi7
- libusb-1.0-0
- libzvbi0
- x11-utils
- libfuse3-3
- libkrb5-3
- libpkcs11-helper1
- libswscale5
cmake-parameters:
# Workaround for ubuntu 18.04 armhf: build fails with "unable to find a register to spill"
# remember to remove when snapcraft will be built in ubuntu >= 20.04
# This must be at the beginning
- -DCMAKE_BUILD_TYPE=Release
- -DWITH_ICU=on
- -DWITH_WAYLAND=on
- -DCHANNEL_TSMF=off
- -DCHANNEL_URBDRC=on
- -DBUILD_TESTING=off
- -DWITH_MANPAGES=off
- -DWITH_GSSAPI=off
- -DWITH_SAMPLE=off
- -DWITH_SERVER=off
- -DWITH_DSP_FFMPEG=on
- -DWITH_OSS=off
- -DWITH_PULSE=on
- -DWITH_GSTREAMER=off
- -DWITH_FFMPEG=on
- -DWITH_CHANNELS=on
- -DBUILTIN_CHANNELS=on
- -DWITH_CUPS=on
- -DWITH_PCSC=on
- -DWITH_JPEG=on
- -DWITH_LIBSYSTEMD=off
# - -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
# XXX: This is an hack to have a kind of bind-mount with absolute prefix.
- -DCMAKE_INSTALL_PREFIX=/snap/$CRAFT_PROJECT_NAME/current/usr
organize:
snap/remmina/current/usr: usr
prime:
- -usr/include
- -usr/lib/cmake
- -usr/lib/pkgconfig
# after:
# - patches
# patches:
# source: snap/local/patches
# plugin: dump
# prime:
# - -*
remmina:
after:
- freerdp
plugin: cmake
source: .
parse-info: [usr/share/metainfo/org.remmina.Remmina.appdata.xml]
build-packages:
- intltool
- libappindicator3-dev
- libavahi-ui-gtk3-dev
- libsecret-1-dev
- libgtk-3-dev
- libgtk-vnc-2.0-dev
- libgvnc-1.0-dev
- libjson-glib-dev
- libkf5wallet-dev
- libsodium-dev
- libspice-client-gtk-3.0-dev
- libspice-protocol-dev
- libssh-dev
- libvncserver-dev
- libvte-2.91-dev
- libwebkit2gtk-4.0-dev
- libxkbfile-dev
- python3-dev
- pyhoca-cli
- xdg-utils
stage-packages:
- libdouble-conversion3
- libgtk-vnc-2.0-0
- libgvnc-1.0-0
- libkf5configcore5
- libkf5wallet5
- libkf5windowsystem5
- libqt5core5a
- libqt5dbus5
- libqt5gui5
- libqt5widgets5
- libqt5x11extras5
- libssh-4
- libusb-1.0-0
- libvte-2.91-0
- libxcb-keysyms1
- libzvbi0
- openssh-client
- pyhoca-cli
- spice-client-glib-usb-acl-helper
- suckless-tools
- vim
- xauth
- xterm
cmake-parameters:
- -DCMAKE_BUILD_TYPE=Release
- -DWITH_FREERDP3=ON
- -DWITH_KF5WALLET=ON
- -DWITH_GVNC=ON
- -DWITH_X2GO=ON
- -DWITH_PYTHON=ON
- -DCMAKE_PREFIX_PATH=$CRAFT_STAGE/usr
- -DSNAP_BUILD=on
# XXX: This is an hack to have a kind of bind-mount with absolute prefix.
- -DCMAKE_INSTALL_PREFIX=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr
organize:
snap/remmina/current/usr: usr
stage:
- -usr/share/fonts/**
prime:
- -usr/lib/pkgconfig
- -usr/include
override-build: |
set -eu
craftctl default
cp -r $CRAFT_PART_INSTALL/snap/$CRAFT_PROJECT_NAME/current/usr/share/metainfo $CRAFT_PART_INSTALL/usr/share/
sed --in-place '\|org.remmina.Remmina|asnap.remmina.org.remmina.Remmina' $CRAFT_PART_INSTALL/snap/$CRAFT_PROJECT_NAME/current/usr/share/metainfo/org.remmina.Remmina.appdata.xml
update-mime-database ${CRAFT_PART_INSTALL}/usr/share/mime
override-prime: |
set -eu
craftctl default
# Remove forbidden links (I'm sure the audio won't work anymore)
rm -f etc/pulse/client.conf.d/01-enable-autospawn.conf lib/systemd/system/pulseaudio-enable-autospawn.service
app:
plugin: nil
stage-packages:
- libindicator3-7
- libavahi-ui-gtk3-0
- libxkbfile1
- libvncclient1
- libavcodec58
- libavcodec-extra
- libspice-client-glib-2.0-8
- libspice-client-gtk-3.0-5
- libavutil56
- libswresample3
- libcacard0
- libzvbi0
- libxvidcore4
- libusbredirhost1
- libx265-199
- libusbredirparser1
- libx264-163
- libphodav-2.0-0
- libsnappy1v5
- libshine3
- libgsm1
- libvdpau1
- libsoxr0
- libnuma1
- libsodium23
- libusb-1.0-0
prime:
- -usr/share/doc
- -usr/share/doc-base
- -usr/share/pkgconfig
- -usr/lib/pkgconfig
- -usr/lib/*/pkgconfig
cleanup:
after: [freerdp, remmina, app]
plugin: nil
build-snaps: [core22, gnome-42-2204, gtk-common-themes] # List all content-snaps you're using here
override-prime: |
set -eux
for snap in "core22" "gnome-42-2204" "gtk-common-themes"; do # List all content-snaps you're using here
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$CRAFT_PRIME/{}" \;
done
for CRUFT in bug lintian man; do
rm -rf $CRAFT_PRIME/usr/share/$CRUFT
done
find $CRAFT_PRIME/usr/share/doc/ -type f -not -name 'copyright' -delete
find $CRAFT_PRIME/usr/share -type d -empty -delete