From 8bfd238dd70ec555a356e5c8bf3a07b63c573926 Mon Sep 17 00:00:00 2001 From: Colin Date: Tue, 7 Oct 2025 12:01:58 +0200 Subject: [PATCH 1/3] cxxopts: fix broken pkgconfig dependency on icu-cu Co-authored-by: Sefa Eyeoglu Signed-off-by: Sefa Eyeoglu --- pkgs/by-name/cx/cxxopts/package.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/cx/cxxopts/package.nix b/pkgs/by-name/cx/cxxopts/package.nix index ecd195a79cc9..b1bbba4ed447 100644 --- a/pkgs/by-name/cx/cxxopts/package.nix +++ b/pkgs/by-name/cx/cxxopts/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch2, cmake, icu74, pkg-config, @@ -19,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-baM6EX9D0yfrKxuPXyUUV9RqdrVLyygeG6x57xN8lc4="; }; - buildInputs = lib.optionals enableUnicodeHelp [ icu74.dev ]; + propagatedBuildInputs = lib.optionals enableUnicodeHelp [ icu74.dev ]; cmakeFlags = [ "-DCXXOPTS_BUILD_EXAMPLES=OFF" ] @@ -37,6 +38,14 @@ stdenv.mkDerivation (finalAttrs: { --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ ''; + patches = [ + (fetchpatch2 { + url = "https://github.com/jarro2783/cxxopts/commit/e98c73d665915b292a0592bf34fcbe8522035bc1.patch?full_index=1"; + name = "fix-icu-uc-typo-in-pkgconfig.patch"; + hash = "sha256-bqd3H66Op1/EkN2HLd84Obky4Y2ndPPY8MGZ5fqtdk4="; + }) + ]; + meta = with lib; { homepage = "https://github.com/jarro2783/cxxopts"; description = "Lightweight C++ GNU-style option parser library"; From 9bdbef688a084e9fb620d4d3065c03e2ab24fce4 Mon Sep 17 00:00:00 2001 From: Colin Date: Tue, 7 Oct 2025 12:02:21 +0200 Subject: [PATCH 2/3] cxxopts: use replace-fail Signed-off-by: Sefa Eyeoglu --- pkgs/by-name/cx/cxxopts/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/cx/cxxopts/package.nix b/pkgs/by-name/cx/cxxopts/package.nix index b1bbba4ed447..95d283f4226e 100644 --- a/pkgs/by-name/cx/cxxopts/package.nix +++ b/pkgs/by-name/cx/cxxopts/package.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: { # https://github.com/jarro2783/cxxopts/issues/332 postPatch = '' substituteInPlace packaging/pkgconfig.pc.in \ - --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ + --replace-fail '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ ''; patches = [ From 313196be92f7c941f21cde338c48b0dd106da1a1 Mon Sep 17 00:00:00 2001 From: Colin Date: Tue, 7 Oct 2025 12:02:45 +0200 Subject: [PATCH 3/3] cxxopts: add pkgconfig tests Signed-off-by: Sefa Eyeoglu --- pkgs/by-name/cx/cxxopts/package.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/cx/cxxopts/package.nix b/pkgs/by-name/cx/cxxopts/package.nix index 95d283f4226e..8accbcad0630 100644 --- a/pkgs/by-name/cx/cxxopts/package.nix +++ b/pkgs/by-name/cx/cxxopts/package.nix @@ -6,6 +6,8 @@ cmake, icu74, pkg-config, + testers, + validatePkgConfig, enableUnicodeHelp ? true, }: @@ -25,7 +27,13 @@ stdenv.mkDerivation (finalAttrs: { "-DCXXOPTS_BUILD_EXAMPLES=OFF" ] ++ lib.optional enableUnicodeHelp "-DCXXOPTS_USE_UNICODE_HELP=TRUE"; - nativeBuildInputs = [ cmake ] ++ lib.optionals enableUnicodeHelp [ pkg-config ]; + nativeBuildInputs = [ + cmake + ] + ++ lib.optionals enableUnicodeHelp [ + pkg-config + validatePkgConfig + ]; doCheck = true; @@ -46,11 +54,19 @@ stdenv.mkDerivation (finalAttrs: { }) ]; + passthru = { + tests.pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + versionCheck = true; + }; + }; + meta = with lib; { homepage = "https://github.com/jarro2783/cxxopts"; description = "Lightweight C++ GNU-style option parser library"; license = licenses.mit; maintainers = [ maintainers.spease ]; + pkgConfigModules = [ "cxxopts" ]; platforms = platforms.all; }; })