Hi,

the update below has been prepared with Alexis Vachette.  It makes use
of an embedded copy of LMDB as store backend.  Upstream knot already
uses MDB_WRITEMAP on OpenBSD by default, I added another patch that
always activates MDB_WRITEMAP in the lmdb sources.  This would be needed
if we ever activate the rosedb module.

Upstream has already released knot-2.4.3 but I want to stop delaying the
update to the 2.X.Y branch.  I do not use knot myself;  Alexis
successfully tested this on a master setup, but additional tests and
reports are welcome, especially if you're migrating from knot-1.6.8.
/usr/local/libexec/knot1to2 might help.

Thanks to espie@ and sthen@ for the WANT_CXX hints.

ok?


Index: Makefile
===================================================================
RCS file: /d/cvs/ports/net/knot/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- Makefile    30 Dec 2016 15:47:55 -0000      1.13
+++ Makefile    26 May 2017 15:57:07 -0000
@@ -1,14 +1,12 @@
 # $OpenBSD: Makefile,v 1.13 2016/12/30 15:47:55 jca Exp $
 
-PORTROACH =            limit:^1\. skipv:1.99.1
-PORTROACH_COMMENT =    knot-2.x uses __thread and lmdb
-
 COMMENT =              authoritative DNS server
 
-DISTNAME =             knot-1.6.8
+DISTNAME =             knot-2.4.2
 
-SHARED_LIBS +=  zscanner             0.0      # .0.1
-SHARED_LIBS +=  knot                 0.0      # .0.1
+SHARED_LIBS += zscanner             1.0      # .1.0
+SHARED_LIBS += knot                 1.0      # .5.0
+SHARED_LIBS += dnssec               0.0      # .3.0
 
 CATEGORIES =           net
 
@@ -20,30 +18,33 @@ MAINTAINER =                Pierre Emeriaud <petrus.lt
 # GPLv3+
 PERMIT_PACKAGE_CDROM = Yes
 
-WANTLIB += c crypto idn m pthread urcu urcu-common z
+WANTLIB += c curses edit ffi gmp gnutls hogweed idn idn2 jansson
+WANTLIB += m nettle p11-kit pthread tasn1 unistring urcu urcu-common
+WANTLIB += z
 
 MASTER_SITES =         https://secure.nic.cz/files/knot-dns/
 
 EXTRACT_SUFX =         .tar.xz
 
-MODULES =              devel/gettext gcc4
-# for atomic builtins: __sync_add_and_fetch_4, __sync_sub_and_fetch_4
-MODGCC4_ARCHS =                arm
+MODULES =              devel/gettext
+# need TLS emulation, and atomic builtins on arm
+WANT_CXX =             base gcc
+MODGCC4_LANGS =                c
 
 BUILD_DEPENDS =                devel/bison
 LIB_DEPENDS =          devel/libidn \
-                       devel/liburcu
+                       devel/liburcu \
+                       devel/jansson \
+                       security/gnutls
 
 USE_GMAKE =            Yes
 USE_LIBTOOL=           gnu
 CONFIGURE_STYLE =      gnu
 CONFIGURE_ARGS +=      --with-storage=${LOCALSTATEDIR}/db/knot \
                        --with-libidn \
-                       --disable-dnstap \
-                       --disable-lmdb
-CONFIGURE_ENV =                CPPFLAGS="-I${LOCALBASE}/include" \
-                       LDFLAGS="-L${LOCALBASE}/lib" \
-                       ac_cv_path_PDFLATEX="false" \
+                       --disable-dnstap
+
+CONFIGURE_ENV =                ac_cv_path_PDFLATEX="false" \
                        ac_cv_path_SPHINXBUILD="false"
 
 post-install:
Index: distinfo
===================================================================
RCS file: /d/cvs/ports/net/knot/distinfo,v
retrieving revision 1.6
diff -u -p -r1.6 distinfo
--- distinfo    11 Aug 2016 12:04:17 -0000      1.6
+++ distinfo    10 Apr 2017 17:06:01 -0000
@@ -1,2 +1,2 @@
-SHA256 (knot-1.6.8.tar.xz) = jZXf01n7GHKJ19CF4hfY+rtgIhNdNYE07UFlQYomkjc=
-SIZE (knot-1.6.8.tar.xz) = 806748
+SHA256 (knot-2.4.2.tar.xz) = N9p/zx8ZS9Y3bGPYxPooohiZtWo/O2PbpwlXQKV1LFI=
+SIZE (knot-2.4.2.tar.xz) = 1109156
Index: patches/patch-samples_knot_sample_conf_in
===================================================================
RCS file: /d/cvs/ports/net/knot/patches/patch-samples_knot_sample_conf_in,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-samples_knot_sample_conf_in
--- patches/patch-samples_knot_sample_conf_in   12 Apr 2015 16:07:13 -0000      
1.1.1.1
+++ patches/patch-samples_knot_sample_conf_in   26 May 2017 15:00:48 -0000
@@ -1,23 +1,13 @@
 $OpenBSD: patch-samples_knot_sample_conf_in,v 1.1.1.1 2015/04/12 16:07:13 jca 
Exp $
---- samples/knot.sample.conf.in.orig   Tue Feb 10 23:44:11 2015
-+++ samples/knot.sample.conf.in        Tue Feb 10 23:44:44 2015
-@@ -13,7 +13,7 @@ system {
+Index: samples/knot.sample.conf.in
+--- samples/knot.sample.conf.in.orig
++++ samples/knot.sample.conf.in
+@@ -9,7 +9,7 @@ server:
+     # Listen on all configured IPv6 interfaces.
+     listen: ::@53
+     # User for running the server.
+-    # user: knot:knot
++    user: _knot:_knot
  
-   # User for running server
-   # May also specify user.group (e.g. knot.knot)
--  user knot.knot;
-+  user _knot._knot;
- 
-   # Directory for storing run-time data
-   # e.g. PID file and control sockets
-@@ -83,7 +83,7 @@ log {
-   }
- 
-   # Log warnings, errors and criticals to stderr
--  stderr {
--    any warning;
--  }
-+  #stderr {
-+  #  any warning;
-+  #}
- }
+ log:
+     # Log info and more serious events to syslog.
Index: patches/patch-src_contrib_lmdb_mdb_c
===================================================================
RCS file: patches/patch-src_contrib_lmdb_mdb_c
diff -N patches/patch-src_contrib_lmdb_mdb_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_contrib_lmdb_mdb_c        26 May 2017 15:03:06 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+Index: src/contrib/lmdb/mdb.c
+--- src/contrib/lmdb/mdb.c.orig
++++ src/contrib/lmdb/mdb.c
+@@ -4921,6 +4921,12 @@ mdb_env_open(MDB_env *env, const char *path, unsigned 
+       if (env->me_fd!=INVALID_HANDLE_VALUE || (flags & 
~(CHANGEABLE|CHANGELESS)))
+               return EINVAL;
+ 
++      /*
++       * Always force MDB_WRITEMAP, the code does the right thing if
++       * asking for a read-only handle.
++       */
++      flags |= MDB_WRITEMAP;
++
+       flags |= env->me_flags;
+ 
+       rc = mdb_fname_init(path, flags, &fname);
Index: patches/patch-src_libknot_lookup_h
===================================================================
RCS file: patches/patch-src_libknot_lookup_h
diff -N patches/patch-src_libknot_lookup_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_libknot_lookup_h  26 May 2017 15:03:06 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+Index: src/libknot/lookup.h
+--- src/libknot/lookup.h.orig
++++ src/libknot/lookup.h
+@@ -25,6 +25,7 @@
+ #pragma once
+ 
+ #include <string.h>
++#include <strings.h>
+ 
+ /*!
+  * \brief A general purpose lookup table.
Index: pkg/PLIST
===================================================================
RCS file: /d/cvs/ports/net/knot/pkg/PLIST,v
retrieving revision 1.2
diff -u -p -r1.2 PLIST
--- pkg/PLIST   12 Apr 2015 16:26:10 -0000      1.2
+++ pkg/PLIST   16 May 2017 01:29:36 -0000
@@ -3,21 +3,107 @@
 @newuser _knot:751:_knot::Knot DNS Server:/var/empty:/sbin/nologin
 @bin bin/kdig
 @bin bin/khost
+@bin bin/kjournalprint
 @bin bin/knsec3hash
 @bin bin/knsupdate
+@bin bin/kzonecheck
+include/dnssec/
+include/dnssec/binary.h
+include/dnssec/crypto.h
+include/dnssec/dnssec.h
+include/dnssec/error.h
+include/dnssec/event.h
+include/dnssec/kasp.h
+include/dnssec/key.h
+include/dnssec/keyid.h
+include/dnssec/keystate.h
+include/dnssec/keystore.h
+include/dnssec/keytag.h
+include/dnssec/keyusage.h
+include/dnssec/list.h
+include/dnssec/nsec.h
+include/dnssec/random.h
+include/dnssec/sign.h
+include/dnssec/tsig.h
+include/dnssec/version.h
+include/libknot/
+include/libknot/attribute.h
+include/libknot/binary.h
+include/libknot/codes.h
+include/libknot/consts.h
+include/libknot/control/
+include/libknot/control/control.h
+include/libknot/cookies/
+include/libknot/cookies/alg-fnv64.h
+include/libknot/cookies/client.h
+include/libknot/cookies/server.h
+include/libknot/db/
+include/libknot/db/db.h
+include/libknot/db/db_lmdb.h
+include/libknot/db/db_trie.h
+include/libknot/descriptor.h
+include/libknot/dname.h
+include/libknot/errcode.h
+include/libknot/error.h
+include/libknot/libknot.h
+include/libknot/lookup.h
+include/libknot/mm_ctx.h
+include/libknot/packet/
+include/libknot/packet/compr.h
+include/libknot/packet/pkt.h
+include/libknot/packet/rrset-wire.h
+include/libknot/packet/wire.h
+include/libknot/rdata.h
+include/libknot/rdataset.h
+include/libknot/rrset-dump.h
+include/libknot/rrset.h
+include/libknot/rrtype/
+include/libknot/rrtype/aaaa.h
+include/libknot/rrtype/dnskey.h
+include/libknot/rrtype/ds.h
+include/libknot/rrtype/naptr.h
+include/libknot/rrtype/nsec.h
+include/libknot/rrtype/nsec3.h
+include/libknot/rrtype/nsec3param.h
+include/libknot/rrtype/opt-cookie.h
+include/libknot/rrtype/opt.h
+include/libknot/rrtype/rdname.h
+include/libknot/rrtype/rrsig.h
+include/libknot/rrtype/soa.h
+include/libknot/rrtype/tsig.h
+include/libknot/rrtype/txt.h
+include/libknot/tsig-op.h
+include/libknot/tsig.h
+include/libknot/version.h
+include/zscanner/
+include/zscanner/error.h
+include/zscanner/scanner.h
+include/zscanner/version.h
+lib/libdnssec.a
+lib/libdnssec.la
+@lib lib/libdnssec.so.${LIBdnssec_VERSION}
 lib/libknot.a
 lib/libknot.la
 @lib lib/libknot.so.${LIBknot_VERSION}
 lib/libzscanner.a
 lib/libzscanner.la
 @lib lib/libzscanner.so.${LIBzscanner_VERSION}
+lib/pkgconfig/libdnssec.pc
+lib/pkgconfig/libknot.pc
+lib/pkgconfig/libzscanner.pc
+@bin libexec/knot1to2
 @man man/man1/kdig.1
 @man man/man1/khost.1
+@man man/man1/kjournalprint.1
+@man man/man1/knot1to2.1
 @man man/man1/knsec3hash.1
 @man man/man1/knsupdate.1
+@man man/man1/kzonecheck.1
 @man man/man5/knot.conf.5
+@man man/man8/keymgr.8
 @man man/man8/knotc.8
 @man man/man8/knotd.8
+@bin sbin/keymgr
 @bin sbin/knotc
 @bin sbin/knotd
 share/examples/knot/
Index: pkg/knot.rc
===================================================================
RCS file: /d/cvs/ports/net/knot/pkg/knot.rc,v
retrieving revision 1.4
diff -u -p -r1.4 knot.rc
--- pkg/knot.rc 14 Apr 2015 06:38:23 -0000      1.4
+++ pkg/knot.rc 10 Apr 2017 17:06:01 -0000
@@ -4,7 +4,7 @@
 
 daemon="${PREFIX}/sbin/knotd -d"
 knotc="${PREFIX}/sbin/knotc"
-knotcheckconf="${knotc} checkconf"
+knotcheckconf="${knotc} conf-check"
 
 . /etc/rc.d/rc.subr
 

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to