From e8b746d262fed2197f498244c098eb0557ca974a Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 20 Apr 2025 01:36:57 +0200 Subject: [PATCH 1/4] weechat-unwrapped: add update script --- .../networking/irc/weechat/default.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix index 199b238ab388..b7c1cf74a0b1 100644 --- a/pkgs/applications/networking/irc/weechat/default.nix +++ b/pkgs/applications/networking/irc/weechat/default.nix @@ -38,6 +38,7 @@ pcre2, libargon2, extraBuildInputs ? [ ], + writeScript, }: let @@ -171,6 +172,20 @@ stdenv.mkDerivation rec { $out/bin/weechat --version ''; + passthru.updateScript = writeScript "update-weechat" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p coreutils gawk git gnugrep common-updater-scripts + set -eu -o pipefail + + version="$(git ls-remote --refs https://github.com/weechat/weechat | \ + awk '{ print $2 }' | \ + grep "refs/tags/v" | \ + sed -E -e 's,refs/tags/v(.*)$,\1,' | \ + sort --version-sort --reverse | \ + head -n1)" + update-source-version weechat-unwrapped "$version" + ''; + meta = { homepage = "https://weechat.org/"; changelog = "https://weechat.org/files/doc/weechat/ChangeLog-${version}.html"; From 755c426d2694feaa1ac216ffc856b450983741a7 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 20 Apr 2025 01:39:34 +0200 Subject: [PATCH 2/4] weechat-unwrapped: 4.5.1 -> 4.6.2 https://github.com/weechat/weechat/releases/tag/v4.5.2 https://github.com/weechat/weechat/releases/tag/v4.6.0 https://github.com/weechat/weechat/releases/tag/v4.6.1 https://github.com/weechat/weechat/releases/tag/v4.6.2 --- pkgs/applications/networking/irc/weechat/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix index b7c1cf74a0b1..af9d0de67b40 100644 --- a/pkgs/applications/networking/irc/weechat/default.nix +++ b/pkgs/applications/networking/irc/weechat/default.nix @@ -101,14 +101,14 @@ let in assert lib.all (p: p.enabled -> !(builtins.elem null p.buildInputs)) plugins; stdenv.mkDerivation rec { - version = "4.5.1"; + version = "4.6.2"; pname = "weechat"; hardeningEnable = [ "pie" ]; src = fetchurl { url = "https://weechat.org/files/src/weechat-${version}.tar.xz"; - hash = "sha256-Z8FDx7xw5om56obfZ0yan/PPRMzJzf8hvmpWHV6vxSg="; + hash = "sha256-D6AkKhgRb+J/dG27giEhgF2mu129QHUNQsYzBuSJZig="; }; # Why is this needed? https://github.com/weechat/weechat/issues/2031 From b911778605949c28a3b35004bf96448c24c0be3c Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 20 Apr 2025 01:43:19 +0200 Subject: [PATCH 3/4] weechat-unwrapped: fix changelog url The changelog on the homepage cannot be computed since it contains the release date now. The GitHub releases contain the same information, so we're good. --- pkgs/applications/networking/irc/weechat/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix index af9d0de67b40..1682d7d0a36c 100644 --- a/pkgs/applications/networking/irc/weechat/default.nix +++ b/pkgs/applications/networking/irc/weechat/default.nix @@ -188,7 +188,7 @@ stdenv.mkDerivation rec { meta = { homepage = "https://weechat.org/"; - changelog = "https://weechat.org/files/doc/weechat/ChangeLog-${version}.html"; + changelog = "https://github.com/weechat/weechat/releases/tag/v${version}"; description = "Fast, light and extensible chat client"; longDescription = '' You can find more documentation as to how to customize this package From 26d396ad8d5ced0df73736b74dcb65c78bb06967 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 20 Apr 2025 01:57:50 +0200 Subject: [PATCH 4/4] weechat-unwrapped: refactor --- .../networking/irc/weechat/default.nix | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix index 1682d7d0a36c..1d79561fc235 100644 --- a/pkgs/applications/networking/irc/weechat/default.nix +++ b/pkgs/applications/networking/irc/weechat/default.nix @@ -99,12 +99,12 @@ let enabledPlugins = builtins.filter (p: p.enabled) plugins; in -assert lib.all (p: p.enabled -> !(builtins.elem null p.buildInputs)) plugins; -stdenv.mkDerivation rec { - version = "4.6.2"; - pname = "weechat"; - hardeningEnable = [ "pie" ]; +assert lib.all (p: p.enabled -> !(builtins.elem null p.buildInputs)) plugins; + +stdenv.mkDerivation rec { + pname = "weechat"; + version = "4.6.2"; src = fetchurl { url = "https://weechat.org/files/src/weechat-${version}.tar.xz"; @@ -121,19 +121,22 @@ stdenv.mkDerivation rec { cmakeFlags = [ - "-DENABLE_MAN=ON" - "-DENABLE_DOC=ON" - "-DENABLE_DOC_INCOMPLETE=ON" - "-DENABLE_TESTS=${if enableTests then "ON" else "OFF"}" + (lib.cmakeBool "ENABLE_MAN" true) + (lib.cmakeBool "ENABLE_DOC" true) + (lib.cmakeBool "ENABLE_DOC_INCOMPLETE" true) + (lib.cmakeBool "ENABLE_TESTS" enableTests) ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ "-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" ] - ++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins; + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + (lib.cmakeFeature "ICONV_LIBRARY" "${libiconv}/lib/libiconv.dylib") + ] + ++ map (p: lib.cmakeBool p.cmakeFlag p.enabled) plugins; nativeBuildInputs = [ cmake pkg-config asciidoctor ] ++ lib.optional enableTests cpputest; + buildInputs = [ ncurses @@ -153,6 +156,8 @@ stdenv.mkDerivation rec { ++ lib.concatMap (p: p.buildInputs) enabledPlugins ++ extraBuildInputs; + hardeningEnable = [ "pie" ]; + env.NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}" # Fix '_res_9_init: undefined symbol' error @@ -168,6 +173,7 @@ stdenv.mkDerivation rec { ''; doInstallCheck = true; + installCheckPhase = '' $out/bin/weechat --version '';