kismet: add a random snapshot for testing

This commit is contained in:
Anton Bolshakov 2025-05-14 10:04:45 +08:00
parent a52eb5a9f7
commit 380686f579
No known key found for this signature in database
GPG key ID: 32BDCED870788F04
5 changed files with 214 additions and 13 deletions

View file

@ -1,2 +1,3 @@
DIST kismet-2023-07-R1.tar.xz 11144120 BLAKE2B c43f0665c784ff9245289e624e23cb3eb4ffcb79f050deede50129cf6b07662e817f9c9aaf6cc608395045b5b449b87d22ff314d7dbc8f04b29db2df86dc5f84 SHA512 b8b320b8e09be5be582848ce8a1a66f71a96eccc3c78f52d3f1f18122abbe614ff3b5a55b5fcedf3e6a1fc959a72838adc0d7278ffd6c25a1c179a1caf5584ce
DIST kismet-2023.07.1-stdint-fix.patch 144077 BLAKE2B 77a4ca3da4ed54e567d21c7d8d0a718751802827bcefc1122318c989cde93a2132753c910e6f503e74dac30024111edc788d9df65ef4c4749ab918485d818ee3 SHA512 cb9220cdd5e14d030ef303e28a32dced61916ff64aa5960c412c2355c1b714dc423e34b33ef701e1daa2a22c9562a85a739dc130c4ec5761924338ffb462286b
DIST kismet-20250512.gh.tar.gz 13341796 BLAKE2B 302f765f8a2da4a9d278678de660a70c84d5385a0187d8915adb293ce668d2e3d488d74588395c7cbabcfe65fe9926c17b8f2877e982b1ddfb9989c32d1cff7e SHA512 5d936d53e8d806220789ade9179bd7ccedfaaaebd7ee30873b7a737312bc138a1cc41829e537fa61892449e205de9c5ea60d620c46a2f02347d8a1e035cd14a7

View file

@ -1,10 +0,0 @@
--- a/capture_linux_wifi/linux_wireless_control.c.orig 2023-07-20 22:02:04.000000000 +0800
+++ b/capture_linux_wifi/linux_wireless_control.c 2025-05-13 22:14:22.831343873 +0800
@@ -31,6 +31,7 @@
#include <sys/types.h>
#include <dirent.h>
+#include <stdio.h>
#ifdef HAVE_LINUX_WIRELESS
#include <asm/types.h>

View file

@ -30,7 +30,6 @@ else
"${DISTDIR}/${P}-stdint-fix.patch"
# https://github.com/kismetwireless/kismet/pull/517
"${FILESDIR}"/0001-configure.ac-bashism-fix-critical-existence-failure-.patch
"${FILESDIR}"/kismet-stdio.patch
)
KEYWORDS="amd64 arm ~arm64 ~ppc x86"
@ -41,7 +40,7 @@ HOMEPAGE="https://www.kismetwireless.net"
LICENSE="GPL-2"
SLOT="0/${PV}"
IUSE="libusb lm-sensors networkmanager +pcre rtlsdr selinux +suid ubertooth udev +wext"
IUSE="libusb lm-sensors networkmanager +pcre rtlsdr selinux +suid ubertooth udev"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
# upstream said protobuf-26.1 breaks everything
@ -135,7 +134,6 @@ src_configure() {
$(use_enable lm-sensors lmsensors) \
$(use_enable networkmanager libnm) \
$(use_enable ubertooth) \
$(use_enable wext linuxwext) \
--sysconfdir=/etc/kismet \
--disable-optimization
}

View file

@ -0,0 +1 @@
kismet-9999.ebuild

View file

@ -0,0 +1,211 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
inherit autotools eapi9-ver python-single-r1 udev systemd
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="https://www.kismetwireless.net/git/${PN}.git"
inherit git-r3
RESTRICT="strip"
elif [[ ${PV} =~ ^[0-9]{8}$ ]] ; then
HASH_COMMIT="85b84a24289c69a8742ae803f762fa0f6b366eeb"
SRC_URI="https://github.com/kismetwireless/kismet/archive/${HASH_COMMIT}.tar.gz -> ${P}.gh.tar.gz"
S="${WORKDIR}/${PN}-${HASH_COMMIT}"
# RESTRICT="strip"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
else
MY_P=${P/\./-}
MY_P=${MY_P/_beta/-BETA}
MY_P=${MY_P/./-R}
SRC_URI="https://www.kismetwireless.net/code/${MY_P}.tar.xz"
S=${WORKDIR}/${MY_P/BETA/beta}
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
fi
DESCRIPTION="IEEE 802.11 wireless LAN sniffer"
HOMEPAGE="https://www.kismetwireless.net"
LICENSE="GPL-2"
SLOT="0/${PV}"
IUSE="libusb lm-sensors mqtt networkmanager +pcre protobuf rtlsdr selinux +suid ubertooth udev +wext"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
# upstream said protobuf-26.1 breaks everything
# details are unclear at this time but adding restriction for safety
CDEPEND="
${PYTHON_DEPS}
mqtt? ( app-misc/mosquitto )
networkmanager? ( net-misc/networkmanager )
dev-libs/glib:2
dev-libs/elfutils
dev-libs/openssl:=
sys-libs/zlib:=
dev-db/sqlite:3
net-libs/libwebsockets:=[client,lejp]
kernel_linux? ( sys-libs/libcap
dev-libs/libnl:3
net-libs/libpcap
)
libusb? ( virtual/libusb:1 )
protobuf? ( dev-libs/protobuf-c:=
<dev-libs/protobuf-29:= )
$(python_gen_cond_dep '
protobuf? ( dev-python/protobuf[${PYTHON_USEDEP}] )
dev-python/websockets[${PYTHON_USEDEP}]
')
lm-sensors? ( sys-apps/lm-sensors:= )
pcre? ( dev-libs/libpcre2:= )
suid? ( sys-libs/libcap )
ubertooth? ( net-wireless/ubertooth )
"
RDEPEND="${CDEPEND}
acct-user/kismet
acct-group/kismet
$(python_gen_cond_dep '
dev-python/pyserial[${PYTHON_USEDEP}]
')
rtlsdr? (
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
')
net-wireless/rtl-sdr:=
)
selinux? ( sec-policy/selinux-kismet )
"
DEPEND="${CDEPEND}
dev-libs/boost
dev-libs/libfmt
sys-libs/libcap
"
BDEPEND="virtual/pkgconfig"
src_prepare() {
#sed -i -e "s:^\(logtemplate\)=\(.*\):\1=/tmp/\2:" \
# conf/kismet_logging.conf || die
#sed -i -e 's#root#kismet#g' packaging/systemd/kismet.service.in
rm -r boost || die
rm -r fmt || die
# bundles mpack but I failed to successfully unbundle
# rm -r mpack || die
#dev-libs/jsoncpp
#rm -r json || die
#sed -i 's#"json/json.h"#<json/json.h>#' jsoncpp.cc kis_net_beast_httpd.h \
# log_tools/kismetdb_clean.cc log_tools/kismetdb_dump_devices.cc \
# log_tools/kismetdb_statistics.cc log_tools/kismetdb_to_gpx.cc \
# log_tools/kismetdb_to_kml.cc log_tools/kismetdb_to_pcap.cc \
# log_tools/kismetdb_to_wiglecsv.cc trackedcomponent.h \
# trackedelement.h trackedelement_workers.h
default
if [ "${PV}" = "9999" ]; then
sed -i -e 's#-Wno-dangling-reference##g' configure.ac || die
eautoreconf
# Untested by should fix same in non-live
#else
# sed -i -e 's#-Wno-unknown-warning-option ##g' configure || die
fi
#this was added to quiet macosx builds but it makes gcc builds noisier
sed -i -e 's#-Wno-unknown-warning-option ##g' Makefile.inc.in || die
}
src_configure() {
econf \
$(use_enable libusb libusb) \
$(use_enable libusb wifi-coconut) \
$(use_enable mqtt mosquitto) \
$(use_enable pcre) \
$(use_enable pcre require-pcre2) \
$(use_enable lm-sensors lmsensors) \
$(use_enable networkmanager libnm) \
$(use_enable protobuf) \
$(use_enable ubertooth) \
$(use_enable wext linuxwext) \
$(use_enable rtlsdr librtlsdr) \
--sysconfdir=/etc/kismet \
--disable-optimization
}
src_install() {
emake DESTDIR="${D}" commoninstall
python_optimize
emake DESTDIR="${D}" forceconfigs
use udev && udev_dorules packaging/udev/*.rules
insinto /usr/share/${PN}
doins Makefile.inc
if [ "${PV}" = "9999" ];then
doins "${FILESDIR}"/gdb
dobin "${FILESDIR}"/kismet-gdb
fi
dodoc README*
newinitd "${FILESDIR}"/${PN}.initd-r3 kismet
newconfd "${FILESDIR}"/${PN}.confd-r2 kismet
systemd_dounit packaging/systemd/kismet.service
}
pkg_preinst() {
if use suid; then
fowners root:kismet /usr/bin/kismet_cap_linux_bluetooth
fowners root:kismet /usr/bin/kismet_cap_linux_wifi
fowners root:kismet /usr/bin/kismet_cap_pcapfile
# Need to set the permissions after chowning.
# See chown(2)
fperms 4550 /usr/bin/kismet_cap_linux_bluetooth
fperms 4550 /usr/bin/kismet_cap_linux_wifi
fperms 4550 /usr/bin/kismet_cap_pcapfile
elog "Kismet has been installed with a setuid-root helper binary"
elog "to enable minimal-root operation. Users need to be part of"
elog "the 'kismet' group to perform captures from physical devices."
fi
if ! use suid; then
ewarn "It is highly discouraged to run a sniffer as root,"
ewarn "Please consider enabling the suid use flag and adding"
ewarn "your user to the kismet group."
fi
}
migrate_config() {
einfo "Kismet Configuration files are now read from /etc/kismet/"
ewarn "Please keep user specific settings in /etc/kismet/kismet_site.conf"
if [ -n "$(ls "${EROOT}"/etc/kismet_*.conf 2> /dev/null)" ]; then
ewarn "Files at /etc/kismet_*.conf will not be read and should be removed"
fi
if [ -f "${EROOT}/etc/kismet_site.conf" ] && [ ! -f "${EROOT}/etc/kismet/kismet_site.conf" ]; then
mv /etc/kismet_site.conf /etc/kismet/kismet_site.conf || die "Failed to migrate kismet_site.conf to new location"
ewarn "Your /etc/kismet_site.conf file has been automatically moved to /etc/kismet/kismet_site.conf"
elif [ -f "${EROOT}/etc/kismet_site.conf" ] && [ -f "${EROOT}/etc/kismet/kismet_site.conf" ]; then
ewarn "Both /etc/kismet_site.conf and /etc/kismet/kismet_site.conf exist, please migrate needed bits"
ewarn "into /etc/kismet/kismet_site.conf and remove /etc/kismet_site.conf"
fi
}
pkg_postinst() {
if ver_replacing -lt 2019.07.2 || ver_replacing -eq 9999; then
migrate_config
fi
udev_reload
if use wext; then
# duplicate configure.ac warning:
ewarn "Linux Wireless Extensions were disabled. Compiling without wext on a"
ewarn "Linux system is certainly possible, however nearly all of the packet"
ewarn "sources will be disabled (including capture sources for Cisco, Madwifi,"
ewarn "Orinoco, Prism, and just about every other live capture method). Make"
ewarn "sure this is what you want to do"
fi
}
pkg_postrm() {
udev_reload
}