Bug 257502

Summary: net/openldap: Update to 2.5.6
Product: Ports & Packages Reporter: Michael Glaus <michael.glaus>
Component: Individual Port(s)Assignee: Xin LI <delphij>
Status: Closed Overcome By Events    
Severity: Affects Only Me CC: christian.schaettin, delphij
Priority: --- Keywords: needs-patch, needs-qa
Version: LatestFlags: koobs: maintainer-feedback? (delphij)
Hardware: Any   
OS: Any   
URL: https://www.openldap.org/software/release/changes.html
Bug Depends on: 257374    
Bug Blocks:    
Attachments:
Description Flags
WIP patch none

Description Michael Glaus 2021-07-30 12:52:54 UTC
OpenLDAP 2.5 got released in April 2021 and the current version is 2.5.6.

Is there any plan to add a port for this version?
Comment 1 Xin LI freebsd_committer freebsd_triage 2021-07-30 16:36:14 UTC
(In reply to michael.glaus from comment #0)
Yes, but this is currently blocked by bug 257374
Comment 2 Kubilay Kocak freebsd_committer freebsd_triage 2021-07-31 00:30:23 UTC
@Xin Will this be a new set of openldap25-* ports, or an update through a minor version?
Comment 3 Michael Glaus 2021-08-02 10:32:06 UTC
(In reply to Xin LI from comment #1)
Thank you for the answer.
Is there any time estimate when the port will be updated?
Comment 4 Xin LI freebsd_committer freebsd_triage 2021-08-26 06:31:16 UTC
Created attachment 227441 [details]
WIP patch
Comment 5 Xin LI freebsd_committer freebsd_triage 2021-08-26 07:57:51 UTC
Note that the current OpenLDAP usage of kqueue have some issues (long story short: kqueue descriptors shouldn't be close()'ed).  I've patched locally but am too busy to work on this for upcoming week.

diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c
index 9048d25fe..c3b9cb24f 100644
--- a/servers/slapd/daemon.c
+++ b/servers/slapd/daemon.c
@@ -228,19 +228,14 @@ static slap_daemon_st *slap_daemon;
 } while (0)
 
 /* a kqueue fd obtained before a fork can't be used in child process.
- * close it and reacquire it.
+ * reacquire it.
  */
 # define SLAP_SOCK_INIT2() do { \
-       close(slap_daemon[0].sd_kq); \
        slap_daemon[0].sd_kq = kqueue(); \
 } while (0)
 
 # define SLAP_SOCK_DESTROY(t) do { \
        int kq_i; \
-    if (slap_daemon[t].sd_kq > 0) { \
-        close(slap_daemon[t].sd_kq); \
-        slap_daemon[t].sd_kq = -1; \
-    } \
     for (kq_i = 0;  kq_i < 2;  kq_i++) { \
         if (slap_daemon[t].sd_kqc[kq_i].sd_changes != NULL) { \
             ch_free(slap_daemon[t].sd_kqc[kq_i].sd_changes); \
@@ -3155,10 +3150,6 @@ loop:
                connections_shutdown();
        }
 
-#ifdef HAVE_KQUEUE
-     close( slap_daemon[tid].sd_kq );
-#endif
-
        if ( LogTest( LDAP_DEBUG_ANY )) {
                int t = ldap_pvt_thread_pool_backload( &connection_pool );
                Debug( LDAP_DEBUG_ANY,