Date: Mon, 29 Jun 2026 20:28:34 +0000 From: Jochen Neumeister <joneum@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: f91f48a64c69 - main - net/389-ds-base: Fix instance creation Message-ID: <6a42d572.30109.6d4f9c0a@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by joneum: URL: https://cgit.FreeBSD.org/ports/commit/?id=f91f48a64c69f658f5ba6ed751fe9222d9fd1411 commit f91f48a64c69f658f5ba6ed751fe9222d9fd1411 Author: Jochen Neumeister <joneum@FreeBSD.org> AuthorDate: 2026-06-29 20:14:10 +0000 Commit: Jochen Neumeister <joneum@FreeBSD.org> CommitDate: 2026-06-29 20:27:24 +0000 net/389-ds-base: Fix instance creation Add a dedicated dirsrv user and group. Use FreeBSD-compatible paths for runtime files, databases, backups, LDIF files, and logs. Create the persistent database and log parent directories with suitable permissions. Detect getpeereid(3) during configuration and fix peer credential handling for LDAPI SASL EXTERNAL authentication. Sponsored by: Netzkommune GmbH --- GIDs | 2 +- UIDs | 2 +- net/389-ds-base/Makefile | 9 +++++++++ net/389-ds-base/files/patch-configure.ac | 11 +++++++++++ .../files/patch-ldap_admin_src_defaults.inf.in | 22 ++++++++++++++++++++++ .../files/patch-ldap_servers_slapd_getsocketpeer.c | 11 +++++++++++ net/389-ds-base/pkg-plist | 2 ++ 7 files changed, 57 insertions(+), 2 deletions(-) diff --git a/GIDs b/GIDs index 31accb8716a2..b93300ab2228 100644 --- a/GIDs +++ b/GIDs @@ -332,7 +332,7 @@ goimapnotify:*:387: autopulse:*:388: ldap:*:389: bunkerweb:*:390: -# free: 391 +dirsrv:*:391: # free: 392 # free: 393 # free: 394 diff --git a/UIDs b/UIDs index ddfeb2f110dd..d465e172f231 100644 --- a/UIDs +++ b/UIDs @@ -337,7 +337,7 @@ goimapnotify:*:387:387::0:0:Goimapnotify Daemon:/nonexistent:/usr/sbin/nologin autopulse:*:388:388::0:0:Autopulse Daemon:/nonexistent:/usr/sbin/nologin ldap:*:389:389::0:0:OpenLDAP Server:/nonexistent:/usr/sbin/nologin bunkerweb:*:390:390::0:0:Bunkerweb Service:/nonexistent:/usr/sbin/nologin -# free: 391 +dirsrv:*:391:391::0:0:389 Directory Server:/usr/local/share/dirsrv:/usr/sbin/nologin # free: 392 # free: 393 # free: 394 diff --git a/net/389-ds-base/Makefile b/net/389-ds-base/Makefile index 0b975415be01..0d4a2bfbff4d 100644 --- a/net/389-ds-base/Makefile +++ b/net/389-ds-base/Makefile @@ -1,5 +1,6 @@ PORTNAME= 389-ds-base DISTVERSION= 3.2.1 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= https://github.com/389ds/389-ds-base/releases/download/${PORTNAME}-${DISTVERSION}/ @@ -10,6 +11,9 @@ WWW= https://www.port389.org/ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/LICENSE +USERS= dirsrv +GROUPS= dirsrv + BUILD_DEPENDS= ${LOCALBASE}/include/crypt.h:security/libxcrypt \ cargo:lang/rust \ rsync:net/rsync @@ -41,6 +45,7 @@ CONFIGURE_ARGS= --disable-dependency-tracking \ --enable-rust-offline \ --with-netsnmp=${LOCALBASE} \ --with-openldap=${LOCALBASE} \ + --with-localrundir=/var/run \ --with-pythonexec=${PYTHON_CMD} MAKE_ENV= CARGO_HOME=${WRKSRC}/.cargo \ @@ -51,4 +56,8 @@ LIBS+= -lexecinfo BINARY_ALIAS= python3=${PYTHON_CMD} +post-install: + ${MKDIR} ${STAGEDIR}/var/db/dirsrv \ + ${STAGEDIR}/var/log/dirsrv + .include <bsd.port.mk> diff --git a/net/389-ds-base/files/patch-configure.ac b/net/389-ds-base/files/patch-configure.ac new file mode 100644 index 000000000000..d337c5dcae75 --- /dev/null +++ b/net/389-ds-base/files/patch-configure.ac @@ -0,0 +1,11 @@ +--- configure.ac.orig 2026-06-29 19:19:58 UTC ++++ configure.ac +@@ -811,6 +811,8 @@ esac + # gcc -march=native -dM -E - < /dev/null | grep SSE + # We can just use the define in GCC instead! + ++AC_CHECK_FUNCS([getpeereid]) ++ + AC_MSG_CHECKING([for GCC provided 64-bit atomic operations]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include <inttypes.h> diff --git a/net/389-ds-base/files/patch-ldap_admin_src_defaults.inf.in b/net/389-ds-base/files/patch-ldap_admin_src_defaults.inf.in new file mode 100644 index 000000000000..1b0fb1408349 --- /dev/null +++ b/net/389-ds-base/files/patch-ldap_admin_src_defaults.inf.in @@ -0,0 +1,22 @@ +--- ldap/admin/src/defaults.inf.in.orig 2026-06-29 16:38:28 UTC ++++ ldap/admin/src/defaults.inf.in +@@ -53,14 +53,14 @@ cert_dir = @instconfigdir@/slapd-{instance_name} + schema_dir = @instconfigdir@/slapd-{instance_name}/schema + cert_dir = @instconfigdir@/slapd-{instance_name} + +-lock_dir = @localrundir@/lock/dirsrv/slapd-{instance_name} ++lock_dir = @localrundir@/dirsrv/slapd-{instance_name} + log_dir = @localstatedir@/log/dirsrv/slapd-{instance_name} + access_log = @localstatedir@/log/dirsrv/slapd-{instance_name}/access + audit_log = @localstatedir@/log/dirsrv/slapd-{instance_name}/audit + error_log = @localstatedir@/log/dirsrv/slapd-{instance_name}/errors + security_log = @localstatedir@/log/dirsrv/slapd-{instance_name}/security +-db_dir = @localstatedir@/lib/dirsrv/slapd-{instance_name}/db +-db_home_dir = /dev/shm/slapd-{instance_name} +-backup_dir = @localstatedir@/lib/dirsrv/slapd-{instance_name}/bak +-ldif_dir = @localstatedir@/lib/dirsrv/slapd-{instance_name}/ldif ++db_dir = @localstatedir@/db/dirsrv/slapd-{instance_name}/db ++db_home_dir = @localstatedir@/db/dirsrv/slapd-{instance_name}/db ++backup_dir = @localstatedir@/db/dirsrv/slapd-{instance_name}/bak ++ldif_dir = @localstatedir@/db/dirsrv/slapd-{instance_name}/ldif + diff --git a/net/389-ds-base/files/patch-ldap_servers_slapd_getsocketpeer.c b/net/389-ds-base/files/patch-ldap_servers_slapd_getsocketpeer.c new file mode 100644 index 000000000000..e2ea7171ceca --- /dev/null +++ b/net/389-ds-base/files/patch-ldap_servers_slapd_getsocketpeer.c @@ -0,0 +1,11 @@ +--- ldap/servers/slapd/getsocketpeer.c.orig 2026-06-29 19:19:59 UTC ++++ ldap/servers/slapd/getsocketpeer.c +@@ -77,7 +77,7 @@ slapd_get_socket_peer(PRFileDesc *nspr_fd, uid_t *uid, + + #elif defined(HAVE_GETPEEREID) /* osx / some BSDs */ + +- if (0 == getpeereid(fd, &uid, &gid)) ++ if (0 == getpeereid(fd, uid, gid)) + ret = 0; + + #else /* hpux / Solaris9 / some BSDs - file descriptor cooperative auth */ diff --git a/net/389-ds-base/pkg-plist b/net/389-ds-base/pkg-plist index e1305c4897b6..c2c94149ab34 100644 --- a/net/389-ds-base/pkg-plist +++ b/net/389-ds-base/pkg-plist @@ -176,3 +176,5 @@ share/man/man5/dirsrv.systemd.5.gz share/man/man5/slapd-collations.conf.5.gz share/man/man8/ns-slapd.8.gz share/metainfo/389-console/org.port389.cockpit_console.metainfo.xml +@dir(root,wheel,0755) /var/db/dirsrv +@dir(root,wheel,0755) /var/log/dirsrvhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a42d572.30109.6d4f9c0a>
