CI: get rid of snap and speed up CI (#13938)

Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 726de4e..ebac882 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -90,6 +90,10 @@
       - run: sudo dpkg --add-architecture i386
         if: matrix.architecture == 'i386'
 
+      - name: Uninstall snap
+        run: |
+          sudo bash ci/remove_snap.sh
+
       - name: Install packages
         run: |
           PKGS=( \
diff --git a/Filelist b/Filelist
index d4fbca3..a3b66f1 100644
--- a/Filelist
+++ b/Filelist
@@ -20,6 +20,7 @@
 		ci/config.mk*.sed \
 		ci/if_ver*.vim \
 		ci/setup-xvfb.sh \
+		ci/remove_snap.sh \
 		src/Make_all.mak \
 		src/README.md \
 		src/alloc.c \
diff --git a/ci/remove_snap.sh b/ci/remove_snap.sh
new file mode 100644
index 0000000..a812307
--- /dev/null
+++ b/ci/remove_snap.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env sh
+pushd /etc/apt/preferences.d/
+cat > nosnap.pref <<EOF
+# To prevent repository packages from triggering the installation of snap,
+# this file forbids snapd from being installed by APT.
+
+Package: snapd
+Pin: release a=*
+Pin-Priority: -10
+EOF
+popd
+snap remove --purge $(snap list | awk '!/^Name|^core/ {print $1}')
+apt-get purge -y snapd