From d7cfce0e475eb78a18f554b2384a65de5d6c57a6 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Tue, 18 May 2021 00:12:08 +0200 Subject: [PATCH] ultrastardx: 2020.4.0 -> 2021-04-03 Not a lot has changed since last update, a few fixes were pushed to the master tree. We take the liberty to update to master for now. This updates the ffmpeg version from 2.x to 4.x, which seems to be supported upstream when we bend the minor version restriction a little. A simple karaoke song played just fine in my test. --- pkgs/games/ultrastardx/default.nix | 35 ++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix index a486b899bb46..7b3390d9fda5 100644 --- a/pkgs/games/ultrastardx/default.nix +++ b/pkgs/games/ultrastardx/default.nix @@ -31,28 +31,41 @@ let in stdenv.mkDerivation rec { pname = "ultrastardx"; - version = "2020.4.0"; + version = "2021-04-03"; src = fetchFromGitHub { owner = "UltraStar-Deluxe"; repo = "USDX"; - rev = "v${version}"; - sha256 = "0vmfv8zpyf8ymx3rjydpd7iqis080lni94vb316vfxkgvjmqbhym"; + rev = "d49e916705092f3d765d85d276b283b9e7e232a6"; + sha256 = "0sdcz2vc8i2z50nj7zbkdpxx2mvx0m0927lfsj7d7qr0p8vkm0wa"; }; nativeBuildInputs = [ pkg-config autoreconfHook ]; buildInputs = [ fpc libpng ] ++ sharedLibs; - patches = [ - (fetchpatch { - name = "fpc-3.2-support.patch"; - url = "https://github.com/UltraStar-Deluxe/USDX/commit/1b8e8714c1523ef49c2fd689a1545d097a3d76d7.patch"; - sha256 = "02zmjymj9w1mkpf7armdpf067byvml6lprs1ca4lhpkv45abddp4"; - }) - ]; - postPatch = '' substituteInPlace src/config.inc.in \ --subst-var-by libpcre_LIBNAME libpcre.so.1 + + # ultrastardx binds to libffmpeg (and sublibs), specifying a very restrictive + # upper bounds on the minor versions of .so files. + # We can assume ffmpeg won’t break any major ABI compatibility, since their + # patch version seems to always stay at 100, + # and their minor version changes quite frequently. + sed \ + -e 's/^ LIBAVCODEC_MAX_VERSION_MINOR.*$/ LIBAVCODEC_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/avcodec.pas + sed \ + -e 's/^ LIBAVFORMAT_MAX_VERSION_MINOR.*$/ LIBAVFORMAT_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/avformat.pas + sed \ + -e 's/^ LIBAVUTIL_MAX_VERSION_MINOR.*$/ LIBAVUTIL_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/avutil.pas + sed \ + -e 's/^ LIBSWRESAMPLE_MAX_VERSION_MINOR.*$/ LIBSWRESAMPLE_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/swresample.pas + sed \ + -e 's/^ LIBSWSCALE_MAX_VERSION_MINOR.*$/ LIBSWSCALE_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/swscale.pas ''; preBuild = with lib;