How can I get the tcl command?

If I add tcl to my packages, why is there no “tcl” command added to my path?:wink:

The tcl binary I assume is part of the tcl package?

pkgs.tcl and maybe you want pkgs.tclx too

add those to your system however you add other software via nix (configuration.nix, nix profile command, nix-env command, etc…)

This is what I’ve done, like all the hundreds other packages I’ve added, but I get no “tcl” binary in my path

  environment.systemPackages = with pkgs; [
tcl

sorry, i checked my notes and that should add tclsh command to your path…

does that work for you?

ok, but isn’t it normal to have “tcl” in the path and not “tclsh”?

without knowing the answer to that i would suggest it might not be normal to have any tcl interpreter in your path in 2024 :sweat_smile:

Good answer;). I’m trying to make emacspeak work and in my troubleshooting, I find this:

export DTK_PROGRAM=espeak
export DTK_TCL=tcl
export DTK_PORT=none
export DTK_DEVICE="espeak"

, so I would assume tcl has to be in my PATH

1 Like

i think tclsh will work just fine … can you override the environment variable?

I still get the same error when I override it.

export DTK_TCL=tclsh

I also found this:

	If you get an error such as bash: tcl:: command not found, it means that tcl/tclx is not correctly installed on your system. You must get the latest version of either tcl or tclx and install it before Emacspeak will work. 

I managed to modify the package, so that I get tclsh as tcl in my path

    #tclsh as tcl
    (pkgs.runCommand "tcl" { nativeBuildInputs = [ pkgs.makeWrapper ]; } ''
                     mkdir -p $out/bin
                     makeWrapper ${pkgs.tcl}/bin/tclsh $out/bin/tcl --argv0 tcl
                     '')

Sadly, still the same situation with Emacspeak, so it must be something else.

Thanks, anyway;)

Someone may have a better sense if you show-your-math–where do you see the above?

I’m not familiar with the package, but when I poke at it in a shell the only references I see to DTK_TCL via recursive grep appear to be documentation (and neither uses “tcl” as in yours):

$ grep -rn DTK_TCL /nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0
/nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0/share/emacs/site-lisp/emacspeak/info/introducing-emacspeak.texi:1382:export DTK_TCL=/usr/local/bin/eflite
/nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0/share/emacs/site-lisp/emacspeak/info/introducing-emacspeak.texi:1431:export DTK_TCL=/usr/bin/perl
/nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0/share/emacs/site-lisp/emacspeak/info/introducing-emacspeak.html:1342:export DTK_TCL=/usr/local/bin/eflite
/nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0/share/emacs/site-lisp/emacspeak/info/introducing-emacspeak.html:1383:export DTK_TCL=/usr/bin/perl
/nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0/share/emacs/site-lisp/emacspeak/info/introducing-emacspeak.info:1127:     export DTK_TCL=/usr/local/bin/eflite
/nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0/share/emacs/site-lisp/emacspeak/info/introducing-emacspeak.info:1166:     export DTK_TCL=/usr/bin/perl
/nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0/share/emacs/site-lisp/emacspeak/html/introducing-emacspeak.html:1257:     export DTK_TCL=/usr/local/bin/eflite
/nix/store/7gqnz8s6dfs7wmnmdqxgapl6ahapfgyw-emacspeak-56.0/share/emacs/site-lisp/emacspeak/html/introducing-emacspeak.html:1296:     export DTK_TCL=/usr/bin/perl

I found this specific clue on the Ubuntu forum.

Also, Emacspeak works fine if I start Emacs with emacspeak. Like the forum post, I also want to start Emacspeak from inside Emacs. So, I guess it has nothing to do with tcl. It was a false lead;)