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;