dnkl changed the topic of #foot to: Foot - fast, lightweight and minimalistic Wayland terminal emulator || 1.9.0 || https://codeberg.org/dnkl/foot || channel logs: https://libera.irclog.whitequark.org/foot
<lilblacky> Anyone experiencing build breaks with 1.9.0? Seems to be centered around terminfo. Netbsd-curses no longer builds successfully against the terminfo (e.g nnn static build script) Will investigate further..
<Arnavion> Also uhh, unless I'm reading it wrong, the 20210626 patch of ncurses changes _nc_env_access such that neither root nor non-root user will ever read those env vars, which is why at least on OpenSUSE the env vars are completely ignored
<Arnavion> dnkl: Can you confirm something like `strace -fe file less` shows it doing anything with /usr/share/foot/terminfo for you? If yes, does your distro have the ncurses 20210626 patch? If also yes, can you gdb it, put a `break _nc_env_access` and tell me what makes it return TRUE instead of FALSE?
<Arnavion> Also relevant: Does your distro configure ncurses with `--disable-root-environ` ?
<Arnavion> Well, even if the bug was fixed, root would still be prevented from reading those env vars, so I'm not sure it's worth going down the env var route to begin with
<Arnavion> dnkl: I'm planning to go with -Ddefault-terminfo=foot-suse '-Dcustom-terminfo-install-location=%{_datadir}/terminfo' for OpenSUSE unless you have a better idea
lilblacky has quit [Ping timeout: 240 seconds]
lilblacky has joined #foot
<lilblacky> 1.9.0 does break netbsd-curses. 9d1de74 builds it fine.
<lilblacky> Build fixed with 'unset TERMINFO' in the netbsd-curses build script
<dnkl> lilblacky: 1.9 installs the foot terminfo to a non-standard location, and sets TERMINFO in the child process. That's what's tripping up netbsd-curses.
<dnkl> Arnavion: no, Arch does not build ncurses with --disable-root-environ
<dnkl> Arnavion: I'm afraid I don't have a better idea... You'll have to manually rename the terminfo files to foot-suse and foot-direct-suse
<dnkl> My back up plan is to do the same, but I would probably name them 'fot' (foot in Swedish), as '-' could be interpreted specially by some applications
sosodank has joined #foot
sosodank has quit [Quit: Leaving]
<dnkl> Arnavion: lilblacky: https://codeberg.org/dnkl/foot/issues/695 documents the issues seen so far
<sterni> Arnavion: ah, looked in the wrong place then thx
<lilblacky> Will read. Fwiw we are probably going to opt to install terminfo to /etc/terminfo to avoid any issues ;)
<rcf> I would certainly advocate for a separate name for the 'extended' terminfo, leaving 'foot' for a strict subset that pleases ncurses/netbsd-curses
<dnkl> Yeah, my gut feeling since yesterday has been to rename our terminfo.
<lilblacky> Netbsd-curses apparently breaks as it sets TERMINFODIR when it generates its internal terminfo. Exporting TERMINFO apparently overrides the build script env.
<lilblacky> When it generates its internal terminfo db, that is.
<dnkl> If I change the terminfo name to "fot" in 1.9.1, and install it in the default location, is that something you guys can patch up for 1.9.0? I can update the arch AUR package for 1.9.0 to match that
<ifreund> dnkl: We haven't merged the void package update yet, so fine by me and ericonr
<dnkl> lilblacky: Arnavion ^^
<dnkl> lilblacky: do I know you by some other name? Or which distro are you packaging for?
<lilblacky> Sounds reasonable enough.
<rcf> Ultimately telling people who want fancier features to set TERM is probably going to be much easier than trying to maintain an automatic solution that works everywhere foot is used.
<lilblacky> Debian.
<dnkl> rcf: we'll probably do it the other way around; default TERM to the new 'fot', and document that ncurses has a "foot" terminfo, that can be used when e.g. ssh:ing to a remote without our terminfo installed
<ifreund> bigfoot would also be a cool name for the fully featured terminfo
<lilblacky> dnkl: prob not. I am not the primary maintainer of foot (that would be Birger Schacht)
<lilblacky> Lilblacky is the name of one of my daughter's stuffed animals ;)
<dnkl> ifreund: heh, sure!
<dnkl> Other name suggestions?
<dnkl> lilblacky: ah :)
<rcf> dnkl: the danger here is that -- in not Just Working™ by default -- downstreams may perceive a bug and try to get 'fot' included in curses packages (or upstream curses) as well
<dnkl> Well, possibly that is was happened already - I have no idea what prompted Dickey to add foot.
<dnkl> But foot is hardly the only terminal that has its own terminfo
<dnkl> Kitty does it too
<dnkl> So does urxvt
<dnkl> Both have ncurses versions too, with different names
<lilblacky> Because foot is a badass term emu is why ;)
<lilblacky> He prob gave it a whirl and like what he experienced.
<lilblacky> I like vanilla names. Something like foot-term.
<rcf> It is the superior terminal on Wayland at this point.
<dnkl> lilblacky: dashes used to separate terminal families, or something like that. On the phone and don't have the terminfo man page here
<dnkl> But using a dash _could_ cause issues in some applications
<dnkl> Very unlikely though
<bgs> z2
<bgs> oops
<dnkl> # Terminal names look like <manufacturer> <model> - <modes/options>
<dnkl> # The part to the left of the dash, if a dash is present, describes the
<dnkl> # particular hardware of the terminal. The part to the right may be used
<dnkl> # for flags indicating special ROMs, extra memory, particular terminal modes,
<dnkl> # or user preferences.
<dnkl> lilblacky: re. dash in the name
<dnkl> which is why foot-direct is ok, because it is a "mode" (24-bit color)
<dnkl> our case is a gray area
<dnkl> foot-directors-cut certainly belongs to the same "family" as ncurses' foot. And could be argued that it's a special mode (the "more features" mode...)
<lilblacky> Lol that's a great name. Instantly recognizable.
<dnkl> but, we also don't know if/what modes will be added to ncurses, there's a (small) chance of collisions in the future
<dnkl> but yeah, I think I can accept a dash in the name, which opens up for more alternatives
<dnkl> lilblacky: :)
<dnkl> a bit long though
<dnkl> (https://dickey.his.com/ncurses/terminfo.ti.html - where I copied the terminal name comment from)
<lilblacky> As an aside, is codeberg going to support rss? Reason I ask it because gitlab blocks rss fetch over tor (though accepts https requests for the same xml file over tor). Perhaps a read-only github mirror as github is tor friendly?
<lilblacky> Rather, gitlab accepts https request through tor browser for the atom xml file but not through rss fetch.
<dnkl> lilblacky: I believe they do plan that. There's supposed to be an open issue about it, but they've redesigned the site and I'm having trouble finding it right now
<dnkl> and the gitea upstream issue: https://github.com/go-gitea/gitea/issues/569
<ericonr> dnkl: one issue I see with renaming the default file is the risk that some users have term=foot in their config file
<ericonr> But I think it's unlikely
<dnkl> ericonr: yeah... agreed, it's a risk. But it looks like several distros will rename the terminfo anway... in which case it's better to make it the upstream default
<dnkl> there's already been a bunch of new terminfo issues opened since yesterday(!)
<dnkl> so what we're doing now is probably causing more issues than renaming the terminfo will
<ericonr> Agreed
<ericonr> dnkl: would you prefer people see something is wrong so they fix their configs, or have a slightly worse experience indefinitely? If the latter, distros could rename the fot terminfo to foot while h
<ericonr> .... They wait for ncurses release
<ericonr> And I guess assume that everyone has ncurses installed
<dnkl> ericonr: I'm the lets-break-things-hard kind of guy. I.e. make breakage visible, and have people fix their configs
<ericonr> Ok, so no renaming the terminfo :)
<ericonr> Do you know where the ncurses release is announced, by the way?
<dnkl> In the end, that's up to the distributions though
<ericonr> I looked across their site and didn't really find anything
<dnkl> I don't think the next release has been announced
<dnkl> dickey announces weekly patches on the ncurses mailing list
<dnkl> and I believe some distros incorporate those patches reguarly
<ericonr> Ah, we don't track those in void
<dnkl> one thing we could do in foot, is try to lookup TERM ourselves, and print an error if it cannot be found
<dnkl> since I don't want to actually depend on ncurses (i.e. link against it), I'd have to duplicate it's terminfo lookup logic...
<dnkl> ericonr: arch doesn't track those patches either, afaik
<ericonr> dnkl: i thought the same thing, but it would probably be a pain to implement
<ericonr> Especially for different distros/BSDs
<dnkl> yeah, and even if we stick to Linux, we wouldn't know what the compiled-in defaults in ncurses is...
<ericonr> (I guess the only BSD that actually matters here is FreeBSD, though?)
<dnkl> not sure how well it works on bsd though
<dnkl> and yes, for foot I think it's only FreeBSD, and DragonFly
<ericonr> Does anyone export PREFIX in their env? Heh
<ericonr> So alacritty basically sets TERM according to terminfo availability
<ericonr> Do you want to go that far?
<dnkl> ericonr: no, I'd rather not. But we _could_ borrow their logic for looking it up
<dnkl> but I'm not sure how well it works
<ericonr> Doing a check and only warning about it sounds reasonable, but you might end up having to add terminfo querying corner cases to make foot shut up in their setups
<dnkl> I think I'll keep that (looking up terminfo) as a backup plan, if we receive too many reports after having renamed our terminfo
<ericonr> Sure. I think advertising the terminfo changes first and hoping for the best is a good way forward
<dnkl> but let's keep it simple for now. For example, I haven't really seen _any_ terminfo-cannot-be-found-after-ssh:ing reports
<testuser[m]> soon
sosodank has joined #foot
<dnkl> Another issue with renaming the terminfo is all applications out there doing strcmp(TERM, "foot"), or similar...
<dnkl> Hopefully, they already do strncmp(TERM, "foot", 4), to handle the already existing foot-direct terminfo
<dnkl> But I know for sure there are those that don't
<dnkl> In any case, for this reason, using a foot-<something> name is better than a completely new name
novakane has joined #foot
will has quit [Ping timeout: 240 seconds]
<ericonr> footbig
<Arnavion> dnkl: Yes, if you make a commit for a future 1.9.1, I can pick it up as a patch for 1.9.0 in the short term
<Arnavion> And yes, I'm also already `mv`ing the terminfo files to append -suse to them
<Arnavion> So do you want fot or foot-suse?
<dnkl> We'll go with a foot-<something>
<dnkl> So not fot
<dnkl> But haven't decided which one yet
<dnkl> I'm personally for a boring but descriptive name, so maybe foot-extra
<Arnavion> Okay
<dnkl> More suggestions are welcome ;)
<Arnavion> I'll go with foot-suse for now then. No harm in changing it later. I'm not too worried about breaking users anyway; I doubt there are many
D3zmodos has joined #foot
D3zmodos has left #foot [#foot]
<sterni> I thought that as well but seems like quite a lot of people are using foot these days
<sterni> it may becoming THE wayland terminal emulator
<sterni> at least outside of desktop environments which ship their own
<dnkl> Arnavion: fwiw, you don't even need to patch foot. You can use the new meson command line options to both change the default TERM, and tell it *not* to set TERMINFO
<sterni> what I noticed though is that not too many people seem to care about terminfo and just use foot -t xterm-256color
<dnkl> sterni: i would expect that to become less frequent since applications are starting to include foot in their custom checks
<dnkl> And right then we go and change our terminfo name 🙄
<sterni> maybe it would have changed with the next ncurses release
<sterni> but that won't work now either :p
<Arnavion> dnkl: Yes, that's what I'm already doing. I said "patch" because you did
<Arnavion> dnkl: Though AFAICT there isn't a way to tell it to not set TERMINFO? If you mean "=no" that makes it install the files to /usr/share/foot/terminfo , no?
<dnkl> =no is exactly what you want to use. That's what makes it not set TERMINFO
<dnkl> Not setting it at all makes it install to /usr/share/foot/terminfo
<dnkl> If set to 'no' it installs to the default location, and does not export TERMINFO.
<dnkl> Anything else and it will export TERMINFO
<Arnavion> Yes, and default_terminfo_install_location is /usr/share/foot/terminfo
<dnkl> Ah, right. What you'll have to do is set -Dterminfo=disabled, and manually build + copy them
<Arnavion> Right, so not doing that is easier. A stray TERMINFO doesn't really hurt
digital_mystik has joined #foot
warden-unit has joined #foot
travankor has quit [Remote host closed the connection]
travankor has joined #foot
travankor has quit [Remote host closed the connection]
travankor has joined #foot
ollysmith has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
ollysmith has joined #foot
<sterni> dnkl: hmm I set terminfo=disabled and it sets TERMINFO?
<sterni> is there a difference between no and disabled
<dnkl> -Dterminfo cannot be set to 'no'
<dnkl> It's -Dcustom-terminfo...
<sterni> ah okay, makes sense
<sterni> I set terminfo default-terminfo and custom-terminfo-install-location, so that checks out
sosodank has quit [Remote host closed the connection]
warden-unit has quit [Quit: WeeChat 3.2]
<digital_mystik> hello.. anyone have an issue using man? I get a warning that says that the terminal is not fully functional
themainman has quit [Quit: WeeChat 3.1]
themainman has joined #foot
novakane has quit [Quit: WeeChat 3.2]
<digital_mystik> sweet! just copied to ~/.terminfo/f
<digital_mystik> thanks
cbb has joined #foot
<dnkl> digital_mystik: sorry about the terminfo issues; hopefully all this will be sorted out in a couple of days
<dnkl> Out of curiosity; which man pager are you using?
<dnkl> Man with less works just fine for me...
<digital_mystik> bat
<ericonr> bat uses less as pager
<digital_mystik> no worries, copying the files to .terminfo/f/ did the trick
<dnkl> digital_mystik: good to hear. I'm just trying to understand what's going on, in case we get me reports before we've had a chance to update the release
<dnkl> S/me/more
ollysmith has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
ollysmith has joined #foot
<cbb> dnkl: the issues with setting $TERMINFO are starting to look a lot more onerous than the issue of tmux not detecting true color support
<dnkl> cbb: I've pretty much already decided to stop setting TERMINFO, and instead rename the files. Long term, it will probably make sense to just use ncurses', but I still think we need to package ours for a little while longer.
<dnkl> Going to go with foot-extra, must likely
<dnkl> Most
<cbb> maybe it could be left up to packagers to manage?
<cbb> since that's the main scenario where the file conflicts happen
<cbb> as in just say "provide a foot-terminfo package only if the packaged ncurses doesn't already have it"
<dnkl> cbb: besides the non-standard caps, the current ncurses variant is also missing the status-line caps.
<sterni> I also think it is wise to leave this to packagers to some extent, different distributions can elect to solve the problem in their own way
<sterni> one problem is that I guess packaging could introduce bugs which you have to deal with then
<cbb> dnkl: I think Dickey would probably add those back again, given that they were removed due to a misunderstanding
<sterni> at least seems like already I with nixos and opensuse have gone a different route than you
<dnkl> I don't want to have bug reports mentioning foot-suse, foot-extra, foot, foot-debian terminfo names
<sterni> fair enough yeah
<cbb> dnkl: why would those alternative names be necessary though?
<dnkl> cbb: I hope he will. He hasn't updated it yet, even after pointing out that it's only on GNOME, with versions up to 1.8.2 that doesn't display the window title
<sterni> I wonder if the people running into issues have been compiling foot themselves?
<cbb> if the standard solution was to use foot-terminfo until such a time as ncurses is recent enough
<cbb> TERM=foot in all cases would suffice wouldn't it?
<cbb> (I'm saying this in the context of https://codeberg.org/dnkl/foot/issues/695#issuecomment-250426)
<dnkl> cbb: sure, if we completely drop our extra caps, and just provide our terminfo as an alternative for older ncurses
<cbb> i.e. we opt to use a different solution to the non-standard caps
<cbb> dnkl: yeah that's what I was meaning
<cbb> the extra caps only affect a small handful of programs atm
<cbb> and the issues there have workarounds that are much less bad that the ones for $TERMINFO/sudo/ssh/etc.
<cbb> setting TERM=foot as standard also makes the SSH remote vs. local terminfo entries less problematic
<dnkl> Maybe you're right. I need to sleep on this
<Arnavion> (To be clear, "foot-suse" is temporary. I'll rename it to whatever you decide on in the end.)
<cbb> dnkl: sure, no worries
<dnkl> Arnavion: sure, I think I read too much into cbb's comment about leaving it up to distributions
<cbb> Just thought I'd offer an alternative perspective
<cbb> dnkl: of course, if we do opt to abandon the non-standard caps
<cbb> there's also the option of just setting TERM=xterm-256color
<cbb> maybe worth at least considering
<dnkl> cbb: there are still some differences between foot and xterm-256color, even in ncurses' version
<dnkl> cbb: thanks for all the feedback, I appreciate it
<dnkl> Going to sleep now
<cbb> dnkl: no worries
<cbb> night
Arnavion has quit [Quit: Arnavion]
lilblacky has quit [Ping timeout: 252 seconds]
Arnavion has joined #foot
ollysmith has quit [Ping timeout: 240 seconds]
ollysmith has joined #foot