On latest build from 11-CURRENT (2016-07-04 00:09:54) i can't get terminal colors working using tput, yet ANSI codes are supported just fine. Didn't check previous versions but someone on IRC reported reproduction even.. on 9.3 - which I can't confirm (using CURRENT only on my buildhosts) Example and explanation of problem: "tput setaf" and "tput setab" aren't setting any color/attribute, always returning 1 (except on init, reset subcommands). After quick truss - it looked like die after reading /usr/share/misc/termcap.db file (regenerated before, with cap_mkdb based on original termcap from fbsd base) Another interesting fact is that "tput co" returns "190" yet should 256 for TERM=xterm-256color? I tried specifying other terminal types through both $TERM and tput -T option. It changes only report about color amount..
Created attachment 172155 [details] truss log - file from not my machine (confirmation of reproduction)
Created attachment 172156 [details] truss log - file from my buildhost
Comment on attachment 172156 [details] truss log - file from my buildhost mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34378883072 (0x801242000) issetugid() = 0 (0x0) lstat("/etc",{ mode=drwxr-xr-x ,inode=29,size=124,blksize=8192 }) = 0 (0x0) lstat("/etc/libmap.conf",{ mode=-rw-r--r-- ,inode=13969,size=102,blksize=4096 }) = 0 (0x0) openat(AT_FDCWD,"/etc/libmap.conf",O_CLOEXEC,00) = 3 (0x3) fstat(3,{ mode=-rw-r--r-- ,inode=13969,size=102,blksize=4096 }) = 0 (0x0) mmap(0x0,102,PROT_READ,MAP_PRIVATE,3,0x0) = 34378915840 (0x80124a000) close(3) = 0 (0x0) lstat("/usr",{ mode=drwxr-xr-x ,inode=9,size=15,blksize=4096 }) = 0 (0x0) lstat("/usr/local",{ mode=drwxr-xr-x ,inode=661,size=2,blksize=4096 }) = 0 (0x0) lstat("/usr/local/etc",0x7fffffff82e8) ERR#2 'No such file or directory' munmap(0x80124a000,102) = 0 (0x0) openat(AT_FDCWD,"/var/run/ld-elf.so.hints",O_CLOEXEC,00) = 3 (0x3) read(3,"Ehnt\^A\0\0\0\M^@\0\0\0\^N\0\0\0"...,128) = 128 (0x80) fstat(3,{ mode=-r--r--r-- ,inode=278631,size=142,blksize=4096 }) = 0 (0x0) lseek(3,0x80,SEEK_SET) = 128 (0x80) read(3,"/lib:/usr/lib\0",14) = 14 (0xe) close(3) = 0 (0x0) access("/lib/libncursesw.so.8",F_OK) = 0 (0x0) openat(AT_FDCWD,"/lib/libncursesw.so.8",O_CLOEXEC|O_VERIFY,00) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=266335,size=379824,blksize=131072 }) = 0 (0x0) __sysctl(0x7fffffff9070,0x2,0x7fffffff90c0,0x7fffffff90b8,0x80123ba23,0x1a) ERR#2 'No such file or directory' mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34378915840 (0x80124a000) mmap(0x0,2482176,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34380988416 (0x801444000) mmap(0x801444000,360448,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34380988416 (0x801444000) mmap(0x80169c000,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x58000) = 34383446016 (0x80169c000) mmap(0x8016a1000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34383466496 (0x8016a1000) munmap(0x80124a000,4096) = 0 (0x0) close(3) = 0 (0x0) access("/lib/libc.so.7",F_OK) = 0 (0x0) openat(AT_FDCWD,"/lib/libc.so.7",O_CLOEXEC|O_VERIFY,00) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=266310,size=1641768,blksize=131072 }) = 0 (0x0) __sysctl(0x7fffffff9070,0x2,0x7fffffff90c0,0x7fffffff90b8,0x80123ba23,0x1a) ERR#2 'No such file or directory' mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34378915840 (0x80124a000) mmap(0x0,3837952,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34383470592 (0x8016a2000) mmap(0x8016a2000,1589248,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34383470592 (0x8016a2000) mmap(0x801a26000,49152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x184000) = 34387156992 (0x801a26000) mmap(0x801a32000,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34387206144 (0x801a32000) munmap(0x80124a000,4096) = 0 (0x0) close(3) = 0 (0x0) mprotect(0x1222000,4096,PROT_READ) = 0 (0x0) munmap(0x801249000,4096) = 0 (0x0) mmap(0x0,45056,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34378911744 (0x801249000) mprotect(0x80169c000,16384,PROT_READ) = 0 (0x0) munmap(0x80124d000,28672) = 0 (0x0) mmap(0x0,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34378928128 (0x80124d000) mprotect(0x801a26000,32768,PROT_READ) = 0 (0x0) sysarch(AMD64_SET_FSBASE,0x7fffffff9cb8) = 0 (0x0) sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0) sigprocmask(SIG_SETMASK,{ },0x0) = 0 (0x0) readlink("/etc/malloc.conf","abort:false,junk:false,lg_chunk:14",1024) = 34 (0x22) issetugid() = 0 (0x0) __sysctl(0x7fffffff9220,0x2,0x7fffffff9270,0x7fffffff9268,0x8017f9503,0xd) = 0 (0x0) __sysctl(0x7fffffff9270,0x2,0x7fffffff9334,0x7fffffff9328,0x0,0x0) = 0 (0x0) mmap(0x0,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34379030528 (0x801266000) munmap(0x801266000,65536) = 0 (0x0) mmap(0x0,126976,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34379030528 (0x801266000) munmap(0x801266000,40960) = 0 (0x0) munmap(0x801280000,20480) = 0 (0x0) sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0) sigprocmask(SIG_SETMASK,{ },0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0) sigprocmask(SIG_SETMASK,{ },0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0) sigprocmask(SIG_SETMASK,{ },0x0) = 0 (0x0) ioctl(1,TIOCGETA,0xffff9590) = 0 (0x0) mmap(0x0,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34379137024 (0x801280000) mmap(0x0,589824,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34379202560 (0x801290000) mmap(0x0,589824,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34379792384 (0x801320000) issetugid() = 0 (0x0) mmap(0x0,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34380382208 (0x8013b0000) open("/User/.termcap.db",O_CLOEXEC,00) ERR#2 'No such file or directory' open("/User/.termcap",O_CLOEXEC,00) ERR#2 'No such file or directory' open("/usr/share/misc/termcap.db",O_CLOEXEC,00) = 3 (0x3) fstat(3,{ mode=-rw-r--r-- ,inode=276623,size=1343488,blksize=131072 }) = 0 (0x0) read(3,"\0\^F\^Ua\0\0\0\^B\0\0\^D\M-R\0"...,260) = 260 (0x104) mmap(0x0,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34380447744 (0x8013c0000) pread(0x3,0x8013bf000,0x1000,0x75000) = 4096 (0x1000) pread(0x3,0x8013c4000,0x1000,0x31000) = 4096 (0x1000) close(3) = 0 (0x0) mmap(0x0,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34380513280 (0x8013d0000) mmap(0x0,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34380578816 (0x8013e0000) mmap(0x0,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34380644352 (0x8013f0000) ioctl(1,TIOCGETA,0xffff9590) = 0 (0x0) ioctl(1,TIOCGETA,0xffff9530) = 0 (0x0) ioctl(1,TIOCGWINSZ,0xffff9598) = 0 (0x0) fstat(1,{ mode=crw------- ,inode=91,size=0,blksize=4096 }) = 0 (0x0) ioctl(1,TIOCGETA,0xffff98b0) = 0 (0x0) sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0) sigprocmask(SIG_SETMASK,{ },0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0) sigprocmask(SIG_SETMASK,{ },0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0) sigprocmask(SIG_SETMASK,{ },0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0) sigprocmask(SIG_SETMASK,{ },0x0) = 0 (0x0) write(1,"\^[[27m",5) = 5 (0x5) exit(0x1) process exit, rval = 1
The comment about "tput co" is incorrect. FreeBSD's tput uses termcap names. The command "tput co" refers to columns, not colors. You might find this helpful: http://invisible-island.net/ncurses/man/tput.1.html#h2-HISTORY http://invisible-island.net/ncurses/man/tset.1.html#h2-HISTORY Since the premise for the bug report is incorrect, it should be closed.
time for us to switch to the more standard utilities. they are already in the tree in our ncurses import.