Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: pkg-config files for curses?
To:
Mark Kettenis <mark.kettenis@xs4all.nl>
Cc:
tech@openbsd.org
Date:
Thu, 20 Feb 2025 16:57:21 +0000

Download raw body.

Thread
On 2025/02/19 14:17, Mark Kettenis wrote:
> > Date: Tue, 18 Feb 2025 23:48:31 +0000
> > From: Stuart Henderson <stu@spacehopper.org>
> > 
> > I ran into some problems with curses when trying to build Python 3.13.x.
> > Their build system really would like to have pkg-config files. We have a
> > workaround for 3.12.x but it doesn't work as-is for 3.13 and their build
> > system is byzantine.
> > 
> > I have an alternative workaround which I think would be acceptable for
> > ports (include local copies of pc files in the port and point pkg-config
> > at them during configure/build) but I was wondering what anyone's
> > thoughts are about including them in base. It would simplify things
> > in ports, and we are providing pc files for a number of other libraries
> > so there's some prior art.
> > 
> > Python just wants pc files for ncurses and panel but if we do install,
> > I think it would be safer to use the same set as curses upstream:
> > ncurses, panel, menu, form.
> 
> Agreed.
> 
> > The diff below uses a modified version of our usual generate_pkgconfig.sh
> > script. I'm using a "don't really do anything" value for Cflags like we
> > do for libssl etc (this is different from upstream who set -D_BSD_SOURCE
> > -D_XOPEN_SOURCE=700 in theirs; that seems a step too far and broke at
> > least one port in earlier tests). It's currently running through a ports
> > bulk build.
> 
> Yes, I think that makes sense.  Unlike Linux, we offer everything by
> default.  So for us -D_XOPEN_SOURCE=700 is basically downgrading POSIX
> from 1003.1-2024 to 1003.1-2008 and as a consequence C17 to C99.  That
> isn't very helpful as the code that uses ncurses might have different
> opinions.

Ah! This explains a few things discovered when working on various ports :-)

> I'm not sure what the point is of adding -L/usr/lib and -I/usr/include
> hen those are defaults anyway.  None of the Linux systems I looked at
> (sample size 2) add a -I option to Cflags: and only one adds a -L
> option.  But I guess we do this for the other .pc files in base and it
> shouldn't hurt.  Shrug.

The comments in other generate_pkgconfig.sh scripts about configure
scripts using 'test -n "`pkg-config --cflags openssl`"' seemed
plausible, but actually on testing pkg-config(1) strips them
anyway:

$ tail -2 /usr/lib/pkgconfig/libssl.pc
Libs: -L${libdir} -lssl
Cflags: -I${includedir}

$ i386.p; echo "|$(pkg-config --cflags libssl)|"
||

$ i386.p; echo "|$(pkg-config --libs libssl)|"
|-lssl|

...so yes, I agree, there seems to be no point. Updated diff removing
them below.

My test ports build didn't show any problems relating to this (only the
expected libffi issues); that was before making the change to remove
-L${libdir}/-I${includedir} but I see no difference in output with
/usr/bin/pkg-config or pkgconf with various flags so I think it's
still a valid test.

Index: lib/libcurses/Makefile
===================================================================
RCS file: /cvs/src/lib/libcurses/Makefile,v
diff -u -p -r1.76 Makefile
--- lib/libcurses/Makefile	8 Feb 2024 20:28:54 -0000	1.76
+++ lib/libcurses/Makefile	20 Feb 2025 16:45:56 -0000
@@ -73,11 +73,12 @@ 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
 
 CAPLIST	= ${.CURDIR}/Caps
 USE_BIG_STRINGS	= 1
 
-CLEANFILES+= ${GENERATED} make_hash.d make_keys.d
+CLEANFILES+= ${GENERATED} ${PC_FILES} make_hash.d make_keys.d
 
 BUILDFIRST = ${GENERATED}
 
@@ -143,10 +144,19 @@ codes.c: ${.CURDIR}/tinfo/MKcodes.awk
 unctrl.c: ${.CURDIR}/base/MKunctrl.awk
 	echo | ${AWK} -f ${.CURDIR}/base/MKunctrl.awk bigstrings=1 > ${.TARGET}
 
+all: ${PC_FILES}
+
+${PC_FILES}: ${.CURDIR}/../libcurses/curses.h ${.CURDIR}/../libcurses/ncurses_cfg.h
+	/bin/sh ${.CURDIR}/generate_pkgconfig.sh -c ${.CURDIR} -o ${.OBJDIR}
+
 .include <bsd.own.mk>
 
 # Link libtermlib, libtermcap to libcurses so we don't break people's Makefiles
 afterinstall:
+.for p in ${PC_FILES}
+	${INSTALL} ${INSTALL_COPY} -o root -g ${SHAREGRP} \
+	    -m ${SHAREMODE} ${.OBJDIR}/$p ${DESTDIR}/usr/lib/pkgconfig/
+.endfor
 	-cd ${DESTDIR}${LIBDIR}; \
 	for i in ${_LIBS}; do \
 	    ln -f $$i `echo $$i | sed 's/curses/termlib/'`; \
Index: lib/libcurses/generate_pkgconfig.sh
===================================================================
RCS file: lib/libcurses/generate_pkgconfig.sh
diff -N lib/libcurses/generate_pkgconfig.sh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lib/libcurses/generate_pkgconfig.sh	20 Feb 2025 16:45:56 -0000
@@ -0,0 +1,77 @@
+#!/bin/ksh
+#
+# $OpenBSD: generate_pkgconfig.sh,v 1.11 2022/02/04 16:42:15 tb Exp $
+#
+# Copyright (c) 2010,2011 Jasper Lievisse Adriaanse <jasper@openbsd.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Generate pkg-config files for ncurses.
+
+usage() {
+	echo "usage: ${0##*/} -c current_directory -o obj_directory"
+	exit 1
+}
+
+curdir=
+objdir=
+while getopts "c:o:" flag; do
+	case "$flag" in
+		c)
+			curdir=$OPTARG
+			;;
+		o)
+			objdir=$OPTARG
+			;;
+		*)
+			usage
+			;;
+	esac
+done
+
+[ -n "${curdir}" ] || usage
+if [ ! -d "${curdir}" ]; then
+	echo "${0##*/}: ${curdir}: not found"
+	exit 1
+fi
+[ -n "${objdir}" ] || usage
+if [ ! -w "${objdir}" ]; then
+	echo "${0##*/}: ${objdir}: not found or not writable"
+	exit 1
+fi
+
+version_re="s/^#define[[:blank:]]+NCURSES_VERSION_STRING[[:blank:]]+\"(.*)\".*/\1/p"
+version_file=${curdir}/ncurses_cfg.h
+lib_version=$(sed -nE ${version_re} ${version_file})
+
+version_re="s/^#define[[:blank:]]+NCURSES_VERSION_MAJOR[[:blank:]]+(.*)([[:blank:]].*)?/\1/p"
+version_file=${curdir}/curses.h
+abi_version=$(sed -nE ${version_re} ${version_file})
+
+pc_file="${objdir}/ncurses.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: ncurses
+Description: ncurses library
+Version: ${lib_version}
+Requires.private:
+Libs: -lncurses
+Cflags:
+__EOF__
Index: lib/libform/Makefile
===================================================================
RCS file: /cvs/src/lib/libform/Makefile,v
diff -u -p -r1.17 Makefile
--- lib/libform/Makefile	17 Oct 2023 09:52:10 -0000	1.17
+++ lib/libform/Makefile	20 Feb 2025 16:45:56 -0000
@@ -18,6 +18,8 @@ MAN=	form.3 form_cursor.3 form_data.3 fo
 	form_hook.3 form_new.3 form_new_page.3 form_opts.3 form_page.3 \
 	form_post.3 form_requestname.3 form_userptr.3 form_variables.3 \
 	form_win.3
+PC_FILES= form.pc
+CLEANFILES+= ${PC_FILES}
 
 includes:
 	@cd ${.CURDIR}; for i in ${HDRS}; do \
@@ -25,9 +27,18 @@ includes:
 	  ${INSTALL} ${INSTALL_COPY} -m 444 -o $(BINOWN) -g $(BINGRP) $$i \
 	  ${DESTDIR}/usr/include; done
 
+all: ${PC_FILES}
+
+${PC_FILES}: ${.CURDIR}/../libcurses/curses.h ${.CURDIR}/../libcurses/ncurses_cfg.h
+	/bin/sh ${.CURDIR}/generate_pkgconfig.sh -c ${.CURDIR} -o ${.OBJDIR}
+
 .include <bsd.own.mk>
 
 afterinstall:
+.for p in ${PC_FILES}
+	${INSTALL} ${INSTALL_COPY} -o root -g ${SHAREGRP} \
+	    -m ${SHAREMODE} ${.OBJDIR}/$p ${DESTDIR}/usr/lib/pkgconfig/
+.endfor
 	-cd ${DESTDIR}${LIBDIR}; \
 	for i in ${_LIBS}; do \
 	    ln -f $$i `echo $$i | sed 's/form/formw/'`; \
Index: lib/libform/generate_pkgconfig.sh
===================================================================
RCS file: lib/libform/generate_pkgconfig.sh
diff -N lib/libform/generate_pkgconfig.sh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lib/libform/generate_pkgconfig.sh	20 Feb 2025 16:45:56 -0000
@@ -0,0 +1,78 @@
+#!/bin/ksh
+#
+# $OpenBSD: generate_pkgconfig.sh,v 1.11 2022/02/04 16:42:15 tb Exp $
+#
+# Copyright (c) 2010,2011 Jasper Lievisse Adriaanse <jasper@openbsd.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Generate pkg-config files for libform.
+
+usage() {
+	echo "usage: ${0##*/} -c current_directory -o obj_directory"
+	exit 1
+}
+
+curdir=
+objdir=
+while getopts "c:o:" flag; do
+	case "$flag" in
+		c)
+			curdir=$OPTARG
+			;;
+		o)
+			objdir=$OPTARG
+			;;
+		*)
+			usage
+			;;
+	esac
+done
+
+[ -n "${curdir}" ] || usage
+if [ ! -d "${curdir}" ]; then
+	echo "${0##*/}: ${curdir}: not found"
+	exit 1
+fi
+[ -n "${objdir}" ] || usage
+if [ ! -w "${objdir}" ]; then
+	echo "${0##*/}: ${objdir}: not found or not writable"
+	exit 1
+fi
+
+version_re="s/^#define[[:blank:]]+NCURSES_VERSION_STRING[[:blank:]]+\"(.*)\".*/\1/p"
+version_file=${curdir}/../libcurses/ncurses_cfg.h
+lib_version=$(sed -nE ${version_re} ${version_file})
+
+version_re="s/^#define[[:blank:]]+NCURSES_VERSION_MAJOR[[:blank:]]+(.*)([[:blank:]].*)?/\1/p"
+version_file=${curdir}/../libcurses/curses.h
+abi_version=$(sed -nE ${version_re} ${version_file})
+
+pc_file="${objdir}/form.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: form
+Description: ncurses add-on library
+Version: ${lib_version}
+Requires.private: ncurses
+Libs: -lform
+Libs.private:
+Cflags:
+__EOF__
Index: lib/libmenu/Makefile
===================================================================
RCS file: /cvs/src/lib/libmenu/Makefile,v
diff -u -p -r1.20 Makefile
--- lib/libmenu/Makefile	17 Oct 2023 09:52:10 -0000	1.20
+++ lib/libmenu/Makefile	20 Feb 2025 16:45:56 -0000
@@ -13,6 +13,8 @@ MAN=	menu.3 menu_attributes.3 menu_curso
 	menu_pattern.3 menu_post.3 menu_requestname.3 menu_spacing.3 \
 	menu_userptr.3 menu_win.3 mitem_current.3 mitem_name.3 mitem_new.3 \
 	mitem_opts.3 mitem_userptr.3 mitem_value.3 mitem_visible.3
+PC_FILES= menu.pc
+CLEANFILES+= ${PC_FILES}
 
 includes:
 	@cd ${.CURDIR}; for i in ${HDRS}; do \
@@ -20,9 +22,18 @@ includes:
 	  ${INSTALL} ${INSTALL_COPY} -m 444 -o $(BINOWN) -g $(BINGRP) $$i \
 	  ${DESTDIR}/usr/include; done
 
+all: ${PC_FILES}
+
+${PC_FILES}: ${.CURDIR}/../libcurses/curses.h ${.CURDIR}/../libcurses/ncurses_cfg.h
+	/bin/sh ${.CURDIR}/generate_pkgconfig.sh -c ${.CURDIR} -o ${.OBJDIR}
+
 .include <bsd.own.mk>
 
 afterinstall:
+.for p in ${PC_FILES}
+	${INSTALL} ${INSTALL_COPY} -o root -g ${SHAREGRP} \
+	    -m ${SHAREMODE} ${.OBJDIR}/$p ${DESTDIR}/usr/lib/pkgconfig/
+.endfor
 	-cd ${DESTDIR}${LIBDIR}; \
 	for i in ${_LIBS}; do \
 	    ln -f $$i `echo $$i | sed 's/menu/menuw/'`; \
Index: lib/libmenu/generate_pkgconfig.sh
===================================================================
RCS file: lib/libmenu/generate_pkgconfig.sh
diff -N lib/libmenu/generate_pkgconfig.sh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lib/libmenu/generate_pkgconfig.sh	20 Feb 2025 16:45:56 -0000
@@ -0,0 +1,78 @@
+#!/bin/ksh
+#
+# $OpenBSD: generate_pkgconfig.sh,v 1.11 2022/02/04 16:42:15 tb Exp $
+#
+# Copyright (c) 2010,2011 Jasper Lievisse Adriaanse <jasper@openbsd.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Generate pkg-config files for libmenu.
+
+usage() {
+	echo "usage: ${0##*/} -c current_directory -o obj_directory"
+	exit 1
+}
+
+curdir=
+objdir=
+while getopts "c:o:" flag; do
+	case "$flag" in
+		c)
+			curdir=$OPTARG
+			;;
+		o)
+			objdir=$OPTARG
+			;;
+		*)
+			usage
+			;;
+	esac
+done
+
+[ -n "${curdir}" ] || usage
+if [ ! -d "${curdir}" ]; then
+	echo "${0##*/}: ${curdir}: not found"
+	exit 1
+fi
+[ -n "${objdir}" ] || usage
+if [ ! -w "${objdir}" ]; then
+	echo "${0##*/}: ${objdir}: not found or not writable"
+	exit 1
+fi
+
+version_re="s/^#define[[:blank:]]+NCURSES_VERSION_STRING[[:blank:]]+\"(.*)\".*/\1/p"
+version_file=${curdir}/../libcurses/ncurses_cfg.h
+lib_version=$(sed -nE ${version_re} ${version_file})
+
+version_re="s/^#define[[:blank:]]+NCURSES_VERSION_MAJOR[[:blank:]]+(.*)([[:blank:]].*)?/\1/p"
+version_file=${curdir}/../libcurses/curses.h
+abi_version=$(sed -nE ${version_re} ${version_file})
+
+pc_file="${objdir}/menu.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: menu
+Description: ncurses add-on library
+Version: ${lib_version}
+Requires.private: ncurses
+Libs: -lmenu
+Libs.private:
+Cflags:
+__EOF__
Index: lib/libpanel/Makefile
===================================================================
RCS file: /cvs/src/lib/libpanel/Makefile,v
diff -u -p -r1.13 Makefile
--- lib/libpanel/Makefile	17 Oct 2023 09:52:10 -0000	1.13
+++ lib/libpanel/Makefile	20 Feb 2025 16:45:56 -0000
@@ -7,6 +7,8 @@ SRCS=	p_above.c p_below.c p_bottom.c p_d
 HDRS=	panel.h
 CFLAGS+=-I${.CURDIR}/../libcurses -D_XOPEN_SOURCE_EXTENDED -DNDEBUG
 MAN=	panel.3
+PC_FILES= panel.pc
+CLEANFILES+= ${PC_FILES}
 
 includes:
 	@cd ${.CURDIR}; for i in ${HDRS}; do \
@@ -14,9 +16,18 @@ includes:
 	  ${INSTALL} ${INSTALL_COPY} -m 444 -o $(BINOWN) -g $(BINGRP) $$i \
 	  ${DESTDIR}/usr/include; done
 
+all: ${PC_FILES}
+
+${PC_FILES}: ${.CURDIR}/../libcurses/curses.h ${.CURDIR}/../libcurses/ncurses_cfg.h
+	/bin/sh ${.CURDIR}/generate_pkgconfig.sh -c ${.CURDIR} -o ${.OBJDIR}
+
 .include <bsd.own.mk>
 
 afterinstall:
+.for p in ${PC_FILES}
+	${INSTALL} ${INSTALL_COPY} -o root -g ${SHAREGRP} \
+	    -m ${SHAREMODE} ${.OBJDIR}/$p ${DESTDIR}/usr/lib/pkgconfig/
+.endfor
 	-cd ${DESTDIR}${LIBDIR}; \
 	for i in ${_LIBS}; do \
 	    ln -f $$i `echo $$i | sed 's/panel/panelw/'`; \
Index: lib/libpanel/generate_pkgconfig.sh
===================================================================
RCS file: lib/libpanel/generate_pkgconfig.sh
diff -N lib/libpanel/generate_pkgconfig.sh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lib/libpanel/generate_pkgconfig.sh	20 Feb 2025 16:45:56 -0000
@@ -0,0 +1,78 @@
+#!/bin/ksh
+#
+# $OpenBSD: generate_pkgconfig.sh,v 1.11 2022/02/04 16:42:15 tb Exp $
+#
+# Copyright (c) 2010,2011 Jasper Lievisse Adriaanse <jasper@openbsd.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Generate pkg-config files for libpanel.
+
+usage() {
+	echo "usage: ${0##*/} -c current_directory -o obj_directory"
+	exit 1
+}
+
+curdir=
+objdir=
+while getopts "c:o:" flag; do
+	case "$flag" in
+		c)
+			curdir=$OPTARG
+			;;
+		o)
+			objdir=$OPTARG
+			;;
+		*)
+			usage
+			;;
+	esac
+done
+
+[ -n "${curdir}" ] || usage
+if [ ! -d "${curdir}" ]; then
+	echo "${0##*/}: ${curdir}: not found"
+	exit 1
+fi
+[ -n "${objdir}" ] || usage
+if [ ! -w "${objdir}" ]; then
+	echo "${0##*/}: ${objdir}: not found or not writable"
+	exit 1
+fi
+
+version_re="s/^#define[[:blank:]]+NCURSES_VERSION_STRING[[:blank:]]+\"(.*)\".*/\1/p"
+version_file=${curdir}/../libcurses/ncurses_cfg.h
+lib_version=$(sed -nE ${version_re} ${version_file})
+
+version_re="s/^#define[[:blank:]]+NCURSES_VERSION_MAJOR[[:blank:]]+(.*)([[:blank:]].*)?/\1/p"
+version_file=${curdir}/../libcurses/curses.h
+abi_version=$(sed -nE ${version_re} ${version_file})
+
+pc_file="${objdir}/panel.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: panel
+Description: ncurses add-on library
+Version: ${lib_version}
+Requires.private: ncurses
+Libs: -lpanel
+Libs.private:
+Cflags:
+__EOF__
Index: distrib/sets/lists/base/mi
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/mi,v
diff -u -p -r1.1155 mi
--- distrib/sets/lists/base/mi	5 Feb 2025 14:12:26 -0000	1.1155
+++ distrib/sets/lists/base/mi	20 Feb 2025 16:45:56 -0000
@@ -790,11 +790,15 @@
 ./usr/lib/locate/src.db
 ./usr/lib/pkgconfig
 ./usr/lib/pkgconfig/expat.pc
+./usr/lib/pkgconfig/form.pc
 ./usr/lib/pkgconfig/fuse.pc
 ./usr/lib/pkgconfig/libcrypto.pc
 ./usr/lib/pkgconfig/libelf.pc
 ./usr/lib/pkgconfig/libssl.pc
+./usr/lib/pkgconfig/menu.pc
+./usr/lib/pkgconfig/ncurses.pc
 ./usr/lib/pkgconfig/openssl.pc
+./usr/lib/pkgconfig/panel.pc
 ./usr/lib/pkgconfig/sndio.pc
 ./usr/lib/pkgconfig/zlib.pc
 ./usr/lib/rcrt0.o