Terminal display unicode?

My cluster prints their logo in the message of the day, but when I use OOD “shell access” there is no motd at all. I found that when I try to print out the logo, cat hangs. I also found that the following command:

LANG=en_US.UTF-8 printf "\u2588\n"

prints a solid white block on my gnome terminal, but prints nothing on the OOD terminal.

I assume that there is no unicode support, and I should make a feature request?

I have also found that it can only print 128 asciii characters. Any number over 127 causes the same hanging behavior.

Hey, sorry for the trouble.

You may be describing this issue, which brings up many characters not working currently:

What browser and OS are you using for the OOD Shell?

You’re right, I get the motd properly when I use firefox. Chrome is where it can’t print the characters. (I’m using debian bullseye)

We run Open OnDemand 2.0.28 and the hterm shipped with OOD is 1.85. We had trouble viewing htop in tree view and hterm 1.91 fixed the problem. However, we had to download hterm 1.91 from OOD 2.1 and manually update hterm in our OOD. It would be good to have hterm 1.91 bundled with OOD 2.0.

I don’t see any OOD 2.1, and I couldn’t find any hterm on my system, but I did find instructions on how to update hterm:

The guide didn’t work for me.

The shell app is a white screen, and this new error has appeared in the developer console:

image

I cloned the repo like it said, ran the script (without scl enable because I’m on Ubuntu), copied the file, and updated the reference.
I named the new file /var/www/ood/apps/sys/shell/public/javascripts/hterm_all_1.92.1.mod.js, which isn’t exactly the format the instructions specify. The existing file was called /var/www/ood/apps/sys/shell/public/javascripts/hterm_all_1.85.mod.js

I think the error is thrown at this line:

The old hterm defined lib.init:

lib.init = function(onInit, opt_logFunction) {
  var ary = lib.initCallbacks_;

  var initNext = function() {
    if (ary.length) {
      var rec = ary.shift();
      if (opt_logFunction)
        opt_logFunction('init: ' + rec[0]);
      rec[1](initNext);
    } else {
      onInit();
    }
  };

where the new hterm does not.

hterm_all_1.85.mod.js.txt (641.3 KB)
hterm_all_1.92.1.mod.js.txt (707.9 KB)

There is a years-old pull request that fixes this issue, I just downloaded the hterm javascript from there:
https://github.com/c3se/ondemand/blob/82558c98593ac10e0312eab7eebb5b7f3301fb4e/apps/shell/public/javascripts/hterm_all_1.91.mod.js

I can backport hterm 1.91 to 2.0 given how much traffic this topic has gotten.

I’ve backported hterm 1.91 to 2.0.32 so that you folks don’t need to hack around on the source code.