git: c067386debff - main - devel/libowfat: Update to 0.33

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Fri, 30 Jun 2023 07:18:07 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c067386debff482d4653b4031bd4a1f0e5b669ee

commit c067386debff482d4653b4031bd4a1f0e5b669ee
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2023-06-30 07:01:50 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2023-06-30 07:01:50 +0000

    devel/libowfat: Update to 0.33
    
    - Convert to options variable helper
    - Update manpage location (003a571d1d6585196545295efc181514f171c4c4, r523104)
    - Sort PLIST
    - Take maintainership
    
    Changes:        https://www.fefe.de/libowfat/changes-0.33.txt
---
 devel/libowfat/Makefile                         |  40 +-
 devel/libowfat/distinfo                         |   6 +-
 devel/libowfat/files/manpages                   | 344 -----------
 devel/libowfat/files/patch-GNUmakefile          |  60 +-
 devel/libowfat/files/patch-buffer-errmsg_puts.c |  12 -
 devel/libowfat/files/patch-io-iom_init.c        |  17 -
 devel/libowfat/files/patch-io-iom_wait.c        |  27 -
 devel/libowfat/files/patch-io_internal.h        |  11 -
 devel/libowfat/pkg-plist                        | 782 ++++++++++++------------
 9 files changed, 430 insertions(+), 869 deletions(-)

diff --git a/devel/libowfat/Makefile b/devel/libowfat/Makefile
index 98fa33d62fea..70cf082384c5 100644
--- a/devel/libowfat/Makefile
+++ b/devel/libowfat/Makefile
@@ -1,10 +1,9 @@
 PORTNAME=	libowfat
-PORTVERSION=	0.32
-PORTREVISION=	1
+PORTVERSION=	0.33
 CATEGORIES=	devel
 MASTER_SITES=	https://www.fefe.de/libowfat/
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	sunpoet@FreeBSD.org
 COMMENT=	General purpose library based on code by D. J. Bernstein
 WWW=		https://www.fefe.de/libowfat/
 
@@ -12,32 +11,23 @@ LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
 
 USES=		gmake tar:xz
+
+#ALL_TARGET=	headers
+#ALL_TARGET=	havealloca.h iopause.h headers all
+#CFLAGS+=	-fPIC
+#MAKE_ENV=	DIET=
 MAKEFILE=	GNUmakefile
-ALL_TARGET=	dep all
+#MAKE_JOBS_UNSAFE=	yes
 
 OPTIONS_DEFINE=	OPTIMIZED_CFLAGS
-OPTIONS_DEFAULT=	OPTIMIZED_CFLAGS
-
-.include <bsd.port.pre.mk>
-
-MAKE_ENV+=	INSTALL="${INSTALL}"
-
-.include "${FILESDIR}/manpages"
+OPTIONS_DEFAULT=OPTIMIZED_CFLAGS
 
-.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
-CFLAGS+=	-O2 -fomit-frame-pointer
-.endif
+OPTIMIZED_CFLAGS_CFLAGS=	-O2 -fomit-frame-pointer
 
-post-extract:
-	@${MKDIR} ${WRKSRC}/man
-# Manual pages clash with other programs; prepend libowfat_ to them.
-.for i in ${MANPAGES}
-	@${MV} ${WRKSRC}/*/${i:S/libowfat_//} ${WRKSRC}/man/${i}
-.endfor
+pre-build:
+	@cd ${WRKSRC} && ${DO_MAKE_BUILD} headers
 
-post-patch:
-# Clang cries when void functions return a value
-	${REINPLACE_CMD} -e '56s|return ||' ${WRKSRC}/CAS.h
-	${REINPLACE_CMD} -e "s|STAGEDIR|${STAGEDIR}|g" ${WRKSRC}/GNUmakefile
+post-install:
+	cd ${STAGEDIR}${PREFIX}/share/man/man3 && ${FIND} * -name '*.3' -exec ${MV} {} libowfat_{} \;
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/devel/libowfat/distinfo b/devel/libowfat/distinfo
index 36753f7495eb..fe6857879713 100644
--- a/devel/libowfat/distinfo
+++ b/devel/libowfat/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1613798981
-SHA256 (libowfat-0.32.tar.xz) = f4b9b3d9922dc25bc93adedf9e9ff8ddbebaf623f14c8e7a5f2301bfef7998c1
-SIZE (libowfat-0.32.tar.xz) = 195820
+TIMESTAMP = 1686496682
+SHA256 (libowfat-0.33.tar.xz) = 311ec8b3f4b72bb442e323fb013a98f956fa745547f2bc9456287b20d027cd7d
+SIZE (libowfat-0.33.tar.xz) = 213920
diff --git a/devel/libowfat/files/manpages b/devel/libowfat/files/manpages
deleted file mode 100644
index 30b19728c962..000000000000
--- a/devel/libowfat/files/manpages
+++ /dev/null
@@ -1,344 +0,0 @@
-MANPAGES=\
-libowfat_array.3 \
-libowfat_array_allocate.3 \
-libowfat_array_bytes.3 \
-libowfat_array_cat.3 \
-libowfat_array_cat0.3 \
-libowfat_array_catb.3 \
-libowfat_array_cate.3 \
-libowfat_array_cats.3 \
-libowfat_array_cats0.3 \
-libowfat_array_equal.3 \
-libowfat_array_fail.3 \
-libowfat_array_get.3 \
-libowfat_array_length.3 \
-libowfat_array_reset.3 \
-libowfat_array_start.3 \
-libowfat_array_trunc.3 \
-libowfat_array_truncate.3 \
-libowfat_buffer.3 \
-libowfat_buffer_close.3 \
-libowfat_buffer_feed.3 \
-libowfat_buffer_flush.3 \
-libowfat_buffer_fromsa.3 \
-libowfat_buffer_get.3 \
-libowfat_buffer_get_new_token_sa.3 \
-libowfat_buffer_get_new_token_sa_pred.3 \
-libowfat_buffer_get_token.3 \
-libowfat_buffer_get_token_pred.3 \
-libowfat_buffer_get_token_sa.3 \
-libowfat_buffer_get_token_sa_pred.3 \
-libowfat_buffer_getc.3 \
-libowfat_buffer_getline.3 \
-libowfat_buffer_getline_sa.3 \
-libowfat_buffer_getn.3 \
-libowfat_buffer_getnewline_sa.3 \
-libowfat_buffer_init.3 \
-libowfat_buffer_init_free.3 \
-libowfat_buffer_mmapread.3 \
-libowfat_buffer_peek.3 \
-libowfat_buffer_put.3 \
-libowfat_buffer_put8long.3 \
-libowfat_buffer_putalign.3 \
-libowfat_buffer_puterror.3 \
-libowfat_buffer_puterror2.3 \
-libowfat_buffer_putflush.3 \
-libowfat_buffer_putlong.3 \
-libowfat_buffer_putlonglong.3 \
-libowfat_buffer_putm.3 \
-libowfat_buffer_putnlflush.3 \
-libowfat_buffer_puts.3 \
-libowfat_buffer_putsa.3 \
-libowfat_buffer_putsaflush.3 \
-libowfat_buffer_putsalign.3 \
-libowfat_buffer_putsflush.3 \
-libowfat_buffer_putspace.3 \
-libowfat_buffer_putulong.3 \
-libowfat_buffer_putulonglong.3 \
-libowfat_buffer_putxlong.3 \
-libowfat_buffer_seek.3 \
-libowfat_buffer_tosa.3 \
-libowfat_byte_chr.3 \
-libowfat_byte_copy.3 \
-libowfat_byte_copyr.3 \
-libowfat_byte_diff.3 \
-libowfat_byte_equal.3 \
-libowfat_byte_rchr.3 \
-libowfat_byte_zero.3 \
-libowfat_case_diffb.3 \
-libowfat_case_diffs.3 \
-libowfat_case_lowerb.3 \
-libowfat_case_lowers.3 \
-libowfat_case_starts.3 \
-libowfat_cdb_datalen.3 \
-libowfat_cdb_datapos.3 \
-libowfat_cdb_find.3 \
-libowfat_cdb_firstkey.3 \
-libowfat_cdb_free.3 \
-libowfat_cdb_init.3 \
-libowfat_cdb_keylen.3 \
-libowfat_cdb_keypos.3 \
-libowfat_cdb_nextkey.3 \
-libowfat_cdb_read.3 \
-libowfat_cdb_successor.3 \
-libowfat_dns_ip4.3 \
-libowfat_dns_ip4_packet.3 \
-libowfat_dns_ip4_qualify.3 \
-libowfat_dns_ip6.3 \
-libowfat_dns_ip6_packet.3 \
-libowfat_dns_ip6_qualify.3 \
-libowfat_dns_mx.3 \
-libowfat_dns_mx_packet.3 \
-libowfat_dns_name4.3 \
-libowfat_dns_name4_domain.3 \
-libowfat_dns_name6.3 \
-libowfat_dns_name6_domain.3 \
-libowfat_dns_name_packet.3 \
-libowfat_dns_txt.3 \
-libowfat_dns_txt_packet.3 \
-libowfat_fmt_8long.3 \
-libowfat_fmt_asn1derlength.3 \
-libowfat_fmt_asn1dertag.3 \
-libowfat_fmt_double.3 \
-libowfat_fmt_fill.3 \
-libowfat_fmt_httpdate.3 \
-libowfat_fmt_human.3 \
-libowfat_fmt_humank.3 \
-libowfat_fmt_ip4.3 \
-libowfat_fmt_ip6.3 \
-libowfat_fmt_ip6_flat.3 \
-libowfat_fmt_ip6c.3 \
-libowfat_fmt_ip6if.3 \
-libowfat_fmt_ip6ifc.3 \
-libowfat_fmt_long.3 \
-libowfat_fmt_longlong.3 \
-libowfat_fmt_minus.3 \
-libowfat_fmt_pad.3 \
-libowfat_fmt_plusminus.3 \
-libowfat_fmt_str.3 \
-libowfat_fmt_strm.3 \
-libowfat_fmt_strn.3 \
-libowfat_fmt_uint.3 \
-libowfat_fmt_uint0.3 \
-libowfat_fmt_ulong.3 \
-libowfat_fmt_ulong0.3 \
-libowfat_fmt_ulonglong.3 \
-libowfat_fmt_utf8.3 \
-libowfat_fmt_xlong.3 \
-libowfat_fmt_xlonglong.3 \
-libowfat_iarray_allocate.3 \
-libowfat_iarray_free.3 \
-libowfat_iarray_get.3 \
-libowfat_iarray_init.3 \
-libowfat_imult16.3 \
-libowfat_imult32.3 \
-libowfat_imult64.3 \
-libowfat_io_appendfile.3 \
-libowfat_io_block.3 \
-libowfat_io_canread.3 \
-libowfat_io_canwrite.3 \
-libowfat_io_check.3 \
-libowfat_io_close.3 \
-libowfat_io_closeonexec.3 \
-libowfat_io_createfile.3 \
-libowfat_io_dontwantread.3 \
-libowfat_io_dontwantwrite.3 \
-libowfat_io_eagain.3 \
-libowfat_io_fd.3 \
-libowfat_io_fd_canwrite.3 \
-libowfat_io_finishandshutdown.3 \
-libowfat_io_getcookie.3 \
-libowfat_io_nonblock.3 \
-libowfat_io_passfd.3 \
-libowfat_io_pipe.3 \
-libowfat_io_readfile.3 \
-libowfat_io_readwritefile.3 \
-libowfat_io_receivefd.3 \
-libowfat_io_sendfile.3 \
-libowfat_io_setcookie.3 \
-libowfat_io_socketpair.3 \
-libowfat_io_timeout.3 \
-libowfat_io_timeouted.3 \
-libowfat_io_tryread.3 \
-libowfat_io_tryreadtimeout.3 \
-libowfat_io_trywrite.3 \
-libowfat_io_trywritetimeout.3 \
-libowfat_io_wait.3 \
-libowfat_io_waitread.3 \
-libowfat_io_waituntil.3 \
-libowfat_io_wantread.3 \
-libowfat_io_wantwrite.3 \
-libowfat_iob_addbuf.3 \
-libowfat_iob_addbuf_free.3 \
-libowfat_iob_addfile.3 \
-libowfat_iob_addfile_close.3 \
-libowfat_iob_adds.3 \
-libowfat_iob_adds_free.3 \
-libowfat_iob_bytesleft.3 \
-libowfat_iob_free.3 \
-libowfat_iob_new.3 \
-libowfat_iob_prefetch.3 \
-libowfat_iob_reset.3 \
-libowfat_iob_send.3 \
-libowfat_iob_write.3 \
-libowfat_iopause.3 \
-libowfat_mmap_private.3 \
-libowfat_mmap_read.3 \
-libowfat_mmap_shared.3 \
-libowfat_mmap_unmap.3 \
-libowfat_ndelay_off.3 \
-libowfat_ndelay_on.3 \
-libowfat_open_append.3 \
-libowfat_open_excl.3 \
-libowfat_open_read.3 \
-libowfat_open_rw.3 \
-libowfat_open_trunc.3 \
-libowfat_open_write.3 \
-libowfat_openreadclose.3 \
-libowfat_range_arrayinbuf.3 \
-libowfat_range_bufinbuf.3 \
-libowfat_range_ptrinbuf.3 \
-libowfat_range_str2inbuf.3 \
-libowfat_range_str4inbuf.3 \
-libowfat_range_strinbuf.3 \
-libowfat_range_validbuf.3 \
-libowfat_rangecheck.3 \
-libowfat_readclose.3 \
-libowfat_readclose_append.3 \
-libowfat_scan_8int.3 \
-libowfat_scan_8long.3 \
-libowfat_scan_8short.3 \
-libowfat_scan_asn1derlength.3 \
-libowfat_scan_asn1dertag.3 \
-libowfat_scan_charsetnskip.3 \
-libowfat_scan_double.3 \
-libowfat_scan_httpdate.3 \
-libowfat_scan_int.3 \
-libowfat_scan_ip4.3 \
-libowfat_scan_ip6.3 \
-libowfat_scan_ip6_flat.3 \
-libowfat_scan_ip6if.3 \
-libowfat_scan_long.3 \
-libowfat_scan_longlong.3 \
-libowfat_scan_noncharsetnskip.3 \
-libowfat_scan_nonwhitenskip.3 \
-libowfat_scan_plusminus.3 \
-libowfat_scan_short.3 \
-libowfat_scan_uint.3 \
-libowfat_scan_ulong.3 \
-libowfat_scan_ulonglong.3 \
-libowfat_scan_ushort.3 \
-libowfat_scan_utf8.3 \
-libowfat_scan_whitenskip.3 \
-libowfat_scan_xint.3 \
-libowfat_scan_xlong.3 \
-libowfat_scan_xlonglong.3 \
-libowfat_scan_xshort.3 \
-libowfat_socket_accept4.3 \
-libowfat_socket_accept6.3 \
-libowfat_socket_bind4.3 \
-libowfat_socket_bind4_reuse.3 \
-libowfat_socket_bind6.3 \
-libowfat_socket_bind6_reuse.3 \
-libowfat_socket_broadcast.3 \
-libowfat_socket_connect4.3 \
-libowfat_socket_connect6.3 \
-libowfat_socket_connected.3 \
-libowfat_socket_getifidx.3 \
-libowfat_socket_getifname.3 \
-libowfat_socket_listen.3 \
-libowfat_socket_local4.3 \
-libowfat_socket_local6.3 \
-libowfat_socket_mchopcount6.3 \
-libowfat_socket_mcjoin4.3 \
-libowfat_socket_mcjoin6.3 \
-libowfat_socket_mcleave4.3 \
-libowfat_socket_mcleave6.3 \
-libowfat_socket_mcloop4.3 \
-libowfat_socket_mcloop6.3 \
-libowfat_socket_mcttl4.3 \
-libowfat_socket_recv4.3 \
-libowfat_socket_recv6.3 \
-libowfat_socket_remote4.3 \
-libowfat_socket_remote6.3 \
-libowfat_socket_sctp4.3 \
-libowfat_socket_sctp4b.3 \
-libowfat_socket_sctp6.3 \
-libowfat_socket_sctp6b.3 \
-libowfat_socket_send4.3 \
-libowfat_socket_send6.3 \
-libowfat_socket_tcp4.3 \
-libowfat_socket_tcp4b.3 \
-libowfat_socket_tcp6.3 \
-libowfat_socket_tcp6b.3 \
-libowfat_socket_udp4.3 \
-libowfat_socket_udp6.3 \
-libowfat_str_chr.3 \
-libowfat_str_copy.3 \
-libowfat_str_diff.3 \
-libowfat_str_diffn.3 \
-libowfat_str_equal.3 \
-libowfat_str_len.3 \
-libowfat_str_rchr.3 \
-libowfat_str_start.3 \
-libowfat_stralloc_0.3 \
-libowfat_stralloc_append.3 \
-libowfat_stralloc_cat.3 \
-libowfat_stralloc_catb.3 \
-libowfat_stralloc_catlong0.3 \
-libowfat_stralloc_catm.3 \
-libowfat_stralloc_cats.3 \
-libowfat_stralloc_catulong0.3 \
-libowfat_stralloc_chomp.3 \
-libowfat_stralloc_chop.3 \
-libowfat_stralloc_copy.3 \
-libowfat_stralloc_copyb.3 \
-libowfat_stralloc_copym.3 \
-libowfat_stralloc_copys.3 \
-libowfat_stralloc_diff.3 \
-libowfat_stralloc_diffs.3 \
-libowfat_stralloc_free.3 \
-libowfat_stralloc_init.3 \
-libowfat_stralloc_ready.3 \
-libowfat_stralloc_readyplus.3 \
-libowfat_stralloc_starts.3 \
-libowfat_stralloc_zero.3 \
-libowfat_tai_add.3 \
-libowfat_tai_approx.3 \
-libowfat_tai_less.3 \
-libowfat_tai_now.3 \
-libowfat_tai_pack.3 \
-libowfat_tai_sub.3 \
-libowfat_tai_unpack.3 \
-libowfat_taia_add.3 \
-libowfat_taia_addsec.3 \
-libowfat_taia_approx.3 \
-libowfat_taia_frac.3 \
-libowfat_taia_less.3 \
-libowfat_taia_now.3 \
-libowfat_taia_pack.3 \
-libowfat_taia_sub.3 \
-libowfat_taia_tai.3 \
-libowfat_taia_uint.3 \
-libowfat_taia_unpack.3 \
-libowfat_uint16_pack.3 \
-libowfat_uint16_pack_big.3 \
-libowfat_uint16_read.3 \
-libowfat_uint16_read_big.3 \
-libowfat_uint16_unpack.3 \
-libowfat_uint16_unpack_big.3 \
-libowfat_uint32_pack.3 \
-libowfat_uint32_pack_big.3 \
-libowfat_uint32_read.3 \
-libowfat_uint32_read_big.3 \
-libowfat_uint32_unpack.3 \
-libowfat_uint32_unpack_big.3 \
-libowfat_uint64_pack.3 \
-libowfat_uint64_pack_big.3 \
-libowfat_uint64_read.3 \
-libowfat_uint64_read_big.3 \
-libowfat_uint64_unpack.3 \
-libowfat_uint64_unpack_big.3 \
-libowfat_umult16.3 \
-libowfat_umult32.3 \
-libowfat_umult64.3
diff --git a/devel/libowfat/files/patch-GNUmakefile b/devel/libowfat/files/patch-GNUmakefile
index d4ff18a9b1a9..cdac738070b1 100644
--- a/devel/libowfat/files/patch-GNUmakefile
+++ b/devel/libowfat/files/patch-GNUmakefile
@@ -1,43 +1,24 @@
-diff --git GNUmakefile GNUmakefile
-index 3f3193d..43b1b55 100644
---- GNUmakefile
+--- GNUmakefile.orig	2021-04-24 10:47:51 UTC
 +++ GNUmakefile
 @@ -4,10 +4,10 @@
  # in /opt/diet, where they are in the default search path for my diet libc
  # work but don't conflict with anything there.  YMMV.
  
 -prefix=/opt/diet
-+prefix=STAGEDIR${PREFIX}
++prefix=${PREFIX}
  LIBDIR=${prefix}/lib
--INCLUDEDIR=${prefix}/include
+ INCLUDEDIR=${prefix}/include
 -MAN3DIR=${prefix}/man/man3
-+INCLUDEDIR=${prefix}/include/libowfat
-+MAN3DIR=STAGEDIR${MANPREFIX}/man/man3
++MAN3DIR=${prefix}/share/man/man3
  
  LIBS=byte.a fmt.a scan.a str.a uint.a open.a stralloc.a unix.a socket.a \
  buffer.a mmap.a taia.a tai.a dns.a case.a mult.a array.a io.a \
-@@ -18,26 +18,14 @@ all: headers ent $(LIBS) libowfat.a libsocket t
- pic pie:
- 	$(MAKE) CC="gcc -fPIC" LDFLAGS="-fpie"
+@@ -39,10 +39,10 @@ NATIVE=
+ OPT_REG=-O2
+ OPT_PLUS=-O3 $(NATIVE)
  
--CROSS=
--#CROSS=i686-mingw-
--CC?=gcc
--CCC=$(CROSS)$(CC)
-+CCC=${CC}
- WERROR=
- WARN=-W -Wall -Wextra $(WERROR)
- 
--# Use the second version if you are building for a binary that is only
--# supposed to run on this machine. It tells gcc to use CPU instructions
--# that are specific to the CPU the code is compiled on.
--NATIVE=
--#NATIVE=-march=native -mtune=native
--
--OPT_REG=-O2
--OPT_PLUS=-O3 $(NATIVE)
--
- DEFINE=-D_REENTRANT
+-DEFINE=-D_REENTRANT
++DEFINE=-D_REENTRANT -fPIC
  
 -CFLAGS=-pipe $(WARN) $(DEFINE) $(OPT_REG)
 -CFLAGS_OPT=-pipe $(WARN) $(DEFINE) $(OPT_PLUS)
@@ -46,26 +27,3 @@ index 3f3193d..43b1b55 100644
  
  #CFLAGS=-pipe -Os -march=pentiumpro -mcpu=pentiumpro -fomit-frame-pointer -fschedule-insns2 -Wall
  
-@@ -217,16 +205,16 @@ libowfat/%.h: %.h
- 	ln -f $< $@
- 
- install-inc:
--	install -d $(DESTDIR)$(INCLUDEDIR)/libowfat
--	install -m 644 $(INCLUDES) $(DESTDIR)$(INCLUDEDIR)/libowfat
-+	${INSTALL} -d $(INCLUDEDIR)
-+	${BSD_INSTALL_DATA} -m 644 $(INCLUDES) $(INCLUDEDIR)
- 
- install-lib: libowfat.a
--	install -d $(DESTDIR)$(LIBDIR)
--	install -m 644 libowfat.a $(DESTDIR)$(LIBDIR)
-+	${INSTALL} -d $(LIBDIR)
-+	${BSD_INSTALL_DATA} -m 644 libowfat.a $(LIBDIR)
- 
- install-man:
--	install -d $(DESTDIR)$(MAN3DIR)
--	install -m 644 $(wildcard */*.3) $(DESTDIR)$(MAN3DIR)
-+	${INSTALL} -d $(MAN3DIR)
-+	${BSD_INSTALL_MAN} -m 644 $(wildcard */*.3) $(MAN3DIR)
- 
- install: headers install-inc install-man install-lib
- 
diff --git a/devel/libowfat/files/patch-buffer-errmsg_puts.c b/devel/libowfat/files/patch-buffer-errmsg_puts.c
deleted file mode 100644
index 4c429954a112..000000000000
--- a/devel/libowfat/files/patch-buffer-errmsg_puts.c
+++ /dev/null
@@ -1,12 +0,0 @@
---- buffer/errmsg_puts.c.orig	Sat Jan 13 15:03:22 2007
-+++ buffer/errmsg_puts.c	Sat Jan 13 15:04:23 2007
-@@ -13,7 +13,9 @@
- }
- 
- #else
-+#include <sys/types.h>
- #include <sys/uio.h>
-+#include <unistd.h>
- 
- enum { COUNT=25 };
- static struct iovec x[COUNT];
diff --git a/devel/libowfat/files/patch-io-iom_init.c b/devel/libowfat/files/patch-io-iom_init.c
deleted file mode 100644
index 2342ef89eecd..000000000000
--- a/devel/libowfat/files/patch-io-iom_init.c
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: io/iom_init.c
-===================================================================
-RCS file: /cvs/libowfat/io/iom_init.c,v
-retrieving revision 1.1
-retrieving revision 1.2
-diff -u -r1.1 -r1.2
---- io/iom_init.c	27 Mar 2018 02:23:00 -0000	1.1
-+++ io/iom_init.c	21 Feb 2019 12:24:05 -0000	1.2
-@@ -6,6 +6,8 @@
- #include <sys/types.h>
- #include <sys/event.h>
- #include <sys/time.h>
-+#include <unistd.h>
-+#include <fcntl.h>
- #endif
- 
- int iom_init(iomux_t* c) {
diff --git a/devel/libowfat/files/patch-io-iom_wait.c b/devel/libowfat/files/patch-io-iom_wait.c
deleted file mode 100644
index fca77d80e23e..000000000000
--- a/devel/libowfat/files/patch-io-iom_wait.c
+++ /dev/null
@@ -1,27 +0,0 @@
-Index: io/iom_wait.c
-===================================================================
-RCS file: /cvs/libowfat/io/iom_wait.c,v
-retrieving revision 1.2
-retrieving revision 1.3
-diff -u -r1.2 -r1.3
---- io/iom_wait.c	11 Apr 2018 14:12:50 -0000	1.2
-+++ io/iom_wait.c	21 Feb 2019 12:43:06 -0000	1.3
-@@ -65,7 +65,8 @@
- #elif defined(HAVE_KQUEUE)
-       struct kevent kev[SLOTS];
-       struct timespec ts = { .tv_sec=timeout/1000, .tv_nsec=(timeout%1000)*1000000 };
--      int r=kevent(c->ctx, 0, 0, &kev, freeslots, &ts);
-+      int r=kevent(c->ctx, 0, 0, kev, freeslots, &ts);
-+      int i;
-       if (r<=0) {
- 	/* we ran into a timeout, so let someone else take over */
- 	if (__sync_val_compare_and_swap(&c->working,1,0)==-2) return -2;
-@@ -82,7 +83,7 @@
- 	        (kev[i].filter == EVFILT_WRITE ? IOM_WRITE : 0);
- 	if (i+1==r) {
- 	  /* return last event instead of enqueueing it */
--	  *s=kev.ident;
-+	  *s=kev[i].ident;
- 	  *revents=e;
- 	} else {
- 	  c->q[c->h].fd=kev[i].ident;
diff --git a/devel/libowfat/files/patch-io_internal.h b/devel/libowfat/files/patch-io_internal.h
deleted file mode 100644
index 30d70f2eaf13..000000000000
--- a/devel/libowfat/files/patch-io_internal.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- io_internal.h.orig	2021-12-03 03:57:20.158865000 +0100
-+++ io_internal.h	2021-12-03 03:57:28.438206000 +0100
-@@ -83,7 +83,7 @@
- my_extern long first_readable;
- my_extern long first_writeable;
- 
--my_extern long first_deferred;
-+extern long first_deferred;
- 
- my_extern enum __io_waitmode {
-   UNDECIDED,
diff --git a/devel/libowfat/pkg-plist b/devel/libowfat/pkg-plist
index 39b8f59af767..bdc358c41279 100644
--- a/devel/libowfat/pkg-plist
+++ b/devel/libowfat/pkg-plist
@@ -2,8 +2,9 @@ include/libowfat/array.h
 include/libowfat/buffer.h
 include/libowfat/byte.h
 include/libowfat/case.h
-include/libowfat/cdb_make.h
 include/libowfat/cdb.h
+include/libowfat/cdb_make.h
+include/libowfat/compiler.h
 include/libowfat/compiletimeassert.h
 include/libowfat/critbit.h
 include/libowfat/dns.h
@@ -21,6 +22,7 @@ include/libowfat/mmap.h
 include/libowfat/ndelay.h
 include/libowfat/open.h
 include/libowfat/openreadclose.h
+include/libowfat/parse.h
 include/libowfat/rangecheck.h
 include/libowfat/readclose.h
 include/libowfat/safemult.h
@@ -36,381 +38,403 @@ include/libowfat/uint32.h
 include/libowfat/uint64.h
 include/libowfat/va_narg.h
 lib/libowfat.a
-man/man3/add_of.3.gz
-man/man3/assign.3.gz
-man/man3/buffer_fromarray.3.gz
-man/man3/buffer_frombuf.3.gz
-man/man3/critbit0_allprefixed.3.gz
-man/man3/critbit0_clear.3.gz
-man/man3/critbit0_contains.3.gz
-man/man3/critbit0_delete.3.gz
-man/man3/critbit0_insert.3.gz
-man/man3/fmt_iso8601.3.gz
-man/man3/fmt_netstring.3.gz
-man/man3/io_fd_flags.3.gz
-man/man3/iom_abort.3.gz
-man/man3/iom_add.3.gz
-man/man3/iom_init.3.gz
-man/man3/iom_wait.3.gz
-man/man3/libowfat_array_allocate.3.gz
-man/man3/libowfat_array_bytes.3.gz
-man/man3/libowfat_array_cat.3.gz
-man/man3/libowfat_array_cat0.3.gz
-man/man3/libowfat_array_catb.3.gz
-man/man3/libowfat_array_cate.3.gz
-man/man3/libowfat_array_cats.3.gz
-man/man3/libowfat_array_cats0.3.gz
-man/man3/libowfat_array_equal.3.gz
-man/man3/libowfat_array_fail.3.gz
-man/man3/libowfat_array_get.3.gz
-man/man3/libowfat_array_length.3.gz
-man/man3/libowfat_array_reset.3.gz
-man/man3/libowfat_array_start.3.gz
-man/man3/libowfat_array_trunc.3.gz
-man/man3/libowfat_array_truncate.3.gz
-man/man3/libowfat_array.3.gz
-man/man3/libowfat_buffer_close.3.gz
-man/man3/libowfat_buffer_feed.3.gz
-man/man3/libowfat_buffer_flush.3.gz
-man/man3/libowfat_buffer_fromsa.3.gz
-man/man3/libowfat_buffer_get_new_token_sa_pred.3.gz
-man/man3/libowfat_buffer_get_new_token_sa.3.gz
-man/man3/libowfat_buffer_get_token_pred.3.gz
-man/man3/libowfat_buffer_get_token_sa_pred.3.gz
-man/man3/libowfat_buffer_get_token_sa.3.gz
-man/man3/libowfat_buffer_get_token.3.gz
-man/man3/libowfat_buffer_get.3.gz
-man/man3/libowfat_buffer_getc.3.gz
-man/man3/libowfat_buffer_getline_sa.3.gz
-man/man3/libowfat_buffer_getline.3.gz
-man/man3/libowfat_buffer_getn.3.gz
-man/man3/libowfat_buffer_getnewline_sa.3.gz
-man/man3/libowfat_buffer_init_free.3.gz
-man/man3/libowfat_buffer_init.3.gz
-man/man3/libowfat_buffer_mmapread.3.gz
-man/man3/libowfat_buffer_peek.3.gz
-man/man3/libowfat_buffer_put.3.gz
-man/man3/libowfat_buffer_put8long.3.gz
-man/man3/libowfat_buffer_putalign.3.gz
-man/man3/libowfat_buffer_puterror.3.gz
-man/man3/libowfat_buffer_puterror2.3.gz
-man/man3/libowfat_buffer_putflush.3.gz
-man/man3/libowfat_buffer_putlong.3.gz
-man/man3/libowfat_buffer_putlonglong.3.gz
-man/man3/libowfat_buffer_putm.3.gz
-man/man3/libowfat_buffer_putnlflush.3.gz
-man/man3/libowfat_buffer_puts.3.gz
-man/man3/libowfat_buffer_putsa.3.gz
-man/man3/libowfat_buffer_putsaflush.3.gz
-man/man3/libowfat_buffer_putsalign.3.gz
-man/man3/libowfat_buffer_putsflush.3.gz
-man/man3/libowfat_buffer_putspace.3.gz
-man/man3/libowfat_buffer_putulong.3.gz
-man/man3/libowfat_buffer_putulonglong.3.gz
-man/man3/libowfat_buffer_putxlong.3.gz
-man/man3/libowfat_buffer_seek.3.gz
-man/man3/libowfat_buffer_tosa.3.gz
-man/man3/libowfat_buffer.3.gz
-man/man3/libowfat_byte_chr.3.gz
-man/man3/libowfat_byte_copy.3.gz
-man/man3/libowfat_byte_copyr.3.gz
-man/man3/libowfat_byte_diff.3.gz
-man/man3/libowfat_byte_equal.3.gz
-man/man3/libowfat_byte_rchr.3.gz
-man/man3/libowfat_byte_zero.3.gz
-man/man3/libowfat_case_diffb.3.gz
-man/man3/libowfat_case_diffs.3.gz
-man/man3/libowfat_case_lowerb.3.gz
-man/man3/libowfat_case_lowers.3.gz
-man/man3/libowfat_case_starts.3.gz
-man/man3/libowfat_cdb_datalen.3.gz
-man/man3/libowfat_cdb_datapos.3.gz
-man/man3/libowfat_cdb_find.3.gz
-man/man3/libowfat_cdb_firstkey.3.gz
-man/man3/libowfat_cdb_free.3.gz
-man/man3/libowfat_cdb_init.3.gz
-man/man3/libowfat_cdb_keylen.3.gz
-man/man3/libowfat_cdb_keypos.3.gz
-man/man3/libowfat_cdb_nextkey.3.gz
-man/man3/libowfat_cdb_read.3.gz
-man/man3/libowfat_cdb_successor.3.gz
-man/man3/libowfat_dns_ip4_packet.3.gz
-man/man3/libowfat_dns_ip4_qualify.3.gz
-man/man3/libowfat_dns_ip4.3.gz
-man/man3/libowfat_dns_ip6_packet.3.gz
-man/man3/libowfat_dns_ip6_qualify.3.gz
-man/man3/libowfat_dns_ip6.3.gz
-man/man3/libowfat_dns_mx_packet.3.gz
-man/man3/libowfat_dns_mx.3.gz
-man/man3/libowfat_dns_name_packet.3.gz
-man/man3/libowfat_dns_name4_domain.3.gz
-man/man3/libowfat_dns_name4.3.gz
-man/man3/libowfat_dns_name6_domain.3.gz
-man/man3/libowfat_dns_name6.3.gz
-man/man3/libowfat_dns_txt_packet.3.gz
-man/man3/libowfat_dns_txt.3.gz
-man/man3/libowfat_fmt_8long.3.gz
-man/man3/libowfat_fmt_asn1derlength.3.gz
-man/man3/libowfat_fmt_asn1dertag.3.gz
-man/man3/libowfat_fmt_double.3.gz
-man/man3/libowfat_fmt_fill.3.gz
-man/man3/libowfat_fmt_httpdate.3.gz
-man/man3/libowfat_fmt_human.3.gz
-man/man3/libowfat_fmt_humank.3.gz
-man/man3/libowfat_fmt_ip4.3.gz
-man/man3/libowfat_fmt_ip6_flat.3.gz
-man/man3/libowfat_fmt_ip6.3.gz
-man/man3/libowfat_fmt_ip6c.3.gz
-man/man3/libowfat_fmt_ip6if.3.gz
-man/man3/libowfat_fmt_ip6ifc.3.gz
-man/man3/libowfat_fmt_long.3.gz
-man/man3/libowfat_fmt_longlong.3.gz
-man/man3/libowfat_fmt_minus.3.gz
-man/man3/libowfat_fmt_pad.3.gz
-man/man3/libowfat_fmt_plusminus.3.gz
-man/man3/libowfat_fmt_str.3.gz
-man/man3/libowfat_fmt_strm.3.gz
-man/man3/libowfat_fmt_strn.3.gz
-man/man3/libowfat_fmt_uint.3.gz
-man/man3/libowfat_fmt_uint0.3.gz
-man/man3/libowfat_fmt_ulong.3.gz
-man/man3/libowfat_fmt_ulong0.3.gz
-man/man3/libowfat_fmt_ulonglong.3.gz
-man/man3/libowfat_fmt_utf8.3.gz
-man/man3/libowfat_fmt_xlong.3.gz
-man/man3/libowfat_fmt_xlonglong.3.gz
-man/man3/libowfat_iarray_allocate.3.gz
-man/man3/libowfat_iarray_free.3.gz
-man/man3/libowfat_iarray_get.3.gz
-man/man3/libowfat_iarray_init.3.gz
-man/man3/libowfat_imult16.3.gz
-man/man3/libowfat_imult32.3.gz
-man/man3/libowfat_imult64.3.gz
-man/man3/libowfat_io_appendfile.3.gz
-man/man3/libowfat_io_block.3.gz
-man/man3/libowfat_io_canread.3.gz
-man/man3/libowfat_io_canwrite.3.gz
-man/man3/libowfat_io_check.3.gz
-man/man3/libowfat_io_close.3.gz
-man/man3/libowfat_io_closeonexec.3.gz
-man/man3/libowfat_io_createfile.3.gz
-man/man3/libowfat_io_dontwantread.3.gz
-man/man3/libowfat_io_dontwantwrite.3.gz
-man/man3/libowfat_io_eagain.3.gz
-man/man3/libowfat_io_fd_canwrite.3.gz
-man/man3/libowfat_io_fd.3.gz
-man/man3/libowfat_io_finishandshutdown.3.gz
-man/man3/libowfat_io_getcookie.3.gz
-man/man3/libowfat_io_nonblock.3.gz
-man/man3/libowfat_io_passfd.3.gz
-man/man3/libowfat_io_pipe.3.gz
-man/man3/libowfat_io_readfile.3.gz
-man/man3/libowfat_io_readwritefile.3.gz
-man/man3/libowfat_io_receivefd.3.gz
-man/man3/libowfat_io_sendfile.3.gz
-man/man3/libowfat_io_setcookie.3.gz
-man/man3/libowfat_io_socketpair.3.gz
-man/man3/libowfat_io_timeout.3.gz
-man/man3/libowfat_io_timeouted.3.gz
-man/man3/libowfat_io_tryread.3.gz
-man/man3/libowfat_io_tryreadtimeout.3.gz
-man/man3/libowfat_io_trywrite.3.gz
-man/man3/libowfat_io_trywritetimeout.3.gz
-man/man3/libowfat_io_wait.3.gz
-man/man3/libowfat_io_waitread.3.gz
-man/man3/libowfat_io_waituntil.3.gz
-man/man3/libowfat_io_wantread.3.gz
-man/man3/libowfat_io_wantwrite.3.gz
-man/man3/libowfat_iob_addbuf_free.3.gz
-man/man3/libowfat_iob_addbuf.3.gz
-man/man3/libowfat_iob_addfile_close.3.gz
-man/man3/libowfat_iob_addfile.3.gz
-man/man3/libowfat_iob_adds_free.3.gz
-man/man3/libowfat_iob_adds.3.gz
-man/man3/libowfat_iob_bytesleft.3.gz
-man/man3/libowfat_iob_free.3.gz
-man/man3/libowfat_iob_new.3.gz
-man/man3/libowfat_iob_prefetch.3.gz
-man/man3/libowfat_iob_reset.3.gz
-man/man3/libowfat_iob_send.3.gz
-man/man3/libowfat_iob_write.3.gz
-man/man3/libowfat_iopause.3.gz
-man/man3/libowfat_mmap_private.3.gz
-man/man3/libowfat_mmap_read.3.gz
-man/man3/libowfat_mmap_shared.3.gz
-man/man3/libowfat_mmap_unmap.3.gz
-man/man3/libowfat_ndelay_off.3.gz
-man/man3/libowfat_ndelay_on.3.gz
-man/man3/libowfat_open_append.3.gz
-man/man3/libowfat_open_excl.3.gz
-man/man3/libowfat_open_read.3.gz
-man/man3/libowfat_open_rw.3.gz
-man/man3/libowfat_open_trunc.3.gz
-man/man3/libowfat_open_write.3.gz
-man/man3/libowfat_openreadclose.3.gz
-man/man3/libowfat_range_arrayinbuf.3.gz
-man/man3/libowfat_range_bufinbuf.3.gz
-man/man3/libowfat_range_ptrinbuf.3.gz
-man/man3/libowfat_range_str2inbuf.3.gz
-man/man3/libowfat_range_str4inbuf.3.gz
-man/man3/libowfat_range_strinbuf.3.gz
-man/man3/libowfat_range_validbuf.3.gz
-man/man3/libowfat_rangecheck.3.gz
-man/man3/libowfat_readclose_append.3.gz
-man/man3/libowfat_readclose.3.gz
-man/man3/libowfat_scan_8int.3.gz
-man/man3/libowfat_scan_8long.3.gz
-man/man3/libowfat_scan_8short.3.gz
-man/man3/libowfat_scan_asn1derlength.3.gz
-man/man3/libowfat_scan_asn1dertag.3.gz
-man/man3/libowfat_scan_charsetnskip.3.gz
-man/man3/libowfat_scan_double.3.gz
-man/man3/libowfat_scan_httpdate.3.gz
-man/man3/libowfat_scan_int.3.gz
-man/man3/libowfat_scan_ip4.3.gz
-man/man3/libowfat_scan_ip6_flat.3.gz
-man/man3/libowfat_scan_ip6.3.gz
-man/man3/libowfat_scan_ip6if.3.gz
-man/man3/libowfat_scan_long.3.gz
-man/man3/libowfat_scan_longlong.3.gz
-man/man3/libowfat_scan_noncharsetnskip.3.gz
-man/man3/libowfat_scan_nonwhitenskip.3.gz
-man/man3/libowfat_scan_plusminus.3.gz
-man/man3/libowfat_scan_short.3.gz
-man/man3/libowfat_scan_uint.3.gz
-man/man3/libowfat_scan_ulong.3.gz
-man/man3/libowfat_scan_ulonglong.3.gz
-man/man3/libowfat_scan_ushort.3.gz
-man/man3/libowfat_scan_utf8.3.gz
-man/man3/libowfat_scan_whitenskip.3.gz
-man/man3/libowfat_scan_xint.3.gz
-man/man3/libowfat_scan_xlong.3.gz
-man/man3/libowfat_scan_xlonglong.3.gz
-man/man3/libowfat_scan_xshort.3.gz
-man/man3/libowfat_socket_accept4.3.gz
-man/man3/libowfat_socket_accept6.3.gz
-man/man3/libowfat_socket_bind4_reuse.3.gz
-man/man3/libowfat_socket_bind4.3.gz
-man/man3/libowfat_socket_bind6_reuse.3.gz
-man/man3/libowfat_socket_bind6.3.gz
-man/man3/libowfat_socket_broadcast.3.gz
-man/man3/libowfat_socket_connect4.3.gz
-man/man3/libowfat_socket_connect6.3.gz
-man/man3/libowfat_socket_connected.3.gz
-man/man3/libowfat_socket_getifidx.3.gz
-man/man3/libowfat_socket_getifname.3.gz
-man/man3/libowfat_socket_listen.3.gz
-man/man3/libowfat_socket_local4.3.gz
-man/man3/libowfat_socket_local6.3.gz
-man/man3/libowfat_socket_mchopcount6.3.gz
-man/man3/libowfat_socket_mcjoin4.3.gz
-man/man3/libowfat_socket_mcjoin6.3.gz
-man/man3/libowfat_socket_mcleave4.3.gz
-man/man3/libowfat_socket_mcleave6.3.gz
-man/man3/libowfat_socket_mcloop4.3.gz
-man/man3/libowfat_socket_mcloop6.3.gz
-man/man3/libowfat_socket_mcttl4.3.gz
-man/man3/libowfat_socket_recv4.3.gz
-man/man3/libowfat_socket_recv6.3.gz
-man/man3/libowfat_socket_remote4.3.gz
-man/man3/libowfat_socket_remote6.3.gz
-man/man3/libowfat_socket_sctp4.3.gz
-man/man3/libowfat_socket_sctp4b.3.gz
-man/man3/libowfat_socket_sctp6.3.gz
-man/man3/libowfat_socket_sctp6b.3.gz
-man/man3/libowfat_socket_send4.3.gz
-man/man3/libowfat_socket_send6.3.gz
-man/man3/libowfat_socket_tcp4.3.gz
-man/man3/libowfat_socket_tcp4b.3.gz
-man/man3/libowfat_socket_tcp6.3.gz
-man/man3/libowfat_socket_tcp6b.3.gz
-man/man3/libowfat_socket_udp4.3.gz
-man/man3/libowfat_socket_udp6.3.gz
-man/man3/libowfat_str_chr.3.gz
-man/man3/libowfat_str_copy.3.gz
-man/man3/libowfat_str_diff.3.gz
-man/man3/libowfat_str_diffn.3.gz
-man/man3/libowfat_str_equal.3.gz
-man/man3/libowfat_str_len.3.gz
-man/man3/libowfat_str_rchr.3.gz
-man/man3/libowfat_str_start.3.gz
-man/man3/libowfat_stralloc_0.3.gz
-man/man3/libowfat_stralloc_append.3.gz
-man/man3/libowfat_stralloc_cat.3.gz
-man/man3/libowfat_stralloc_catb.3.gz
-man/man3/libowfat_stralloc_catlong0.3.gz
-man/man3/libowfat_stralloc_catm.3.gz
-man/man3/libowfat_stralloc_cats.3.gz
-man/man3/libowfat_stralloc_catulong0.3.gz
-man/man3/libowfat_stralloc_chomp.3.gz
-man/man3/libowfat_stralloc_chop.3.gz
-man/man3/libowfat_stralloc_copy.3.gz
-man/man3/libowfat_stralloc_copyb.3.gz
-man/man3/libowfat_stralloc_copym.3.gz
-man/man3/libowfat_stralloc_copys.3.gz
-man/man3/libowfat_stralloc_diff.3.gz
-man/man3/libowfat_stralloc_diffs.3.gz
-man/man3/libowfat_stralloc_free.3.gz
-man/man3/libowfat_stralloc_init.3.gz
-man/man3/libowfat_stralloc_ready.3.gz
-man/man3/libowfat_stralloc_readyplus.3.gz
-man/man3/libowfat_stralloc_starts.3.gz
-man/man3/libowfat_stralloc_zero.3.gz
-man/man3/libowfat_tai_add.3.gz
-man/man3/libowfat_tai_approx.3.gz
-man/man3/libowfat_tai_less.3.gz
-man/man3/libowfat_tai_now.3.gz
-man/man3/libowfat_tai_pack.3.gz
-man/man3/libowfat_tai_sub.3.gz
-man/man3/libowfat_tai_unpack.3.gz
-man/man3/libowfat_taia_add.3.gz
-man/man3/libowfat_taia_addsec.3.gz
-man/man3/libowfat_taia_approx.3.gz
-man/man3/libowfat_taia_frac.3.gz
*** 447 LINES SKIPPED ***