mirror of
https://github.com/spacedriveapp/spacedrive
synced 2024-07-07 05:33:27 +00:00
* Fix Linux release - Pin appimage-builder to latest master - Add required cmp option to AppImageBuilder.yml - Disable intro video on Linux (it breaks onboarding for some reason) * Auto format * Fix typecheck
167 lines
6.3 KiB
YAML
167 lines
6.3 KiB
YAML
# Reference:
|
|
# https://appimage-builder.readthedocs.io/en/latest/reference/version_1.html
|
|
|
|
version: 1
|
|
|
|
script: |
|
|
set -eu
|
|
# Clean up directories created by the recipe
|
|
rm "$TARGET_APPDIR" -rf || true
|
|
rm "$REPO_DIR" -rf || true
|
|
# Create a temporary Debian repository folder to put the generated Debian
|
|
# packages on, so we can install it like any other packages
|
|
mkdir -p "$REPO_DIR"
|
|
_deb="$(find "${TARGET_APPIMAGE_DIR}/../deb" -type f -name '*.deb' | sort -t '_' -k '2,2' -V | tail -n 1)"
|
|
cp -f "$_deb" "$REPO_DIR"
|
|
CWD="$PWD" && cd "$REPO_DIR" && apt-ftparchive packages . > Packages && cd "$CWD"
|
|
# The following two commands are a workaround for the local APT package not
|
|
# being saved to the archives directory, as expected by appimage-builder
|
|
mkdir -p appimage-build/apt/archives
|
|
cp -f "$_deb" appimage-build/apt/archives
|
|
|
|
AppDir:
|
|
path: !ENV '${TARGET_APPDIR}'
|
|
|
|
app_info:
|
|
id: com.spacedrive
|
|
name: Spacedrive
|
|
icon: spacedrive
|
|
version: !ENV '${VERSION}'
|
|
exec: usr/bin/spacedrive
|
|
exec_args: $@
|
|
|
|
apt:
|
|
arch: !ENV ${TARGET_APPIMAGE_APT_ARCH}
|
|
sources:
|
|
- sourceline: !ENV 'deb [arch=${TARGET_APPIMAGE_APT_ARCH}] http://deb.debian.org/debian bookworm main'
|
|
key_url: 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1f89983e0081fde018f3cc9673a4f27b8dd47936'
|
|
- sourceline: !ENV 'deb [arch=${TARGET_APPIMAGE_APT_ARCH}] http://security.debian.org/debian-security bookworm-security main'
|
|
key_url: 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1f89983e0081fde018f3cc9673a4f27b8dd47936'
|
|
- sourceline: !ENV 'deb [arch=${TARGET_APPIMAGE_APT_ARCH}] http://deb.debian.org/debian bookworm-updates main'
|
|
key_url: 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xac530d520f2f3269f5e98313a48449044aad5c5d'
|
|
- sourceline: !ENV 'deb [trusted=yes] file:${REPO_DIR}/ ./'
|
|
|
|
include:
|
|
- spacedrive
|
|
- gstreamer1.0-plugins-good
|
|
- gstreamer1.0-plugins-ugly
|
|
- gstreamer1.0-packagekit
|
|
# This package is necessary to avoid this: https://github.com/AppImageCrafters/appimage-builder/pull/191
|
|
- shared-mime-info
|
|
|
|
exclude:
|
|
- systemd
|
|
- systemd-sysv
|
|
- util-linux
|
|
- util-linux-extra
|
|
- xkb-data
|
|
- fdisk
|
|
- dmsetup
|
|
- mount
|
|
- dbus-daemon
|
|
- perl-base
|
|
- readline-common
|
|
- libpam-modules
|
|
- avahi-daemon
|
|
- adwaita-icon-theme
|
|
- humanity-icon-theme
|
|
- sensible-utils
|
|
- dconf-service
|
|
- ubuntu-mono
|
|
- fonts-*-core
|
|
- bubblewrap
|
|
- gstreamer1.0-plugins-bad
|
|
- gstreamer1.0-libav
|
|
|
|
files:
|
|
exclude:
|
|
# Development, localization, documentation and configuration files
|
|
- usr/include
|
|
- usr/share/bug
|
|
- usr/share/man
|
|
- usr/share/doc
|
|
- usr/share/doc-base
|
|
- usr/share/lintian
|
|
- usr/share/sounds
|
|
- usr/share/bash-completion
|
|
- usr/share/zsh
|
|
- usr/share/applications
|
|
- usr/share/pkgconfig
|
|
- usr/share/pam
|
|
- usr/share/pam-configs
|
|
- usr/share/polkit-1
|
|
- usr/share/util-linux
|
|
- usr/share/initramfs-tools
|
|
- usr/share/locale
|
|
- usr/share/systemd
|
|
- usr/lib/systemd
|
|
- usr/lib/*-linux-gnu/systemd
|
|
- usr/lib/udev
|
|
- usr/lib/*.d
|
|
- usr/lib/kernel
|
|
- usr/lib/tmpfiles.d
|
|
# using our own ALSA can cause issues, and the API is pretty stable anyway
|
|
- usr/lib/*/libasound.so.*
|
|
# produced by library compilation
|
|
- usr/lib/*.a
|
|
# produced by library compilation
|
|
- usr/lib/cmake
|
|
# produced by library compilation
|
|
- usr/lib/pkgconfig
|
|
- etc
|
|
- var
|
|
# systemd, pam, lsb, modprobe.d, udev and misc daemon files
|
|
- lib/systemd
|
|
- lib/*-linux-gnu/security
|
|
- lib/udev
|
|
- lib/lsb
|
|
- lib/modprobe.d
|
|
# Unneeded utility programs and libraries
|
|
- usr/sbin
|
|
# Remove any binary but spacedrive
|
|
- usr/bin/[!s]*
|
|
- usr/bin/s[!p]*
|
|
- usr/bin/sp[!a]*
|
|
- usr/bin/spa[!c]*
|
|
- usr/bin/spac[!e]*
|
|
- sbin
|
|
- bin
|
|
|
|
runtime:
|
|
path_mappings:
|
|
- !ENV '/usr/lib/${TARGET_APPIMAGE_ARCH}-linux-gnu/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so:$APPDIR/usr/lib/${TARGET_APPIMAGE_ARCH}-linux-gnu/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so'
|
|
|
|
# Patch webkit2gtk so it works under appimage
|
|
after_bundle: |
|
|
set -eux
|
|
|
|
# libwebkit2gtk Patch for WebKit binaries
|
|
mv "${TARGET_APPDIR}/usr/lib/${TARGET_APPIMAGE_ARCH}-linux-gnu/webkit2gtk-4.0/WebKitWebProcess" "${TARGET_APPDIR}/usr/bin/WebKitWebProcess"
|
|
mv "${TARGET_APPDIR}/usr/lib/${TARGET_APPIMAGE_ARCH}-linux-gnu/webkit2gtk-4.0/WebKitNetworkProcess" "${TARGET_APPDIR}/usr/bin/WebKitNetworkProcess"
|
|
if [ "$TARGET_APPIMAGE_ARCH" == 'aarch64' ]; then
|
|
find "${TARGET_APPDIR}/usr/lib/aarch64-linux-gnu" -type f -name 'libwebkit2gtk-4.0.so*' -exec sed -i -e "s|/usr/lib/aarch64-linux-gnu/webkit2gtk-4.0\([^/][^i][^n]\)|../../././././././././././././././usr/bin\1|g" '{}' \;
|
|
else
|
|
find "${TARGET_APPDIR}/usr/lib/x86_64-linux-gnu" -type f -name 'libwebkit2gtk-4.0.so*' -exec sed -i -e "s|/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0\([^/][^i][^n]\)|../.././././././././././././././usr/bin/\1|g" '{}' \;
|
|
fi
|
|
|
|
# libwebkit2gtk Patch for gstreamer binaries
|
|
mv "${TARGET_APPDIR}/usr/libexec/pk-gstreamer-install" "${TARGET_APPDIR}/usr/bin/pk-gstreamer-install"
|
|
ln -sf pk-gstreamer-install "${TARGET_APPDIR}/usr/bin/gst-install-plugins-helper"
|
|
mv "${TARGET_APPDIR}/usr/lib/${TARGET_APPIMAGE_ARCH}-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper" "${TARGET_APPDIR}/usr/bin/gst-ptp-helper"
|
|
mv "${TARGET_APPDIR}/usr/lib/${TARGET_APPIMAGE_ARCH}-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner" "${TARGET_APPDIR}/usr/bin/gst-plugin-scanner"
|
|
find "${TARGET_APPDIR}/usr/lib/${TARGET_APPIMAGE_ARCH}-linux-gnu" -type f -name 'libwebkit2gtk-4.0.so*' -exec sed -i -e "s|/usr/libexec/gstreamer-1.0|../../././././././usr/bin/|g" '{}' \;
|
|
|
|
after_runtime: |
|
|
set -eux
|
|
|
|
find "$TARGET_APPDIR" -type d -empty -delete
|
|
|
|
# Tests don't work due to Tauri security checks we can't work around:
|
|
# https://github.com/tauri-apps/tauri/blob/35264b4c1801b381e0b867c1c35540f0fbb43365/core/tauri-utils/src/lib.rs#L202
|
|
|
|
AppImage:
|
|
arch: !ENV '${TARGET_APPIMAGE_ARCH}'
|
|
comp: xz
|
|
sign-key: None
|
|
update-information: None
|