1
0
mirror of https://github.com/lutris/lutris synced 2024-07-03 07:28:41 +00:00

Snap progress

Signed-off-by: Daniel Llewellyn <daniel@bowlhat.net>
This commit is contained in:
Daniel Llewellyn 2020-05-16 01:11:11 +01:00 committed by Mathieu Comandon
parent fef2be2319
commit a0e2b18ce8
2 changed files with 199 additions and 123 deletions

199
snap/snapcraft.yaml Normal file
View File

@ -0,0 +1,199 @@
name: lutris
confinement: strict
base: core18
grade: stable
adopt-info: lutris
architectures:
- build-on: amd64
- build-on: i386
# package-repositories:
# - type: apt
# deb-types: [deb]
# components: [main]
# suites: [$SNAPCRAFT_APT_RELEASE]
# key-id: 76F1A20FF987672F
# url: https://dl.winehq.org/wine-builds/ubuntu/
parts:
extensible-hooks:
plugin: dump
source: https://github.com/diddlesnaps/snapcraft-utils-library.git
source-subdir: snapcraft-assets/extensible-hooks
ld-precache:
after:
- extensible-hooks
- gnome-extension-hack
- lutris
- lutris-runtime
plugin: dump
source: https://github.com/diddlesnaps/snapcraft-utils-library.git
source-subdir: snapcraft-assets/ld-precache
enable-i386:
plugin: nil
override-build: |
snapcraftctl build
if [ "$SNAPCRAFT_ARCH_TRIPLET" = "x86_64-linux-gnu" ]; then
dpkg --add-architecture i386
apt update
fi
gnome-extension-hack:
plugin: dump
source: .
override-pull: |
cat <<'EOF' > gnome-extension-hack
#!/bin/sh
rm -f "$XDG_DATA_HOME/icons/hicolor/"* || true
if [ "$SNAP_ARCH" = "amd64" ]; then
export LD_LIBRARY_PATH="$SNAP/usr/lib/i386-linux-gnu:$SNAP/lib/i386-linux-gnu:$LD_LIBRARY_PATH"
export LIBGL_DRIVERS_PATH="$LIBGL_DRIVERS_PATH:$SNAP/usr/lib/i386-linux-gnu/dri"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIBGL_DRIVERS_PATH"
export LIBVA_DRIVERS_PATH="$SNAP/usr/lib/i386-linux-gnu/dri"
fi
exec "$@"
EOF
chmod +x gnome-extension-hack
organize:
gnome-extension-hack: bin/gnome-extension-hack
lutris:
after: [enable-i386]
plugin: python
python-version: python3
source: .
parse-info: [share/metainfo/net.lutris.Lutris.metainfo.xml]
override-pull: |
snapcraftctl pull
sed -i 's|Icon=.*|Icon=${SNAP}/share/icons/hicolor/scalable/apps/lutris.svg|' share/applications/net.lutris.Lutris.desktop
build-packages:
- gobject-introspection
- libgirepository1.0-dev
- python3
- python3-gi
- python3-pil
- python3-requests
- python3-setproctitle
- python3-yaml
lutris-runtime:
after: [enable-i386]
plugin: nil
stage-packages:
- cabextract
- curl
- fluid-soundfont-gs
- gir1.2-glib-2.0
- gir1.2-gnomedesktop-3.0
- gir1.2-gtk-3.0
- gir1.2-notify-0.7
- gir1.2-webkit2-4.0
- libgnutls30
- libvulkan1
- libxrandr2
- mesa-utils
- p7zip
- psmisc
- python3
- python3-dbus
- python3-gi
- python3-pil
- python3-requests
- python3-setproctitle
- python3-yaml
- unzip
- wine
- x11-xserver-utils
- xterm
- xz-utils
- on amd64:
- lib32gcc1
- libc6-i386
- libglu1-mesa:i386
- libglvnd0:i386
- libglx-mesa0:i386
- libgnutls30:i386
- libvulkan1:i386
- libx11-6:i386
- x11-xserver-utils:i386
stage:
- -lib/ld-linux.so.2
- -usr/bin/cpp-7
- -usr/lib/*/libjavascript*
- -usr/lib/*/libwebkit*
- -usr/share/doc/cpp/README.Debian
- -usr/share/man/man1/cpp-7.1.gz
hooks:
install:
command-chain:
- snap/command-chain/snapcraft-runner
- snap/command-chain/desktop-launch
- bin/gnome-extension-hack
post-refresh:
command-chain:
- snap/command-chain/snapcraft-runner
- snap/command-chain/desktop-launch
- bin/gnome-extension-hack
layout:
/etc/ld.so.cache:
bind-file: $SNAP_DATA/etc/ld.so.cache
slots:
dbus-lutris:
interface: dbus
bus: session
name: net.lutris.Lutris
environment:
HOME: $SNAP_USER_COMMON
apps:
lutris:
command: bin/gnome-extension-hack $SNAP/usr/bin/python3 $SNAP/bin/lutris -d
extensions: [gnome-3-28]
desktop: share/applications/net.lutris.Lutris.desktop
common-id: net.lutris.Lutris
plugs:
- audio-playback
- browser-support
- daemon-notify
- desktop
- desktop-legacy
- gsettings
- hardware-observe
- home
- io-ports-control
- joystick
- kvm
- libvirt
- mount-observe
- network
- network-bind
- network-manager
- opengl
- pulseaudio
- removable-media
- screen-inhibit-control
- unity7
- wayland
- x11
slots:
- dbus-lutris
# wine:
# extensions: [gnome-3-28]
# command: usr/bin/wine-stable
# wine64:
# extensions: [gnome-3-28]
# command: usr/bin/wine64-stable
# winecfg:
# extensions: [gnome-3-28]
# command: usr/bin/winecfg-stable

View File

@ -1,123 +0,0 @@
name: lutris
version: git
confinement: devmode #chaning to strict causes errors trying to read nvidia version file, need to figure it out
base: core18
grade: stable
architectures:
- build-on: amd64
- build-on: i386
summary: lutris snap
description: |
Lutris is a gaming platform for GNU/Linux. Its goal is to make
gaming on Linux as easy as possible by taking care of installing
and setting up the game for the user. The only thing you have to
do is play the game. It aims to support every game that is playable
on Linux.
parts:
enable-i386:
plugin: nil
override-build: |
snapcraftctl build
if [ "$SNAPCRAFT_ARCH_TRIPLET" = "x86_64-linux-gnu" ]; then
dpkg --add-architecture i386
apt update
fi
desktop-gnome-platform:
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-depth: 1
source-subdir: gtk
plugin: make
build-packages: [build-essential, libgtk-3-dev]
override-build: |
snapcraftctl build
mkdir -pv $SNAPCRAFT_PART_INSTALL/gnome-platform
after: [enable-i386]
wine:
plugin: nil
build-packages: [dpkg, wget]
override-build: |
snapcraftctl build
ARCH="$(dpkg --print-architecture)"
WINE_REL="wine-devel"
WINE_VER="4.7"
# wget and dpkg extract the wine debs
## supporting binaries which are arch-specific but the same filenames in both architectures so we only install the native architecture
DEB_URLS="https://dl.winehq.org/wine-builds/ubuntu/dists/bionic/main/binary-${ARCH}/${WINE_REL}_${WINE_VER}~bionic_${ARCH}.deb"
## wine loaders - this one is the native system architecture
DEB_URLS="$DEB_URLS https://dl.winehq.org/wine-builds/ubuntu/dists/bionic/main/binary-${ARCH}/${WINE_REL}-${ARCH}_${WINE_VER}~bionic_${ARCH}.deb"
if [ "$ARCH" = "amd64" ]; then
## on amd64 builds we need to also bundle the i386 wine loaders
DEB_URLS="$DEB_URLS https://dl.winehq.org/wine-builds/ubuntu/dists/bionic/main/binary-i386/${WINE_REL}-i386_${WINE_VER}~bionic_i386.deb"
fi
for DEB_URL in ${DEB_URLS}; do
DEB=$(basename "${DEB_URL}")
echo "Downloading ${DEB_URL}..."
wget --quiet "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB}"
echo "Unpacking ${DEB}..."
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB}" ${SNAPCRAFT_PART_INSTALL}
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB}"
done
# Organise and cleanup
cp -a ${SNAPCRAFT_PART_INSTALL}/opt/${WINE_REL}/* ${SNAPCRAFT_PART_INSTALL}/
stage: [-opt, -share/applications, -share/man, -usr/share/doc, -usr/share/lintian]
after: [enable-i386]
wine-runtime:
plugin: nil
stage-packages: [libasound2, libasound2-plugins, libglib2.0-0, libgphoto2-6, gstreamer1.0-plugins-base, libgstreamer-plugins-base1.0-0, liblcms2-2, libldap-2.4-2, libmpg123-0, libncurses5, libopenal1, libpcap0.8, libpulse0, libudev1, libxext6, libxml2, zlib1g, libcups2, libdbus-1-3, libfontconfig1, libfreetype6, libgif7, libglu1-mesa, libgnutls30, libgpg-error0, libgsm1, libgssapi-krb5-2, libjpeg8, libodbc1, libosmesa6, libpng16-16, libsane, libsdl2-2.0-0, libsqlite3-0, libtiff5, libva2, libv4l-0, libvulkan1, libxcomposite1, libxcursor1, libxfixes3, libxi6, libxinerama1, libxrandr2, libxrender1, libxslt1.1, libxxf86vm1, locales-all, va-driver-all, samba-libs, winbind, adwaita-icon-theme, dmz-cursor-theme, gnome-themes-standard, ibus-gtk3, libappindicator3-1, libgdk-pixbuf2.0-0, libgtk-3-0, libgtk-3-bin, libibus-1.0-5, libxkbcommon0, light-themes, shared-mime-info, ttf-ubuntu-font-family, unity-gtk3-module, xdg-user-dirs, on amd64: ['libasound2:i386', 'libasound2-plugins:i386', 'libc6:i386', 'libglib2.0-0:i386', 'libgphoto2-6:i386', 'gstreamer1.0-plugins-base:i386', 'libgstreamer-plugins-base1.0-0:i386', 'liblcms2-2:i386', 'libldap-2.4-2:i386', 'libmpg123-0:i386', 'libncurses5:i386', 'libopenal1:i386', 'libpcap0.8:i386', 'libpulse0:i386', 'libudev1:i386', 'libxext6:i386', 'libxml2:i386', 'zlib1g:i386', 'libcups2:i386', 'libdbus-1-3:i386', 'libfontconfig1:i386', 'libfreetype6:i386', 'libgif7:i386', 'libglu1-mesa:i386', 'libgnutls30:i386', 'libgpg-error0:i386', 'libgsm1:i386', 'libgssapi-krb5-2:i386', 'libjpeg8:i386', 'libodbc1:i386', 'libosmesa6:i386', 'libpng16-16:i386', 'libsane:i386', 'libsdl2-2.0-0:i386', 'libsqlite3-0:i386', 'libtiff5:i386', 'libv4l-0:i386', 'libva2:i386', 'libvulkan1:i386', 'libxcomposite1:i386', 'libxcursor1:i386', 'libxfixes3:i386', 'libxi6:i386', 'libxinerama1:i386', 'libxrandr2:i386', 'libxrender1:i386', 'libxslt1.1:i386', 'libxxf86vm1:i386', 'va-driver-all:i386', 'samba-libs:i386', 'winbind:i386', 'ibus-gtk3:i386', 'libappindicator3-1:i386', 'libgdk-pixbuf2.0-0:i386', 'libgtk-3-0:i386', 'libgtk-3-bin:i386', 'libibus-1.0-5:i386', 'libxkbcommon0:i386', 'unity-gtk3-module:i386']]
stage: [-etc/init, -etc/init.d, -etc/logrotate.d, -usr/share/apps, -usr/share/applications, -usr/share/bug, -usr/share/doc, -usr/share/doc-base, -usr/share/debhelper, -usr/share/lintian, -usr/share/man, -usr/share/pixmaps, -usr/share/pkgconfig, -lib/ld-linux.so.2]
after: [enable-i386]
lutris:
plugin: python
python-version: python3
source: https://github.com/lutris/lutris.git
override-build: |
snapcraftctl build
sed -i 's|Name=Lutris|Name=Lutris|' ${SNAPCRAFT_PART_INSTALL}/share/applications/net.lutris.Lutris.desktop
stage-packages: ['python3-all-dev', 'gir1.2-gtk-3.0', 'gir1.2-glib-2.0', 'gir1.2-gnomedesktop-3.0', 'gir1.2-webkit2-4.0', gir1.2-notify-0.7, libgirepository1.0-dev, libc-bin]
after: [enable-i386]
lutris-runtime:
plugin: nil
stage-packages: [python3, python3-setproctitle, python3-yaml, python3-requests, python3-pil, python3-gi, dh-python, curl, cabextract, psmisc, gvfs-backends, unzip, p7zip, mesa-utils, fluid-soundfont-gs, libgnutls30, x11-xserver-utils, on amd64: ['libxrandr-dev:i386', 'libgnutls30:i386', 'x11-xserver-utils:i386', 'libc6-i386', 'lib32gcc1'] ]
stage: [-lib/ld-linux.so.2, -usr/bin/cpp-7, -usr/share/doc/cpp/README.Debian, -usr/share/man/man1/cpp-7.1.gz]
after: [enable-i386]
plugs:
gnome-3-28-1804:
interface: content
target: $SNAP/gnome-platform
default-provider: gnome-3-28-1804
slots:
lutris:
interface: dbus
bus: session
name: net.lutris.Lutris
apps:
lutris:
command: bin/desktop-launch $SNAP/bin/lutris -d
plugs: [home, daemon-notify, network, network-bind, network-manager, desktop, desktop-legacy, unity7, wayland, opengl, pulseaudio, gsettings, x11, screen-inhibit-control, kvm, libvirt, removable-media, joystick, io-ports-control, hardware-observe, mount-observe]
slots: [ lutris ]
desktop: share/applications/net.lutris.Lutris.desktop
wine:
command: bin/desktop-launch $SNAP/bin/wine
wine64:
command: bin/desktop-launch $SNAP/bin/wine64
winecfg:
command: bin/desktop-launch $SNAP/bin/winecfg