gnu: Add stepmania.
* gnu/packages/games.scm (stepmania): * gnu/packages/video.scm (ffmpeg-for-stepmania): New variables.
This commit is contained in:
parent
81cf0174b5
commit
1faf0a0459
|
@ -70,6 +70,7 @@
|
||||||
#:use-module (gnu packages admin)
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages audio)
|
#:use-module (gnu packages audio)
|
||||||
#:use-module (gnu packages avahi)
|
#:use-module (gnu packages avahi)
|
||||||
|
#:use-module (gnu packages assembly)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages boost)
|
#:use-module (gnu packages boost)
|
||||||
|
@ -6011,3 +6012,130 @@ civilized than your own.")
|
||||||
license:cc-by-sa3.0
|
license:cc-by-sa3.0
|
||||||
license:cc-by-sa4.0
|
license:cc-by-sa4.0
|
||||||
license:public-domain))))
|
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")))
|
||||||
|
#t))
|
||||||
|
(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)))
|
||||||
|
;; Move documentation in a more usual place, i.e.,
|
||||||
|
;; "%out/share/doc/stepmania/".
|
||||||
|
(add-after 'install-desktop 'install-doc
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(share (string-append out "/share")))
|
||||||
|
(with-directory-excursion share
|
||||||
|
(mkdir-p "doc")
|
||||||
|
(symlink "../stepmania/Docs" "doc/stepmania"))
|
||||||
|
#t))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("yasm" ,yasm)))
|
||||||
|
(inputs
|
||||||
|
`(("alsa-lib" ,alsa-lib)
|
||||||
|
;; Per upstream, StepMania is only guaranteed to work with a very
|
||||||
|
;; specific FFmpeg version, which is included in the repository as
|
||||||
|
;; a Git submodule. This particular version requirement usually
|
||||||
|
;; changes every few years.
|
||||||
|
("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)))
|
||||||
|
|
||||||
|
|
|
@ -871,6 +871,34 @@ audio/video codec library.")
|
||||||
(base32
|
(base32
|
||||||
"0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l"))))))
|
"0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l"))))))
|
||||||
|
|
||||||
|
(define-public ffmpeg-for-stepmania
|
||||||
|
(hidden-package
|
||||||
|
(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
|
(define-public ffmpegthumbnailer
|
||||||
(package
|
(package
|
||||||
(name "ffmpegthumbnailer")
|
(name "ffmpegthumbnailer")
|
||||||
|
|
Loading…
Reference in New Issue