From e1f22ddcaaca11cda58fa28558bc01f587988d6c Mon Sep 17 00:00:00 2001 From: 7c6f434c <7c6f434c@mail.ru> Date: Sat, 22 Feb 2025 04:12:48 +0100 Subject: [PATCH 1/2] lincity_ng: 2.9beta.20211125 -> 2.13.1; fix build --- pkgs/games/lincity/ng.nix | 51 ++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/pkgs/games/lincity/ng.nix b/pkgs/games/lincity/ng.nix index 6ca8b8c64715..55534357be86 100644 --- a/pkgs/games/lincity/ng.nix +++ b/pkgs/games/lincity/ng.nix @@ -5,38 +5,42 @@ SDL2_image, SDL2_mixer, SDL2_ttf, - autoreconfHook, + cmake, fetchFromGitHub, - jam, lib, libGL, libGLU, libX11, libxml2, + libxmlxx5, libxslt, physfs, pkg-config, xorgproto, zlib, + gettext, + include-what-you-use, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "lincity-ng"; - version = "2.9beta.20211125"; + version = "2.13.1"; src = fetchFromGitHub { owner = "lincity-ng"; repo = "lincity-ng"; - rev = "b9062bec252632ca5d26b98d71453b8762c63173"; - sha256 = "0l07cn8rmpmlqdppjc2ikh5c7xmwib27504zpmn3n9pryp394r46"; + rev = "lincity-ng-${finalAttrs.version}"; + hash = "sha256-ACJVhMq2IEJNrbAdmkgHxQV0uKSXpwR8a/5jcrQS+oI="; }; hardeningDisable = [ "format" ]; nativeBuildInputs = [ - autoreconfHook - jam + cmake pkg-config + gettext + include-what-you-use + libxml2 ]; buildInputs = [ @@ -48,6 +52,7 @@ stdenv.mkDerivation { libGL libGLU libX11 + libxmlxx5 libxml2 libxslt physfs @@ -55,26 +60,16 @@ stdenv.mkDerivation { zlib ]; - autoreconfPhase = '' - ./autogen.sh - ''; + cmakeFlags = [ + "-DLIBXML2_LIBRARY=${lib.getLib libxml2}/lib/libxml2${stdenv.hostPlatform.extensions.sharedLibrary}" + "-DLIBXML2_XMLCATALOG_EXECUTABLE=${lib.getBin libxml2}/bin/xmlcatalog" + "-DLIBXML2_XMLLINT_EXECUTABLE=${lib.getBin libxml2}/bin/xmllint" + ]; - buildPhase = '' - runHook preBuild - - AR='ar r' jam -j $NIX_BUILD_CORES - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - touch CREDITS - AR='ar r' jam install - - runHook postInstall - ''; + env.NIX_CFLAGS_COMPILE = " + -I${lib.getDev SDL2_image}/include/SDL2 + -I${lib.getDev SDL2_mixer}/include/SDL2 + "; meta = with lib; { description = "City building game"; @@ -83,4 +78,4 @@ stdenv.mkDerivation { maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; }; -} +}) From 5171a22033eafd1d36272cd11557ad64870339df Mon Sep 17 00:00:00 2001 From: 7c6f434c <7c6f434c@mail.ru> Date: Sat, 22 Feb 2025 04:13:22 +0100 Subject: [PATCH 2/2] lincity: fix build and a crash --- pkgs/games/lincity/default.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkgs/games/lincity/default.nix b/pkgs/games/lincity/default.nix index 9bfdc8e189c1..c7129e771ab6 100644 --- a/pkgs/games/lincity/default.nix +++ b/pkgs/games/lincity/default.nix @@ -40,6 +40,22 @@ stdenv.mkDerivation rec { url = "https://sources.debian.net/data/main/l/lincity/1.13.1-13/debian/patches/clang-ftbfs-757859"; sha256 = "098rnywcsyc0m11x4a5m3dza8i0jmfh6pacfgma1vvxpsfkb6ngp"; }) + (fetchpatch { + url = "https://sources.debian.org/data/main/l/lincity/1.13.1-16/debian/patches/fix-implicit-declarations-823432"; + hash = "sha256-S9TQ7KcmGGsQeTKLXqF/9FDXv/+WjrEPL4ly7DSki1s="; + }) + (fetchpatch { + url = "https://sources.debian.org/data/main/l/lincity/1.13.1-16/debian/patches/fix-implicit-function-declarations-1066295"; + hash = "sha256-KlmXBWPI8lFWO8kPA78uG52DCs8NeGmNNFpZYfCwo5M="; + }) + (fetchpatch { + url = "https://sources.debian.org/data/main/l/lincity/1.13.1-16/debian/patches/delay_timers"; + hash = "sha256-IxstC74R7kige0ormFLGEj4uzbJt/b8bLmygheN08II="; + }) + (fetchpatch { + url = "https://sources.debian.org/data/main/l/lincity/1.13.1-16/debian/patches/map-max-draw"; + hash = "sha256-9qLPrmEKMMrSVwqtEvoiyjPPo1eLO3u6bCJslubmBJU="; + }) ]; # Workaround build failure on -fno-common toolchains like upstream @@ -48,6 +64,10 @@ stdenv.mkDerivation rec { # multiple definition of `monthgraph_style'; ldsvguts.o:/build/lincity-1.13.1/screen.h:23: first defined here env.NIX_CFLAGS_COMPILE = "-fcommon"; + postPatch = '' + sed -e 's@\[MPS_INFO_CHARS\]@[MPS_INFO_CHARS+8]@' -i mps.c -i mps.h + ''; + meta = with lib; { description = "City simulation game"; mainProgram = "xlincity";