-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
terminfo parser is ineffective on FreeBSD #55274
Comments
Hmm, I'm not specifically familiar with the freebsd builds. From a glance though, vendoring BSD's |
We'd want to vendor and use it everywhere to ensure consistency between platforms like we do with other dependencies. It's worth noting that even though I linked to the FreeBSD port for I've attempted making a JLL for this purpose in JuliaPackaging/Yggdrasil#9165. The idea is that we'd include the JLL in |
Right, I'm with you: if we're going to go to the effort of vendoring it for FreeBSD, we might as well use it everywhere. It leaves us less exposed to what happens to be installed (or not) on the host system and it's only ~7 MB (and we could always strip out rare terminals and introduce a default fallback if we ever wanted to slim that down further). Re-reading this bit of Fetching Compiled Descriptions
I'd be inclined to add Julia's vendored terminfo dir to |
What I was proposing was actually more like prepending it to the environment variable |
This adds the `terminfo` database to `deps/`, providing a better user experience on systems that don't have `terminfo` on the system by default. The database is built using BinaryBuilder but is not actually platform-specific (it's built for `AnyPlatform`) and as such, this fetches the artifact directly rather than adding a new JLL to stdlib, and it requires no compilation. A build flag, `WITH_TERMINFO`, is added here and assumed true by default, allowing users to set `WITH_TERMINFO=0` in Make.user to avoid bundling `terminfo` should they want to do so. The lookup policy for `terminfo` entries is still compliant with what's described in `terminfo(5)`; the bundled directory is taken to be the first "compiled in" location, i.e. prepended to `@TERMINFO_DIRS@`. This allows any user settings that exist locally, such as custom entries or locations, to take precedence. Fixes #55274 Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
…#55411) This adds the `terminfo` database to `deps/`, providing a better user experience on systems that don't have `terminfo` on the system by default. The database is built using BinaryBuilder but is not actually platform-specific (it's built for `AnyPlatform`) and as such, this fetches the artifact directly rather than adding a new JLL to stdlib, and it requires no compilation. A build flag, `WITH_TERMINFO`, is added here and assumed true by default, allowing users to set `WITH_TERMINFO=0` in Make.user to avoid bundling `terminfo` should they want to do so. The lookup policy for `terminfo` entries is still compliant with what's described in `terminfo(5)`; the bundled directory is taken to be the first "compiled in" location, i.e. prepended to `@TERMINFO_DIRS@`. This allows any user settings that exist locally, such as custom entries or locations, to take precedence. Fixes JuliaLang#55274 Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
This adds the `terminfo` database to `deps/`, providing a better user experience on systems that don't have `terminfo` on the system by default. The database is built using BinaryBuilder but is not actually platform-specific (it's built for `AnyPlatform`) and as such, this fetches the artifact directly rather than adding a new JLL to stdlib, and it requires no compilation. A build flag, `WITH_TERMINFO`, is added here and assumed true by default, allowing users to set `WITH_TERMINFO=0` in Make.user to avoid bundling `terminfo` should they want to do so. The lookup policy for `terminfo` entries is still compliant with what's described in `terminfo(5)`; the bundled directory is taken to be the first "compiled in" location, i.e. prepended to `@TERMINFO_DIRS@`. This allows any user settings that exist locally, such as custom entries or locations, to take precedence. Fixes #55274 Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> (cherry picked from commit e7e8768)
The intersection of #53682 with #50797 causes a test failure on FreeBSD: it has to compile
Base.info_color()
, so it has 1 rather than 0 expected precompiles. This is because FreeBSD doesn't use terminfo, it uses termcap1, so our terminfo parser always fails to find an entry on FreeBSD and we end up with a blankTermInfo
. I had wondered why my Julia REPL colors disappeared, evidently this is why.A couple of options I can think of:
tput
, which is what we used prior to Terminfo parser #50797, when we can't find relevant terminfo filesterminfo-db
in a JLLThe latter would be the more consistent with how we deal with other dependencies. The former would likely be rather involved.
cc @tecosaur
Footnotes
At least as of 2020, FreeBSD was looking to switch to terminfo, though I've not seen movement on that since then. ↩
The text was updated successfully, but these errors were encountered: