Post by Rich... This is Slackware's fault, because GNU screen instructs packagers
to update their termcap and terminfo.
# Copy this update into place, and install it from doinst.sh
mkdir -p $PKG/etc/termcap.d
cp terminfo/screencap $PKG/etc/termcap.d/
cp terminfo/screeninfo.src $PKG/usr/share/screen/
# install screen termcap and terminfo entries
cat /etc/termcap-Linux /etc/termcap.d/* >/etc/termcap
tic /usr/share/screen/screeninfo.src >/dev/null 2>&1
Given that GNU screen is provided by Slackware itself, and that it is
very unlikely that Pat is reading alt.os.linux.slackware, you should
report this to Slackware (Pat) instead of here on Usenet.
Also, if you reach out to Pat, it is more likely that he is going to fix
Slackware-current (which one day will become Slackware 15.1) than fixing
some old Slackware 14.* which will become EOL 1/1 2024.
I can't say for sure about slackware-current, but latest Slackware 15.0
does not have /etc/termcap-Linux or the /etc/termcap.d directory. But
maybe you created that directory only for the screen fix?
Slackware 14.2 does have the /etc/termcap-Linux file, but also lacks the /
etc/termcap.d directories.
As a standard Slackware package might be installed both on a live
installed Slackware system and from the installation media, you should be
aware that the doinst.sh script is being run from the / directory of the
target system, but that might differ from / of the running system which
during Slackware installation is a ram file system uncompressed from
isolinux/initrd.img. There is probably not much point in modifying /etc/
termcap on that ramdisk during initial installation.
The $PKG variable is usually not used by the doinst.sh during
installation, but by the Slackbuild script during package creation. Was
it your intention to modify the doinst.sh of the screen package which is
run during installation or was it your intention to modify the Slackbuild
script of screen? My guess is that the first part of the code was for
screen.Slackbuild but the second part was for doinst.sh of the screen
package?
Part of the problem here is that the file /etc/termcap is not part of the
screen package, which package it belongs to depends upon the Slackware
version. In Slackware 14.2 /etc/termcap comes from the etc package, but
in Slackware 15.0 it comes from the ncurses package. The etc package in
14.2 has a doinst.sh script which copies termcap-Linux to termcap if
termcap does not already exist. The doinst.sh in the ncureses package for
Slackware 15.0 has no such thing, it simply just contains a plain /etc/
termcap.
As /etc/termcap is not part of the screen package, maybe Pat would prefer
to apply the fix to the package where /etc/termcap belongs. Any
modifications of etc/termcap made by other packages would be lost if the
original package containing that file gets upgraded.
One forum which Pat occasionally reads is
https://www.linuxquestions.org/questions/slackware-14/
That forum has a long thread "Requests for current-next (15.0-->15.1)"
which might be a good place to ask for changes like this. However, it
might be an even better idea to start a thread of its own for this to get
help iron things out before proposing a final solution.
Whether or not you choose to try to reach out to Pat to get this fixed in
upcoming versions of Slackware, I think it was a good thing that you
posted your solution here. Search engines like google will help people
having trouble running Elvis in screen to find your solution.
regards Henrik