From 6e5fcac29b883c9f967006d3e73f755c35588b4f Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Fri, 10 Apr 2026 08:04:50 +0200 Subject: [PATCH 1/4] tclPackages.rl_json: 0.15.7 -> 0.16 --- .../by-name/rl/rl_json/package.nix | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix b/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix index aefab7d88c6f..dfc56bc68fd1 100644 --- a/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix +++ b/pkgs/development/tcl-modules/by-name/rl/rl_json/package.nix @@ -4,40 +4,30 @@ fetchFromGitHub, autoreconfHook, tcl, + pandoc, }: stdenv.mkDerivation (finalAttrs: { pname = "rl_json"; - version = "0.15.7"; + version = "0.16"; src = fetchFromGitHub { owner = "RubyLane"; repo = "rl_json"; tag = finalAttrs.version; - hash = "sha256-6Y6bq/Lm6KCFFV3RF6v4fVPEN1LO+jE2xZV50a8zyng="; + hash = "sha256-rXr7x9Cr+gD938+NEPguvYVWH5s9bKccMobuZsb0IQY="; fetchSubmodules = true; }; - # The vendored libtommath conflicts with tclTomMath. - # Replacing it with tclTomMath fixes the issue. - # https://github.com/RubyLane/rl_json/issues/57 - # The switch to a vendored libtommath was done in 0.15.4 in commit - # https://github.com/RubyLane/rl_json/commit/9294d533f4d81288acf53045666b1587cf7fbf92 - # "for proper bignum handling", but the commit message doesn't explain what's wrong - # with tclTomMath's bignum handling and all tests pass anyway. postPatch = '' - rm -r deps/libtommath - substituteInPlace Makefile.in \ - --replace-fail 'deps: local/lib/libtommath.a' 'deps:' - substituteInPlace configure.ac \ - --replace-fail -ltommath "" - substituteInPlace generic/rl_jsonInt.h \ - --replace-fail '#include ' '#include ' + mkdir doc/.build + cp doc/json.md.in doc/.build/json.md.in ''; nativeBuildInputs = [ autoreconfHook tcl.tclPackageHook + pandoc ]; configureFlags = [ @@ -47,8 +37,6 @@ stdenv.mkDerivation (finalAttrs: { "--datarootdir=${placeholder "out"}/share" ]; - env.NIX_CFLAGS_COMPILE = "-Wno-error"; - doCheck = true; meta = { From f6255687742bea17e7c4d1a21f573b36b37335d7 Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Fri, 10 Apr 2026 08:05:24 +0200 Subject: [PATCH 2/4] tclPackages.tkimg: 623 -> 2.1.1 Use actual version instead of svn revision --- .../tcl-modules/by-name/tk/tkimg/package.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tcl-modules/by-name/tk/tkimg/package.nix b/pkgs/development/tcl-modules/by-name/tk/tkimg/package.nix index 9eca47fedb46..1844af448d08 100644 --- a/pkgs/development/tcl-modules/by-name/tk/tkimg/package.nix +++ b/pkgs/development/tcl-modules/by-name/tk/tkimg/package.nix @@ -1,20 +1,20 @@ { lib, - fetchsvn, + fetchzip, tcl, tcllib, tk, libx11, + zlib, }: tcl.mkTclDerivation rec { pname = "tkimg"; - version = "623"; + version = "2.1.1"; - src = fetchsvn { - url = "svn://svn.code.sf.net/p/tkimg/code/trunk"; - rev = version; - sha256 = "sha256-6GlkqYxXmMGjiJTZS2fQNVSimcKc1BZ/lvzvtkhty+o="; + src = fetchzip { + url = "mirror://sourceforge/tkimg/tkimg/Img-${version}.tar.gz"; + hash = "sha256-TRtE2/BVrYgkdKtbF06UjLvokokgLGQ/EKDLxhz2Ckw="; }; configureFlags = [ @@ -26,6 +26,7 @@ tcl.mkTclDerivation rec { buildInputs = [ libx11 tcllib + zlib ]; meta = { From 7f0b064d1ee268c9567b739e41b8de2e8179a15b Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Fri, 10 Apr 2026 13:53:02 +0200 Subject: [PATCH 3/4] tcl9Packages: init Closes #507589 Closes #507575 --- pkgs/development/interpreters/tcl/generic.nix | 1 + pkgs/top-level/all-packages.nix | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/tcl/generic.nix b/pkgs/development/interpreters/tcl/generic.nix index 53d076f878d1..21702a4c74c6 100644 --- a/pkgs/development/interpreters/tcl/generic.nix +++ b/pkgs/development/interpreters/tcl/generic.nix @@ -130,6 +130,7 @@ let passthru = rec { inherit release version; + isTcl9 = lib.versions.major version == "9"; libPrefix = "tcl${release}"; libdir = "lib/${libPrefix}"; tclPackageHook = callPackage ( diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c436ed689420..617043707280 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5249,8 +5249,21 @@ with pkgs; tcl-8_6 = callPackage ../development/interpreters/tcl/8.6.nix { }; tcl-9_0 = callPackage ../development/interpreters/tcl/9.0.nix { }; - # We don't need versioned package sets thanks to the tcl stubs mechanism - tclPackages = recurseIntoAttrs (callPackage ./tcl-packages.nix { }); + tclPackages = dontRecurseIntoAttrs tcl8Packages; + # We don't need minor-versioned package sets thanks to the tcl stubs mechanism. + # Major versions have bigger incompatibilities and need package sets. + tcl8Packages = recurseIntoAttrs ( + callPackage ./tcl-packages.nix { + tcl = tcl-8_6; + tk = tk-8_6; + } + ); + tcl9Packages = recurseIntoAttrs ( + callPackage ./tcl-packages.nix { + tcl = tcl-9_0; + tk = tk-9_0; + } + ); tclreadline = tclPackages.tclreadline; From 3d39447275c9a83a850c1271937198940871ddc7 Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Fri, 10 Apr 2026 13:53:55 +0200 Subject: [PATCH 4/4] tclPackages: mark packages that are broken on Tcl9 --- pkgs/development/tcl-modules/by-name/ex/expect/package.nix | 1 + pkgs/development/tcl-modules/by-name/in/incrtcl/package.nix | 1 + pkgs/development/tcl-modules/by-name/le/lexec/package.nix | 2 ++ pkgs/development/tcl-modules/by-name/tc/tcl-fcgi/package.nix | 2 ++ pkgs/development/tcl-modules/by-name/tc/tclcurl/package.nix | 2 ++ pkgs/development/tcl-modules/by-name/tc/tclmagick/package.nix | 2 ++ pkgs/development/tcl-modules/by-name/tc/tcltls/package.nix | 2 ++ pkgs/development/tcl-modules/by-name/tc/tcludp/package.nix | 2 ++ pkgs/development/tcl-modules/by-name/ti/tix/package.nix | 1 + pkgs/development/tcl-modules/by-name/ve/vectcl/package.nix | 2 ++ 10 files changed, 17 insertions(+) diff --git a/pkgs/development/tcl-modules/by-name/ex/expect/package.nix b/pkgs/development/tcl-modules/by-name/ex/expect/package.nix index fcb23f407da7..8e4b2b0caa54 100644 --- a/pkgs/development/tcl-modules/by-name/ex/expect/package.nix +++ b/pkgs/development/tcl-modules/by-name/ex/expect/package.nix @@ -81,5 +81,6 @@ tcl.mkTclDerivation rec { platforms = lib.platforms.unix; mainProgram = "expect"; maintainers = with lib.maintainers; [ SuperSandro2000 ]; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/in/incrtcl/package.nix b/pkgs/development/tcl-modules/by-name/in/incrtcl/package.nix index 2aa3248f531d..9ea98c23381f 100644 --- a/pkgs/development/tcl-modules/by-name/in/incrtcl/package.nix +++ b/pkgs/development/tcl-modules/by-name/in/incrtcl/package.nix @@ -46,5 +46,6 @@ mkTclDerivation rec { license = lib.licenses.tcltk; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ thoughtpolice ]; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/le/lexec/package.nix b/pkgs/development/tcl-modules/by-name/le/lexec/package.nix index 047676ba4cde..753ef8de6829 100644 --- a/pkgs/development/tcl-modules/by-name/le/lexec/package.nix +++ b/pkgs/development/tcl-modules/by-name/le/lexec/package.nix @@ -3,6 +3,7 @@ mkTclDerivation, fetchzip, autoreconfHook, + tcl, }: mkTclDerivation { @@ -24,5 +25,6 @@ mkTclDerivation { license = lib.licenses.tcltk; maintainers = with lib.maintainers; [ fgaz ]; platforms = lib.platforms.all; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/tc/tcl-fcgi/package.nix b/pkgs/development/tcl-modules/by-name/tc/tcl-fcgi/package.nix index b53b6d1281f0..f3e7fd0a7157 100644 --- a/pkgs/development/tcl-modules/by-name/tc/tcl-fcgi/package.nix +++ b/pkgs/development/tcl-modules/by-name/tc/tcl-fcgi/package.nix @@ -3,6 +3,7 @@ fetchFromGitHub, mkTclDerivation, tclx, + tcl, }: mkTclDerivation { @@ -31,5 +32,6 @@ mkTclDerivation { license = lib.licenses.bsd2; platforms = tclx.meta.platforms; maintainers = with lib.maintainers; [ nat-418 ]; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/tc/tclcurl/package.nix b/pkgs/development/tcl-modules/by-name/tc/tclcurl/package.nix index a843734b69b6..952c0201bb32 100644 --- a/pkgs/development/tcl-modules/by-name/tc/tclcurl/package.nix +++ b/pkgs/development/tcl-modules/by-name/tc/tclcurl/package.nix @@ -3,6 +3,7 @@ mkTclDerivation, fetchFromGitHub, curl, + tcl, }: mkTclDerivation rec { @@ -29,5 +30,6 @@ mkTclDerivation rec { changelog = "https://github.com/flightaware/tclcurl-fa/blob/master/ChangeLog.txt"; license = lib.licenses.tcltk; maintainers = with lib.maintainers; [ fgaz ]; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/tc/tclmagick/package.nix b/pkgs/development/tcl-modules/by-name/tc/tclmagick/package.nix index ad688ec56de4..cbfe979ac79a 100644 --- a/pkgs/development/tcl-modules/by-name/tc/tclmagick/package.nix +++ b/pkgs/development/tcl-modules/by-name/tc/tclmagick/package.nix @@ -3,6 +3,7 @@ mkTclDerivation, fetchzip, graphicsmagick, + tcl, tk, }: @@ -34,5 +35,6 @@ mkTclDerivation rec { homepage = "http://www.graphicsmagick.org/TclMagick/doc/"; license = lib.licenses.tcltk; maintainers = with lib.maintainers; [ fgaz ]; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/tc/tcltls/package.nix b/pkgs/development/tcl-modules/by-name/tc/tcltls/package.nix index 02621ea9a8c3..d927b037f0c4 100644 --- a/pkgs/development/tcl-modules/by-name/tc/tcltls/package.nix +++ b/pkgs/development/tcl-modules/by-name/tc/tcltls/package.nix @@ -3,6 +3,7 @@ fetchurl, mkTclDerivation, openssl, + tcl, }: mkTclDerivation rec { @@ -28,5 +29,6 @@ mkTclDerivation rec { maintainers = [ lib.maintainers.agbrooks ]; license = lib.licenses.tcltk; platforms = lib.platforms.unix; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/tc/tcludp/package.nix b/pkgs/development/tcl-modules/by-name/tc/tcludp/package.nix index 073a93432fda..58052bf4079f 100644 --- a/pkgs/development/tcl-modules/by-name/tc/tcludp/package.nix +++ b/pkgs/development/tcl-modules/by-name/tc/tcludp/package.nix @@ -2,6 +2,7 @@ lib, mkTclDerivation, fetchfossil, + tcl, }: mkTclDerivation rec { @@ -35,5 +36,6 @@ mkTclDerivation rec { homepage = "https://core.tcl-lang.org/tcludp"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fgaz ]; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/ti/tix/package.nix b/pkgs/development/tcl-modules/by-name/ti/tix/package.nix index a27e45a711aa..b972d2dbf594 100644 --- a/pkgs/development/tcl-modules/by-name/ti/tix/package.nix +++ b/pkgs/development/tcl-modules/by-name/ti/tix/package.nix @@ -60,5 +60,6 @@ tcl.mkTclDerivation { bsd2 # tix gpl2 # patches from portage ]; + broken = tcl.isTcl9; }; } diff --git a/pkgs/development/tcl-modules/by-name/ve/vectcl/package.nix b/pkgs/development/tcl-modules/by-name/ve/vectcl/package.nix index 9c4bdf2143d6..fbfde044f789 100644 --- a/pkgs/development/tcl-modules/by-name/ve/vectcl/package.nix +++ b/pkgs/development/tcl-modules/by-name/ve/vectcl/package.nix @@ -2,6 +2,7 @@ lib, mkTclDerivation, fetchFromGitHub, + tcl, }: mkTclDerivation rec { @@ -22,5 +23,6 @@ mkTclDerivation rec { description = "Numeric array and linear algebra extension for Tcl"; maintainers = with lib.maintainers; [ fgaz ]; license = lib.licenses.tcltk; + broken = tcl.isTcl9; }; }