From 5e8462eceb3ed03792d4d4040997a1c2db39eba5 Mon Sep 17 00:00:00 2001 From: Lothar Serra Mari Date: Sat, 20 Jun 2020 10:37:22 +0200 Subject: [PATCH] Add necessary files for building a Snap package Initial import from https://github.com/lotharsm/devilutionx-snapcraft --- Packaging/snap/gui/devilutionx.desktop | 14 +++ Packaging/snap/gui/devilutionx.png | Bin 0 -> 3846 bytes .../patches/001-missing-diabdat-notice.patch | 14 +++ Packaging/snap/snapcraft.yaml | 84 ++++++++++++++++++ 4 files changed, 112 insertions(+) create mode 100644 Packaging/snap/gui/devilutionx.desktop create mode 100644 Packaging/snap/gui/devilutionx.png create mode 100644 Packaging/snap/local/patches/001-missing-diabdat-notice.patch create mode 100644 Packaging/snap/snapcraft.yaml diff --git a/Packaging/snap/gui/devilutionx.desktop b/Packaging/snap/gui/devilutionx.desktop new file mode 100644 index 000000000..9e8a895bb --- /dev/null +++ b/Packaging/snap/gui/devilutionx.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Name=DevilutionX +GenericName=DevilutionX +Comment=Play Diablo I on Linux +Comment[da]=Spil Diablo I på Linux +Comment[de]=Spiele Diablo I unter Linux +Comment[hr]=Igrajte Diablo I na Linuxu +Exec=devilutionx +Icon=${SNAP}/meta/gui/devilutionx.png +Terminal=false +Type=Application +X-DCOP-ServiceType=Multi +X-KDE-StartupNotify=true +Categories=Game;RolePlaying; diff --git a/Packaging/snap/gui/devilutionx.png b/Packaging/snap/gui/devilutionx.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ee59eec2e4bb7bd43c72f8aee863abb91762c3 GIT binary patch literal 3846 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 ZpmI&$&%fzWN;y8g4fRd+igg^J{{bMQT5bRU literal 0 HcmV?d00001 diff --git a/Packaging/snap/local/patches/001-missing-diabdat-notice.patch b/Packaging/snap/local/patches/001-missing-diabdat-notice.patch new file mode 100644 index 000000000..08ac945ee --- /dev/null +++ b/Packaging/snap/local/patches/001-missing-diabdat-notice.patch @@ -0,0 +1,14 @@ +--- Source/appfat.cpp ++++ Source/appfat.cpp +@@ -139,7 +139,10 @@ void InsertCDDlg(const char *fileName) + 1024, + "Unable to open %s.\n" + "\n" +- "Make sure that it is in the game folder and that the file name is in all lowercase.", ++ "Make sure that it is in the game folder and that the file name is in all lowercase.\n" ++ "\n" ++ "Please copy the file diabdat.mpq from your Diablo game disc or from the GOG \n" ++ "installer to the directory ~/snap/devilutionx/common/", + fileName); + + UiErrorOkDialog("Data File Error", text); diff --git a/Packaging/snap/snapcraft.yaml b/Packaging/snap/snapcraft.yaml new file mode 100644 index 000000000..5248f83ec --- /dev/null +++ b/Packaging/snap/snapcraft.yaml @@ -0,0 +1,84 @@ +name: devilutionx +base: core18 +adopt-info: devilutionx +summary: DevilutionX - Diablo build for modern operating systems +description: | + DevilutionX is a reimplementation of Blizzard's Diablo 1, + developed by careful and deep analysis of the original game files. + + This allows you to play Diablo 1 on a wide variety of operating systems, + including GNU/Linux. + + Even though DevilutionX is an open source project, the Diablo 1 game files + are not free and protected by Blizzard's copyright. + + Therefore, you need to provide your own legitimate copy of the game. +confinement: strict +grade: stable + +apps: + devilutionx: + command: desktop-launch $SNAP/usr/bin/devilutionx --data-dir $SNAP_USER_COMMON + plugs: + - x11 + - wayland + - unity7 + - opengl + - audio-playback + - joystick + - network + - network-bind + + environment: + XDG_DATA_HOME: $SNAP_USER_COMMON/ + DBUS_FATAL_WARNINGS: 0 + +layout: + /usr/share/fonts/truetype: + bind: $SNAP/usr/share/fonts/truetype + +parts: + devilutionx: + plugin: cmake + after: [patches,desktop-glib-only] + source: https://github.com/diasurgical/devilutionx.git + source-type: git + configflags: + - '-DCMAKE_INSTALL_PREFIX=/usr' + - '-DBINARY_RELEASE=ON' + override-build: | + patch -l --binary -d$SNAPCRAFT_PART_SRC -p0 -i $SNAPCRAFT_STAGE/patches/001-missing-diabdat-notice.patch + snapcraftctl set-version "$(git -C $SNAPCRAFT_PART_SRC describe --tags)" + snapcraftctl build + + build-packages: + - cmake + - g++ + - libsdl2-dev + - libsdl2-mixer-dev + - libsdl2-ttf-dev + - libsodium-dev + + stage-packages: + - libstdc++6 + - libgl1-mesa-dri + - libgl1-mesa-glx + - libglu1-mesa + - libwayland-egl1-mesa + - libsdl2-2.0-0 + - libsdl2-mixer-2.0-0 + - libsdl2-ttf-2.0-0 + + patches: + source: snap/local/ + plugin: dump + + desktop-glib-only: + source: https://github.com/ubuntu/snapcraft-desktop-helpers.git + source-subdir: glib-only + plugin: make + build-packages: + - libglib2.0-dev + stage-packages: + - libglib2.0-bin +