git: 3c7b4d6a8af3 - main - net/slapi-nis: Add new Port

Jochen Neumeister <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <6a7d8755.3bfe4.628606cf__243.112007022717$1786611596$gmane$org@gitrepo.freebsd.org>
The branch main has been updated by joneum:

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

commit 3c7b4d6a8af39111f65bd610c357aa8bc505f19c
Author:     Jochen Neumeister <[email protected]>
AuthorDate: 2026-08-13 06:54:22 +0000
Commit:     Jochen Neumeister <[email protected]>
CommitDate: 2026-08-13 08:58:47 +0000

    net/slapi-nis: Add new Port
    
    slapi-nis provides the Schema Compatibility plugin for 389 Directory
    Server. The plugin presents alternate LDAP views required by FreeIPA
    compatibility features, including SSSD ID mapping and ID views. The NIS
    plugin itself is disabled; only the schema-compat plugin is built.
    
    WWW: https://codeberg.org/freeipa/slapi-nis
    
    Sponsored by:   Netzkommune GmbH
    
    Required for: FreeIPA server port
---
 net/Makefile                                       |  1 +
 net/slapi-nis/Makefile                             | 41 ++++++++++++++++++++++
 net/slapi-nis/distinfo                             |  3 ++
 net/slapi-nis/files/patch-Makefile.am              |  9 +++++
 net/slapi-nis/files/patch-configure.ac             | 24 +++++++++++++
 net/slapi-nis/files/patch-src_back-sch-sss_idmap.c | 13 +++++++
 net/slapi-nis/pkg-descr                            |  3 ++
 7 files changed, 94 insertions(+)

diff --git a/net/Makefile b/net/Makefile
index 22505ed6afda..6718efac5b3a 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1546,6 +1546,7 @@
     SUBDIR += sipsak
     SUBDIR += sl2tps
     SUBDIR += slackcat
+    SUBDIR += slapi-nis
     SUBDIR += slurm
     SUBDIR += smb4k
     SUBDIR += smbldap-tools
diff --git a/net/slapi-nis/Makefile b/net/slapi-nis/Makefile
new file mode 100644
index 000000000000..a3afa4da765b
--- /dev/null
+++ b/net/slapi-nis/Makefile
@@ -0,0 +1,41 @@
+PORTNAME=	slapi-nis
+DISTVERSION=	0.70.0
+CATEGORIES=	net
+MASTER_SITES=	https://codeberg.org/freeipa/slapi-nis/archive/
+
+MAINTAINER=	[email protected]
+COMMENT=	Schema Compatibility plugin for 389 Directory Server
+WWW=		https://codeberg.org/freeipa/slapi-nis
+
+LICENSE=	GPLv3+
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+BUILD_DEPENDS=	${LOCALBASE}/include/dirsrv/slapi-plugin.h:net/389-ds-base
+LIB_DEPENDS=	libldap.so:net/openldap26-client \
+		libnspr4.so:devel/nspr \
+		libnss3.so:security/nss \
+		libsss_nss_idmap.so:security/sssd2
+RUN_DEPENDS=	389-ds-base>=0:net/389-ds-base
+
+USES=		autoreconf gmake libtool localbase:ldflags pkgconfig
+
+GNU_CONFIGURE=	yes
+
+CONFIGURE_ARGS=	--disable-nis \
+		--disable-static \
+		--enable-be-txns-by-default \
+		--with-idviews \
+		--with-ldap=openldap \
+		--with-nsswitch \
+		--with-pam \
+		--with-pam-service=system \
+		--with-server=dirsrv \
+		--with-sss-nss-idmap
+
+INSTALL_TARGET=	install-strip
+
+WRKSRC=		${WRKDIR}/${PORTNAME}
+
+PLIST_FILES=	lib/dirsrv/plugins/schemacompat-plugin.so
+
+.include <bsd.port.mk>
diff --git a/net/slapi-nis/distinfo b/net/slapi-nis/distinfo
new file mode 100644
index 000000000000..5316d6d296a7
--- /dev/null
+++ b/net/slapi-nis/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1786096248
+SHA256 (slapi-nis-0.70.0.tar.gz) = d38cb3eb4c6d147fa9e4012ed96676847d8b14ec2c8b81c0b092534f69a8c3d5
+SIZE (slapi-nis-0.70.0.tar.gz) = 294083
diff --git a/net/slapi-nis/files/patch-Makefile.am b/net/slapi-nis/files/patch-Makefile.am
new file mode 100644
index 000000000000..eec268180929
--- /dev/null
+++ b/net/slapi-nis/files/patch-Makefile.am
@@ -0,0 +1,9 @@
+--- Makefile.am.orig	2026-08-07 12:00:39.904332000 +0200
++++ Makefile.am	2026-08-07 12:00:39.907284000 +0200
+@@ -1,5 +1,5 @@
+ EXTRA_DIST = COPYING NEWS README STATUS slapi-nis.spec doc/sch-*.txt doc/format-*.txt doc/betxn-notes.txt doc/examples/sch-*.ldif.in doc/devel doc/ipa
+-SUBDIRS = yp src tests
++SUBDIRS = yp src
+ ACLOCAL_AMFLAGS=-I m4
+ 
+ noinst_DATA =
diff --git a/net/slapi-nis/files/patch-configure.ac b/net/slapi-nis/files/patch-configure.ac
new file mode 100644
index 000000000000..c5953cb67245
--- /dev/null
+++ b/net/slapi-nis/files/patch-configure.ac
@@ -0,0 +1,24 @@
+--- configure.ac.orig	2026-08-07 11:29:23.851720000 +0200
++++ configure.ac	2026-08-07 11:33:11.008191000 +0200
+@@ -608,19 +608,9 @@
+ AC_SUBST(test_gid)
+ test_basedn=dc=example,dc=com
+ AC_SUBST(test_basedn)
+-while true ; do
+-	test_ldapport=$RANDOM
+-	if test $test_ldapport -ge 1024 ; then
+-		break
+-	fi
+-done
++test_ldapport=`expr $$ % 64512 + 1024`
+ AC_SUBST(test_ldapport)
+-while true ; do
+-	test_nisport=$RANDOM
+-	if test $test_nisport -ge 1024 ; then
+-		break
+-	fi
+-done
++test_nisport=`expr $$ % 63488 + 2048`
+ if test "x$enable_nis" = xyes ; then
+ AC_SUBST(test_nisport)
+ NIS_PLUGIN_CONTINUE_WITHOUT_PORTMAP_ENV="nis_plugin_continue_without_portmap_for_testing_only_no_i_really_mean_that"
diff --git a/net/slapi-nis/files/patch-src_back-sch-sss_idmap.c b/net/slapi-nis/files/patch-src_back-sch-sss_idmap.c
new file mode 100644
index 000000000000..22126afb2995
--- /dev/null
+++ b/net/slapi-nis/files/patch-src_back-sch-sss_idmap.c
@@ -0,0 +1,13 @@
+--- src/back-sch-sss_idmap.c.orig	2026-08-07 11:56:09.226628000 +0200
++++ src/back-sch-sss_idmap.c	2026-08-07 11:56:09.233987000 +0200
+@@ -47,8 +47,10 @@
+         return NSS_STATUS_SUCCESS;
+     case ENOENT:
+         return NSS_STATUS_NOTFOUND;
++#ifdef ETIME
+     case ETIME:
+         /* fall-through */
++#endif
+     case ERANGE:
+         return NSS_STATUS_TRYAGAIN;
+     case ETIMEDOUT:
diff --git a/net/slapi-nis/pkg-descr b/net/slapi-nis/pkg-descr
new file mode 100644
index 000000000000..294faa55eb5c
--- /dev/null
+++ b/net/slapi-nis/pkg-descr
@@ -0,0 +1,3 @@
+slapi-nis provides the Schema Compatibility plugin for 389 Directory
+Server. The plugin presents alternate LDAP views required by FreeIPA
+compatibility features, including support for SSSD ID mapping and ID views.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.