aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMuhammad Moinur Rahman <bofh@FreeBSD.org>2021-11-10 14:00:41 +0000
committerMuhammad Moinur Rahman <bofh@FreeBSD.org>2021-11-10 14:04:36 +0000
commit4b42d0528a99049c6bcaac088948658ffe57d835 (patch)
tree6543466b45ce640b8856761b48358dd43867cdda
parent145952adc12473b6241c8ed0cd1925190f9fa89b (diff)
downloadports-4b42d0528a99049c6bcaac088948658ffe57d835.tar.gz
ports-4b42d0528a99049c6bcaac088948658ffe57d835.zip
mail/dovecot-fts-xapian: Update version 1.4.1.14
- Fix runtime - Add USE_LDCONFIG PR: 259616 Reported by: bas@area536.com Approved by: otis (maintainer)
-rw-r--r--mail/dovecot-fts-xapian/Makefile4
-rw-r--r--mail/dovecot-fts-xapian/distinfo6
-rw-r--r--mail/dovecot-fts-xapian/files/patch-src_fts-backend-xapian-functions.cpp30
-rw-r--r--mail/dovecot-fts-xapian/files/patch-src_fts-xapian-plugin.c26
-rw-r--r--mail/dovecot-fts-xapian/files/patch-src_fts-xapian-plugin.h29
5 files changed, 90 insertions, 5 deletions
diff --git a/mail/dovecot-fts-xapian/Makefile b/mail/dovecot-fts-xapian/Makefile
index 978dc02be880..01a6bec1aae3 100644
--- a/mail/dovecot-fts-xapian/Makefile
+++ b/mail/dovecot-fts-xapian/Makefile
@@ -1,6 +1,5 @@
PORTNAME= fts-xapian
-DISTVERSION= 1.4.13
-PORTREVISION= 2
+DISTVERSION= 1.4.14
CATEGORIES= mail
MASTER_SITES= https://github.com/grosjo/fts-xapian/releases/download/${DISTVERSION}/
PKGNAMEPREFIX= dovecot-
@@ -17,6 +16,7 @@ LIB_DEPENDS= libicuuc.so:devel/icu \
RUN_DEPENDS= dovecot>=2.3.7:mail/dovecot
USES= autoreconf compiler:c++11-lang libtool pkgconfig
+USE_LDCONFIG= yes
GNU_CONFIGURE= yes
diff --git a/mail/dovecot-fts-xapian/distinfo b/mail/dovecot-fts-xapian/distinfo
index 4f98dad52fbf..364773719647 100644
--- a/mail/dovecot-fts-xapian/distinfo
+++ b/mail/dovecot-fts-xapian/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1633297573
-SHA256 (dovecot-fts-xapian-1.4.13.tar.gz) = a25a5ce4a70f1332408cd006ce1f326031eba5cdd3185ad467314a377af08ed4
-SIZE (dovecot-fts-xapian-1.4.13.tar.gz) = 2318781
+TIMESTAMP = 1636548959
+SHA256 (dovecot-fts-xapian-1.4.14.tar.gz) = 1f46f319f5b1c59f6359d1c1a55a7fa0988bfb3c3e8cdacec792961331ddb780
+SIZE (dovecot-fts-xapian-1.4.14.tar.gz) = 2563251
diff --git a/mail/dovecot-fts-xapian/files/patch-src_fts-backend-xapian-functions.cpp b/mail/dovecot-fts-xapian/files/patch-src_fts-backend-xapian-functions.cpp
new file mode 100644
index 000000000000..74bb89dd8c95
--- /dev/null
+++ b/mail/dovecot-fts-xapian/files/patch-src_fts-backend-xapian-functions.cpp
@@ -0,0 +1,30 @@
+--- src/fts-backend-xapian-functions.cpp.orig 2021-11-10 13:09:44 UTC
++++ src/fts-backend-xapian-functions.cpp
+@@ -505,7 +505,17 @@ static long fts_backend_xapian_current_time()
+
+ static long fts_backend_xapian_get_free_memory() // KB
+ {
+- return long(sysconf(_SC_AVPHYS_PAGES)*sysconf(_SC_PAGE_SIZE) / 1024.0);
++#ifdef __FreeBSD__
++ uint32_t m;
++ size_t len = sizeof(m);
++ sysctlbyname("vm.stats.vm.v_free_count", &m, &len, NULL, 0);
++ if(fts_xapian_settings.verbose>1) i_info("FTS Xapian: (BSD) Free pages %ld",long(m));
++ m = m * fts_xapian_settings.pagesize / 1024.0;
++ if(fts_xapian_settings.verbose>1) i_info("FTS Xapian: (BSD) Free memory %ld kB",long(m));
++ return long(m);
++#else
++ return long(sysconf(_SC_AVPHYS_PAGES) * fts_xapian_settings.pagesize / 1024.0);
++#endif
+ }
+
+ static bool fts_backend_xapian_test_memory()
+@@ -1100,7 +1110,7 @@ bool fts_backend_xapian_index_text(struct xapian_fts_b
+
+ XResultSet * result=fts_backend_xapian_query(dbx,xq,1);
+
+- Xapian::docid docid;
++ Xapian::docid docid = 0;
+ Xapian::Document * doc = NULL;
+
+ try
diff --git a/mail/dovecot-fts-xapian/files/patch-src_fts-xapian-plugin.c b/mail/dovecot-fts-xapian/files/patch-src_fts-xapian-plugin.c
new file mode 100644
index 000000000000..24d3a718d46c
--- /dev/null
+++ b/mail/dovecot-fts-xapian/files/patch-src_fts-xapian-plugin.c
@@ -0,0 +1,26 @@
+--- src/fts-xapian-plugin.c.orig 2021-11-10 13:11:59 UTC
++++ src/fts-xapian-plugin.c
+@@ -30,7 +30,14 @@ static void fts_xapian_mail_user_created(struct mail_u
+ fuser->set.lowmemory = XAPIAN_MIN_RAM;
+ fuser->set.partial = XAPIAN_DEFAULT_PARTIAL;
+ fuser->set.full = XAPIAN_DEFAULT_FULL;
+-
++
++#ifdef __FreeBSD__
++ size_t len = sizeof(fuser->set.pagesize);
++ sysctlbyname("hw.pagesize", &(fuser->set.pagesize), &len, NULL, 0);
++#else
++ fuser->set.pagesize = sysconf(_SC_PAGE_SIZE);
++#endif
++
+ const char * env = mail_user_plugin_getenv(user, "fts_xapian");
+ if (env == NULL)
+ {
+@@ -93,7 +100,6 @@ static void fts_xapian_mail_user_created(struct mail_u
+ fuser->set.partial = XAPIAN_DEFAULT_PARTIAL;
+ fuser->set.full = XAPIAN_DEFAULT_FULL;
+ }
+-
+
+ if (fts_mail_user_init(user, FALSE, &error) < 0) i_error("FTS Xapian: %s", error);
+
diff --git a/mail/dovecot-fts-xapian/files/patch-src_fts-xapian-plugin.h b/mail/dovecot-fts-xapian/files/patch-src_fts-xapian-plugin.h
new file mode 100644
index 000000000000..e6788f3145a5
--- /dev/null
+++ b/mail/dovecot-fts-xapian/files/patch-src_fts-xapian-plugin.h
@@ -0,0 +1,29 @@
+--- src/fts-xapian-plugin.h.orig 2021-11-10 13:06:54 UTC
++++ src/fts-xapian-plugin.h
+@@ -15,6 +15,12 @@
+ #include "module-context.h"
+ #include "fts-api-private.h"
+
++#ifdef __FreeBSD__
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#include <vm/vm_param.h>
++#endif
++
+ #define XAPIAN_FILE_PREFIX "xapian-indexes"
+ #define XAPIAN_TERM_SIZELIMIT 245L
+ #define XAPIAN_COMMIT_ENTRIES 1000000L
+@@ -27,9 +33,10 @@
+
+ struct fts_xapian_settings
+ {
+- int verbose;
+- long lowmemory;
+- long partial,full;
++ int verbose;
++ unsigned long pagesize;
++ long lowmemory;
++ long partial,full;
+ };
+
+ struct fts_xapian_user {