[Scummvm-git-logs] scummvm master -> 1ebbaceeeca9d8e08794c7ba54837faa58a7ac98
lotharsm
mail at serra.me
Sun Jun 21 10:25:39 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5520fc436e GIT: Add .snap packages to .gitignore
1ebbaceeec DISTS: Add snapcraft build recipes
Commit: 5520fc436e824cbbd3a95bfe1a218040d1e35e9e
https://github.com/scummvm/scummvm/commit/5520fc436e824cbbd3a95bfe1a218040d1e35e9e
Author: Lothar Serra Mari (mail at serra.me)
Date: 2020-06-21T12:25:23+02:00
Commit Message:
GIT: Add .snap packages to .gitignore
Changed paths:
.gitignore
diff --git a/.gitignore b/.gitignore
index 23bb39017c..9782830c91 100644
--- a/.gitignore
+++ b/.gitignore
@@ -261,5 +261,8 @@ gmon.out
#Ignore Android Studio files
.idea
-#Ingore temporary Android project folder
+#Ignore temporary Android project folder
android_project
+
+#Ignore snapcraft build artifacts
+.snap
\ No newline at end of file
Commit: 1ebbaceeeca9d8e08794c7ba54837faa58a7ac98
https://github.com/scummvm/scummvm/commit/1ebbaceeeca9d8e08794c7ba54837faa58a7ac98
Author: Lothar Serra Mari (mail at serra.me)
Date: 2020-06-21T12:25:23+02:00
Commit Message:
DISTS: Add snapcraft build recipes
Initial import from https://github.com/snapcrafters/scummvm.
Importing the snapcrafters repository here is the first step in order
to officially take over maintenance of the snap package hosted at
snapcraft.io/scummvm.
For now, please submit PRs to the _snapcrafters_ repository.
Changed paths:
A dists/snap/README.md
A dists/snap/scripts/bin/daemon-start.sh
A dists/snap/scripts/bin/scummvm-launch.sh
A dists/snap/scripts/bin/wayland-if-possible.sh
A dists/snap/snap/gui/scummvm.desktop
A dists/snap/snap/gui/scummvm.png
A dists/snap/snap/hooks/configure
A dists/snap/snap/hooks/connect-plug-wayland
A dists/snap/snap/hooks/disconnect-plug-wayland
A dists/snap/snap/hooks/install
A dists/snap/snap/hooks/post-refresh
A dists/snap/snap/snapcraft.yaml
diff --git a/dists/snap/README.md b/dists/snap/README.md
new file mode 100644
index 0000000000..e33f0da58a
--- /dev/null
+++ b/dists/snap/README.md
@@ -0,0 +1,78 @@
+<h1 align="center">
+ <img src="https://raw.githubusercontent.com/scummvm/scummvm/master/icons/scummvm.ico" alt="ScummVM">
+ <br />
+ ScummVM
+</h1>
+
+<p align="center"><b>This is the snap for ScummVM</b>, <i>"ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files."</i>. It works on Ubuntu, Fedora, Debian, and other major Linux
+distributions.</p>
+
+<!-- Uncomment and modify this when you are provided a build status badge
+<p align="center">
+<a href="https://build.snapcraft.io/user/snapcrafters/fork-and-rename-me"><img src="https://build.snapcraft.io/badge/snapcrafters/fork-and-rename-me.svg" alt="Snap Status"></a>
+</p>
+-->
+
+## Install
+
+ sudo snap install scummvm
+
+([Don't have snapd installed?](https://snapcraft.io/docs/core/install))
+
+<!-- Uncomment and modify this when you have a screenshot
+
+-->
+
+<p align="center">Published for <img src="http://anything.codes/slack-emoji-for-techies/emoji/tux.png" align="top" width="24" /> with :gift_heart: by Snapcrafters</p>
+
+## Remaining tasks
+
+Snapcrafters ([join us](https://forum.snapcraft.io/t/join-snapcrafters/1325))
+are working to land snap install documentation and
+the [snapcraft.yaml](https://github.com/snapcrafters/fork-and-rename-me/blob/master/snap/snapcraft.yaml)
+upstream so ScummVM can authoritatively publish future releases.
+
+ - [x] Fork the [Snapcrafters template](https://github.com/snapcrafters/fork-and-rename-me) repository to your own GitHub account.
+ - If you have already forked the Snapcrafter template to your account and want to create another snap, you'll need to use GitHub's [Import repository](https://github.com/new/import) feature because you can only fork a repository once.
+ - [x] Rename the forked Snapcrafters template repository
+ - [x] Update logos and references to `[Project]` and `[my-snap-name]`
+ - [ ] Create a snap that runs in `devmode`
+ - [x] Register the snap in the store, **using the preferred upstream name**
+ - [ ] Add a screenshot to this `README.md`
+ - [ ] Publish the `devmode` snap in the Snap store edge channel
+ - [x] Add install instructions to this `README.md`
+ - [ ] Update snap store metadata, icons and screenshots
+ - [x] Convert the snap to `strict` confinement, or `classic` confinement if it qualifies
+ - [ ] Publish the confined snap in the Snap store beta channel
+ - [x] Update the install instructions in this `README.md`
+ - [ ] Post a call for testing on the [Snapcraft Forum](https://forum.snapcraft.io) - [link]()
+ - [ ] Ask a [Snapcrafters admin](https://github.com/orgs/snapcrafters/people?query=%20role%3Aowner) to fork your repo into github.com/snapcrafters, transfer the snap name from you to snapcrafters, and configure the repo for automatic publishing into edge on commit
+ - [ ] Add the provided Snapcraft build badge to this `README.md`
+ - [x] Publish the snap in the Snap store stable channel
+ - [x] Update the install instructions in this `README.md`
+ - [ ] Post an announcement in the [Snapcraft Forum](https://forum.snapcraft.io) - [link]()
+ - [ ] Submit a pull request or patch upstream that adds snap install documentation - [link]()
+ - [ ] Submit a pull request or patch upstream that adds the `snapcraft.yaml` and any required assets/launchers - [link]()
+ - [ ] Add upstream contact information to the `README.md`
+ - If upstream accept the PR:
+ - [ ] Request upstream create a Snap store account
+ - [ ] Contact the Snap Advocacy team to request the snap be transferred to upstream
+ - [ ] Ask the Snap Advocacy team to celebrate the snap - [link]()
+
+If you have any questions, [post in the Snapcraft forum](https://forum.snapcraft.io).
+
+<!--
+## The Snapcrafters
+
+| [](https://github.com/yourname/) |
+| :---: |
+| [Your Name](https://github.com/yourname/) |
+-->
+
+<!-- Uncomment and modify this when you have upstream contacts
+## Upstream
+
+| [](https://github.com/upstreamname) |
+| :---: |
+| [Upstream Name](https://github.com/upstreamname) |
+-->
diff --git a/dists/snap/scripts/bin/daemon-start.sh b/dists/snap/scripts/bin/daemon-start.sh
new file mode 100755
index 0000000000..12f9d78587
--- /dev/null
+++ b/dists/snap/scripts/bin/daemon-start.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if [ "$(id -u)" = "0" ] && [ "$(snapctl get daemon)" = "false" ]
+then
+ # If not configured to run as a daemon we have to stop here
+ # (There's no "snapctl disable ...")
+ snapctl stop $SNAP_NAME.daemon
+ exit 0
+fi
+
+mkdir -p "$XDG_RUNTIME_DIR" -m 700
+
+if [ -z "${WAYLAND_DISPLAY}" ]
+then WAYLAND_DISPLAY=wayland-0
+fi
+
+real_wayland=$(dirname "$XDG_RUNTIME_DIR")/${WAYLAND_DISPLAY}
+while [ ! -O "${real_wayland}" ]; do echo waiting for Wayland socket; sleep 4; done
+
+ln -sf "${real_wayland}" "$XDG_RUNTIME_DIR"
+
+exec "$@"
\ No newline at end of file
diff --git a/dists/snap/scripts/bin/scummvm-launch.sh b/dists/snap/scripts/bin/scummvm-launch.sh
new file mode 100755
index 0000000000..bc7c996ec9
--- /dev/null
+++ b/dists/snap/scripts/bin/scummvm-launch.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -x
+
+if [ -z "${XDG_CONFIG_HOME}" ]
+then
+ if [ -z "${HOME}" ]
+ then XDG_CONFIG_HOME=$SNAP_USER_DATA/.config
+ else XDG_CONFIG_HOME=${HOME}/.config
+ fi
+fi
+
+# Hook up speech-dispatcher
+mkdir -p $XDG_RUNTIME_DIR/speech-dispatcher
+$SNAP/usr/bin/speech-dispatcher -d -C "$SNAP/etc/speech-dispatcher" -S "$XDG_RUNTIME_DIR/speech-dispatcher/speechd.sock" -m "$SNAP/usr/lib/speech-dispatcher-modules" -t 30
+
+# We need to do this for the user that launches scummvm, so
+# it can't be done on installation
+while [ ! -f "${XDG_CONFIG_HOME}/scummvm/.added-games-bundle" ]
+do
+ mkdir -p ${XDG_CONFIG_HOME}/scummvm/
+ touch ${XDG_CONFIG_HOME}/scummvm/.added-games-bundle
+ if ! grep -E "comi|drascula|dreamweb|lure|myst|queen|sky|sword" ${XDG_CONFIG_HOME}/scummvm/scummvm.ini
+ then
+ # Register the bundled games. We use a "while" loop as we can't easily
+ # tell when scummvm is finished.
+ $SNAP/bin/scummvm -p /usr/share/scummvm/ --recursive --add
+ sleep 1
+ fi
+done
+
+exec $SNAP/bin/scummvm "$@"
\ No newline at end of file
diff --git a/dists/snap/scripts/bin/wayland-if-possible.sh b/dists/snap/scripts/bin/wayland-if-possible.sh
new file mode 100755
index 0000000000..9951d69230
--- /dev/null
+++ b/dists/snap/scripts/bin/wayland-if-possible.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+if [ -O "$XDG_RUNTIME_DIR/${WAYLAND_DISPLAY:-wayland-0}" ] && [ -e $SNAP_COMMON/wayland.connected ]; then export SDL_VIDEODRIVER=wayland; fi
+
+exec "$@"
diff --git a/dists/snap/snap/gui/scummvm.desktop b/dists/snap/snap/gui/scummvm.desktop
new file mode 100644
index 0000000000..e0013d266c
--- /dev/null
+++ b/dists/snap/snap/gui/scummvm.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Name=ScummVM
+Comment=Interpreter for numerous adventure games and RPGs
+Comment[pl]=Interpreter graficznych gier przygodowych
+Comment[sv]=Tolk för flera äventyrsspel
+Comment[he]=×¤×¨×©× ××ספר ×ש××§× ×רפתק××ת
+Comment[de]=Interpreter für zahlreiche Abenteuerspiele und RPGs
+Comment[es]=Intérprete para varias aventuras gráficas
+Comment[ca]=Intèrpret per diverses aventures grà fiques
+Exec=scummvm
+Icon=${SNAP}/meta/gui/scummvm.png
+Terminal=false
+Type=Application
+Categories=Game;AdventureGame;
+StartupNotify=false
diff --git a/dists/snap/snap/gui/scummvm.png b/dists/snap/snap/gui/scummvm.png
new file mode 100644
index 0000000000..6910e41045
Binary files /dev/null and b/dists/snap/snap/gui/scummvm.png differ
diff --git a/dists/snap/snap/hooks/configure b/dists/snap/snap/hooks/configure
new file mode 100755
index 0000000000..ad46d7b9e2
--- /dev/null
+++ b/dists/snap/snap/hooks/configure
@@ -0,0 +1,2 @@
+#!/bin/sh
+snapctl restart $SNAP_NAME
diff --git a/dists/snap/snap/hooks/connect-plug-wayland b/dists/snap/snap/hooks/connect-plug-wayland
new file mode 100755
index 0000000000..51fb593d0b
--- /dev/null
+++ b/dists/snap/snap/hooks/connect-plug-wayland
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+touch $SNAP_COMMON/wayland.connected
diff --git a/dists/snap/snap/hooks/disconnect-plug-wayland b/dists/snap/snap/hooks/disconnect-plug-wayland
new file mode 100755
index 0000000000..ff58b77d25
--- /dev/null
+++ b/dists/snap/snap/hooks/disconnect-plug-wayland
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+rm -f $SNAP_COMMON/wayland.connected
diff --git a/dists/snap/snap/hooks/install b/dists/snap/snap/hooks/install
new file mode 100755
index 0000000000..6b2ad9108a
--- /dev/null
+++ b/dists/snap/snap/hooks/install
@@ -0,0 +1,12 @@
+#!/bin/sh
+set -x
+
+if [ "$(snapctl get daemon)" = "" ]
+then
+ # We run as a daemon on core, otherwise configure the daemon to stop
+ # (There's no "snapctl disable ...")
+ if grep -q snap_core= /proc/cmdline
+ then snapctl set daemon=true
+ else snapctl set daemon=false
+ fi
+fi
diff --git a/dists/snap/snap/hooks/post-refresh b/dists/snap/snap/hooks/post-refresh
new file mode 100755
index 0000000000..6b2ad9108a
--- /dev/null
+++ b/dists/snap/snap/hooks/post-refresh
@@ -0,0 +1,12 @@
+#!/bin/sh
+set -x
+
+if [ "$(snapctl get daemon)" = "" ]
+then
+ # We run as a daemon on core, otherwise configure the daemon to stop
+ # (There's no "snapctl disable ...")
+ if grep -q snap_core= /proc/cmdline
+ then snapctl set daemon=true
+ else snapctl set daemon=false
+ fi
+fi
diff --git a/dists/snap/snap/snapcraft.yaml b/dists/snap/snap/snapcraft.yaml
new file mode 100644
index 0000000000..c7e2a4566f
--- /dev/null
+++ b/dists/snap/snap/snapcraft.yaml
@@ -0,0 +1,250 @@
+name: scummvm
+base: core18
+license: GPL-2.0
+adopt-info: scummvm
+summary: ScummVM
+description: |
+ ScummVM is a program which allows you to run certain classic graphical
+ point-and-click adventure games, provided you already have their data
+ files. The clever part about this: ScummVM just replaces the executables
+ shipped with the game, allowing you to play them on systems for which
+ they were never designed!
+
+ Currently, ScummVM supports a huge library of adventures with over
+ 250 games in total.
+
+ It supports many classics published by legendary studios like LucasArts,
+ Sierra On-Line, Revolution Software, Cyan, Inc. and Westwood Studios.
+ Next to ground-breaking titles like the Monkey Island series,
+ Broken Sword, Myst, Blade Runner and countless other games,
+ you will find some really obscure adventures and truly hidden gems to explore.
+confinement: strict
+grade: stable
+
+# **Workaround** The following are duplicated for "daemon" (putting them at the top level doesn't work in *this* snap)
+plugs:
+ wayland:
+ opengl:
+ alsa:
+ audio-playback:
+ network:
+ network-bind:
+ removable-media:
+
+apps:
+ scummvm:
+ command-chain: ["snap/command-chain/alsa-launch"]
+ extensions: [gnome-3-28]
+ command: desktop-launch $SNAP/bin/wayland-if-possible.sh $SNAP/bin/scummvm-launch.sh
+ plugs:
+ - wayland
+ - x11
+ - opengl
+ - unity7
+ - pulseaudio
+ - alsa
+ - audio-playback
+ - network
+ - network-bind
+ - removable-media
+ - home
+ - gsettings
+ - mount-observe
+ environment:
+ LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/libunity/:$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/pulseaudio/:$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/speech-dispatcher/"
+ ESPEAK_DATA_PATH: "$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/espeak-ng-data"
+ DBUS_FATAL_WARNINGS: 0
+
+ daemon:
+ command: daemon-start.sh $SNAP/bin/scummvm-launch.sh -f
+ daemon: simple
+ restart-condition: always
+ plugs:
+ - pulseaudio
+ # **Workaround** The following are duplicated for "daemon" (putting them at the top level doesn't work in *this* snap)
+ - wayland
+ - opengl
+ - alsa
+ - audio-playback
+ - network
+ - network-bind
+ - removable-media
+ environment:
+ SDL_VIDEODRIVER: wayland
+ LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/:$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/libunity/:$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/pulseaudio/:$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/speech-dispatcher/"
+ ESPEAK_DATA_PATH: "$SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/espeak-ng-data"
+ PULSE_SYSTEM: 1
+ PULSE_RUNTIME_PATH: /var/run/pulse
+
+layout:
+ /usr/share/glvnd/egl_vendor.d:
+ bind: $SNAP/usr/share/glvnd/egl_vendor.d
+ /usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/dri:
+ bind: $SNAP/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/dri
+ /usr/share/X11/xkb:
+ bind: $SNAP/usr/share/X11/xkb
+ /usr/share/scummvm:
+ bind: $SNAP/usr/share/scummvm
+ /usr/share/applications:
+ bind: $SNAP/usr/share/applications
+ /usr/share/alsa:
+ bind: $SNAP/usr/share/alsa
+
+parts:
+ scummvm:
+ after: [alsa-mixin]
+ source: https://github.com/scummvm/scummvm.git
+ override-build: |
+ last_committed_tag="$(git tag --list | tac | head -n1)"
+ trimmed_tag="$(echo $last_committed_tag | sed 's/desc\///' | sed 's/git//' | sed 's/^v//')"
+ last_released_tag="$(snap info scummvm | awk '$1 == "latest/beta:" { print $2 }')"
+ # If the latest tag from the upstream project has not been released to
+ # beta, build that tag instead of master.
+ if [ "${trimmed_tag}" != "${last_released_tag}" ]; then
+ git fetch
+ git checkout "${last_committed_tag}"
+ snapcraftctl set-version $(git -C ../src tag --list | tac | head -n1 | sed 's/desc\///' | sed 's/git//' | sed 's/^v//')
+ else
+ snapcraftctl set-version $(git -C ../src describe | sed 's/desc\///')
+ fi
+ snapcraftctl build
+
+ plugin: autotools
+ configflags:
+ - --enable-release
+ - --enable-tts
+ - --enable-opl2lpt
+ - --enable-c++11
+ - --disable-debug
+
+ build-packages:
+ - libsdl2-dev
+ - libgtk-3-dev
+ - libjpeg62-dev
+ - libmpeg2-4-dev
+ - liba52-dev
+ - libogg-dev
+ - libvorbis-dev
+ - libflac-dev
+ - libmad0-dev
+ - libpng-dev
+ - libtheora-dev
+ - libfaad-dev
+ - libfluidsynth-dev
+ - libfreetype6-dev
+ - libfribidi-dev
+ - zlib1g-dev
+ - libunity-dev
+ - libcurl4-openssl-dev
+ - libsdl2-net-dev
+ - libieee1284-3-dev
+ - libspeechd-dev
+ stage-packages:
+ - libicu60
+ - libfaad2
+ - libflac8
+ - libfluidsynth1
+ - libfribidi0
+ - libgl1-mesa-dri
+ - libgl1-mesa-glx
+ - libglu1-mesa
+ - libwayland-egl1-mesa
+ - libjpeg62
+ - libjpeg8
+ - libmad0
+ - libmpeg2-4
+ - libogg0
+ - libpng16-16
+ - libpulse0
+ - libsdl2-2.0-0
+ - libsndio6.1
+ - libtheora0
+ - libvorbis0a
+ - libvorbisfile3
+ - zlib1g
+ - libdbusmenu-glib4
+ - libdee-1.0-4
+ - libslang2
+ - libunity-protocol-private0
+ - libunity9
+ - freeglut3
+ - libcurl4
+ - libsdl2-net-2.0-0
+ - liba52-0.7.4
+ - libieee1284-3
+ - locales-all
+ - ttf-ubuntu-font-family
+ - espeak-ng
+ - espeak-ng-data
+ - libspeechd2
+ - speech-dispatcher
+ - speech-dispatcher-audio-plugins
+ - speech-dispatcher-espeak-ng
+
+ alsa-mixin:
+ plugin: nil
+ source: https://github.com/diddlesnaps/snapcraft-alsa.git
+ override-pull: |
+ cat > asound.conf <<EOF
+ pcm.!default {
+ type pulse
+ fallback "sysdefault"
+ hint {
+ show on
+ description "Default ALSA Output (currently PulseAudio Sound Server)"
+ }
+ }
+ ctl.!default {
+ type pulse
+ fallback "sysdefault"
+ }
+ seq.default {
+ type hw
+ }
+ seq.hw {
+ type hw
+ }
+ EOF
+ cat > alsa-launch <<EOF
+ #!/bin/bash
+ export ALSA_CONFIG_PATH="\$SNAP/etc/asound.conf"
+
+ if [ -d "\$SNAP/usr/lib/alsa-lib" ]; then
+ export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:\$SNAP/usr/lib/alsa-lib"
+ elif [ -d "\$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib" ]; then
+ export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:\$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib"
+ fi
+ export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:\$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio"
+
+ # Make PulseAudio socket available inside the snap-specific \$XDG_RUNTIME_DIR
+ if [ -n "\$XDG_RUNTIME_DIR" ]; then
+ pulsenative="pulse/native"
+ pulseaudio_sockpath="\$XDG_RUNTIME_DIR/../\$pulsenative"
+ if [ -S "\$pulseaudio_sockpath" ]; then
+ export PULSE_SERVER="unix:\${pulseaudio_sockpath}"
+ fi
+ fi
+
+ exec "\$@"
+ EOF
+ chmod +x alsa-launch
+ override-build: |
+ snapcraftctl build
+ install -m644 -D -t $SNAPCRAFT_PART_INSTALL/etc asound.conf
+ install -m755 -D -t $SNAPCRAFT_PART_INSTALL/snap/command-chain alsa-launch
+ build-packages:
+ - libasound2-dev
+ stage-packages:
+ - libasound2
+ - libasound2-plugins
+
+ scripts:
+ plugin: dump
+ source: scripts
+
+ games:
+ plugin: dump
+ source: https://www.scummvm.org/frs/extras/storefront/games-bundle.zip
+ source-checksum: sha256/5c16f3db7fda3660d1bddb52e76aa27ada8eb8268872f5e045490f3eabb603e1
+ organize:
+ games-bundle: usr/share/scummvm/
More information about the Scummvm-git-logs
mailing list