From f9e4b895c9b0aad60a65375bd862848cd18afb2a Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 7 Mar 2025 00:58:38 +0100 Subject: [PATCH 1/6] sfml: move to by-name --- .../sfml/default.nix => by-name/sf/sfml/package.nix} | 10 ---------- pkgs/top-level/all-packages.nix | 3 --- 2 files changed, 13 deletions(-) rename pkgs/{development/libraries/sfml/default.nix => by-name/sf/sfml/package.nix} (92%) diff --git a/pkgs/development/libraries/sfml/default.nix b/pkgs/by-name/sf/sfml/package.nix similarity index 92% rename from pkgs/development/libraries/sfml/default.nix rename to pkgs/by-name/sf/sfml/package.nix index 21c9927ee620..bde74eab1e96 100644 --- a/pkgs/development/libraries/sfml/default.nix +++ b/pkgs/by-name/sf/sfml/package.nix @@ -15,10 +15,6 @@ libXrender, udev, xcbutilimage, - IOKit, - Foundation, - AppKit, - OpenAL, }: stdenv.mkDerivation rec { @@ -60,12 +56,6 @@ stdenv.mkDerivation rec { libXrandr libXrender xcbutilimage - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - IOKit - Foundation - AppKit - OpenAL ]; cmakeFlags = [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fdaad793c313..d685a48f0709 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10437,9 +10437,6 @@ with pkgs; simpleitk = callPackage ../development/libraries/simpleitk { lua = lua5_4; }; - sfml = callPackage ../development/libraries/sfml { - inherit (darwin.apple_sdk.frameworks) IOKit Foundation AppKit OpenAL; - }; skawarePackages = recurseIntoAttrs (callPackage ../development/skaware-packages { }); inherit (skawarePackages) From 9fc278f0a932548e85e9e5d84589b7b48640b87f Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 7 Mar 2025 00:59:24 +0100 Subject: [PATCH 2/6] sfml: 2.5.1 -> 2.6.2 Diff: https://github.com/SFML/SFML/compare/2.5.1...2.6.2 Changelog: https://github.com/SFML/SFML/blob/2.6.2/changelog.md --- pkgs/by-name/sf/sfml/package.nix | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/sf/sfml/package.nix b/pkgs/by-name/sf/sfml/package.nix index bde74eab1e96..27148f4bf780 100644 --- a/pkgs/by-name/sf/sfml/package.nix +++ b/pkgs/by-name/sf/sfml/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, cmake, libX11, freetype, @@ -11,6 +10,7 @@ flac, libvorbis, glew, + libXcursor, libXrandr, libXrender, udev, @@ -19,27 +19,15 @@ stdenv.mkDerivation rec { pname = "sfml"; - version = "2.5.1"; + version = "2.6.2"; src = fetchFromGitHub { owner = "SFML"; repo = "SFML"; rev = version; - sha256 = "sha256-Xt2Ct4vV459AsSvJxQfwMsNs6iA5y3epT95pLWJGeSk="; + hash = "sha256-m8FVXM56qjuRKRmkcEcRI8v6IpaJxskoUQ+sNsR1EhM="; }; - patches = [ - (fetchpatch { - url = "https://github.com/macports/macports-ports/raw/4df1fc235a708ff28200ffc0a39120974ed4b6e1/multimedia/sfml/files/patch-apple-silicon.diff"; - extraPrefix = ""; - sha256 = "sha256-9dNawJaYtkugR+2NvhQOhgsf6w9ZXHkBgsDRh8yAJc0="; - }) - (fetchpatch { - url = "https://github.com/SFML/SFML/commit/bf92efe9a4035fee0258386173d53556aa196e49.patch"; - hash = "sha256-1htwPfpn7Z6s/3b+/i1tQ+btjr/tWv5m6IyDVMBNqQA="; - }) - ]; - nativeBuildInputs = [ cmake ]; buildInputs = [ @@ -53,6 +41,7 @@ stdenv.mkDerivation rec { ++ lib.optional stdenv.hostPlatform.isLinux udev ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ libX11 + libXcursor libXrandr libXrender xcbutilimage From 05c25736d885ff5fe1c6ea4c0eef215138485fbf Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 9 Mar 2025 16:30:30 +0100 Subject: [PATCH 3/6] sfml: modernize --- pkgs/by-name/sf/sfml/package.nix | 50 +++++++++++++++++--------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/pkgs/by-name/sf/sfml/package.nix b/pkgs/by-name/sf/sfml/package.nix index 27148f4bf780..32b9b5f7bdec 100644 --- a/pkgs/by-name/sf/sfml/package.nix +++ b/pkgs/by-name/sf/sfml/package.nix @@ -2,41 +2,44 @@ lib, stdenv, fetchFromGitHub, + + # nativeBuildInputs cmake, - libX11, - freetype, - libjpeg, - openal, + + # buildInputs flac, - libvorbis, + freetype, glew, + libjpeg, + libvorbis, + openal, + udev, + libX11, libXcursor, libXrandr, libXrender, - udev, xcbutilimage, }: - -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "sfml"; version = "2.6.2"; src = fetchFromGitHub { owner = "SFML"; repo = "SFML"; - rev = version; + tag = finalAttrs.version; hash = "sha256-m8FVXM56qjuRKRmkcEcRI8v6IpaJxskoUQ+sNsR1EhM="; }; nativeBuildInputs = [ cmake ]; buildInputs = [ - freetype - libjpeg - openal flac - libvorbis + freetype glew + libjpeg + libvorbis + openal ] ++ lib.optional stdenv.hostPlatform.isLinux udev ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ @@ -48,22 +51,23 @@ stdenv.mkDerivation rec { ]; cmakeFlags = [ - "-DSFML_INSTALL_PKGCONFIG_FILES=yes" - "-DSFML_MISC_INSTALL_PREFIX=share/SFML" - "-DSFML_BUILD_FRAMEWORKS=no" - "-DSFML_USE_SYSTEM_DEPS=yes" + (lib.cmakeBool "SFML_INSTALL_PKGCONFIG_FILES" true) + (lib.cmakeFeature "SFML_MISC_INSTALL_PREFIX" "share/SFML") + (lib.cmakeBool "SFML_BUILD_FRAMEWORKS" false) + (lib.cmakeBool "SFML_USE_SYSTEM_DEPS" true) ]; - meta = with lib; { - homepage = "https://www.sfml-dev.org/"; + meta = { description = "Simple and fast multimedia library"; + homepage = "https://www.sfml-dev.org/"; + changelog = "https://github.com/SFML/SFML/blob/${finalAttrs.version}/changelog.md"; longDescription = '' SFML is a simple, fast, cross-platform and object-oriented multimedia API. It provides access to windowing, graphics, audio and network. It is written in C++, and has bindings for various languages such as C, .Net, Ruby, Python. ''; - license = licenses.zlib; - maintainers = [ maintainers.astsmtl ]; - platforms = platforms.unix; + license = lib.licenses.zlib; + maintainers = [ lib.maintainers.astsmtl ]; + platforms = lib.platforms.unix; }; -} +}) From fc9df6f6ad62fa434dda8822a43a431ad1794f52 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 9 Mar 2025 17:23:26 +0100 Subject: [PATCH 4/6] sfml: mark as broken on darwin --- pkgs/by-name/sf/sfml/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/sf/sfml/package.nix b/pkgs/by-name/sf/sfml/package.nix index 32b9b5f7bdec..577952e20064 100644 --- a/pkgs/by-name/sf/sfml/package.nix +++ b/pkgs/by-name/sf/sfml/package.nix @@ -69,5 +69,9 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.zlib; maintainers = [ lib.maintainers.astsmtl ]; platforms = lib.platforms.unix; + badPlatforms = [ + # error: implicit instantiation of undefined template 'std::char_traits' + lib.systems.inspect.patterns.isDarwin + ]; }; }) From 79d0da523b61333cd722b4e11121978f8a775b2b Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 7 Mar 2025 23:40:01 +0100 Subject: [PATCH 5/6] csfml: 2.5.2 -> 2.6.1 Diff: https://github.com/SFML/CSFML/compare/2.5.2...2.6.1 --- pkgs/by-name/cs/csfml/package.nix | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cs/csfml/package.nix b/pkgs/by-name/cs/csfml/package.nix index 08d98928d77e..63bae5a8f474 100644 --- a/pkgs/by-name/cs/csfml/package.nix +++ b/pkgs/by-name/cs/csfml/package.nix @@ -8,13 +8,23 @@ stdenv.mkDerivation rec { pname = "csfml"; - version = "2.5.2"; + version = "2.6.1"; src = fetchFromGitHub { owner = "SFML"; repo = "CSFML"; rev = version; - sha256 = "sha256-A5C/4SnxUX7mW1wkPWJWX3dwMhrJ79DkBuZ7UYzTOqE="; + sha256 = "sha256-ECt0ySDpYWF0zuDBSnQzDwUm4Xj4z1+XSC55D6yivac="; }; + + # Fix incorrect path joining in cmake + # https://github.com/NixOS/nixpkgs/issues/144170 + postPatch = '' + substituteInPlace tools/pkg-config/csfml-*.pc.in \ + --replace-fail \ + 'libdir=''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@' \ + "libdir=@CMAKE_INSTALL_FULL_LIBDIR@" + ''; + nativeBuildInputs = [ cmake ]; buildInputs = [ sfml ]; cmakeFlags = [ "-DCMAKE_MODULE_PATH=${sfml}/share/SFML/cmake/Modules/" ]; From fcda2fc6e9bc1508e942dca48dfc579f1bd97f47 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 9 Mar 2025 17:29:51 +0100 Subject: [PATCH 6/6] csfml: modernize --- pkgs/by-name/cs/csfml/package.nix | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/cs/csfml/package.nix b/pkgs/by-name/cs/csfml/package.nix index 63bae5a8f474..646f83062726 100644 --- a/pkgs/by-name/cs/csfml/package.nix +++ b/pkgs/by-name/cs/csfml/package.nix @@ -6,14 +6,15 @@ sfml, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "csfml"; version = "2.6.1"; + src = fetchFromGitHub { owner = "SFML"; repo = "CSFML"; - rev = version; - sha256 = "sha256-ECt0ySDpYWF0zuDBSnQzDwUm4Xj4z1+XSC55D6yivac="; + tag = finalAttrs.version; + hash = "sha256-ECt0ySDpYWF0zuDBSnQzDwUm4Xj4z1+XSC55D6yivac="; }; # Fix incorrect path joining in cmake @@ -27,9 +28,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ sfml ]; - cmakeFlags = [ "-DCMAKE_MODULE_PATH=${sfml}/share/SFML/cmake/Modules/" ]; + cmakeFlags = [ + (lib.cmakeFeature "CMAKE_MODULE_PATH" "${sfml}/share/SFML/cmake/Modules/") + ]; - meta = with lib; { + meta = { homepage = "https://www.sfml-dev.org/"; description = "Simple and fast multimedia library"; longDescription = '' @@ -37,8 +40,8 @@ stdenv.mkDerivation rec { It provides access to windowing, graphics, audio and network. It is written in C++, and has bindings for various languages such as C, .Net, Ruby, Python. ''; - license = licenses.zlib; - maintainers = [ maintainers.jpdoyle ]; - platforms = platforms.linux; + license = lib.licenses.zlib; + maintainers = [ lib.maintainers.jpdoyle ]; + platforms = lib.platforms.linux; }; -} +})