-
-
Notifications
You must be signed in to change notification settings - Fork 193
Fix "Cannot read termcap database;" #215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
./configure with defaults search path compatible with both FHS and the soon-to-be-deprecated Debian path https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#idm236087499712 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1028202
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I support the intent of the change.
But the diff as authored is changing the temporary host build of terminfo, not the final build we actually use.
If you go look later in the file, you'll see that we set the following:
--with-terminfo-dirs=/usr/share/terminfo
--with-default-terminfo-dir=/usr/share/terminfo
I think the problem here is that older Debian versions are putting stuff in /lib/terminfo
.
Looking at the code in PyOxidizer, I think /etc/terminfo:/lib/terminfo:/usr/share/terminfo
might be a reasonably safe default, as that should be compatible with both Debian and RedHat flavored distros.
I'll cherry pick and amend this commit to make the changes.
Before, ncurses on Linux was built to look for the terminfo database in a location that only existed in the build environment After, it looks for the database in `/etc/terminfo`, `/lib/terminfo`, and `/usr/share/terminfo`. These are the directory locations that work on a superset of Debian and RedHat. This hopefully means that terminfo database resolution "just works" in a lot of common Linux environments. As part of this, we add the terminfo database to the ncurses package artifacts. Then we copy the terminfo database into `install/share/terminfo` in the CPython distribution if a terminfo database is present. macOS doesn't distribute a terminfo database because the system terminfo database should be "good enough." Closes #215.
Before, ncurses on Linux was built to look for the terminfo database in a location that only existed in the build environment After, it looks for the database in `/etc/terminfo`, `/lib/terminfo`, and `/usr/share/terminfo`. These are the directory locations that work on a superset of Debian and RedHat. This hopefully means that terminfo database resolution "just works" in a lot of common Linux environments. As part of this, we add the terminfo database to the ncurses package artifacts. Then we copy the terminfo database into `install/share/terminfo` in the CPython distribution if a terminfo database is present. macOS doesn't distribute a terminfo database because the system terminfo database should be "good enough." Closes #215.
Before, ncurses on Linux was built to look for the terminfo database in a location that only existed in the build environment After, it looks for the database in `/etc/terminfo`, `/lib/terminfo`, and `/usr/share/terminfo`. These are the directory locations that work on a superset of Debian and RedHat. This hopefully means that terminfo database resolution "just works" in a lot of common Linux environments. As part of this, we add the terminfo database to the ncurses package artifacts. Then we copy the terminfo database into `install/share/terminfo` in the CPython distribution if a terminfo database is present. macOS doesn't distribute a terminfo database because the system terminfo database should be "good enough." Closes #215.
Before, ncurses on Linux was built to look for the terminfo database in a location that only existed in the build environment After, it looks for the database in `/etc/terminfo`, `/lib/terminfo`, and `/usr/share/terminfo`. These are the directory locations that work on a superset of Debian and RedHat. This hopefully means that terminfo database resolution "just works" in a lot of common Linux environments. As part of this, we add the terminfo database to the ncurses package artifacts. Then we copy the terminfo database into `install/share/terminfo` in the CPython distribution if a terminfo database is present. macOS doesn't distribute a terminfo database because the system terminfo database should be "good enough." Plus we don't build ncurses on macOS distributions. Closes #215.
RHEL, MacOS, and any other unix descentant other than Debian and its derivatives install terminfo data in /usr/share/terminfo. That is the standard location. The /etc/terminfo is supposedly for letting administrators locally install a custom termcap entry. This is a truly ancient relic from the time you might have wanted to connect a nonstandard serial terminal to your system that was missing from the terminfo database. I haven't seen it used in 3 decades. In fact, you rarely see any terminal other than xterm these days. The only purpose served by /etc/termcap is to convince people that setting the default terminfo search path is more complicated than it really is. |
./configure with defaults search path compatible with both FHS and the soon-to-be-deprecated Debian path
https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#idm236087499712
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1028202