From: Stuart Henderson Subject: ncurses: more pkg-config files? To: tech@openbsd.org Date: Tue, 27 Jan 2026 10:36:51 +0000 For 7.7 I added a pkg-config file for curses (ncurses.pc) because some ports were not picking it up correctly (notably Python). I've now run into a problem where some Python functions are disabled because it thinks we don't have ncursesw so I'd like to add at least a pkg-config file for that. A build of ncurses from the normal upstream distribution also gives pkg-config files for the other libraries (form/formw, menu/menuw, panel/panelw) as well as those for the libraries that we don't provide - ncurses++/ncurses++w, tic, tinfo. I'm wondering whether it would just make sense to add the .pc file that I've identified a need for, or proactively do the others as well. Any thoughts? (I have a ports infrastructure diff to log pkg-config calls; I'll use it on my next i386 bulk build to see what's actually looking for it). If we just want the pc file for ncursesw, here's a possible diff and test method. (The others are trivial to add too of course, the question is identifying which ones we want). To test in Python, remove the BROKEN marker from audio/cplay and build/install, run it, cursor down -> crash because getwch is not available. Apply the diff or create /usr/lib/pkgconfig/ncursesw.pc by hand then rebuild and reinstall lang/python/3 and retry cplay, it will start working. $ cat << EOF | doas tee /usr/lib/pkgconfig/ncursesw.pc prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include abi_version=6 major_version=6 version=6.4.20230826 Name: ncursesw Description: ncursesw library Version: 6.4.20230826 Requires.private: Libs: -lncurses Cflags: EOF Index: Makefile =================================================================== RCS file: /cvs/src/lib/libcurses/Makefile,v diff -u -p -r1.77 Makefile --- Makefile 21 Feb 2025 18:16:45 -0000 1.77 +++ Makefile 27 Jan 2026 10:18:43 -0000 @@ -73,7 +73,7 @@ MAN= curs_add_wch.3 curs_add_wchstr.3 cu GENERATED= codes.c comp_captab.c comp_userdefs.c expanded.c fallback.c \ init_keytry.h keys.list lib_gen.c lib_keyname.c make_hash make_keys \ names.c unctrl.c -PC_FILES= ncurses.pc +PC_FILES= ncurses.pc ncursesw.pc CAPLIST = ${.CURDIR}/Caps USE_BIG_STRINGS = 1 Index: generate_pkgconfig.sh =================================================================== RCS file: /cvs/src/lib/libcurses/generate_pkgconfig.sh,v diff -u -p -r1.1 generate_pkgconfig.sh --- generate_pkgconfig.sh 21 Feb 2025 18:16:45 -0000 1.1 +++ generate_pkgconfig.sh 27 Jan 2026 10:18:43 -0000 @@ -75,3 +75,21 @@ Requires.private: Libs: -lncurses Cflags: __EOF__ + +pc_file="${objdir}/ncursesw.pc" +cat > ${pc_file} << __EOF__ +prefix=/usr +exec_prefix=\${prefix} +libdir=\${exec_prefix}/lib +includedir=\${prefix}/include +abi_version=${abi_version} +major_version=${abi_version} +version=${lib_version} + +Name: ncursesw +Description: ncursesw library +Version: ${lib_version} +Requires.private: +Libs: -lncursesw +Cflags: +__EOF__