On 8/9/25 2:10 PM, Thomas Dickey wrote:
On Sat, Aug 09, 2025 at 01:22:20PM -0500, Parzival Wolfram wrote:
Apologies for the wait, tack is proving temperamental and ncurses is
silently refusing to build shared libraries despite being configured with
--enable-shared. I can't find much documentation on tack's actual inner
That's --with-shared

https://invisible-island.net/ncurses/INSTALL.html#option:with-shared

...which uses a case-statement (which may/may not need work)
I have "--enable-threads=posix --disable-nls --disable-year2038 --disable-multilib --enable-static --enable-shared --disable-dependency-tracking --disable-largefile --disable-option-checking" hardcoded into my build system, because that's the usual set of suspects for autotools requirements on sol7. Curious that you're using a custom one, that's probably why nano and vim are also busted.
workings, and it claims to be unable to find the terminal database (status =
-1) despite being usable by other programs. (Additionally, I may have to
submit a patch or two later, as only ncurses and tack have died on configure
due to using case statements with non-standard parenthesis.)
(puzzled what you're testing if the configure fails...)
Actually that's POSIX standard.

https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_09_04_05

The page is 2004, but I recall the feature was standardized several years
before _that_.  I've been using the feature for about ten years.
bash-4.4 also claims it's invalid syntax, though that's not the greatest benchmark, and was released in 2016, I believe?

Solaris kept using an old /bin/sh

I made a script to help some people with old machines (Ultrix 4.3),
which you could use to alter the configure script.

Alternatively, you can do this:

        SHELL=/usr/xpg4/bin/sh
        export SHELL
I do that in a wrapper script for Solaris 10, which runs in VirtualBox...
I recall that the console driver differs in several ways from what you're
investigating.
Workarounds get it building, but it's still not working. Passing a different shell breaks `make` for most things if the shell you start from is bash or the system's default ksh, and the correct var can differ heavily between packages. (CONFIG_SHELL? SHELL? __SHELL? MAKE_SHELL? SH? CONFIG_SH?)

On 8/1/25 7:33 PM, Thomas Dickey wrote:
On Fri, Aug 01, 2025 at 06:29:43PM -0500, Parzival Wolfram wrote:
Are terminfo definitions still being added for/from ancient Unix flavors?
I'm running Solaris 7 i86pc (i486-pc-solaris2.7) and the "AT386" terminfo
file, defining the textmode shell on the physical machine, is not present as
of ncurses-6.5 (along with several other files.) Would these be appropriate
to add to ncurses, either directly from Solaris or remade based on the
infocmp output? infocmp and toe do seem to parse them, both on the Solaris
box and on a modern Linux machine.
hmm - I hadn't exactly overlooked that, so much as thinking it was out of
scope.  Here's what I think you're talking about, from a 1996 file from SCO:

--------------------------------------------------------------------------------
# Intel AT/386 for color card with monochrome display
#
AT386-M|at386-m|386AT-M|386at-m|at/386 console,
        am, bw, eo, xon, xt,
        cols#80, lines#25,
        acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
        cr=\r, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB,
        cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
        cup=\E[%i%p1%02d;%p2%02dH, cuu=\E[%p1%dA, cuu1=\E[A,
        dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[1M,
        ed=\E[J, el=\E[K, flash=^G, home=\E[H, ht=\t,
        ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
        ind=\E[S, indn=\E[%P1%dS, invis=\E[9m, is2=\E[0;10;38m,
        kbs=\b, kcbt=^], kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
        kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kend=\E[Y,
        kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ,
        kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
        kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@, knp=\E[U,
        kpp=\E[V, krmir=\E0, rev=\E[7m, rin=\E[S,
        rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
        
sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p9%t;12%;%?%p7%t;9%;m,
        sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
#
# AT&T 386 color console
#
AT386|at386|386AT|386at|at/386 console,
        colors#8, ncv#3, pairs#64,
        is2=\E[0;10;39m,
        op=\E[0m,
        setb=\E[%?%p1%{0}%=%t40m
                  %e%p1%{1}%=%t44m
                  %e%p1%{2}%=%t42m
                  %e%p1%{3}%=%t46m
                  %e%p1%{4}%=%t41m
                  %e%p1%{5}%=%t45m
                  %e%p1%{6}%=%t43m
                  %e%p1%{7}%=%t47m%;,
        setf=\E[%?%p1%{0}%=%t30m
                  %e%p1%{1}%=%t34m
                  %e%p1%{2}%=%t32m
                  %e%p1%{3}%=%t36m
                  %e%p1%{4}%=%t31m
                  %e%p1%{5}%=%t35m
                  %e%p1%{6}%=%t33m
                  %e%p1%{6}%=%t33m
                  %e%p1%{7}%=%t37m%;,
        use=at386-m,
--------------------------------------------------------------------------------

Mostly I'm interested in things that can be validated.

https://invisible-island.net/ncurses/ncurses.faq.html#dbupdate

It's possible that you have found an overlooked terminal description
which is
        (a) supported by a (working) terminal emulator and
        (b) you can find a manual to cross-check the behavior

But I see some problems to investigate, e.g., indn/rin are using "%P1" for
one ("%p1" is expected), and omitting the parameter in the other.  A later
file from Solaris fixes the "%P1" typo, but still doesn't provide a plausible
value for rin.

I'd actually expect rin to be as in ecma+index, but might be persuaded
otherwise, given a detailed manual:

# ECMA-48 does not include the VT100 indexing and scroll-margins.  It has its
# own variation.
ecma+index|ECMA-48 scroll up/down,
        indn=\E[%p1%dS, rin=\E[%p1%dT,

...bitsavers doesn't appear to have any useful AT&T terminal manuals.
Testing the machine's an option (though getting tack to run on Solaris 7
might be challenging).

--------------------------------------------------------------------------------
tic6: sorting by terminfo name order
tic6: width = 60, tversion = 0, outform = 0
"/tmp/at386.ti", line 3, terminal 'AT386-M': indn uses 0 parameters, expected 1
"/tmp/at386.ti", line 3, terminal 'AT386-M': rin uses 0 parameters, expected 1
"/tmp/at386.ti", line 3, terminal 'AT386-M': checking sgr(none) "\e[10m\e[0m"
        compare to "\e[0;10m"
        unmatched "10m"
"/tmp/at386.ti", line 3, terminal 'AT386-M': exit_attribute_mode differs from 
sgr(0)
        exit_attribute_mode="\e[0;10m"
        sgr(0)="\e[10m\e[0m"
"/tmp/at386.ti", line 3, terminal 'AT386-M': exit_standout_mode matches 
exit_attribute_mode
"/tmp/at386.ti", line 3, terminal 'AT386-M': exit_underline_mode matches 
exit_attribute_mode
"/tmp/at386.ti", line 27, terminal 'AT386': indn uses 0 parameters, expected 1
"/tmp/at386.ti", line 27, terminal 'AT386': rin uses 0 parameters, expected 1
"/tmp/at386.ti", line 27, terminal 'AT386': checking sgr(none) "\e[10m\e[0m"
        compare to "\e[0;10m"
        unmatched "10m"
"/tmp/at386.ti", line 27, terminal 'AT386': exit_attribute_mode differs from 
sgr(0)
        exit_attribute_mode="\e[0;10m"
        sgr(0)="\e[10m\e[0m"
"/tmp/at386.ti", line 27, terminal 'AT386': exit_standout_mode matches 
exit_attribute_mode
"/tmp/at386.ti", line 27, terminal 'AT386': exit_underline_mode matches 
exit_attribute_mode


Reply via email to