Tue Sep 20 17:13:24 2022 UTC ()
neomutt: fix build with bdb, add option for lmdb.


(nikita)
diff -r1.79 -r1.80 pkgsrc/mail/neomutt/Makefile
diff -r1.60 -r1.61 pkgsrc/mail/neomutt/distinfo
diff -r1.17 -r1.18 pkgsrc/mail/neomutt/options.mk
diff -r0 -r1.1 pkgsrc/mail/neomutt/patches/patch-auto.def

cvs diff -r1.79 -r1.80 pkgsrc/mail/neomutt/Makefile (expand / switch to unified diff)

--- pkgsrc/mail/neomutt/Makefile 2022/06/28 11:34:23 1.79
+++ pkgsrc/mail/neomutt/Makefile 2022/09/20 17:13:24 1.80
@@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
1# $NetBSD: Makefile,v 1.79 2022/06/28 11:34:23 wiz Exp $ 1# $NetBSD: Makefile,v 1.80 2022/09/20 17:13:24 nikita Exp $
2 2
3DISTNAME= neomutt-20220429 3DISTNAME= neomutt-20220429
4PKGREVISION= 1 4PKGREVISION= 2
5CATEGORIES= mail 5CATEGORIES= mail
6MASTER_SITES= ${MASTER_SITE_GITHUB:=neomutt/} 6MASTER_SITES= ${MASTER_SITE_GITHUB:=neomutt/}
7GITHUB_TAG= ${PKGVERSION_NOREV} 7GITHUB_TAG= ${PKGVERSION_NOREV}
8 8
9MAINTAINER= pkgsrc-users@NetBSD.org 9MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= https://www.neomutt.org/ 10HOMEPAGE= https://www.neomutt.org/
11COMMENT= Fork of mutt with integrated community patches 11COMMENT= Fork of mutt with integrated community patches
12LICENSE= gnu-gpl-v2 OR gnu-gpl-v3 # or newer 12LICENSE= gnu-gpl-v2 OR gnu-gpl-v3 # or newer
13 13
14BUILD_DEPENDS+= gettext-tools-[0-9]*:../../devel/gettext-tools 14BUILD_DEPENDS+= gettext-tools-[0-9]*:../../devel/gettext-tools
15BUILD_DEPENDS+= libxslt-[0-9]*:../../textproc/libxslt 15BUILD_DEPENDS+= libxslt-[0-9]*:../../textproc/libxslt
16BUILD_DEPENDS+= docbook-xsl-[0-9]*:../../textproc/docbook-xsl 16BUILD_DEPENDS+= docbook-xsl-[0-9]*:../../textproc/docbook-xsl
17BUILD_DEPENDS+= w3m-[0-9]*:../../www/w3m 17BUILD_DEPENDS+= w3m-[0-9]*:../../www/w3m

cvs diff -r1.60 -r1.61 pkgsrc/mail/neomutt/distinfo (expand / switch to unified diff)

--- pkgsrc/mail/neomutt/distinfo 2022/04/29 13:47:42 1.60
+++ pkgsrc/mail/neomutt/distinfo 2022/09/20 17:13:24 1.61
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
1$NetBSD: distinfo,v 1.60 2022/04/29 13:47:42 wiz Exp $ 1$NetBSD: distinfo,v 1.61 2022/09/20 17:13:24 nikita Exp $
2 2
3BLAKE2s (neomutt-20220429-20220429.tar.gz) = c049d271b5c4083b3f7b1e12dfd2d3c879f02acb2767fb9942c4825ac6a411e3 3BLAKE2s (neomutt-20220429-20220429.tar.gz) = c049d271b5c4083b3f7b1e12dfd2d3c879f02acb2767fb9942c4825ac6a411e3
4SHA512 (neomutt-20220429-20220429.tar.gz) = ce151cabe9fe0c45f379dd7a71790f600faa9283c79a486c1421b5fe3b19b7f12d71dc36ec330e1b28b26ed83bf4c47b656ca823c484105ea3f80ef9166e7f0b 4SHA512 (neomutt-20220429-20220429.tar.gz) = ce151cabe9fe0c45f379dd7a71790f600faa9283c79a486c1421b5fe3b19b7f12d71dc36ec330e1b28b26ed83bf4c47b656ca823c484105ea3f80ef9166e7f0b
5Size (neomutt-20220429-20220429.tar.gz) = 3774374 bytes 5Size (neomutt-20220429-20220429.tar.gz) = 3774374 bytes
 6SHA1 (patch-auto.def) = c7acaa8ec5ecad6f2465d293a5a27a58529a25d0

cvs diff -r1.17 -r1.18 pkgsrc/mail/neomutt/options.mk (expand / switch to unified diff)

--- pkgsrc/mail/neomutt/options.mk 2021/10/22 17:11:54 1.17
+++ pkgsrc/mail/neomutt/options.mk 2022/09/20 17:13:24 1.18
@@ -1,20 +1,21 @@ @@ -1,20 +1,21 @@
1# $NetBSD: options.mk,v 1.17 2021/10/22 17:11:54 wiz Exp $ 1# $NetBSD: options.mk,v 1.18 2022/09/20 17:13:24 nikita Exp $
2 2
3PKG_OPTIONS_VAR= PKG_OPTIONS.neomutt 3PKG_OPTIONS_VAR= PKG_OPTIONS.neomutt
4PKG_OPTIONS_REQUIRED_GROUPS= display 4PKG_OPTIONS_REQUIRED_GROUPS= display
5PKG_OPTIONS_GROUP.display= curses ncurses ncursesw 5PKG_OPTIONS_GROUP.display= curses ncurses ncursesw
6PKG_SUPPORTED_OPTIONS= debug gpgme gssapi idn ssl smime sasl 6PKG_SUPPORTED_OPTIONS= tokyocabinet lmdb
7PKG_SUPPORTED_OPTIONS+= tokyocabinet notmuch lua 7PKG_SUPPORTED_OPTIONS+= debug gpgme gssapi idn ssl smime sasl
 8PKG_SUPPORTED_OPTIONS+= notmuch lua
8PKG_SUGGESTED_OPTIONS= gpgme gssapi idn ncursesw sasl smime ssl 9PKG_SUGGESTED_OPTIONS= gpgme gssapi idn ncursesw sasl smime ssl
9PKG_SUGGESTED_OPTIONS+= tokyocabinet notmuch 10PKG_SUGGESTED_OPTIONS+= tokyocabinet notmuch
10 11
11.include "../../mk/bsd.options.mk" 12.include "../../mk/bsd.options.mk"
12 13
13### 14###
14### GSSAPI 15### GSSAPI
15### 16###
16CONFIGURE_ENV+= ac_cv_path_KRB5CFGPATH=${KRB5_CONFIG} 17CONFIGURE_ENV+= ac_cv_path_KRB5CFGPATH=${KRB5_CONFIG}
17.if !empty(PKG_OPTIONS:Mgssapi) 18.if !empty(PKG_OPTIONS:Mgssapi)
18. include "../../mk/krb5.buildlink3.mk" 19. include "../../mk/krb5.buildlink3.mk"
19CONFIGURE_ARGS+= --with-gss=${KRB5BASE} 20CONFIGURE_ARGS+= --with-gss=${KRB5BASE}
20.endif 21.endif
@@ -77,27 +78,32 @@ PLIST_VARS+= smime @@ -77,27 +78,32 @@ PLIST_VARS+= smime
77.if !empty(PKG_OPTIONS:Msmime) 78.if !empty(PKG_OPTIONS:Msmime)
78USE_TOOLS+= perl:run 79USE_TOOLS+= perl:run
79REPLACE_PERL+= */*.pl contrib/smime_keys 80REPLACE_PERL+= */*.pl contrib/smime_keys
80. include "../../security/openssl/buildlink3.mk" 81. include "../../security/openssl/buildlink3.mk"
81CONFIGURE_ARGS+= --smime 82CONFIGURE_ARGS+= --smime
82PLIST.smime= yes 83PLIST.smime= yes
83.else 84.else
84CONFIGURE_ARGS+= --disable-smime 85CONFIGURE_ARGS+= --disable-smime
85.endif 86.endif
86 87
87### 88###
88### Header cache 89### Header cache
89### 90###
90.if !empty(PKG_OPTIONS:Mtokyocabinet) 91.if !empty(PKG_OPTIONS:Mlmdb)
 92.include "../../databases/lmdb/buildlink3.mk"
 93CONFIGURE_ARGS+= --lmdb
 94CONFIGURE_ARGS+= --disable-gdbm
 95CONFIGURE_ARGS+= --disable-bdb
 96.elif !empty(PKG_OPTIONS:Mtokyocabinet)
91.include "../../databases/tokyocabinet/buildlink3.mk" 97.include "../../databases/tokyocabinet/buildlink3.mk"
92CONFIGURE_ARGS+= --tokyocabinet 98CONFIGURE_ARGS+= --tokyocabinet
93CONFIGURE_ARGS+= --disable-gdbm 99CONFIGURE_ARGS+= --disable-gdbm
94CONFIGURE_ARGS+= --disable-bdb 100CONFIGURE_ARGS+= --disable-bdb
95.else 101.else
96BDB_ACCEPTED= db4 db5 102BDB_ACCEPTED= db4 db5
97BUILDLINK_TRANSFORM+= l:db:${BDB_TYPE} 103BUILDLINK_TRANSFORM+= l:db:${BDB_TYPE}
98.include "../../mk/bdb.buildlink3.mk" 104.include "../../mk/bdb.buildlink3.mk"
99CONFIGURE_ARGS+= --bdb 105CONFIGURE_ARGS+= --bdb
100CONFIGURE_ARGS+= --disable-gdbm 106CONFIGURE_ARGS+= --disable-gdbm
101# BDB_INCLUDE_DIR_ and BDB_LIB_DIR don't have to be particularly accurate 107# BDB_INCLUDE_DIR_ and BDB_LIB_DIR don't have to be particularly accurate
102# since the real -I and -L flags are added by buildlink already. 108# since the real -I and -L flags are added by buildlink already.
103CONFIGURE_ENV+= BDB_INCLUDE_DIR=${BDBBASE}/include 109CONFIGURE_ENV+= BDB_INCLUDE_DIR=${BDBBASE}/include

File Added: pkgsrc/mail/neomutt/patches/Attic/patch-auto.def
$NetBSD: patch-auto.def,v 1.1 2022/09/20 17:13:24 nikita Exp $

Improve Berkeley DB detection, account for more flavours
Fixes #3525
upstream commited as c12b986765091933bdadbf3d0a341e66bd42404a

--- auto.def.orig	2022-04-29 14:15:32.000000000 +0200
+++ auto.def	2022-09-20 11:49:33.294171932 +0200
@@ -166,8 +166,8 @@
   # relative --enable-opt to true. This allows "--with-opt=/usr" to be used as
   # a shortcut for "--opt --with-opt=/usr".
   foreach opt {
-    bdb gdbm gnutls gpgme gss homespool idn idn2 kyotocabinet lmdb lua lz4 
-    mixmaster nls notmuch pcre2 qdbm rocksdb sasl sqlite ssl tdb tokyocabinet 
+    bdb gdbm gnutls gpgme gss homespool idn idn2 kyotocabinet lmdb lua lz4
+    mixmaster nls notmuch pcre2 qdbm rocksdb sasl sqlite ssl tdb tokyocabinet
     zlib zstd
   } {
     if {[opt-val with-$opt] ne {}} {
@@ -311,6 +311,7 @@
     lappend extensions -D_ALL_SOURCE=1
     lappend extensions -D_GNU_SOURCE=1
     lappend extensions -D__EXTENSIONS__
+    lappend extensions -D_XOPEN_SOURCE_EXTENDED
     define-append CFLAGS_FOR_BUILD {*}$extensions
     define-append CFLAGS {*}$extensions
   }
@@ -502,18 +503,17 @@
     msg-result $gpgme_version
     if {[get-define want-autocrypt]} {
       if {$gpgme_maj < 1 || $gpgme_min < 8} {
+        # GPGME v1.8.0 was released on 2016-11-16
         user-error "Found GPGME version $gpgme_version, need 1.8.0 for AutoCrypt"
       }
     } else {
       if {$gpgme_maj < 1 || $gpgme_min < 4} {
+        # GPGME v1.4.0 was released on 2013-02-26
         user-error "Found GPGME version $gpgme_version, need 1.4.0"
       }
     }
     define GPGME_VERSION_NUMBER [format "0x%02x%02x%02x" $gpgme_maj $gpgme_min $gpgme_patch]
 
-    # RHEL6 doesn't have this function yet
-    cc-check-function-in-lib gpgme_op_export_keys gpgme
-
     # CFLAGS
     if {[catch {exec-with-stderr $gpgme_config --cflags} res err]} {
       user-error "Could not derive --cflags from $gpgme_config"
@@ -945,28 +941,16 @@
 ###############################################################################
 # Header cache - bdb
 if {[get-define want-bdb]} {
-  set bdb_versions [opt-val with-bdb-version { 5.3 6.2 4.8 }] ;# Will be checked in order
-  set bdb_prefix [opt-val with-bdb $prefix]
-
-  foreach ver $bdb_versions {
-    lassign [split $ver .] maj min
-    # This is ugly, but it allows us to not have an inner loop
-    lappend bdb_majors   $maj $maj         $maj           $maj        $maj    $maj
-    lappend bdb_minors   $min $min         $min           $min        $min    $min
-    lappend bdb_exploded ""   db-$maj-$min db${maj}${min} db$maj.$min db-$maj db$maj
-  }
-
-  foreach maj $bdb_majors min $bdb_minors ver $bdb_exploded {
-    set ver_inc_dir $bdb_prefix/include/$ver
-    set ver_lib_dir $bdb_prefix/$::libdir_tail/$ver
+  proc find_bdb {bdb_prefix maj min path_tail lib_names} {
+    set ver_inc_dir $bdb_prefix/include/$path_tail
+    set ver_lib_dir $bdb_prefix/$::libdir_tail/$path_tail
     set ver_inc_file $ver_inc_dir/db.h
-    set ver_lib_file  db-$maj.$min
 
     # File exists?
     msg-checking "Checking for BerkeleyDB in $ver_inc_dir..."
     if {![file exists $ver_inc_file]} {
       msg-result "no"
-      continue
+      return 0
     }
 
     # Version is coherent?
@@ -975,23 +959,44 @@
     if {$inc_maj eq {}   || $inc_min eq {} ||
         $inc_maj != $maj || $inc_min != $min} {
       msg-result "no (expecting $maj.$min, got $inc_maj.$inc_min)"
-      continue
+      return 0
     }
     msg-result "yes"
 
     # Can link?
-    cc-with [list -libs -L$ver_lib_dir -cflags -I$ver_inc_dir] {
-      if {![check-inc-and-lib bdb {} db.h db_env_create db-$maj.$min]} {
-        msg-result "no"
-        continue
+    foreach lib_name $lib_names {
+      cc-with [list -libs -L$ver_lib_dir -cflags -I$ver_inc_dir] {
+        check-inc-and-lib bdb {} db.h db_env_create $lib_name
+      }
+      if {[have-feature bdb]} {
+        define-append CFLAGS  -I$ver_inc_dir
+        define-append LDFLAGS -L$ver_lib_dir
+        define-append LIBS    -l$lib_name
+        define-append HCACHE_BACKENDS "bdb"
+        define USE_HCACHE
+        return 1
+      }
+    }
+    return 0
+  }
+
+  set bdb_versions [opt-val with-bdb-version { 5.3 6.2 4.8 }] ;# Will be checked in order
+  set bdb_prefix [opt-val with-bdb $prefix]
+
+  foreach ver $bdb_versions {
+    if {[have-feature bdb]} {
+      break
+    }
+    lassign [split $ver .] maj min
+    foreach path_tail [list "" db-$maj-$min db${maj}${min} db$maj.$min db-$maj db$maj] {
+      if {[have-feature bdb]} {
+        break
+      }
+      set lib_names [list db$maj-$maj.$min db$maj-$maj db-$maj.$min db-$maj]
+      if {[find_bdb $bdb_prefix $maj $min $path_tail $lib_names]} {
+        break
       }
     }
-    define-append CFLAGS  -I$ver_inc_dir
-    define-append LDFLAGS -L$ver_lib_dir
-    define-append LIBS    -ldb-$maj.$min
-    define-append HCACHE_BACKENDS "bdb"
-    define USE_HCACHE
-    break
   }
 
   if {![have-feature bdb]} {