On Mon, Sep 28, 2020 at 02:09:41PM +0200, Dan Horák wrote: > when looking at a recent issue when a change to lorax templates broke > composes for ppc64le and s390x I have found that there are packages > that explicitly require the ncurses package and I wonder if all of these > Requires are correct. Because quite some time ago there was a split so > "ncurses" only contains the tools (tic, tac, reset, ...) and > ncurses-base contains the basic terminfo database and the libs live in > ncurses-libs. > [...] > perl-Term-Cap calls "infocmp" so it should be there, perhaps reduced to > a weak dep, because it has a fall-back path, but I'm not sure about the > other. > perl-Term-Cap has a built-in path. But the path is not a fallback. It's a primary source and infocmp is called as the fallback. The built-in path is: /etc/termcap, /usr/share/misc/termcap. But none of these directories exist in Fedora. ncurses-base has /usr/share/terminfo. My knowledge about termcap and terminfo is zero, but it seems that /usr/share/terminfo files are binary files, while perl-Term-Cap expects a plain text files. Maybe that's the difference between termcap and terminfo. As a result, perl-Term-Cap always calls infocmp, because it cannot consume ncurses-base content: $ strace -fq -e execve -- perl -MTerm::Cap -e 'print Term::Cap::Tgetent()->{TERMCAP}' execve("/usr/bin/perl", ["perl", "-MTerm::Cap", "-e", "print Term::Cap::Tgetent()->{TER"...], 0x7ffdad6ca198 /* 20 vars */) = 0 [pid 24145] execve("/bin/sh", ["sh", "-c", "infocmp -C 2>/dev/null"], 0x56199a3babd0 /* 20 vars */) = 0 [pid 24146] execve("/usr/bin/infocmp", ["infocmp", "-C"], 0x55ba82bdb200 /* 20 vars */) = 0 [pid 24146] +++ exited with 0 +++ [pid 24145] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=24146, si_uid=500, si_status=0, si_utime=0, si_stime=0} --- [pid 24145] +++ exited with 0 +++ --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=24145, si_uid=500, si_status=0, si_utime=0, si_stime=1} --- screen.xterm-256color|GNU Screen with xterm using 256 colors:\ :am:bs:bw:km:mi:ms:xn:\ :co#80:it#8:li#24:\ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E(B:al=\E[L:\ :as=\E(0:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ :cm=\E[%i%d;%dH:cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ :dl=\E[M:do=\n:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\ :is=\E[!p\E[?3;4l\E[4l\E>:k1=\EOP:k2=\EOQ:k3=\EOR:\ :k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ :k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:\ :kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\ :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\ :mh=\E[2m:mm=\E[?1034h:mo=\E[?1034l:mr=\E[7m:nd=\E[C:\ :rc=\E8:sc=\E7:se=\E[27m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ :te=\E[?1049l\E[23;0;0t:ti=\E[?1049h\E[22;0;0t:\ :ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:\ :ve=\E[?12l\E[?25h:vi=\E[?25l:vs=\E[?12;25h: +++ exited with 0 +++ And thus the hard dependency on ncurses is correct. At the end Term::Cap documentation defines the Perl module as "a Perl termcap interface". Not as a terminfo interface. -- Petr
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx