On 2026/01/17 17:20, Sebastian Reitenbach wrote:

commentary inline, updated diff below

>            C++ Library: stdc++

alarm bells here, libstdc++ is wrong for amd64

| -V=           2016-07-R1
| -DISTNAME=    kismet-${V}
| -PKGNAME=     kismet-${V:S,-,,g}
| +V=              2025-09-R1
| +DISTNAME=       kismet-${V}
| +PKGNAME=        kismet-${V:S,-,,g}
| +CATEGORIES=     net security
|  CATEGORIES=  net security
| -REVISION=    1
|  
| -HOMEPAGE=    https://www.kismetwireless.net/
| -SITES=               ${HOMEPAGE}code/
| -EXTRACT_SUFX=        .tar.xz
| +HOMEPAGE=       https://www.kismetwireless.net/
| +SITES=          ${HOMEPAGE}code/
| +EXTRACT_SUFX=   .tar.xz

these replace correct tabs with spaces, should go back to tabs

CATEGORIES is doubled

| -WANTLIB+=            c m panel pcap ${COMPILER_LIBCXX} curses util pcre
| -LIB_DEPENDS=         devel/pcre
| -RUN_DEPENDS=         net/wireshark,-text
| +WANTLIB+=            c m pcap ${COMPILER_LIBCXX} util
| +WANTLIB += crypto rtlsdr
| +WANTLIB += pcre2-8 sqlite3 ssl
| +WANTLIB += websockets z atomic usb-1.0
| +WANTLIB += mosquitto

WANTLIB could do with being more neat

libatomic is for GCC, this needs patching (I opted to disable by default
in autoconf and add it for ports-gcc builds; might actually only be
needed on a subset of archs though)

| +LIB_DEPENDS=         comms/rtl-sdr \
| +                     lang/gcc/8,-libs \

gcc libs should not be listed directly. if it's needed e.g. on ports-gcc
archs it should come from the gcc module.

| +                     net/mosquitto \
| +                     www/libwebsockets
| +RUN_DEPENDS=         comms/rtl_433 \
| +                     devel/py-protobuf${MODPY_FLAVOR} \

MODPY_FLAVOR is no more

| +                     net/wireshark,-text \
| +                     net/py-websockets
|  
|  .include <bsd.port.arch.mk>
|  
| -post-configure:
| -     ${SUBST_CMD} ${WRKSRC}/conf/kismet.conf \
| -                     ${WRKSRC}/man/kismet_drone.conf.5
| -     cd ${WRKSRC} && ${GMAKE} depend
| -
|  post-install:
|       ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/kismet
| -     ${INSTALL_DATA} ${WRKSRC}/README \
| +     ${INSTALL_DATA} ${WRKSRC}/README.SSL \
|                       ${PREFIX}/share/doc/kismet

have left for now but I don't think that file is really worth
installing

|       @cd ${WRKSRC} && ${GMAKE} binsuidinstall

set INSTALL_TARGET instead

| +-    // rtl_433 -F json -M level -d X -f Y [additional]
| +-    unsigned int num_args = 9;
| ++    // rtl_433 -F json -M level -s 1024k -d X -f Y [additional]
| ++    unsigned int num_args = 11;
| + 
| +     // Channel, if any
| +     char *channel = NULL;
| +@@ -452,6 +452,8 @@ int open_callback(kis_capture_handler_t *caph, uint32_
| +     local433->rtl_argv[n++] = strdup("json");
| +     local433->rtl_argv[n++] = strdup("-M");
| +     local433->rtl_argv[n++] = strdup("level");
| ++    local433->rtl_argv[n++] = strdup("-s");
| ++    local433->rtl_argv[n++] = strdup("1024k");

I haven't touched this but would it be better to patch in rtl_433?

| +lib/pkgconfig/kismet.pc

I haven't touched this yet, but VERSION is broken, they forgot to run
tools/mkversion.sh before rolling release tarballs

| --- /dev/null 1 Jan 1970 00:00:00 -0000
| +++ pkg/README        17 Jan 2026 16:14:55 -0000

remember to regen PLIST after adding a readme

updated diff below, fixing the above plus a few other little bits, does
this still work for you?


Index: Makefile
===================================================================
RCS file: /cvs/ports/net/kismet/Makefile,v
diff -u -p -r1.53 Makefile
--- Makefile    27 Sep 2023 14:18:12 -0000      1.53
+++ Makefile    18 Jan 2026 14:52:55 -0000
@@ -1,16 +1,11 @@
-# Much help came from Alexandre Anriot, Robert Nagy, Bernd Ahlers,
-# and, last but not least, Pedro la Peu.
+DPB_PROPERTIES=        parallel
 
 COMMENT=       802.11 layer2 wireless network detector, sniffer, and IDS
 
-# No wireless capabilities
-NOT_FOR_ARCHS= m88k
-
-V=             2016-07-R1
+V=             2025-09-R1
 DISTNAME=      kismet-${V}
 PKGNAME=       kismet-${V:S,-,,g}
 CATEGORIES=    net security
-REVISION=      1
 
 HOMEPAGE=      https://www.kismetwireless.net/
 SITES=         ${HOMEPAGE}code/
@@ -18,47 +13,52 @@ EXTRACT_SUFX=       .tar.xz
 
 MAINTAINER=    Sebastian Reitenbach <[email protected]>
 
-# GPL
+# GPLv2+
 PERMIT_PACKAGE=        Yes
 
-COMPILER =             base-clang ports-gcc base-gcc
-
-# "old" is required for setting --sysconfdir
-CONFIGURE_STYLE=       gnu old
+WANTLIB += ${COMPILER_LIBCXX} c crypto m mosquitto pcap pcre2-8
+WANTLIB += rtlsdr sqlite3 ssl usb-1.0 util websockets z
 
-CONFDIR=               ${SYSCONFDIR}/kismet
-SUBST_VARS+=           CONFDIR
+# C++20
+COMPILER=      base-clang ports-gcc
 
-CONFIGURE_ARGS=                --sysconfdir=${CONFDIR} \
-                       --mandir=${PREFIX}/man \
-                       --with-suidgroup=_kismet
+CONFIGURE_STYLE= autoreconf
+AUTOCONF_VERSION= 2.71
+AUTOMAKE_VERSION= 1.16
+SYSCONFDIR=    ${BASESYSCONFDIR}/kismet
 
-CONFIGURE_ENV=         CPPFLAGS="-I${X11BASE}/include -I${LOCALBASE}/include" \
-                       LDFLAGS="-L${X11BASE}/lib -L${LOCALBASE}/lib"
+CONFIGURE_ARGS=        --mandir=${PREFIX}/man \
+               --with-suidgroup=_kismet \
+               --disable-wifi-coconut
 
-USE_GMAKE=             Yes
+LDFLAGS_ports-gcc= -latomic
+LDFLAGS=       -L${X11BASE}/lib -L${LOCALBASE}/lib 
${LDFLAGS_${CHOSEN_COMPILER}}
 
-SAMPLES_DIR=           ${DESTDIR}${LOCALBASE}/share/examples/kismet
-FAKE_FLAGS+=           ETC=${SAMPLES_DIR}
+CONFIGURE_ENV= CPPFLAGS="-I${X11BASE}/include -I${LOCALBASE}/include" \
+               LDFLAGS="${LDFLAGS}"
 
-# They don't have tests.
-NO_TEST=               Yes
+NO_TEST=       Yes
+USE_GMAKE=     Yes
 
-WANTLIB+=              c m panel pcap ${COMPILER_LIBCXX} curses util pcre
-LIB_DEPENDS=           devel/pcre
-RUN_DEPENDS=           net/wireshark,-text
+FAKE_FLAGS+=   ETC="${WRKINST}${PREFIX}/share/examples/kismet"
 
-.include <bsd.port.arch.mk>
+LIB_DEPENDS=   comms/rtl-sdr \
+               net/mosquitto \
+               www/libwebsockets
+RUN_DEPENDS=   comms/rtl_433 \
+               devel/py-protobuf \
+               net/wireshark,-text \
+               net/py-websockets
 
-post-configure:
-       ${SUBST_CMD} ${WRKSRC}/conf/kismet.conf \
-                       ${WRKSRC}/man/kismet_drone.conf.5
-       cd ${WRKSRC} && ${GMAKE} depend
+INSTALL_TARGET=        install binsuidinstall
 
 post-install:
        ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/kismet
-       ${INSTALL_DATA} ${WRKSRC}/README \
+       ${INSTALL_DATA} ${WRKSRC}/README.SSL \
                        ${PREFIX}/share/doc/kismet
-       @cd ${WRKSRC} && ${GMAKE} binsuidinstall
 
 .include <bsd.port.mk>
+
+.if ${CHOSEN_COMPILER} == ports-gcc
+WANTLIB += atomic
+.endif
Index: distinfo
===================================================================
RCS file: /cvs/ports/net/kismet/distinfo,v
diff -u -p -r1.9 distinfo
--- distinfo    3 Mar 2019 23:11:04 -0000       1.9
+++ distinfo    18 Jan 2026 14:52:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (kismet-2016-07-R1.tar.xz) = 
vbIfFTMR8f87FmIb8NZ0D2Y2m/CYKwoonJoSr4hH4jc=
-SIZE (kismet-2016-07-R1.tar.xz) = 709364
+SHA256 (kismet-2025-09-R1.tar.xz) = 
RwOlitEbd3rwQBmk8bEU7EWRwFqhymucf/V0P/PRSuE=
+SIZE (kismet-2025-09-R1.tar.xz) = 11479700
Index: patches/patch-capture_framework_c
===================================================================
RCS file: patches/patch-capture_framework_c
diff -N patches/patch-capture_framework_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-capture_framework_c   18 Jan 2026 14:52:55 -0000
@@ -0,0 +1,13 @@
+https://github.com/kismetwireless/kismet/pull/590
+
+Index: capture_framework.c
+--- capture_framework.c.orig
++++ capture_framework.c
+@@ -2484,6 +2484,7 @@ void ws_connect_attempt(kis_capture_handler_t *caph) {
+         return;
+     }
+ 
++    memset(&caph->lwsci, 0, sizeof(struct lws_client_connect_info));
+     caph->lwsci.context = caph->lwscontext;
+     caph->lwsci.port = caph->remote_port;
+     caph->lwsci.address = caph->remote_host;
Index: patches/patch-capture_nrf_51822_nrf_51822_h
===================================================================
RCS file: patches/patch-capture_nrf_51822_nrf_51822_h
diff -N patches/patch-capture_nrf_51822_nrf_51822_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-capture_nrf_51822_nrf_51822_h 18 Jan 2026 14:52:55 -0000
@@ -0,0 +1,14 @@
+https://github.com/kismetwireless/kismet/pull/588
+
+Index: capture_nrf_51822/nrf_51822.h
+--- capture_nrf_51822/nrf_51822.h.orig
++++ capture_nrf_51822/nrf_51822.h
+@@ -66,7 +66,7 @@
+ #define EVENT_PACKET_ADVERTISING 0x02
+ #define EVENT_PACKET_DATA        0x06
+ 
+-#define D_BAUDRATE B1000000
++#define D_BAUDRATE B460800
+ 
+ #define _POSIX_SOURCE 1 /* POSIX compliant source */
+ 
Index: patches/patch-capture_openbsd_wifi_capture_openbsd_wifi_c
===================================================================
RCS file: patches/patch-capture_openbsd_wifi_capture_openbsd_wifi_c
diff -N patches/patch-capture_openbsd_wifi_capture_openbsd_wifi_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-capture_openbsd_wifi_capture_openbsd_wifi_c   18 Jan 2026 
14:52:55 -0000
@@ -0,0 +1,60 @@
+https://github.com/kismetwireless/kismet/pull/581
+Index: capture_openbsd_wifi/capture_openbsd_wifi.c
+--- capture_openbsd_wifi/capture_openbsd_wifi.c.orig
++++ capture_openbsd_wifi/capture_openbsd_wifi.c
+@@ -686,7 +686,7 @@ enum wifi_chan_band wifi_freq_to_band(unsigned int in_
+ 
+ /* Convert a string into a local interpretation; allocate ret_localchan.
+  */
+-void *chantranslate_callback(kis_capture_handler_t *caph, char *chanstr) {
++void *chantranslate_callback(kis_capture_handler_t *caph, const char 
*chanstr) {
+     local_wifi_t *local_wifi = (local_wifi_t *) caph->userdata;
+     local_channel_t *ret_localchan = NULL;
+     unsigned int parsechan;
+@@ -786,7 +786,7 @@ int chancontrol_callback(kis_capture_handler_t *caph, 
+         /* Send a config response with a reconstituted channel if we're
+         * configuring the interface; re-use errstr as a buffer */
+         local_channel_to_str(channel, errstr);
+-        cf_send_configresp(caph, seqno, 1, NULL, errstr);
++        cf_send_configresp(caph, seqno, 1, errstr);
+     }
+ 
+     return 1;
+@@ -794,7 +794,7 @@ int chancontrol_callback(kis_capture_handler_t *caph, 
+ 
+ 
+ int probe_callback(kis_capture_handler_t *caph, uint32_t seqno, char 
*definition,
+-        char *msg, char **uuid, KismetExternal__Command *frame,
++        char *msg, char **uuid,
+         cf_params_interface_t **ret_interface,
+         cf_params_spectrum_t **ret_spectrum) {
+     return 1;
+@@ -814,7 +814,7 @@ int build_explicit_filters(char **stringmacs, int num_
+ 
+ 
+ int open_callback(kis_capture_handler_t *caph, uint32_t seqno, char 
*definition,
+-        char *msg, uint32_t *dlt, char **uuid, KismetExternal__Command *frame,
++        char *msg, uint32_t *dlt, char **uuid,
+         cf_params_interface_t **ret_interface,
+         cf_params_spectrum_t **ret_spectrum) {
+     /* Try to open an interface for monitoring
+@@ -1497,11 +1497,14 @@ void pcap_dispatch_cb(u_char *user, const struct pcap_
+     ts.tv_sec = header->ts.tv_sec;
+     ts.tv_usec = header->ts.tv_usec;
+     while (1) {
+-        if ((ret = cf_send_data(caph, 
+-                        NULL, NULL, NULL,
+-                        ts, 
+-                        local_wifi->datalink_type,
+-                        header->caplen, (uint8_t *) data)) < 0) {
++        if ((ret = cf_send_data(caph,
++                                NULL, 0,
++                                NULL, NULL,
++                                ts,
++                                local_wifi->datalink_type,
++                                header->len,
++                                header->caplen,
++                                (uint8_t *) data)) < 0) {
+             pcap_breakloop(local_wifi->pd);
+             fprintf(stderr, "%s %s/%s could not send packet to Kismet server, 
terminating.", 
+                     local_wifi->name, local_wifi->interface, 
local_wifi->cap_interface);
Index: patches/patch-capture_sdr_rtl433_v2_capture_sdr_rtl433_v2_c
===================================================================
RCS file: patches/patch-capture_sdr_rtl433_v2_capture_sdr_rtl433_v2_c
diff -N patches/patch-capture_sdr_rtl433_v2_capture_sdr_rtl433_v2_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-capture_sdr_rtl433_v2_capture_sdr_rtl433_v2_c 18 Jan 2026 
14:52:55 -0000
@@ -0,0 +1,35 @@
+https://github.com/kismetwireless/kismet/pull/593
+https://github.com/kismetwireless/kismet/pull/594
+
+Index: capture_sdr_rtl433_v2/capture_sdr_rtl433_v2.c
+--- capture_sdr_rtl433_v2/capture_sdr_rtl433_v2.c.orig
++++ capture_sdr_rtl433_v2/capture_sdr_rtl433_v2.c
+@@ -342,8 +342,8 @@ int open_callback(kis_capture_handler_t *caph, uint32_
+ 
+     char buf[STATUS_MAX];
+ 
+-    // rtl_433 -F json -M level -d X -f Y [additional]
+-    unsigned int num_args = 9;
++    // rtl_433 -F json -M level -s 1024k -d X -f Y [additional]
++    unsigned int num_args = 11;
+ 
+     // Channel, if any
+     char *channel = NULL;
+@@ -452,6 +452,8 @@ int open_callback(kis_capture_handler_t *caph, uint32_
+     local433->rtl_argv[n++] = strdup("json");
+     local433->rtl_argv[n++] = strdup("-M");
+     local433->rtl_argv[n++] = strdup("level");
++    local433->rtl_argv[n++] = strdup("-s");
++    local433->rtl_argv[n++] = strdup("1024k");
+     local433->rtl_argv[n++] = strdup("-f");
+     snprintf(buf, STATUS_MAX, "%lu", local433->freq);
+     local433->rtl_argv[n++] = strdup(buf);
+@@ -488,8 +490,6 @@ void capture_thread(kis_capture_handler_t *caph) {
+ 
+     wrap_cond_wait(&local433->rtl433_valid_cond,
+             &local433->rtl433_valid_cond_mutex);
+-    pthread_mutex_unlock(&local433->rtl433_valid_cond_mutex);
+-
+ }
+ 
+ int main(int argc, char *argv[]) {
Index: patches/patch-capture_sdr_rtladsb_v2_capture_sdr_rtladsb_v2_c
===================================================================
RCS file: patches/patch-capture_sdr_rtladsb_v2_capture_sdr_rtladsb_v2_c
diff -N patches/patch-capture_sdr_rtladsb_v2_capture_sdr_rtladsb_v2_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-capture_sdr_rtladsb_v2_capture_sdr_rtladsb_v2_c       18 Jan 
2026 14:52:55 -0000
@@ -0,0 +1,43 @@
+https://github.com/kismetwireless/kismet/pull/591
+
+Index: capture_sdr_rtladsb_v2/capture_sdr_rtladsb_v2.c
+--- capture_sdr_rtladsb_v2/capture_sdr_rtladsb_v2.c.orig
++++ capture_sdr_rtladsb_v2/capture_sdr_rtladsb_v2.c
+@@ -453,13 +453,12 @@ static void rtlsdr_callback(unsigned char *buf, uint32
+     kis_capture_handler_t *caph = (kis_capture_handler_t *) ctx;
+     local_adsb_t *adsb = (local_adsb_t *) caph->userdata;
+ 
+-    if (caph->spindown || adsb->do_exit) {
+-        return;
+-    }
++    if (caph->spindown || adsb->do_exit) return;
+ 
++    pthread_mutex_lock(&adsb->ready_mutex);
+     memcpy(adsb->buffer, buf, len);
+-
+-    wrap_cond_signal(&adsb->ready, &adsb->ready_mutex);
++    pthread_cond_signal(&adsb->ready);
++    pthread_mutex_unlock(&adsb->ready_mutex);
+ }
+ 
+ static void *rtlsdr_demod_thread(void *arg) {
+@@ -467,15 +466,16 @@ static void *rtlsdr_demod_thread(void *arg) {
+     local_adsb_t *adsb = (local_adsb_t *) caph->userdata;
+ 
+     int len;
+-
+     while (!caph->spindown && !adsb->do_exit) {
+-        wrap_cond_wait(&adsb->ready, &adsb->ready_mutex);
++        pthread_mutex_lock(&adsb->ready_mutex);
++        pthread_cond_wait(&adsb->ready, &adsb->ready_mutex);
++
+         len = magnitude(caph, adsb->buffer, DEFAULT_BUF_LENGTH);
+         manchester(caph, (uint16_t *) adsb->buffer, len);
+         messages(caph, (uint16_t *) adsb->buffer, len);
++
+         pthread_mutex_unlock(&adsb->ready_mutex);
+     }
+-
+     rtlsdr_cancel_async(adsb->dev);
+     return NULL;
+ }
Index: patches/patch-conf_kismet_conf_in
===================================================================
RCS file: patches/patch-conf_kismet_conf_in
diff -N patches/patch-conf_kismet_conf_in
--- patches/patch-conf_kismet_conf_in   11 Mar 2022 19:46:11 -0000      1.8
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,44 +0,0 @@
-Index: conf/kismet.conf.in
---- conf/kismet.conf.in.orig
-+++ conf/kismet.conf.in
-@@ -11,7 +11,7 @@ version=2009-newcore
- # servername=Kismet Server
- 
- # Prefix of where we log (as used in the logtemplate later)
--# logprefix=/some/path/to/logs
-+logprefix=${LOCALSTATEDIR}/log/kismet
- 
- # Do we process the contents of data frames?  If this is enabled, data
- # frames will be truncated to the headers only immediately after frame type
-@@ -30,6 +30,8 @@ allowplugins=true
- # ncsource=wlan0
- # ncsource=wifi0:type=madwifi
- # ncsource=wlan0:name=intel,hop=false,channel=11
-+# Generic OpenBSD example
-+# ncsource=rum0:type=radiotap_bsd
- 
- # Comma-separated list of sources to enable.  This is only needed if you 
defined
- # multiple sources and only want to enable some of them.  By default, all 
defined
-@@ -122,10 +124,7 @@ maxbacklog=5000
- # OUI file, expected format 00:11:22<tab>manufname
- # IEEE OUI file used to look up manufacturer info.  We default to the
- # wireshark one since most people have that.
--ouifile=/etc/manuf
--ouifile=/usr/share/wireshark/wireshark/manuf
--ouifile=/usr/share/wireshark/manuf
--ouifile=/Applications/Wireshark.app/Contents/Resources/share/wireshark/manuf
-+ouifile=${LOCALBASE}/share/wireshark/manuf
- 
- # Do we have a GPS?
- gps=true
-@@ -278,8 +277,8 @@ alertbacklog=50
- logtypes=pcapdump,gpsxml,netxml,nettxt,alert
- 
- # Format of the pcap dump (PPI or 80211)
--pcapdumpformat=ppi
--# pcapdumpformat=80211
-+# pcapdumpformat=ppi
-+pcapdumpformat=80211
- 
- # Default log title
- logdefault=Kismet
Index: patches/patch-config_h_in
===================================================================
RCS file: patches/patch-config_h_in
diff -N patches/patch-config_h_in
--- patches/patch-config_h_in   11 Mar 2022 19:46:11 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-shut up:
-warning: using directive refers to implicitly-defined namespace 'std'
-
-Index: config.h.in
---- config.h.in.orig
-+++ config.h.in
-@@ -317,6 +317,7 @@
- 
- /* Namespace (on non-obj-c files) */
- #ifndef __IN_OBJC_FILE__
-+#include <iosfwd>
- using namespace std;
- #define __STL_USE_NAMESPACES
- #endif
Index: patches/patch-configure_ac
===================================================================
RCS file: patches/patch-configure_ac
diff -N patches/patch-configure_ac
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-configure_ac  18 Jan 2026 14:52:55 -0000
@@ -0,0 +1,61 @@
+- don't force -O3
+- GCC's libatomic should not be pulled in just because it exists
+- libstdc++ should n9t be explicitly linked (use "c++" as a linker instead)
+
+Index: configure.ac
+--- configure.ac.orig
++++ configure.ac
+@@ -228,9 +228,6 @@ AS_IF([test x"$GCC_MAJOR" = x"13" -o x"$GCC_MAJOR" = x
+ 
+ AC_SUBST(PLUGINLDFLAGS)
+ 
+-CXXFLAGS="$CXXFLAGS -O3"
+-CFLAGS="$CFLAGS -O3"
+-
+ AC_CONFIG_SRCDIR([kismet_server.cc])
+ AC_CONFIG_HEADERS([config.h])
+ 
+@@ -637,22 +634,6 @@ AC_CHECK_LIB([z], [deflate],
+              AC_MSG_ERROR([libz is required and could not be found]))
+ LIBS="$LIBS -lz"
+ 
+-# Do we need -latomic
+-AC_MSG_CHECKING([for libatomic])
+-OLIBS="$LIBS"
+-LIBS="$LIBS -latomic"
+-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+-                ]],
+-                [[
+-                 return 0;
+-                ]] )], [have_atomic=yes], [have_atomic=no])
+-if test "$have_atomic" = "yes"; then
+-    AC_MSG_RESULT([yes])
+-else
+-    AC_MSG_RESULT([no])
+-    LIBS="$OLIBS"
+-fi
+-
+ # We need threads
+ PTHREAD_CFLAGS="-pthread"
+ PTHREAD_LIBS="-lpthread"
+@@ -700,19 +681,7 @@ else
+     AC_SUBST(LIBMLIB)
+ fi
+ 
+-# Do we use libstdc++?
+-# We need to swap to the g++ compiler here
+-oCC="$CC"
+-CC="$CXX"
+-AC_CHECK_LIB([stdc++], [main],
+-        foundcxxl="stdc++" CXXLIBS="$CXXLIBS -lstdc++")
+-
+-AS_IF([test "$foundcxxl"x = "x" -a "$caponly"x != "yes"x],
+-      [
+-       AC_MSG_ERROR(No standard stdc++ libraries found.)
+-      ], []
+-)
+-CC="$oCC"
++CXXLIBS=
+ AC_SUBST(CXXLIBS)
+ 
+ # Does the compiler handle various std::foo namespaces properly?
Index: patches/patch-kaitaistream_cc
===================================================================
RCS file: patches/patch-kaitaistream_cc
diff -N patches/patch-kaitaistream_cc
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-kaitaistream_cc       18 Jan 2026 14:52:55 -0000
@@ -0,0 +1,21 @@
+https://github.com/kismetwireless/kismet/pull/592
+
+Index: kaitaistream.cc
+--- kaitaistream.cc.orig
++++ kaitaistream.cc
+@@ -35,9 +35,15 @@
+ // Supposed to work on NetBSD: https://man.netbsd.org/NetBSD-10.0/bswap16.3
+ #include <sys/endian.h>
+ #include <sys/types.h>
++#if defined(__OpenBSD__)
++#define bswap_16(x) swap16(x)
++#define bswap_32(x) swap32(x)
++#define bswap_64(x) swap64(x)
++#else
+ #define bswap_16(x) bswap16(x)
+ #define bswap_32(x) bswap32(x)
+ #define bswap_64(x) bswap64(x)
++#endif
+ #define __BYTE_ORDER    BYTE_ORDER
+ #define __BIG_ENDIAN    BIG_ENDIAN
+ #define __LITTLE_ENDIAN LITTLE_ENDIAN
Index: patches/patch-kis_panel_widgets_cc
===================================================================
RCS file: patches/patch-kis_panel_widgets_cc
diff -N patches/patch-kis_panel_widgets_cc
--- patches/patch-kis_panel_widgets_cc  11 Mar 2022 19:46:11 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-explicitly cast
-
-Index: kis_panel_widgets.cc
---- kis_panel_widgets.cc.orig
-+++ kis_panel_widgets.cc
-@@ -2582,7 +2582,7 @@ int Kis_Single_Input::KeyPress(int in_key) {
-       // and if we have room, insert it and scroll to the right
-       if ((int) text.length() < max_len && 
-               filter_map.find(in_key) != filter_map.end()) {
--              char ins[2] = { in_key, 0 };
-+              char ins[2] = { (char)in_key, 0 };
-               text.insert(inp_pos, ins);
-               inp_pos++;
- 
Index: patches/patch-macaddr_h
===================================================================
RCS file: patches/patch-macaddr_h
diff -N patches/patch-macaddr_h
--- patches/patch-macaddr_h     11 Mar 2022 19:46:11 -0000      1.5
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-silence clan warning
-
-Index: macaddr.h
---- macaddr.h.orig
-+++ macaddr.h
-@@ -185,7 +185,7 @@ struct mac_addr {
-       }
- 
-     inline mac_addr(int in) {
--              in = in; // Silence gcc
-+      static_cast<void>(in);
-         longmac = 0;
-         longmask = 0;
-         error = 0;
Index: patches/patch-man_kismet_drone_conf_5
===================================================================
RCS file: patches/patch-man_kismet_drone_conf_5
diff -N patches/patch-man_kismet_drone_conf_5
--- patches/patch-man_kismet_drone_conf_5       11 Mar 2022 19:46:11 -0000      
1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: man/kismet_drone.conf.5
---- man/kismet_drone.conf.5.orig
-+++ man/kismet_drone.conf.5
-@@ -6,7 +6,7 @@
- .SH DESCRIPTION
- kismet_drone uses a minimalized configuration file, similar in options to the
- main kismet server configuration file.  By default, the drone config is in
--/usr/local/etc/kismet.conf.  A default configuration is included with Kismet 
but
-+${SYSCONFDIR}/kismet/kismet.conf.  A default configuration is included with 
Kismet but
- it is likely you will need to modify it to suit your hardware and preferences.
- .SH CONFIGURATION FILE FORMAT
- All entries are of the format directive = value
Index: patches/patch-netracker_h
===================================================================
RCS file: patches/patch-netracker_h
diff -N patches/patch-netracker_h
--- patches/patch-netracker_h   11 Mar 2022 19:46:11 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-it's forward declared twice
-
-Index: netracker.h
---- netracker.h.orig
-+++ netracker.h
-@@ -306,9 +306,6 @@ class Netracker { (public)
-               int dirty;
-       };
- 
--      // Fwd def for our map
--      class tracked_client;
--
-       class ssid_alert_data {
-       public:
-               ssid_alert_data() {
Index: patches/patch-packetsource_bsdrt_cc
===================================================================
RCS file: patches/patch-packetsource_bsdrt_cc
diff -N patches/patch-packetsource_bsdrt_cc
--- patches/patch-packetsource_bsdrt_cc 11 Mar 2022 19:46:11 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-IFM_MAKEMODE is not defined on OpenBSD, just copying it from Linux
-doesn't help, since our IFM_MSHIFT etc. operate on ULL, but mode
-apparently only is of type int
-
-Index: packetsource_bsdrt.cc
---- packetsource_bsdrt.cc.orig
-+++ packetsource_bsdrt.cc
-@@ -138,7 +138,7 @@ int Radiotap_BSD_Controller::GetMediaOpt(int& options,
- int Radiotap_BSD_Controller::SetMediaOpt(int options, int mode) {
-       struct ifmediareq ifmr;
-       struct ifreq ifr;
--      int *mwords;
-+      uint64_t *mwords;
- 
-       if (CheckSocket() == 0)
-               return 0;
-@@ -160,7 +160,7 @@ int Radiotap_BSD_Controller::SetMediaOpt(int options, 
-               return 0;
-       }
- 
--      mwords = new int[ifmr.ifm_count];
-+      mwords = new uint64_t[ifmr.ifm_count];
-       if (mwords == NULL) {
-               _MSG("BSD interface control cannot malloc interface array, out 
of "
-                        "memory or other badness.", MSGFLAG_PRINTERROR);
-@@ -179,6 +179,10 @@ int Radiotap_BSD_Controller::SetMediaOpt(int options, 
-       memset(&ifr, 0, sizeof(ifr));
-       strncpy(ifr.ifr_name, dev.c_str(), sizeof(ifr.ifr_name));
-       ifr.ifr_media = (ifmr.ifm_current &~ IFM_OMASK) | options;
-+#ifndef IFM_MAKEMODE
-+#define IFM_MAKEMODE(mode) \
-+      ((((unsigned long long)mode) << IFM_MSHIFT) & IFM_MMASK)
-+#endif
-       ifr.ifr_media = (ifr.ifr_media &~ IFM_MMASK) | IFM_MAKEMODE(mode);
- 
-       if (ioctl(sock, SIOCSIFMEDIA, (caddr_t) &ifr) < 0) {
Index: patches/patch-packetsource_pcap_cc
===================================================================
RCS file: patches/patch-packetsource_pcap_cc
diff -N patches/patch-packetsource_pcap_cc
--- patches/patch-packetsource_pcap_cc  11 Mar 2022 19:46:11 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-Index: packetsource_pcap.cc
---- packetsource_pcap.cc.orig
-+++ packetsource_pcap.cc
-@@ -60,6 +60,10 @@ extern "C" {
- #include <netinet/if_ether.h>
- #include <dev/ic/if_wi_ieee.h>
- 
-+#ifndef IEEE80211_CHAN_TURBO
-+#define IEEE80211_CHAN_TURBO 0x0010
-+#endif
-+
- #ifdef HAVE_RADIOTAP
- #include <net80211/ieee80211.h>
- #include <net80211/ieee80211_ioctl.h>
Index: patches/patch-tcpclient_cc
===================================================================
RCS file: patches/patch-tcpclient_cc
diff -N patches/patch-tcpclient_cc
--- patches/patch-tcpclient_cc  11 Mar 2022 19:46:11 -0000      1.5
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-Index: tcpclient.cc
---- tcpclient.cc.orig
-+++ tcpclient.cc
-@@ -75,7 +75,7 @@ int TcpClient::Connect(const char *in_remotehost, shor
-     local_sock.sin_addr.s_addr = htonl(INADDR_ANY);
-     local_sock.sin_port = htons(0);
- 
--    if (bind(cli_fd, (struct sockaddr *) &local_sock, sizeof(local_sock)) < 
0) {
-+    if (::bind(cli_fd, (struct sockaddr *) &local_sock, sizeof(local_sock)) < 
0) {
-         snprintf(errstr, 1024, "TCP client bind() failed: %s", 
strerror(errno));
-         globalreg->messagebus->InjectMessage(errstr, MSGFLAG_ERROR);
-               close(cli_fd);
-@@ -170,7 +170,7 @@ int TcpClient::ConnectSync(const char *in_remotehost, 
-     local_sock.sin_addr.s_addr = htonl(INADDR_ANY);
-     local_sock.sin_port = htons(0);
- 
--    if (bind(cli_fd, (struct sockaddr *) &local_sock, sizeof(local_sock)) < 
0) {
-+    if (::bind(cli_fd, (struct sockaddr *) &local_sock, sizeof(local_sock)) < 
0) {
-         snprintf(errstr, 1024, "TCP client bind() failed: %s", 
strerror(errno));
-         globalreg->messagebus->InjectMessage(errstr, MSGFLAG_ERROR);
-               close(cli_fd);
Index: patches/patch-tcpserver_cc
===================================================================
RCS file: patches/patch-tcpserver_cc
diff -N patches/patch-tcpserver_cc
--- patches/patch-tcpserver_cc  11 Mar 2022 19:46:11 -0000      1.6
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: tcpserver.cc
---- tcpserver.cc.orig
-+++ tcpserver.cc
-@@ -84,7 +84,7 @@ int TcpServer::EnableServer() {
-     }
- 
-     // Bind the socket
--    if (bind(serv_fd, (struct sockaddr *) &serv_sock, sizeof(serv_sock)) < 0) 
{
-+    if (::bind(serv_fd, (struct sockaddr *) &serv_sock, sizeof(serv_sock)) < 
0) {
-         snprintf(errstr, STATUS_MAX, "TCP server bind() failed: %s",
-                  strerror(errno));
-         globalreg->messagebus->InjectMessage(errstr, MSGFLAG_ERROR);
Index: patches/patch-unixdomainserver_cc
===================================================================
RCS file: patches/patch-unixdomainserver_cc
diff -N patches/patch-unixdomainserver_cc
--- patches/patch-unixdomainserver_cc   11 Mar 2022 19:46:11 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: unixdomainserver.cc
---- unixdomainserver.cc.orig
-+++ unixdomainserver.cc
-@@ -64,7 +64,7 @@ int UnixDomainServer::EnableServer() {
-     }
- 
-     // Bind the socket
--    if (bind(serv_fd, (struct sockaddr *) &serv_sock, sizeof(serv_sock)) < 0) 
{
-+    if (::bind(serv_fd, (struct sockaddr *) &serv_sock, sizeof(serv_sock)) < 
0) {
-         _MSG("Unix domain server bind() failed: " + string(strerror(errno)),
-              MSGFLAG_ERROR);
-         return -1;
Index: patches/patch-uuid_h
===================================================================
RCS file: patches/patch-uuid_h
diff -N patches/patch-uuid_h
--- patches/patch-uuid_h        11 Mar 2022 19:46:11 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-silence warnings
-
-Index: uuid.h
---- uuid.h.orig
-+++ uuid.h
-@@ -113,7 +113,9 @@ class uuid { (public)
-               char ids[38];
-               snprintf(ids, 38, 
"%08x-%04hx-%04hx-%04hx-%02hx%02hx%02hx%02hx%02hx%02hx",
-                                (unsigned int) *time_low, *time_mid, *time_hi, 
*clock_seq,
--                               node[0], node[1], node[2], node[3], node[4], 
node[5]);
-+                               (unsigned short)node[0], (unsigned 
short)node[1],
-+                               (unsigned short)node[2], (unsigned 
short)node[3],
-+                               (unsigned short)node[4], (unsigned 
short)node[5]);
-               return string(ids);
-       }
- 
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/net/kismet/pkg/DESCR,v
diff -u -p -r1.3 DESCR
--- pkg/DESCR   3 Mar 2019 23:11:04 -0000       1.3
+++ pkg/DESCR   18 Jan 2026 14:52:55 -0000
@@ -1,9 +1,6 @@
-Kismet is an 802.11 layer2 wireless network detector, sniffer, and
-intrusion detection system.  Kismet will work with any wireless card
-which supports raw monitoring (rfmon) mode, and can sniff 802.11b,
-802.11a, and 802.11g traffic.
+Kismet is an open source sniffer, WIDS, wardriver, and packet capture
+tool for Wi-Fi, Bluetooth, BTLE, wireless thermometers, airplanes, power
+meters, Zigbee, and more.
 
-Kismet identifies networks by passively collecting packets and detecting
-standard named networks, detecting (and given time, decloaking) hidden
-networks, and infering the presence of nonbeaconing networks via data
-traffic.
+Kismet can operate both headless as a standalone capture and WIDS
+system, or with a full modern web-based UI.
Index: pkg/MESSAGE
===================================================================
RCS file: /cvs/ports/net/kismet/pkg/MESSAGE,v
diff -u -p -r1.3 MESSAGE
--- pkg/MESSAGE 3 Mar 2019 23:11:04 -0000       1.3
+++ pkg/MESSAGE 18 Jan 2026 14:52:55 -0000
@@ -1,4 +1,4 @@
-${PREFIX}/bin/kismet_capture has been installed setuid root, with read/execute
+${PREFIX}/bin/kismet_cap_* have been installed setuid root, with read/execute
 access granted only to users in the _kismet group. For normal interactive
 use of Kismet, add your username to this group:
 
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/kismet/pkg/PLIST,v
diff -u -p -r1.5 PLIST
--- pkg/PLIST   8 Nov 2022 11:14:58 -0000       1.5
+++ pkg/PLIST   18 Jan 2026 14:52:55 -0000
@@ -1,44 +1,236 @@
+@conflict kismet-gpsmap-*
 @pkgpath net/kismet
 @pkgpath net/kismet,-main
 @pkgpath net/kismet,-gpsmap
-@conflict kismet-gpsmap-*
 @newgroup _kismet:547
-@newuser _kismet:547:_kismet::Kismet WLAN detector:/nonexistent:/sbin/nologin
-bin/kismet
+@newuser _kismet:547:_kismet::Kismet Wireless 
detector:/nonexistent:/sbin/nologin
+@bin bin/kismet
+@bin bin/kismet_cap_antsdr_droneid
+@mode 4550
+@group _kismet
+@bin bin/kismet_cap_freaklabs_zigbee
+@mode
+@group
+@bin bin/kismet_cap_kismetdb
+@mode 4550
+@group _kismet
+@bin bin/kismet_cap_nrf_51822
+@bin bin/kismet_cap_nrf_52840
+@bin bin/kismet_cap_nrf_mousejack
+@bin bin/kismet_cap_nxp_kw41z
+@bin bin/kismet_cap_openbsd_wifi
+@mode
+@group
+@bin bin/kismet_cap_pcapfile
+@mode 4550
+@group _kismet
+@bin bin/kismet_cap_radiacode_usb
+@bin bin/kismet_cap_rz_killerbee
+@bin bin/kismet_cap_sdr_rtl433
+@bin bin/kismet_cap_sdr_rtladsb
+@mode
+@group
+@bin bin/kismet_cap_serial_radview
 @mode 4550
 @group _kismet
-@bin bin/kismet_capture
+@bin bin/kismet_cap_ti_cc_2531
+@bin bin/kismet_cap_ti_cc_2540
 @mode
 @group
-@bin bin/kismet_client
-@bin bin/kismet_drone
-@bin bin/kismet_server
-@man man/man1/kismet.1
-@man man/man1/kismet_drone.1
-@man man/man5/kismet.conf.5
-@man man/man5/kismet_drone.conf.5
+@bin bin/kismet_discovery
+bin/kismet_server
+@bin bin/kismetdb_clean
+@bin bin/kismetdb_dump_devices
+@bin bin/kismetdb_statistics
+@bin bin/kismetdb_strip_packets
+@bin bin/kismetdb_to_gpx
+@bin bin/kismetdb_to_kml
+@bin bin/kismetdb_to_pcap
+@bin bin/kismetdb_to_wiglecsv
+lib/pkgconfig/kismet.pc
 share/doc/kismet/
-share/doc/kismet/README
+share/doc/kismet/README.SSL
+share/doc/pkg-readmes/${PKGSTEM}
 share/examples/kismet/
 @mode 770
-@sample ${CONFDIR}/
+@sample ${SYSCONFDIR}/
 @mode
 share/examples/kismet/kismet.conf
-@sample ${CONFDIR}/kismet.conf
-share/examples/kismet/kismet_drone.conf
-@sample ${CONFDIR}/kismet_drone.conf
+@sample ${SYSCONFDIR}/kismet.conf
+share/examples/kismet/kismet_80211.conf
+@sample ${SYSCONFDIR}/kismet_80211.conf
+share/examples/kismet/kismet_alerts.conf
+@sample ${SYSCONFDIR}/kismet_alerts.conf
+share/examples/kismet/kismet_filter.conf
+@sample ${SYSCONFDIR}/kismet_filter.conf
+share/examples/kismet/kismet_httpd.conf
+@sample ${SYSCONFDIR}/kismet_httpd.conf
+share/examples/kismet/kismet_logging.conf
+@sample ${SYSCONFDIR}/kismet_logging.conf
+share/examples/kismet/kismet_memory.conf
+@sample ${SYSCONFDIR}/kismet_memory.conf
+share/examples/kismet/kismet_uav.conf
+@sample ${SYSCONFDIR}/kismet_uav.conf
+share/examples/kismet/kismet_wardrive.conf
+@sample ${SYSCONFDIR}/kismet_wardrive.conf
 share/kismet/
-share/kismet/wav/
-share/kismet/wav/alert.wav
 @mode 770
 @owner _kismet
 @group _kismet
 @sample /var/log/kismet/
+@extraunexec rm -rf ${LOCALSTATEDIR}/log/kismet
 @mode
 @owner
 @group
-share/kismet/wav/gpslock.wav
-share/kismet/wav/gpslost.wav
-share/kismet/wav/new.wav
-share/kismet/wav/packet.wav
-@extraunexec rm -rf ${LOCALSTATEDIR}/log/kismet
+share/kismet/httpd/
+share/kismet/httpd/channels.html
+share/kismet/httpd/credit.html
+share/kismet/httpd/css/
+share/kismet/httpd/css/Control.Loading.css
+share/kismet/httpd/css/dark.css
+share/kismet/httpd/css/fontawesome.min.css
+share/kismet/httpd/css/grid.css
+share/kismet/httpd/css/ie.css
+share/kismet/httpd/css/ie6.css
+share/kismet/httpd/css/images/
+share/kismet/httpd/css/images/collapsed.gif
+share/kismet/httpd/css/images/expanded.gif
+share/kismet/httpd/css/images/ui-icons_222222_256x240.png
+share/kismet/httpd/css/images/ui-icons_444444_256x240.png
+share/kismet/httpd/css/images/ui-icons_4b8e0b_256x240.png
+share/kismet/httpd/css/images/ui-icons_555555_256x240.png
+share/kismet/httpd/css/images/ui-icons_777620_256x240.png
+share/kismet/httpd/css/images/ui-icons_777777_256x240.png
+share/kismet/httpd/css/images/ui-icons_a83300_256x240.png
+share/kismet/httpd/css/images/ui-icons_cc0000_256x240.png
+share/kismet/httpd/css/images/ui-icons_cccccc_256x240.png
+share/kismet/httpd/css/images/ui-icons_ffffff_256x240.png
+share/kismet/httpd/css/images/uiTabsArrow.png
+share/kismet/httpd/css/jquery-ui.min.css
+share/kismet/httpd/css/jquery.contextMenu.min.css
+share/kismet/httpd/css/jquery.jspanel.min.css
+share/kismet/httpd/css/jquery.kismet.alert.css
+share/kismet/httpd/css/jquery.kismet.auth.css
+share/kismet/httpd/css/jquery.kismet.battery.css
+share/kismet/httpd/css/jquery.kismet.channeldisplay.css
+share/kismet/httpd/css/jquery.kismet.gps.css
+share/kismet/httpd/css/jquery.kismet.messagebus.css
+share/kismet/httpd/css/jqueryui-editable.css
+share/kismet/httpd/css/kismet-dark.css
+share/kismet/httpd/css/kismet.adsb.css
+share/kismet/httpd/css/kismet.css
+share/kismet/httpd/css/kismet.ui.base.css
+share/kismet/httpd/css/kismet.ui.datasources.css
+share/kismet/httpd/css/kismet.ui.gadgets.css
+share/kismet/httpd/css/kismet.ui.iconbar.css
+share/kismet/httpd/css/kismet.ui.radiation.css
+share/kismet/httpd/css/kismet.ui.settings.css
+share/kismet/httpd/css/kismet.ui.sidebar.css
+share/kismet/httpd/css/kismet.ui.tabpane.css
+share/kismet/httpd/css/layout-default-1.4.0.css
+share/kismet/httpd/css/layout.css
+share/kismet/httpd/css/leaflet.css
+share/kismet/httpd/css/light.css
+share/kismet/httpd/css/morris.css
+share/kismet/httpd/css/nav.css
+share/kismet/httpd/css/pushmenu.css
+share/kismet/httpd/css/regular.min.css
+share/kismet/httpd/css/reset.css
+share/kismet/httpd/css/solid.min.css
+share/kismet/httpd/css/spectrum.css
+share/kismet/httpd/css/tabulator.min.css
+share/kismet/httpd/css/tabulator_midnight.min.css
+share/kismet/httpd/css/text.css
+share/kismet/httpd/css/tooltipster.bundle.min.css
+share/kismet/httpd/css/v4-font-face.min.css
+share/kismet/httpd/css/v4-shims.min.css
+share/kismet/httpd/favicon.ico
+share/kismet/httpd/fonts/
+share/kismet/httpd/fonts/jsglyph.eot
+share/kismet/httpd/fonts/jsglyph.svg
+share/kismet/httpd/fonts/jsglyph.ttf
+share/kismet/httpd/fonts/jsglyph.woff
+share/kismet/httpd/images/
+share/kismet/httpd/images/bluetooth-solid-icon-dark.svg
+share/kismet/httpd/images/bluetooth-solid-icon.svg
+share/kismet/httpd/images/collapsed.gif
+share/kismet/httpd/images/expanded.gif
+share/kismet/httpd/images/icon_no_battery_power.svg
+share/kismet/httpd/images/sort_asc.png
+share/kismet/httpd/images/sort_asc_disabled.png
+share/kismet/httpd/images/sort_both.png
+share/kismet/httpd/images/sort_desc.png
+share/kismet/httpd/images/sort_desc_disabled.png
+share/kismet/httpd/images/uiTabsArrow.png
+share/kismet/httpd/images/zigbee-icon-dark.svg
+share/kismet/httpd/images/zigbee-icon-light.svg
+share/kismet/httpd/index.html
+share/kismet/httpd/js/
+share/kismet/httpd/js/Control.Loading.js
+share/kismet/httpd/js/Leaflet.MultiOptionsPolyline.min.js
+share/kismet/httpd/js/chart.umd.js
+share/kismet/httpd/js/chroma.min.js
+share/kismet/httpd/js/clipboard.min.js
+share/kismet/httpd/js/d3.v3.min.js
+share/kismet/httpd/js/jcanvas.min.js
+share/kismet/httpd/js/jquery-3.7.1.min.js
+share/kismet/httpd/js/jquery-fluid16.js
+share/kismet/httpd/js/jquery-ui.min.js
+share/kismet/httpd/js/jquery.ajax.binary.js
+share/kismet/httpd/js/jquery.contextMenu.min.js
+share/kismet/httpd/js/jquery.debounce.min.js
+share/kismet/httpd/js/jquery.jspanel-compiled.min.js
+share/kismet/httpd/js/jquery.kismet.alert.js
+share/kismet/httpd/js/jquery.kismet.battery.js
+share/kismet/httpd/js/jquery.kismet.channeldisplay.js
+share/kismet/httpd/js/jquery.kismet.devicedata.js
+share/kismet/httpd/js/jquery.kismet.gps.js
+share/kismet/httpd/js/jquery.kismet.messagebus.js
+share/kismet/httpd/js/jquery.kismet.packetrate.js
+share/kismet/httpd/js/jquery.layout-latest.js
+share/kismet/httpd/js/jquery.sparkline.min.js
+share/kismet/httpd/js/jquery.storageapi.min.js
+share/kismet/httpd/js/jquery.ui.position.min.js
+share/kismet/httpd/js/jquery.ui.touch-punch.min.js
+share/kismet/httpd/js/jqueryui-editable.min.js
+share/kismet/httpd/js/js.storage.min.js
+share/kismet/httpd/js/kismet.ui.802_15_4.js
+share/kismet/httpd/js/kismet.ui.adsb.js
+share/kismet/httpd/js/kismet.ui.alerts.js
+share/kismet/httpd/js/kismet.ui.base.js
+share/kismet/httpd/js/kismet.ui.bluetooth.js
+share/kismet/httpd/js/kismet.ui.btle.js
+share/kismet/httpd/js/kismet.ui.datasources.js
+share/kismet/httpd/js/kismet.ui.dot11.js
+share/kismet/httpd/js/kismet.ui.gadgets.js
+share/kismet/httpd/js/kismet.ui.iconbar.js
+share/kismet/httpd/js/kismet.ui.js
+share/kismet/httpd/js/kismet.ui.meter.js
+share/kismet/httpd/js/kismet.ui.radiation.js
+share/kismet/httpd/js/kismet.ui.sensor.js
+share/kismet/httpd/js/kismet.ui.settings.js
+share/kismet/httpd/js/kismet.ui.sidebar.js
+share/kismet/httpd/js/kismet.ui.tabpane.js
+share/kismet/httpd/js/kismet.ui.theme.js
+share/kismet/httpd/js/kismet.ui.uav.js
+share/kismet/httpd/js/kismet.ui.walkthrough.js
+share/kismet/httpd/js/kismet.ui.zwave.js
+share/kismet/httpd/js/kismet.units.js
+share/kismet/httpd/js/kismet.utils.js
+share/kismet/httpd/js/leaflet.js
+share/kismet/httpd/js/msgpack.js
+share/kismet/httpd/js/pushmenu.js
+share/kismet/httpd/js/raphael.min.js
+share/kismet/httpd/js/simple-expand.min.js
+share/kismet/httpd/js/spectrum.js
+share/kismet/httpd/js/tabulator.min.js
+share/kismet/httpd/js/tooltipster.bundle.min.js
+share/kismet/httpd/webfonts/
+share/kismet/httpd/webfonts/fa-regular-400.ttf
+share/kismet/httpd/webfonts/fa-regular-400.woff2
+share/kismet/httpd/webfonts/fa-solid-900.ttf
+share/kismet/httpd/webfonts/fa-solid-900.woff2
+share/kismet/httpd/webfonts/fa-v4compatibility.ttf
+share/kismet/httpd/webfonts/fa-v4compatibility.woff2
+share/kismet/kismet_adsb_icao.txt.gz
+share/kismet/kismet_manuf.txt.gz
Index: pkg/README
===================================================================
RCS file: pkg/README
diff -N pkg/README
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ pkg/README  18 Jan 2026 14:52:55 -0000
@@ -0,0 +1,18 @@
++-------------------------------------------------------------------------------
+| Running ${PKGSTEM} on OpenBSD
++-------------------------------------------------------------------------------
+
+known to work capture drivers
+=============================
+
+The following capture drivers are known to work:
+  * openbsd_wifi (autodetected)
+  * sdr_rtladsb (autodetected)
+  * sdr_rtl433 (autodetected)
+  * nrf_51822 (not autodetected)
+    * use with:
+       * -c nrf51822:type=nrf51822,device=/dev/cuaU0,name=adafruit
+
+
+Many other capture drivers are enabled. They are untested,
+but may work as well.


Reply via email to