Bug 257502 - net/openldap: Update to 2.5.6
Summary: net/openldap: Update to 2.5.6
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Xin LI
URL: https://www.openldap.org/software/rel...
Keywords: needs-patch, needs-qa
Depends on: 257374
Blocks:
  Show dependency treegraph
 
Reported: 2021-07-30 12:52 UTC by Michael Glaus
Modified: 2021-09-06 20:51 UTC (History)
2 users (show)

See Also:
koobs: maintainer-feedback? (delphij)


Attachments
WIP patch (65.33 KB, patch)
2021-08-26 06:31 UTC, Xin LI
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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,