git: 0ef1b401a330 - main - devel/linuxapi: Linux userspace headers compatibility shim

From: Gleb Popov <arrowd_at_FreeBSD.org>
Date: Thu, 20 Aug 2026 16:55:46 UTC
The branch main has been updated by arrowd:

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

commit 0ef1b401a330d350d8aa8d7f80aa9d3149ae2744
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2026-08-20 16:00:37 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2026-08-20 16:54:53 +0000

    devel/linuxapi: Linux userspace headers compatibility shim
---
 devel/Makefile           |  1 +
 devel/linuxapi/Makefile  | 31 +++++++++++++++++++++++++++++++
 devel/linuxapi/distinfo  |  3 +++
 devel/linuxapi/pkg-descr |  5 +++++
 devel/linuxapi/pkg-plist | 25 +++++++++++++++++++++++++
 5 files changed, 65 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 0c60d3707fee..b76d3691bc70 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1628,6 +1628,7 @@
     SUBDIR += linux-rl9-systemd-libs
     SUBDIR += linux-sublime-merge
     SUBDIR += linux_libusb
+    SUBDIR += linuxapi
     SUBDIR += listserialc
     SUBDIR += liteide
     SUBDIR += llama.el
diff --git a/devel/linuxapi/Makefile b/devel/linuxapi/Makefile
new file mode 100644
index 000000000000..9c681cb9f00c
--- /dev/null
+++ b/devel/linuxapi/Makefile
@@ -0,0 +1,31 @@
+PORTNAME=	linuxapi
+PORTVERSION=	g20260820
+CATEGORIES=	devel
+
+MAINTAINER=	arrowd@FreeBSD.org
+COMMENT=	Linux userspace headers compatibility shim
+
+TEST_DEPENDS=	cmake:devel/cmake-core
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	freebsd
+GH_TAGNAME=	f17d394249bc85165a871522af464b54cc2eec27
+
+NO_BUILD=	yes
+NO_ARCH=	yes
+
+TEST_TARGET=	test
+
+.if exists(/usr/include/dev/ntsync/ntsync.h)
+PLIST_SUB+=	NTSYNC=
+.else
+PLIST_SUB+=	NTSYNC="@comment "
+.endif
+
+# Remove after updating CMake to >= 4.2.0
+post-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/cmake/linuxapi
+	${RLN} ${STAGEDIR}${PREFIX}/share/cmake/linuxapi-config.cmake \
+		${STAGEDIR}${PREFIX}/lib/cmake/linuxapi/linuxapi-config.cmake
+
+.include <bsd.port.mk>
diff --git a/devel/linuxapi/distinfo b/devel/linuxapi/distinfo
new file mode 100644
index 000000000000..eddea3cd92ad
--- /dev/null
+++ b/devel/linuxapi/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1787241443
+SHA256 (freebsd-linuxapi-g20260820-f17d394249bc85165a871522af464b54cc2eec27_GH0.tar.gz) = be05159b6aa31df9757fab07706682faa16fd6fd8c68b111dbe4dfd2ebf1793f
+SIZE (freebsd-linuxapi-g20260820-f17d394249bc85165a871522af464b54cc2eec27_GH0.tar.gz) = 5675
diff --git a/devel/linuxapi/pkg-descr b/devel/linuxapi/pkg-descr
new file mode 100644
index 000000000000..2c9eddb7eb62
--- /dev/null
+++ b/devel/linuxapi/pkg-descr
@@ -0,0 +1,5 @@
+linuxapi is a project intended to provide a subset of system headers usually
+found on Linux systems. linuxapi serves as a compatibility shim for projects
+that are heavily using Linux-specific headers and preprocessor macros, allowing
+for a faster porting process. It also improves maintainability of such ports
+without encumbering the upstream with FreeBSD-specific changes.
diff --git a/devel/linuxapi/pkg-plist b/devel/linuxapi/pkg-plist
new file mode 100644
index 000000000000..0c30210cec21
--- /dev/null
+++ b/devel/linuxapi/pkg-plist
@@ -0,0 +1,25 @@
+include/linuxapi/alloca.h
+include/linuxapi/errno.h
+include/linuxapi/limits.h
+include/linuxapi/linux/if_ether.h
+include/linuxapi/linux/in.h
+include/linuxapi/linux/in6.h
+include/linuxapi/linux/ioctl.h
+include/linuxapi/linux/ip.h
+include/linuxapi/linux/netlink.h
+%%NTSYNC%%include/linuxapi/linux/ntsync.h
+include/linuxapi/linux/rtnetlink.h
+include/linuxapi/linux/socket.h
+include/linuxapi/linux/stddef.h
+include/linuxapi/linux/types.h
+include/linuxapi/netinet/in.h
+include/linuxapi/netinet/tcp.h
+include/linuxapi/string.h
+include/linuxapi/sys/mman.h
+include/linuxapi/sys/sendfile.h
+include/linuxapi/sys/shm.h
+include/linuxapi/sys/socket.h
+include/linuxapi/sys/sysmacros.h
+lib/cmake/linuxapi/linuxapi-config.cmake
+share/cmake/linuxapi-config.cmake
+share/pkgconfig/linuxapi.pc