about summary refs log tree commit diff
path: root/pkgs/games/stepmania
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/stepmania')
-rw-r--r--pkgs/games/stepmania/0001-fix-build-with-ffmpeg-4.patch136
-rw-r--r--pkgs/games/stepmania/default.nix55
2 files changed, 44 insertions, 147 deletions
diff --git a/pkgs/games/stepmania/0001-fix-build-with-ffmpeg-4.patch b/pkgs/games/stepmania/0001-fix-build-with-ffmpeg-4.patch
deleted file mode 100644
index 65686f5546c4..000000000000
--- a/pkgs/games/stepmania/0001-fix-build-with-ffmpeg-4.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 33d928c54f4b35f8877cacd1e2c77b68b4dddc06 Mon Sep 17 00:00:00 2001
-From: Zane van Iperen <zane@zanevaniperen.com>
-Date: Sun, 7 Nov 2021 15:46:37 +1000
-Subject: [PATCH] fix build with ffmpeg 4
-
----
- src/arch/MovieTexture/MovieTexture_FFMpeg.cpp |  5 +----
- src/arch/MovieTexture/MovieTexture_FFMpeg.h   | 22 +++++++++----------
- 2 files changed, 12 insertions(+), 15 deletions(-)
-
-diff --git a/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp b/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp
-index bdf2356..f79fea2 100644
---- a/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp
-+++ b/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp
-@@ -445,7 +445,7 @@ RString MovieDecoder_FFMpeg::Open( RString sFile )
- 		return "Couldn't find any video streams";
- 	m_pStream = m_fctx->streams[stream_idx];
- 
--	if( m_pStream->codec->codec_id == avcodec::CODEC_ID_NONE )
-+	if( m_pStream->codec->codec_id == avcodec::AV_CODEC_ID_NONE )
- 		return ssprintf( "Unsupported codec %08x", m_pStream->codec->codec_tag );
- 
- 	RString sError = OpenCodec();
-@@ -474,9 +474,6 @@ RString MovieDecoder_FFMpeg::OpenCodec()
- 	m_pStream->codec->idct_algo         = FF_IDCT_AUTO;
- 	m_pStream->codec->error_concealment = 3;
- 
--	if( pCodec->capabilities & CODEC_CAP_DR1 )
--		m_pStream->codec->flags |= CODEC_FLAG_EMU_EDGE;
--
- 	LOG->Trace("Opening codec %s", pCodec->name );
- 
- 	int ret = avcodec::avcodec_open2( m_pStream->codec, pCodec, NULL );
-diff --git a/src/arch/MovieTexture/MovieTexture_FFMpeg.h b/src/arch/MovieTexture/MovieTexture_FFMpeg.h
-index f4d25ef..32564e5 100644
---- a/src/arch/MovieTexture/MovieTexture_FFMpeg.h
-+++ b/src/arch/MovieTexture/MovieTexture_FFMpeg.h
-@@ -64,7 +64,7 @@ private:
- 
- 	avcodec::AVStream *m_pStream;
- 	avcodec::AVFrame *m_Frame;
--	avcodec::PixelFormat m_AVTexfmt; /* PixelFormat of output surface */
-+	avcodec::AVPixelFormat m_AVTexfmt; /* PixelFormat of output surface */
- 	avcodec::SwsContext *m_swsctx;
- 
- 	avcodec::AVFormatContext *m_fctx;
-@@ -90,7 +90,7 @@ static struct AVPixelFormat_t
- {
- 	int bpp;
- 	uint32_t masks[4];
--	avcodec::PixelFormat pf;
-+	avcodec::AVPixelFormat pf;
- 	bool bHighColor;
- 	bool bByteSwapOnLittleEndian;
- 	MovieDecoderPixelFormatYCbCr YUV;
-@@ -101,7 +101,7 @@ static struct AVPixelFormat_t
- 		  0x00FF0000,
- 		  0x0000FF00,
- 		  0x000000FF },
--		avcodec::PIX_FMT_YUYV422,
-+		avcodec::AV_PIX_FMT_YUYV422,
- 		false, /* N/A */
- 		true,
- 		PixelFormatYCbCr_YUYV422,
-@@ -112,7 +112,7 @@ static struct AVPixelFormat_t
- 		  0x00FF0000,
- 		  0xFF000000,
- 		  0x000000FF },
--		avcodec::PIX_FMT_BGRA,
-+		avcodec::AV_PIX_FMT_BGRA,
- 		true,
- 		true,
- 		PixelFormatYCbCr_Invalid,
-@@ -123,7 +123,7 @@ static struct AVPixelFormat_t
- 		  0x0000FF00,
- 		  0x000000FF,
- 		  0xFF000000 },
--		avcodec::PIX_FMT_ARGB,
-+		avcodec::AV_PIX_FMT_ARGB,
- 		true,
- 		true,
- 		PixelFormatYCbCr_Invalid,
-@@ -135,7 +135,7 @@ static struct AVPixelFormat_t
- 		  0x0000FF00,
- 		  0x00FF0000,
- 		  0xFF000000 },
--		avcodec::PIX_FMT_ABGR,
-+		avcodec::AV_PIX_FMT_ABGR,
- 		true,
- 		true,
- 		PixelFormatYCbCr_Invalid,
-@@ -146,7 +146,7 @@ static struct AVPixelFormat_t
- 		  0x00FF0000,
- 		  0x0000FF00,
- 		  0x000000FF },
--		avcodec::PIX_FMT_RGBA,
-+		avcodec::AV_PIX_FMT_RGBA,
- 		true,
- 		true,
- 		PixelFormatYCbCr_Invalid,
-@@ -157,7 +157,7 @@ static struct AVPixelFormat_t
- 		  0x00FF00,
- 		  0x0000FF,
- 		  0x000000 },
--		avcodec::PIX_FMT_RGB24,
-+		avcodec::AV_PIX_FMT_RGB24,
- 		true,
- 		true,
- 		PixelFormatYCbCr_Invalid,
-@@ -168,7 +168,7 @@ static struct AVPixelFormat_t
- 		  0x00FF00,
- 		  0xFF0000,
- 		  0x000000 },
--		avcodec::PIX_FMT_BGR24,
-+		avcodec::AV_PIX_FMT_BGR24,
- 		true,
- 		true,
- 		PixelFormatYCbCr_Invalid,
-@@ -179,12 +179,12 @@ static struct AVPixelFormat_t
- 		  0x03E0,
- 		  0x001F,
- 		  0x0000 },
--		avcodec::PIX_FMT_RGB555,
-+		avcodec::AV_PIX_FMT_RGB555,
- 		false,
- 		false,
- 		PixelFormatYCbCr_Invalid,
- 	},
--	{ 0, { 0,0,0,0 }, avcodec::PIX_FMT_NB, true, false, PixelFormatYCbCr_Invalid }
-+	{ 0, { 0,0,0,0 }, avcodec::AV_PIX_FMT_NB, true, false, PixelFormatYCbCr_Invalid }
- };
- 
- #endif
--- 
-2.31.1
-
diff --git a/pkgs/games/stepmania/default.nix b/pkgs/games/stepmania/default.nix
index 65b9bfff189e..bfd871a2a1c1 100644
--- a/pkgs/games/stepmania/default.nix
+++ b/pkgs/games/stepmania/default.nix
@@ -1,21 +1,40 @@
-{ stdenv, lib, fetchFromGitHub, cmake, nasm
-, gtk2, glib, ffmpeg_4, alsa-lib, libmad, libogg, libvorbis
-, glew, libpulseaudio, udev
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, nasm
+, alsa-lib
+, ffmpeg_6
+, glew
+, glib
+, gtk2
+, libmad
+, libogg
+, libpulseaudio
+, libvorbis
+, udev
+, xorg
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "stepmania";
-  version = "5.1.0-b2";
+  version = "5.1.0-b2-unstable-2022-11-14";
 
   src = fetchFromGitHub {
     owner = "stepmania";
     repo  = "stepmania";
-    rev   = "v${version}";
-    sha256 = "0a7y9l7xm510vgnpmj1is7p9m6d6yd0fcaxrjcickz295k5w3rdn";
+    rev   = "d55acb1ba26f1c5b5e3048d6d6c0bd116625216f";
+    hash = "sha256-49H2Q61R4l/G0fWsjCjiAUXeWwG3lcsDpV5XvR3l3QE=";
   };
 
   patches = [
-    ./0001-fix-build-with-ffmpeg-4.patch
+    # https://github.com/stepmania/stepmania/pull/2247
+    (fetchpatch {
+      name = "fix-building-with-ffmpeg6.patch";
+      url = "https://github.com/stepmania/stepmania/commit/3fef5ef60b7674d6431f4e1e4ba8c69b0c21c023.patch";
+      hash = "sha256-m+5sP+mIpcSjioRBdzChqja5zwNcwdSNAfvSJ2Lww+g=";
+    })
   ];
 
   postPatch = ''
@@ -25,8 +44,17 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake nasm ];
 
   buildInputs = [
-    gtk2 glib ffmpeg_4 alsa-lib libmad libogg libvorbis
-    glew libpulseaudio udev
+    alsa-lib
+    ffmpeg_6
+    glew
+    glib
+    gtk2
+    libmad
+    libogg
+    libpulseaudio
+    libvorbis
+    udev
+    xorg.libXtst
   ];
 
   cmakeFlags = [
@@ -38,6 +66,11 @@ stdenv.mkDerivation rec {
   postInstall = ''
     mkdir -p $out/bin
     ln -s $out/stepmania-5.1/stepmania $out/bin/stepmania
+
+    mkdir -p $out/share/
+    cp -r $src/icons $out/share/
+
+    install -Dm444 $src/stepmania.desktop -t $out/share/applications
   '';
 
   meta = with lib; {
@@ -45,7 +78,7 @@ stdenv.mkDerivation rec {
     description = "Free dance and rhythm game for Windows, Mac, and Linux";
     platforms = platforms.linux;
     license = licenses.mit; # expat version
-    maintainers = [ ];
+    maintainers = with maintainers; [ h7x4 ];
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
     mainProgram = "stepmania";