Package: guix-patches;
Reported by: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Date: Tue, 15 Jan 2019 18:12:01 UTC
Severity: normal
Tags: patch
Done: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 34086 in the body.
You can then email your comments to 34086 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#34086
; Package guix-patches
.
(Tue, 15 Jan 2019 18:12:01 GMT) Full text and rfc822 format available.Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
:guix-patches <at> gnu.org
.
(Tue, 15 Jan 2019 18:12:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> To: guix-patches <at> gnu.org Subject: [PATCH] Add StepMania Date: Tue, 15 Jan 2019 19:10:33 +0100
[Message part 1 (text/plain, inline)]
Hello, This patch adds StepMania. Note that I had to remove all bundled songs due to a non-commercial clause, so it's not really usable right out of the box. I also had to package a dedicated FFmpeg package, since StepMania is very picky about it. Feedback welcome. Regards, -- Nicolas Goaziou
[0001-gnu-Add-stepmania.patch (text/x-diff, inline)]
From bfefd4b4217d67f9628682cb76ce2b9015285612 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> Date: Sun, 11 Nov 2018 00:43:34 +0100 Subject: [PATCH] gnu: Add stepmania. * gnu/packages/games.scm (ffmpeg-for-stepmania): (stepmania): New variables. --- gnu/packages/games.scm | 167 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 33dbccf87..c5f855b8f 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -70,6 +70,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages audio) #:use-module (gnu packages avahi) + #:use-module (gnu packages assembly) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) @@ -5946,3 +5947,169 @@ order. You rotate the blocks and move them across the screen to drop them in complete lines. You score by dropping blocks fast and completing lines. As your score gets higher, you level up and the blocks fall faster.") (license license:gpl2+))) + +(define ffmpeg-for-stepmania + (package + (name "ffmpeg-for-stepmania") + (version "2.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stepmania/ffmpeg.git") + (commit "eda6effcabcf9c238e4635eb058d72371336e09b"))) + (sha256 + (base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:configure-flags + '("--disable-programs" + "--disable-doc" + "--disable-debug" + "--disable-avdevice" + "--disable-swresample" + "--disable-postproc" + "--disable-avfilter" + "--disable-shared" + "--enable-static") + #:phases + (modify-phases %standard-phases + (replace 'configure + ;; configure does not work followed by "SHELL=..." and + ;; "CONFIG_SHELL=..."; set environment variables instead + (lambda* (#:key outputs configure-flags #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "configure" + (("#! /bin/sh") (string-append "#!" (which "sh")))) + (setenv "SHELL" (which "bash")) + (setenv "CONFIG_SHELL" (which "bash")) + (apply invoke + "./configure" + (string-append "--prefix=" out) + ;; Add $libdir to the RUNPATH of all the binaries. + (string-append "--extra-ldflags=-Wl,-rpath=" + out "/lib") + configure-flags))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("yasm" ,yasm))) + (home-page "https://www.ffmpeg.org/") + (synopsis "Audio and video framework") + (description "FFmpeg is a complete, cross-platform solution to record, +convert and stream audio and video. It includes the libavcodec +audio/video codec library.") + (license license:gpl2+))) + +(define-public stepmania + (package + (name "stepmania") + (version "5.1.0-b2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stepmania/stepmania.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a7y9l7xm510vgnpmj1is7p9m6d6yd0fcaxrjcickz295k5w3rdn")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove song files, which are licensed under a non-commercial + ;; clause, and a course pointing to them. + (for-each delete-file-recursively + '("Songs/StepMania 5/Goin' Under" + "Songs/StepMania 5/MechaTribe Assault" + "Songs/StepMania 5/Springtime")) + (for-each delete-file '("Courses/Default/Jupiter.crs" + "Courses/Default/Jupiter.png")) + ;; Unbundle libpng. + (substitute* "extern/CMakeLists.txt" + (("include\\(CMakeProject-png.cmake\\)") "")) + (delete-file-recursively "extern/libpng") + #t)))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;FIXME: couldn't find how to run tests + #:build-type "Release" + #:out-of-source? #f ;for the 'install-desktop' phase + #:configure-flags + (list "-DWITH_SYSTEM_FFMPEG=1" + ;; Configuration cannot find GTK2 without the two following + ;; flags. + (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "gtk+") + "/lib/gtk-2.0/include") + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-install-subdir + ;; Installation would be done in "%out/stepmania-X.Y", but we + ;; prefer the more common layout "%out/share/stepmania". + (lambda _ + (substitute* "src/CMakeLists.txt" + (("\"stepmania-.*?\"") "\"share/stepmania\"")) + #t)) + (add-after 'unpack 'unbundle-libpng + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/CMakeLists.txt" + (("\\$\\{SM_EXTERN_DIR\\}/libpng/include") + (string-append (assoc-ref inputs "libpng") "/include"))))) + (add-after 'install 'install-executable + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (exe (string-append out "/share/stepmania/stepmania"))) + (mkdir-p bin) + (symlink exe (string-append bin "/stepmania")) + #t))) + (add-after 'install-executable 'install-desktop + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (applications (string-append share "/applications")) + (icons (string-append share "/icons"))) + (install-file "stepmania.desktop" applications) + (mkdir-p icons) + (copy-recursively "icons" icons) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("yasm" ,yasm))) + (inputs + `(("alsa-lib" ,alsa-lib) + ;; ("ffmpeg" ,ffmpeg-2.8) ;ffmpeg 3+ unsupported + ("ffmpeg" ,ffmpeg-for-stepmania) + ("glib" ,glib) + ("glew" ,glew) + ("gtk+" ,gtk+-2) + ("jsoncpp" ,jsoncpp) + ("libpng" ,libpng) + ("libjpeg" ,libjpeg-8) + ("libmad" ,libmad) + ("libogg" ,libogg) + ("libva" ,libva) + ("libvorbis" ,libvorbis) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("mesa" ,mesa) + ("pcre" ,pcre) + ("pulseaudio" ,pulseaudio) + ("sdl" ,sdl2) + ("udev" ,eudev) + ("zlib" ,zlib))) + (synopsis "Advanced rhythm game designed for both home and arcade use") + (description "StepMania is a dance and rhythm game. It features 3D +graphics, keyboard and dance pad support, and an editor for creating your own +steps. + +This package provides the core application, but no song is shipped. You need +to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory.") + (home-page "https://www.stepmania.com") + (license license:expat))) -- 2.20.1
guix-patches <at> gnu.org
:bug#34086
; Package guix-patches
.
(Sun, 20 Jan 2019 18:10:02 GMT) Full text and rfc822 format available.Message #8 received at 34086 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> Cc: 34086 <at> debbugs.gnu.org Subject: Re: [bug#34086] [PATCH] Add StepMania Date: Sun, 20 Jan 2019 19:09:26 +0100
Hi Nicolas, Nicolas Goaziou <mail <at> nicolasgoaziou.fr> skribis: > Note that I had to remove all bundled songs due to a non-commercial > clause, so it's not really usable right out of the box. I also had to > package a dedicated FFmpeg package, since StepMania is very picky about > it. Apparently you also tried using ffmpeg 2.8, but that didn’t work either? Do you have an idea how different their own ffmpeg variant is? >>From bfefd4b4217d67f9628682cb76ce2b9015285612 Mon Sep 17 00:00:00 2001 > From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> > Date: Sun, 11 Nov 2018 00:43:34 +0100 > Subject: [PATCH] gnu: Add stepmania. > > * gnu/packages/games.scm (ffmpeg-for-stepmania): > (stepmania): New variables. [...] > +(define ffmpeg-for-stepmania > + (package > + (name "ffmpeg-for-stepmania") Could you move to video.scm, inherit from ‘ffmpeg’, and arrange to reduce duplication as much as possible? (Even better would be to avoid it altogether but I’m assuming it won’t be that simple…) The rest LGTM, thanks! Ludo’.
guix-patches <at> gnu.org
:bug#34086
; Package guix-patches
.
(Tue, 22 Jan 2019 08:34:02 GMT) Full text and rfc822 format available.Message #11 received at 34086 <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 34086 <at> debbugs.gnu.org Subject: Re: [bug#34086] [PATCH] Add StepMania Date: Tue, 22 Jan 2019 09:33:00 +0100
[Message part 1 (text/plain, inline)]
Hello, Thank you for the review! Ludovic Courtès <ludo <at> gnu.org> writes: > Apparently you also tried using ffmpeg 2.8, but that didn’t work > either? It builds with FFmpeg 2.8, but a StepMania developer told me there was no guarantee it wouldn't create runtime crashes. They apparently spend quite some time to find a FFmpeg release that suits them, and use it for a couple of years. > Do you have an idea how different their own ffmpeg variant is? Their variant is older (2.1.3), with some specific build flags. That is all I can say. > Could you move to video.scm, inherit from ‘ffmpeg’, and arrange to > reduce duplication as much as possible? But then, I have to make it public, and that would pollute namespace, wouldn't it? > (Even better would be to avoid it altogether but I’m assuming it won’t > be that simple…) There's a build flag to ignore FFmpeg altogether. I believe this would disable playing background videos. It may be a bit opinionated for a distributed package. IMO, the safest way to go it to provide the FFmpeg the package expects. I'm sending an updated patch. WDYT? Regards, -- Nicolas Goaziou
[0001-gnu-Add-stepmania.patch (text/x-diff, inline)]
From 7e80ada7b842830f10107724286fe194c3c64a43 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> Date: Sun, 11 Nov 2018 00:43:34 +0100 Subject: [PATCH] gnu: Add stepmania. * gnu/packages/games.scm (stepmania): * gnu/packages/video.scm (ffmpeg-for-stepmania): New variables. --- gnu/packages/games.scm | 113 +++++++++++++++++++++++++++++++++++++++++ gnu/packages/video.scm | 26 ++++++++++ 2 files changed, 139 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 317962bf6..b973641fe 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -70,6 +70,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages audio) #:use-module (gnu packages avahi) + #:use-module (gnu packages assembly) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) @@ -6011,3 +6012,115 @@ civilized than your own.") license:cc-by-sa3.0 license:cc-by-sa4.0 license:public-domain)))) + +(define-public stepmania + (package + (name "stepmania") + (version "5.1.0-b2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stepmania/stepmania.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a7y9l7xm510vgnpmj1is7p9m6d6yd0fcaxrjcickz295k5w3rdn")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove song files, which are licensed under a non-commercial + ;; clause, and a course pointing to them. + (for-each delete-file-recursively + '("Songs/StepMania 5/Goin' Under" + "Songs/StepMania 5/MechaTribe Assault" + "Songs/StepMania 5/Springtime")) + (for-each delete-file '("Courses/Default/Jupiter.crs" + "Courses/Default/Jupiter.png")) + ;; Unbundle libpng. + (substitute* "extern/CMakeLists.txt" + (("include\\(CMakeProject-png.cmake\\)") "")) + (delete-file-recursively "extern/libpng") + #t)))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;FIXME: couldn't find how to run tests + #:build-type "Release" + #:out-of-source? #f ;for the 'install-desktop' phase + #:configure-flags + (list "-DWITH_SYSTEM_FFMPEG=1" + ;; Configuration cannot find GTK2 without the two following + ;; flags. + (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "gtk+") + "/lib/gtk-2.0/include") + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-install-subdir + ;; Installation would be done in "%out/stepmania-X.Y", but we + ;; prefer the more common layout "%out/share/stepmania". + (lambda _ + (substitute* "src/CMakeLists.txt" + (("\"stepmania-.*?\"") "\"share/stepmania\"")) + #t)) + (add-after 'unpack 'unbundle-libpng + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/CMakeLists.txt" + (("\\$\\{SM_EXTERN_DIR\\}/libpng/include") + (string-append (assoc-ref inputs "libpng") "/include"))))) + (add-after 'install 'install-executable + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (exe (string-append out "/share/stepmania/stepmania"))) + (mkdir-p bin) + (symlink exe (string-append bin "/stepmania")) + #t))) + (add-after 'install-executable 'install-desktop + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (applications (string-append share "/applications")) + (icons (string-append share "/icons"))) + (install-file "stepmania.desktop" applications) + (mkdir-p icons) + (copy-recursively "icons" icons) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("yasm" ,yasm))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ffmpeg" ,ffmpeg-for-stepmania) + ("glib" ,glib) + ("glew" ,glew) + ("gtk+" ,gtk+-2) + ("jsoncpp" ,jsoncpp) + ("libpng" ,libpng) + ("libjpeg" ,libjpeg-8) + ("libmad" ,libmad) + ("libogg" ,libogg) + ("libva" ,libva) + ("libvorbis" ,libvorbis) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("mesa" ,mesa) + ("pcre" ,pcre) + ("pulseaudio" ,pulseaudio) + ("sdl" ,sdl2) + ("udev" ,eudev) + ("zlib" ,zlib))) + (synopsis "Advanced rhythm game designed for both home and arcade use") + (description "StepMania is a dance and rhythm game. It features 3D +graphics, keyboard and dance pad support, and an editor for creating your own +steps. + +This package provides the core application, but no song is shipped. You need +to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory.") + (home-page "https://www.stepmania.com") + (license license:expat))) + diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index fb0da6ae6..a483cb461 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -871,6 +871,32 @@ audio/video codec library.") (base32 "0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l")))))) +(define-public ffmpeg-for-stepmania + (package + (inherit ffmpeg) + (version "2.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stepmania/ffmpeg.git") + (commit "eda6effcabcf9c238e4635eb058d72371336e09b"))) + (sha256 + (base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb")) + (file-name (git-file-name "ffmpeg" version)))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags flags) + '(list "--disable-programs" + "--disable-doc" + "--disable-debug" + "--disable-avdevice" + "--disable-swresample" + "--disable-postproc" + "--disable-avfilter" + "--disable-shared" + "--enable-static")))))) + (define-public ffmpegthumbnailer (package (name "ffmpegthumbnailer") -- 2.20.1
guix-patches <at> gnu.org
:bug#34086
; Package guix-patches
.
(Tue, 22 Jan 2019 19:25:01 GMT) Full text and rfc822 format available.Message #14 received at 34086 <at> debbugs.gnu.org (full text, mbox):
From: Leo Famulari <leo <at> famulari.name> To: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> Cc: Ludovic Courtès <ludo <at> gnu.org>, 34086 <at> debbugs.gnu.org Subject: Re: [bug#34086] [PATCH] Add StepMania Date: Tue, 22 Jan 2019 14:24:42 -0500
[Message part 1 (text/plain, inline)]
On Tue, Jan 22, 2019 at 09:33:00AM +0100, Nicolas Goaziou wrote: > Ludovic Courtès <ludo <at> gnu.org> writes: > > Could you move to video.scm, inherit from ‘ffmpeg’, and arrange to > > reduce duplication as much as possible? > > But then, I have to make it public, and that would pollute namespace, > wouldn't it? I believe you can use the 'hidden-package' procedure instead of 'package' to address the use case of exported packages that should not appear in the Guix UI (for example, `guix package --search`).
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#34086
; Package guix-patches
.
(Tue, 22 Jan 2019 21:44:01 GMT) Full text and rfc822 format available.Message #17 received at 34086 <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> To: Leo Famulari <leo <at> famulari.name> Cc: Ludovic Courtès <ludo <at> gnu.org>, 34086 <at> debbugs.gnu.org Subject: Re: [bug#34086] [PATCH] Add StepMania Date: Tue, 22 Jan 2019 22:42:58 +0100
[Message part 1 (text/plain, inline)]
Hello, Leo Famulari <leo <at> famulari.name> writes: > I believe you can use the 'hidden-package' procedure instead of > 'package' to address the use case of exported packages that should not > appear in the Guix UI (for example, `guix package --search`). I didn't know about `hidden-package'. I used that instead, and added an empty `input' field. New patch attached. Note that `hidden-package' doesn't seem to have the same indentation rule as `package'. Thank you. Regards, -- Nicolas Goaziou
[0001-gnu-Add-stepmania.patch (text/x-diff, inline)]
From 00196d57d6987ed4e93d5cd51af3a4c2d20cc7f3 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> Date: Sun, 11 Nov 2018 00:43:34 +0100 Subject: [PATCH] gnu: Add stepmania. * gnu/packages/games.scm (stepmania): * gnu/packages/video.scm (ffmpeg-for-stepmania): New variables. --- gnu/packages/games.scm | 113 +++++++++++++++++++++++++++++++++++++++++ gnu/packages/video.scm | 27 ++++++++++ 2 files changed, 140 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 317962bf6..b973641fe 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -70,6 +70,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages audio) #:use-module (gnu packages avahi) + #:use-module (gnu packages assembly) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) @@ -6011,3 +6012,115 @@ civilized than your own.") license:cc-by-sa3.0 license:cc-by-sa4.0 license:public-domain)))) + +(define-public stepmania + (package + (name "stepmania") + (version "5.1.0-b2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stepmania/stepmania.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a7y9l7xm510vgnpmj1is7p9m6d6yd0fcaxrjcickz295k5w3rdn")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove song files, which are licensed under a non-commercial + ;; clause, and a course pointing to them. + (for-each delete-file-recursively + '("Songs/StepMania 5/Goin' Under" + "Songs/StepMania 5/MechaTribe Assault" + "Songs/StepMania 5/Springtime")) + (for-each delete-file '("Courses/Default/Jupiter.crs" + "Courses/Default/Jupiter.png")) + ;; Unbundle libpng. + (substitute* "extern/CMakeLists.txt" + (("include\\(CMakeProject-png.cmake\\)") "")) + (delete-file-recursively "extern/libpng") + #t)))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;FIXME: couldn't find how to run tests + #:build-type "Release" + #:out-of-source? #f ;for the 'install-desktop' phase + #:configure-flags + (list "-DWITH_SYSTEM_FFMPEG=1" + ;; Configuration cannot find GTK2 without the two following + ;; flags. + (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "gtk+") + "/lib/gtk-2.0/include") + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-install-subdir + ;; Installation would be done in "%out/stepmania-X.Y", but we + ;; prefer the more common layout "%out/share/stepmania". + (lambda _ + (substitute* "src/CMakeLists.txt" + (("\"stepmania-.*?\"") "\"share/stepmania\"")) + #t)) + (add-after 'unpack 'unbundle-libpng + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/CMakeLists.txt" + (("\\$\\{SM_EXTERN_DIR\\}/libpng/include") + (string-append (assoc-ref inputs "libpng") "/include"))))) + (add-after 'install 'install-executable + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (exe (string-append out "/share/stepmania/stepmania"))) + (mkdir-p bin) + (symlink exe (string-append bin "/stepmania")) + #t))) + (add-after 'install-executable 'install-desktop + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (applications (string-append share "/applications")) + (icons (string-append share "/icons"))) + (install-file "stepmania.desktop" applications) + (mkdir-p icons) + (copy-recursively "icons" icons) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("yasm" ,yasm))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ffmpeg" ,ffmpeg-for-stepmania) + ("glib" ,glib) + ("glew" ,glew) + ("gtk+" ,gtk+-2) + ("jsoncpp" ,jsoncpp) + ("libpng" ,libpng) + ("libjpeg" ,libjpeg-8) + ("libmad" ,libmad) + ("libogg" ,libogg) + ("libva" ,libva) + ("libvorbis" ,libvorbis) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("mesa" ,mesa) + ("pcre" ,pcre) + ("pulseaudio" ,pulseaudio) + ("sdl" ,sdl2) + ("udev" ,eudev) + ("zlib" ,zlib))) + (synopsis "Advanced rhythm game designed for both home and arcade use") + (description "StepMania is a dance and rhythm game. It features 3D +graphics, keyboard and dance pad support, and an editor for creating your own +steps. + +This package provides the core application, but no song is shipped. You need +to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory.") + (home-page "https://www.stepmania.com") + (license license:expat))) + diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index fb0da6ae6..8bf76177b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -871,6 +871,33 @@ audio/video codec library.") (base32 "0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l")))))) +(define-public ffmpeg-for-stepmania + (hidden-package + (inherit ffmpeg) + (version "2.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stepmania/ffmpeg.git") + (commit "eda6effcabcf9c238e4635eb058d72371336e09b"))) + (sha256 + (base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb")) + (file-name (git-file-name "ffmpeg" version)))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags flags) + '(list "--disable-programs" + "--disable-doc" + "--disable-debug" + "--disable-avdevice" + "--disable-swresample" + "--disable-postproc" + "--disable-avfilter" + "--disable-shared" + "--enable-static")))) + (inputs '()))) + (define-public ffmpegthumbnailer (package (name "ffmpegthumbnailer") -- 2.20.1
guix-patches <at> gnu.org
:bug#34086
; Package guix-patches
.
(Wed, 23 Jan 2019 09:41:01 GMT) Full text and rfc822 format available.Message #20 received at 34086 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> Cc: 34086 <at> debbugs.gnu.org, Leo Famulari <leo <at> famulari.name> Subject: Re: [bug#34086] [PATCH] Add StepMania Date: Wed, 23 Jan 2019 10:40:31 +0100
Hi Nicolas, Nicolas Goaziou <mail <at> nicolasgoaziou.fr> skribis: > From 00196d57d6987ed4e93d5cd51af3a4c2d20cc7f3 Mon Sep 17 00:00:00 2001 > From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> > Date: Sun, 11 Nov 2018 00:43:34 +0100 > Subject: [PATCH] gnu: Add stepmania. > > * gnu/packages/games.scm (stepmania): > * gnu/packages/video.scm (ffmpeg-for-stepmania): New variables. [...] > +(define-public ffmpeg-for-stepmania > + (hidden-package > + (inherit ffmpeg) > + (version "2.1.3") I’m pretty sure this doesn’t evaluate, does it? :-) Should be: (hidden-package (package (inherit ffmpeg) …)) Apart from that, could you please add the explanation and/or a link to an upstream discussion summarizing what you described regarding this choice of a custom FFMpeg variant? OK with this changes! Thanks, Ludo’.
guix-patches <at> gnu.org
:bug#34086
; Package guix-patches
.
(Thu, 24 Jan 2019 18:45:02 GMT) Full text and rfc822 format available.Message #23 received at 34086 <at> debbugs.gnu.org (full text, mbox):
From: Leo Famulari <leo <at> famulari.name> To: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> Cc: Ludovic Courtès <ludo <at> gnu.org>, 34086 <at> debbugs.gnu.org Subject: Re: [bug#34086] [PATCH] Add StepMania Date: Wed, 23 Jan 2019 16:34:52 -0500
[Message part 1 (text/plain, inline)]
On Tue, Jan 22, 2019 at 10:42:58PM +0100, Nicolas Goaziou wrote: > I didn't know about `hidden-package'. I used that instead, and added an > empty `input' field. New patch attached. Great, LGTM!
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#34086
; Package guix-patches
.
(Fri, 25 Jan 2019 17:11:01 GMT) Full text and rfc822 format available.Message #26 received at 34086 <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 34086 <at> debbugs.gnu.org, Leo Famulari <leo <at> famulari.name> Subject: Re: [bug#34086] [PATCH] Add StepMania Date: Fri, 25 Jan 2019 18:10:33 +0100
Hello, Ludovic Courtès <ludo <at> gnu.org> writes: > Nicolas Goaziou <mail <at> nicolasgoaziou.fr> skribis: > >> +(define-public ffmpeg-for-stepmania >> + (hidden-package >> + (inherit ffmpeg) >> + (version "2.1.3") > > I’m pretty sure this doesn’t evaluate, does it? :-) Indeed. Fixed. > Should be: > > (hidden-package > (package > (inherit ffmpeg) > …)) > > Apart from that, could you please add the explanation and/or a link to > an upstream discussion summarizing what you described regarding this > choice of a custom FFMpeg variant? Done. > OK with this changes! Pushed. Thank you! Regards, -- Nicolas Goaziou
Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
:Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
:Message #31 received at 34086-done <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr> To: Leo Famulari <leo <at> famulari.name> Cc: Ludovic Courtès <ludo <at> gnu.org>, 34086-done <at> debbugs.gnu.org Subject: Re: [bug#34086] [PATCH] Add StepMania Date: Fri, 25 Jan 2019 18:41:38 +0100
Hello, Leo Famulari <leo <at> famulari.name> writes: > Great, LGTM! I pushed it. Thank you :) Regards, -- Nicolas Goaziou
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sat, 23 Feb 2019 12:24:05 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.