Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
Install libfido2.pc
To:
OpenBSD tech <tech@openbsd.org>, djm@openbsd.org
Date:
Sun, 06 Sep 2026 03:41:37 +0200

Download raw body.

Thread
  • Kirill A. Korinsky:

    Install libfido2.pc

tech@,

when I working on libfido2 update I had noticed that it missed libfido2.pc.

I hadn't included it into update to make it clean and now I'd like to add it.

I haven't found any source of version, so, I've used NEWS.

Other option is hardcode it which I like less.

Risks that some ports may picks it which hasn't picked it yet.

Thoughts? Ok?

Index: Makefile
===================================================================
RCS file: /home/cvs/src/lib/libfido2/Makefile,v
diff -u -p -r1.10 Makefile
--- Makefile	4 Sep 2026 16:20:01 -0000	1.10
+++ Makefile	6 Sep 2026 01:18:43 -0000
@@ -13,9 +13,11 @@ LDADD+=		-L${BSDOBJDIR}/lib/libcbor -lcb
 LDADD+=		-L${BSDOBJDIR}/lib/libcrypto -lcrypto
 LDADD+=		-L${BSDOBJDIR}/lib/libz -lz
 
+PC_FILES=	libfido2.pc
+
 SYMBOL_LIST=	Symbols.list
 VERSION_SCRIPT=	Symbols.map
-CLEANFILES=	${SYMBOL_LIST} ${VERSION_SCRIPT}
+CLEANFILES=	${PC_FILES} ${SYMBOL_LIST} ${VERSION_SCRIPT}
 
 LIB=	fido2
 SRCS=	aes256.c assert.c authkey.c bio.c blob.c buf.c cbor.c compress.c
@@ -62,3 +64,11 @@ ${VERSION_SCRIPT}: ${SYMBOL_LIST}
 	  printf '\n\tlocal:\n\t\t*;\n};\n'; } >$@.tmp && mv $@.tmp $@
 
 .include <bsd.lib.mk>
+
+all: ${PC_FILES}
+${PC_FILES}: ${.CURDIR}/NEWS ${.CURDIR}/generate_pkgconfig.sh
+	/bin/sh ${.CURDIR}/generate_pkgconfig.sh -c ${.CURDIR} -o ${.OBJDIR}
+
+beforeinstall:
+	${INSTALL} ${INSTALL_COPY} -o root -g ${SHAREGRP} \
+	    -m ${SHAREMODE} ${.OBJDIR}/${PC_FILES} ${DESTDIR}/usr/lib/pkgconfig/
Index: generate_pkgconfig.sh
===================================================================
RCS file: generate_pkgconfig.sh
diff -N generate_pkgconfig.sh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ generate_pkgconfig.sh	6 Sep 2026 01:40:29 -0000
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+# $OpenBSD$
+#
+# 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 OpenSSL.
+
+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='1s/^\* Version ([0-9]+\.[0-9]+\.[0-9]+) .*/\1/p'
+version_file=${curdir}/NEWS
+lib_version=$(sed -nE "${version_re}" "${version_file}")
+
+pc_file="${objdir}/libfido2.pc"
+cat > ${pc_file} << __EOF__
+prefix=/usr
+exec_prefix=\${prefix}
+libdir=\${exec_prefix}/lib
+includedir=\${prefix}/include
+
+Name: libfido2
+Description: A FIDO2 library
+URL: https://github.com/yubico/libfido2
+Version: ${lib_version}
+Requires: libcrypto
+Libs: -L\${libdir} -lfido2
+Cflags: -I\${includedir}
+__EOF__


-- 
wbr, Kirill