git: 2a50a9de8340 - main - terminfo: add terminfo database

Baptiste Daroussin bapt at FreeBSD.org
Fri Feb 26 19:23:57 UTC 2021


26 févr. 2021 18:36:40 Baptiste Daroussin <bapt at FreeBSD.org>:

> On Fri, Feb 26, 2021 at 09:30:43AM -0800, Rodney W. Grimes wrote:
>>> In message <202102251327.11PDR4eC083842 at gitrepo.freebsd.org>, Baptiste
>>> Daroussi
>>> n writes:
>>>> The branch main has been updated by bapt:
>>>>
>>>> URL: https://cgit.FreeBSD.org/src/commit/?id=2a50a9de8340f08bd876e9e5993332ae
>>>> 14376f80
>>>>
>>>> commit 2a50a9de8340f08bd876e9e5993332ae14376f80
>>>> Author:     Baptiste Daroussin <bapt at FreeBSD.org>
>>>> AuthorDate: 2021-02-23 16:17:32 +0000
>>>> Commit:     Baptiste Daroussin <bapt at FreeBSD.org>
>>>> CommitDate: 2021-02-25 13:25:32 +0000
>>>>
>>>>     terminfo: add terminfo database
>>>>    
>>>>     Tested by:      manu, jbeich
>>>> ---
>>>> share/Makefile          |  1 +
>>>> share/terminfo/Makefile | 34 ++++++++++++++++++++++++++++++++++
>>>> 2 files changed, 35 insertions(+)
>>>>
>>>> diff --git a/share/Makefile b/share/Makefile
>>>> index c4e12b05f7db..d6854b230ae5 100644
>>>> --- a/share/Makefile
>>>> +++ b/share/Makefile
>>>> @@ -26,6 +26,7 @@ SUBDIR= ${_colldef} \
>>>>   ${_syscons} \
>>>>   tabset \
>>>>   termcap \
>>>> + terminfo \
>>>>   ${_timedef} \
>>>>   ${_vt} \
>>>>   ${_zoneinfo}
>>>> diff --git a/share/terminfo/Makefile b/share/terminfo/Makefile
>>>> new file mode 100644
>>>> index 000000000000..7bb11f3fdf24
>>>> --- /dev/null
>>>> +++ b/share/terminfo/Makefile
>>>> @@ -0,0 +1,34 @@
>>>> +PACKAGE= runtime
>>>> +
>>>> +.PATH: ${SRCTOP}/contrib/ncurses/misc
>>>> +TINFOBUILDDIR= ${.OBJDIR}/builddir
>>>> +CLEANDIRS+=  builddir
>>>> +
>>>> +.include <src.tools.mk>
>>>> +
>>>> +.if !defined(_SKIP_BUILD)
>>>> +all: terminfo
>>>> +.endif
>>>> +META_TARGETS+= terminfo install-terminfo
>>>> +
>>>> +terminfo: terminfo.src
>>>> + mkdir -p ${TINFOBUILDDIR}
>>>> + ${TIC_CMD} -x -o ${TINFOBUILDDIR} ${.ALLSRC}
>>>> +
>>>> +.if make(*install*)
>>>> +TINFOS!=  cd ${TINFOBUILDDIR} && find * -type f | LC_ALL=C sort
>>>> +TINFOSDIRS=  ${TINFOS:C/(.).*/\1/g:O:u}
>>>> +.endif
>>>> +
>>>> +beforeinstall: install-terminfo
>>>> +install-terminfo:
>>>> + mkdir -p ${DESTDIR}/usr/share/terminfo
>>>> + cd ${DESTDIR}/usr/share/terminfo; mkdir -p ${TINFOSDIRS}
>>>> +.for f in ${TINFOS}
>>>> + ${INSTALL} ${TAG_ARGS} \
>>>> +     -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
>>>> +     ${TINFOBUILDDIR}/${f} ${DESTDIR}/usr/share/terminfo/${f}
>>>> +.endfor
>>>> +
>>>> +.include <bsd.prog.mk>
>>>> +
>>>>
>>>
>>> I think this had some unintended consequences, a POLA violation that should
>>> be documented. Our termcap didn't support alternate screen buffers while
>>> terminfo does. Termcap did through t_te and t_ti but we didn't use them.
>>> Terminfo as delivered from the ncurses factory does supply rmcup and smcup;
>>> our fullscreen apps such as nvi and top see them and use the alternate
>>> screen buffer.
>>>
>>> The use of the alternate screen buffer is one of the things I hate about
>>> Linux. After running vi or top I expect the output to remain on the screen
>>> so I can use some bit of information in my next command. We now have this
>>> behaviour too.
>>
>> Oh, I so hate that mis-feature of Linux, please please tell me there is
>> a simple knob to turn this off?  I believe LESS also does this kind
>> of stuff, or atleast "man" on linux does, and that pees me off to no
>> end when I quit the man page and what I wanted is no longer on the screen.
>>
>>
> No this is not and I clear have 0 intention to have a complex patch on top of
> the linux terminfo which would prefer easy sync in the futur.
>
> We can document how to use a definition which does not have the feature you do
> not like.
>
> Best,
> Bapt

Wow I think that is one of the most terrible mail I have ever written!

Let me rephrase it. I won t patch ncurses terminfo as that would make the maintenance a huge pain. Ncurses is already not an easy beast to maintain ( should be a bit easier now).

The solution is to document how to workaround for the people who dislike the new behaviour

Bapt


More information about the dev-commits-src-main mailing list