openrct2: 0.4.5 -> 0.4.7

- https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.6
- https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.7

Updating to 0.4.6 resulted some headaches, as suddenly lots of errors
about missing music objects were thrown and old maps were not loadable.
This was also mentioned in #263025.

Today I git bisect'ed OpenRCT2's source between 0.4.5 and 0.4.6, finding
5adbea9ac829b76507543e4c09b2000138ffbbcf as the culprit, which origins
in OpenRCT2/OpenRCT2#19785. From there I got to OpenRCT2/OpenRCT2#21043
which addresses this very issue and fixes it by undoing the original
change next to some later changes. This PR is now included as a patch
and, et voilà, OpenRCT2 works again!

Closes #263025.
This commit is contained in:
Alvar Penning 2024-01-13 14:56:21 +01:00
parent 69607d9307
commit 40cc9e497b

View file

@ -1,12 +1,14 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, SDL2
, cmake
, curl
, discord-rpc
, duktape
, expat
, flac
, fontconfig
, freetype
@ -28,48 +30,48 @@
}:
let
openrct2-version = "0.4.5";
openrct2-version = "0.4.7";
# Those versions MUST match the pinned versions within the CMakeLists.txt
# file. The REPLAYS repository from the CMakeLists.txt is not necessary.
objects-version = "1.3.11";
openmsx-version = "1.3.0";
objects-version = "1.3.13";
openmsx-version = "1.5";
opensfx-version = "1.0.3";
title-sequences-version = "0.4.0";
title-sequences-version = "0.4.6";
openrct2-src = fetchFromGitHub {
owner = "OpenRCT2";
repo = "OpenRCT2";
rev = "v${openrct2-version}";
sha256 = "sha256-TMtaEqui3gUd+j3LwF7VsHiBtbYZMu6Rvo1aMkkU9LY=";
hash = "sha256-2nSzXbZH1o+BEaxhdQTCM/u4Qbun4tqBKjQ4z7owHeg=";
};
objects-src = fetchFromGitHub {
owner = "OpenRCT2";
repo = "objects";
rev = "v${objects-version}";
sha256 = "sha256-fA2Kz4GALu6IP7ulbwpAFt3dz6NCPgyB0CWy5uOLBQY=";
hash = "sha256-7RvRe7skXH5x8RbkQgtKs1YMBwq8dHInVo/4FAJwUD0=";
};
openmsx-src = fetchFromGitHub {
owner = "OpenRCT2";
repo = "OpenMusic";
rev = "v${openmsx-version}";
sha256 = "sha256-bp+uwTy2ZFMCK8Dq4YVACpQSwo8v1te+NQGwdqViIjU=";
hash = "sha256-p/wlvQFfu3R+jIuCcRbTMvxt0VKGGwJw0NDIsf6URWI=";
};
opensfx-src = fetchFromGitHub {
owner = "OpenRCT2";
repo = "OpenSoundEffects";
rev = "v${opensfx-version}";
sha256 = "sha256-AMuCpq1Hszi2Vikto/cX9g81LwBDskaRMTLxNzU0/Gk=";
hash = "sha256-AMuCpq1Hszi2Vikto/cX9g81LwBDskaRMTLxNzU0/Gk=";
};
title-sequences-src = fetchFromGitHub {
owner = "OpenRCT2";
repo = "title-sequences";
rev = "v${title-sequences-version}";
sha256 = "sha256-anqCZkhYoaxPu3MYCYSsFFngOmPp2wnx2MGb0hj6W5U=";
hash = "sha256-HWp2ecClNM/7O3oaydVipOnEsYNP/bZnZFS+SDidPi0=";
};
in
stdenv.mkDerivation {
@ -78,6 +80,19 @@ stdenv.mkDerivation {
src = openrct2-src;
patches = [
# https://github.com/OpenRCT2/OpenRCT2/pull/21043
#
# Basically <https://github.com/OpenRCT2/OpenRCT2/pull/19785> has broken
# OpenRCT2 - at least with older maps, as were used for testing - as stated
# in <https://github.com/NixOS/nixpkgs/issues/263025>.
(fetchpatch {
name = "remove-openrct2-music.patch";
url = "https://github.com/OpenRCT2/OpenRCT2/commit/9ea13848be0b974336c34e6eb119c49ba42a907c.patch";
hash = "sha256-2PPRqUZf4+ys89mdzp5nvdtdv00V9Vzj3v/95rmlf1c=";
})
];
nativeBuildInputs = [
cmake
pkg-config
@ -88,6 +103,7 @@ stdenv.mkDerivation {
curl
discord-rpc
duktape
expat
flac
fontconfig
freetype