Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

app-admin/opensnitch: add 1.5.8 #1497

Merged
merged 3 commits into from
Mar 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app-admin/opensnitch-ebpf-module/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
DIST linux-6.0.14.tar.gz 214150171 BLAKE2B 98ec9c9d25416fe757712d629818a51b3f2fbb42b792a2e991f32841487de3115d593a72f61ceefeb92ddc8f75e7d6161eff74d017243fe1115f9e116c0850f6 SHA512 b5b33c25f6bcdc644bfe852ecc50d9ef516660de2e5bc6b42a675cd67c67740ce62a6e6f775de35a823d82bfeec773f6b94cedc79957fbf43a0b6c964887d681
DIST opensnitch-ebpf-module-1.5.8.tar.gz 1054833 BLAKE2B a4ff85524cbe533977cb7740d5c26202444f26286dcb2ebaf081111e6b6152148b0b76c0da7c43e50aeb6ff164ea9154e505c400fac8a292e116e15ba28d4ecf SHA512 d3027f1b84ead4ca870c3aa6442811e1cf1056a29429a069de35d73a3366b474d3d95e5cf8f3666dcf3277375af49e13794290d9914fbeec169d84e2dd610a04
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit linux-info

DESCRIPTION="eBPF process monitor module for opensnitch"
HOMEPAGE="https://github.com/evilsocket/opensnitch"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"

# latest kernel that builds: 6.0.14
_KV_MAJOR=6
_KV_MINOR=0
_KV_PATCH=14

SRC_URI="
https://github.com/evilsocket/opensnitch/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://cdn.kernel.org/pub/linux/kernel/v${_KV_MAJOR}.x/linux-${_KV_MAJOR}.${_KV_MINOR}.${_KV_PATCH}.tar.gz
"

S="${WORKDIR}/linux-${_KV_MAJOR}.${_KV_MINOR}.${_KV_PATCH}"
_BPF_S="${WORKDIR}/opensnitch-${PV}/ebpf_prog"
_KERNEL_BPF_PATH=samples/bpf

BDEPEND="
sys-devel/bc
sys-devel/clang
sys-devel/llvm
net-misc/rsync
"

RESTRICT="strip test"
QA_PREBUILT="*"

PATCHES=(
"${_BPF_S}/file.patch"
)

# see https://github.com/evilsocket/opensnitch/issues/774
# and https://github.com/evilsocket/opensnitch/tree/master/ebpf_prog
CONFIG_CHECK="
DEBUG_FS
FTRACE
CGROUP_BPF
BPF
BPF_SYSCALL
BPF_EVENTS
KPROBES
KPROBES_ON_FTRACE
HAVE_KPROBES
HAVE_KPROBES_ON_FTRACE
KPROBE_EVENTS
HAVE_SYSCALL_TRACEPOINTS
FTRACE_SYSCALLS
UPROBE_EVENTS
"

pkg_pretend() {
linux-info_pkg_setup
}

src_prepare() {
default
local MY_SRC=(
"${_BPF_S}/opensnitch.c"
"${_BPF_S}/Makefile"
)
cp "${MY_SRC[@]}" "${_KERNEL_BPF_PATH}" || die
}

src_configure() {
set_arch_to_kernel
yes "" | make oldconfig
emake prepare
}

src_compile() {
emake headers_install

emake -C "${_KERNEL_BPF_PATH}"

llvm-strip -g "${_KERNEL_BPF_PATH}"/opensnitch.o
}

src_install(){
insinto /etc/opensnitchd
doins "${_KERNEL_BPF_PATH}"/opensnitch.o
}
9 changes: 9 additions & 0 deletions app-admin/opensnitch/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,38 @@ DIST github.com-golang-net-491a49abca63.tar.gz 1227713 BLAKE2B 68bb26d20dde540f8
DIST github.com-golang-protobuf-v1.5.0.tar.gz 171512 BLAKE2B 49fa31ff98d923b0b1db8eb29008b3cbe634e2ab0b106deac1f0ffb69e7762a10e2cabf77e45e4f68a6dfc20f22631480c532b7b137e75ba607d64aa9c79e023 SHA512 1b2316f08bec4651dc196d487b1aebfdf875baa33a5256aad8ea21ee726cdf0835822a58920c5b1af501acbf0e5039e20d621a8247320727f4b1832eb2189110
DIST github.com-golang-protobuf-v1.5.2.tar.gz 171702 BLAKE2B 4b1b0936aed1919f3ec967648d15a0c533b57d9d19d3c80c8d4149345bf6bda096d6b5cfd5c49ef5e76eb7358e694fc159d16faedb096faf81e82e425377892d SHA512 5707936f2ea9493d2f3897a3ec04139afcc00b3dbfaa2142b56a492d356bc17e26237c74788b047592a0fa89c0078b7970dbf481f7c33a7a63c5f50557779590
DIST github.com-golang-sync-036812b2e83c.tar.gz 18757 BLAKE2B bcacc4b7967712290c678018d206c24b71bf3057c862454bccdd497c792a7d9000ecbac329a19ad364387e18a5f1f368d5e177a78670eb631808c2d336c83af6 SHA512 5e9a75eabc254b496b39bfb33181999a2060188db17c6bcc31b3d0a31d32122eb078cac8a3359675f03078a456839541e43d169103b183484372bb74857160dd
DIST github.com-golang-sync-v0.1.0.tar.gz 19356 BLAKE2B ad4f71ddcc1421accc6caf39b58234e9bd0137c32fd5bd834c02d27a51c7933ce97447c8e91860f8b1e478d5370d92d9e801b62ae5cd425baa52df3435e8baf7 SHA512 765dc0365332218b2c3e1a04d63c86a1ab12508a5e9b115dfb73b1d436c592d67d0540f39958546a868772614f255ac92601d5c0263b36884e5a0f9bc9054d40
DIST github.com-golang-sys-4e6760a101f9.tar.gz 1260696 BLAKE2B 68144701163d4721523ac02125058cc5bc09e20571d37475b8a15c36cfc1dd54ff40d7ed0ceabb30ed4969c857b3fab8fd4141b17d8ce17a1052c5fe6f81897c SHA512 24df91664f83c548901f412820f8b3165617c1540e17759ac6f1361082debc4dcc320ad3cb2c595c2fe528c424849643ed87a212127dba7503a405983a91fcbe
DIST github.com-golang-sys-97ca703d548d.tar.gz 1255342 BLAKE2B 73b3957c8e8dde9135e7f0e6c99960292ef9d7e29087f8a1214064bfc9632198d06b0611bbef69a48b13d7a3022b57c9b37ccb90c117ce32cb8004f2aaf73847 SHA512 000ca834af65efd9a86f44c12c8f5d553c2479af64ed63782d543861b3d8a8ace58abc39b728cd1ef93643b7d73f1bd7c9499a701fb73f04d17b4231214bef69
DIST github.com-golang-sys-v0.2.0.tar.gz 1410639 BLAKE2B db1c7c6a8a3ddf22459fe3301ae0e641cde5b357d7c537cd14ebd554d6b68c3f823e844d2b0869d20d25b5f030da5b67e03767fcd3f6e63f20f653d5797d612f SHA512 8d13f6fdc6c7f589a7a60caccfd3fa4d784ee3c2fe33ece21b51a8c72b3b27d4ae5df88afacaa231955599471cc780b406e0e0c85359e0e5314ee66990d5ce3e
DIST github.com-golang-text-v0.3.7.tar.gz 8354718 BLAKE2B 77eb1d08ff420e0d1fff4e92641bd463a0a6e84625bc26f83a9edc467144448b513116f8b72954a30533eafe3454fb739dcdede169229a01df81c8b152c2ba57 SHA512 52899d4326ba4c9bb9a051ba52810d12e531a57bb85d48fa03dd9a9cbbf69a191eb35fbf8dfec8ec8ded706f5a67cd9cf39bc4f491676004e335a37878adb6f2
DIST github.com-golang-text-v0.7.0.tar.gz 8361947 BLAKE2B 210702fc9b6cef7a66abc167705cd753aef285eeb679fcd221493d6a64053f33c9042f8156973419a760ca46b9f8abb55740a11ffb38b1fa7cad18dc9e99e9a8 SHA512 f22006d42a0e18ed7f2dcb6566f8ded8cacbd8cea7a475eff7ce581af07266eabc0b7577b3a34c8ea5cb2299d8bcfe78e41b631e4df1a6cff0f4b953b85294f9
DIST github.com-google-gopacket-v1.1.14.tar.gz 748336 BLAKE2B f1fe54954b229fafe9cf18e6337f4222cdeb6d71cba0c5c3d0b04eae63952a039cc283eff580db3e79db49b827d64ee54e8d5e64a24546037400faf92c97f086 SHA512 fda58ad503e2547b0e09e511a2ffe5b2e6fa7ba1df3cbf26ae6e08075420586f0f1f553914ee969fcfbdd0a344e240a0d11ae85266c926f138d3efe6afa250b2
DIST github.com-google-gopacket-v1.1.19.tar.gz 950745 BLAKE2B fae65da5b9611aace62d4b2565a197b9512223c05f4cfd95178b7cb307fe6bb522a31b9d4d9fbd8cfe86056ef1f90dbefccb183963a1040a6b56ea5a07eb019e SHA512 c9ca009770f84d29c30b5a6ae210f4b09051f4bbcb81c1118d3f8ab577b16fb617c89fb461ad4117ec7fe3b8bdc7efe778a2f56526276f984573d8293ae0ef62
DIST github.com-google-nftables-950e408d48c671ccd9f4997a4b6eb95db21365d6.tar.gz 52437 BLAKE2B 6ea9115fc39c8833715c78792dc79dc682b83bcd85def563729f171988e66d491e2463247035a2102e45d0bce06a2376a3b77fe395e5a3e67241bb59cfdccc21 SHA512 7ad830a1761c42995643c0a66b635332fe9bb1c4eb3c47ec3e69cd39e4f63f1bc88187e9c262edc8d30ab39af281a5fa8de05f250c5f4c9b87c1278ccedf8cb3
DIST github.com-google-nftables-v0.1.0.tar.gz 76163 BLAKE2B fefdc09c55ffb817f74d2143815d56cbd306e04280fd1cdb9e7f936bf1cbe431fbebc6b36dd08428a48f7fe3e08d9db3356c47404f657509da7895cf65132d2a SHA512 8706ab05a3dd83f7188bc3f03b6e107bfd2ae89b6b1335e60184a1b7cf7a537c96cfffeaf89b4948b8f0c7071af63425c16cf1f352b086ee058aa65f282b4308
DIST github.com-googleapis-go-genproto-0dfe4f8abfcc.tar.gz 6431647 BLAKE2B f23604cd72adfd820dec0aaf16ca3895049554767643a402f7dd65f564b747cfb65723aefd9a5e47a6cceba6cf2eaa24f66b5abe1b568e3456cd1fb29c91bd3a SHA512 5f0496378a2e32e13b1325f8d3a8a0ce6de3e716e1faea3387423f40be9042287541d1479b8bbbd9f0322ca4ce27903ba9ec6077de57fd9683d616889232556d
DIST github.com-googleapis-go-genproto-325a89244dc8.tar.gz 12862283 BLAKE2B 6ac945d3b3ee959bab4b8bf59c11976cc7a0fa11e8f5ef6fbbf2ed04c05cf3f2b3e572893c148bb57bbce4e134e3fd8f8e11403987b3293e55317348fb92468e SHA512 b9d91610c4b39447ac56d40a4e7ad57f1c29f6a228aea6931daa1dd680a171a13bfa1a4ebb66f2c423b0d5aedcd232a3d51d6f0c6c8790f977d249129a0879f8
DIST github.com-grpc-grpc-go-v1.32.0.tar.gz 1053458 BLAKE2B 34fdd17ef7edecc84df8fbcfaee653192fd370e98929e33ba7bff7ef0e6fa04e3befb3153ab23d4bd98eeecb3c714e77aac2c56d448eb99b1d2e03bfc1a39798 SHA512 004f6ba02a53c67051cfe595ab5ce2692a6ef878d55a48165bd601cdbd5fa3a8e4944ba1ca7f5dc4aafac76f85c23714f8f2cfce8d14ea705ef4897c70cfce29
DIST github.com-iovisor-gobpf-v0.2.0.tar.gz 115750 BLAKE2B 72d08e28d3453b0f2fd5acc3b16586fb4802b9faaad46e219f2465a48cadcb2ecc63c306f0e2a6d64e7c3308d2c55dc083bde6642678c8ce2acfefb63def7275 SHA512 00f28329b89a2fd7e76339b49e30b1bef31eab62854a77c77ccf29ac891f3c12b52f6feb3203d78b8ae2c5fe2f5529db5280686f752cd5b4577e5312dcc67ead
DIST github.com-josharian-native-b6b71def0850.tar.gz 1803 BLAKE2B 0fa20f7cfb0d5209d09f218cb289194382ca3c2f4c60d25074356588d02693f989ea7ddc9b1d723193ba9a2a101370703f2f6a7c4f3304071f8c7b9132784a02 SHA512 056a78fac8187e8472552c5ab40bf5721a12b222ef5a839e4446a8c803bb0154c16c06cbcaa9951c987ce9cd69ba70ceb2358024522d42f53cbaa644a04de58e
DIST github.com-josharian-native-v1.0.0.tar.gz 1803 BLAKE2B 312ccaa66a0300f8008c43694afc487713424002aac44f181df67ebc850cf31a755cc3b7bd541ad7283d8f8cc05b09c751fac962f2166321dbd2a39c2a336739 SHA512 ec1c4a1abf5cf39221de87d50443b7e7f48ca5b9dbfa0662a43cf7e54c0912ebad4209ee909423104ac2b236b9f781ed08673cef6194d23239aa3f6ca3030bba
DIST github.com-josharian-native-v1.1.0.tar.gz 2061 BLAKE2B 8660695fa46e037e3a105973f3361c9b9d9fb157376508ec41786f17a09eee0280184aadb4ada7283d449fdc53663e0df74d42b109a82587c80308ca6dc238ca SHA512 7ba7457276c89a11637c2718bf2c0040e9da20149e0a0de89c8fe882cfca468b89f9816203a4979d7169b64f637358463d248b33db11af91cc931aeeb945b5a0
DIST github.com-mdlayher-netlink-v1.4.2.tar.gz 57575 BLAKE2B 38fe177f83a8f6737739725c32a40f1533b5bb11f1c11b3829e14f1e82e3869f83d82bb906df8cca29c121023ee7e18a29e0be09a4c845ebf28a6c0912e550ef SHA512 a1be53bfe1dc74434101adfc326834afdba35eec9fe6b095699f9d18bddb2f6ec3c3d93d8c832a2b7a8fa272a41e334a80dbb1b82533cdde1a215d299103c72d
DIST github.com-mdlayher-netlink-v1.6.0.tar.gz 58884 BLAKE2B 42461a6d1abf984cb1d38ba92e49d600fbab94bc3a961423bbc09da6f6a992a43daebd9112a27539869effae9165d685de87ebdce87f4242acefa8f348b03e31 SHA512 d74221db8de9d59a43622838bd58eb1af87ec36413a3147e9d724edf536cdc901cc27cf4bd7b0adf4d44eb0dfb2ae4fc4ab966437cbceac941b2834f95cded95
DIST github.com-mdlayher-netlink-v1.7.1.tar.gz 50495 BLAKE2B 09898c82a8026f646439ded340095ee3147cc48c2e55d66f528b3fe88622d9ea9b4c19364a5f28539e2234b0583fc29cd1c9a08bfea944400974b79d689ba8c8 SHA512 75b21719f5fc8f276e6f396d50974739297682b781342f37f3dc2926c38f5b7988ccbc8bcef1a13fb3e3c90d0357118418754811bb43395b98764d6a6aeea142
DIST github.com-mdlayher-socket-41a913f399.tar.gz 20712 BLAKE2B 7a5eacf3f607450c280320db80e4e3ac83cd0468d81f90e7091fc2b0b1a93ebb388af4753d28f2c7b79183b3fc910283a07f9e42a700154ebf653b9eb2d91b5c SHA512 ab3dd9f3fec2510043bc4c6094e01f6a527ea98815ba723c9545bf6e3c1fbf5aa8036ee6835d4c87f09fce76e8709a888ffdbaf95f927ae78358bb469290676d
DIST github.com-mdlayher-socket-57e3fa563ecb.tar.gz 9712 BLAKE2B 15cf127f26cfb6ca5cffbd7ccf043bffbb50a2079e4ce95f90e8137a218ee0d43bb9257b6dbc568c968303fbf5b007856d5c8b13d3f57396d681e74416e2f663 SHA512 5efab683ba60d4eab50811dce051ab3c2cc427483e9f6bb499f6b5a607c9a3f14fc187bb9e02654296d88f299645e45aa0709d2211a3af491a1ad12cded6d77e
DIST github.com-mdlayher-socket-v0.2.2.tar.gz 16879 BLAKE2B e764cd906400c24bf3b19befe654d7144e147116788fbceeb8d262de2f0c352c1da3ea6c797063c8aa93841be4f9cdb5f7f64c93db93aebf1061f5554a174ca2 SHA512 68312b06d20347960fee198857c23cb984d7a6a1bae48ca23c86e58e519cb3d4fe0a8b9b218b829a8dc40d7167af5f9a040d8e6c9f96cdd7f9d15c8499387d73
DIST github.com-protocolbuffers-protobuf-go-v1.26.0.tar.gz 1270215 BLAKE2B 96c9d80eac5558a2f3af8b018d498f03d6ce396951e68fc4f383aed04f571fbc1325d7bb8641de860454c4e1826a3a35852b724e85dfe04a30531ee592d9affc SHA512 18d3392fae131014e95961cc7490c8a4f0e0a7d95a18f0a469a9f2b119a1b89bf1952881950129e2b96ea4096b220ff8a3250736ca6efd5eca004f56db861844
DIST github.com-protocolbuffers-protobuf-go-v1.27.1.tar.gz 1278521 BLAKE2B 1591dbfc5aae2360d69ca3e5e9247c4287114699f732d85011fb1c6b5daa3532d2218ce4ddf0390ffb23a3fd097ffa1b6bc418ba968dab98112a4522cc5fe93b SHA512 a0236bc88b963df0acc2a2c7c247334614b2d555f341e103fd06759665802069a320ced4ab51be658283cc816ec9f2d53ed98728895c5b8ce18954a17663264b
DIST github.com-vishvananda-netlink-e1a867c6b452.tar.gz 176331 BLAKE2B fa2eca75c1e66a035cfcbf6040382bc492960b5338762af93119646691303aff7a15481166a1040f0a0ad49a6048fd280ee3de4ee311065f10e5e4498e95044c SHA512 2db2037017f5db53dd820f234373516d319d20621c43445fb6aff4208bfb38912bbc64700ae6d9feff3048a3e959273fff00f02458a7973c49b177deecf0bf6f
DIST github.com-vishvananda-netlink-v1.1.0.tar.gz 147026 BLAKE2B 146936d2a959f1a9509e94a50dfd36a1bee9599d158d41a29ac65d305520f85def91df78b6c7b5475915e7aef11b150de6aefd7e2fd8856550624281555ef8b0 SHA512 55f184870a9ce85314d278722f49e0c2f51939841f37aee8f50bb150afa545fd18a9a43556d428fb8e960eb063a14c50c920de20f2a375bd780432cb26155918
DIST github.com-vishvananda-netns-50045581ed74.tar.gz 8714 BLAKE2B f52368ec96295eb22491fc361ea5571e49a7e7a2eac1638863e680070968612d5abbbef9c7f7bcb6c18aca13972289bc352b93913c299f4f6f6d64a2ab1e917e SHA512 8a7943b0c6ebb606a8af534c78a87a47be6204f490b569296e375c841d321f470f1c006b95d09e843ac50763c0496fd0a60f73a4a8eb5c55bc68f1f36fd1296a
DIST github.com-vishvananda-netns-7a452d2d15.tar.gz 9748 BLAKE2B 2476dd583f84ee622f4ad00b495e5602348aeb8c7aef86ea6d88ef88d9483d836b1be49cf4e607fdbc50599c8b4dab13782f734900bc94a97f9db1bdc9ccd8a0 SHA512 b81c24996fbd6c1787d4cf629e7d8a04257d50ed9956a6fd8848c22c155bfc322370a3bed0b8d7681c52a72b9a9d7e86161620e090a7685a61b24fa0597f1e64
DIST github.com-vishvananda-netns-db3c7e526aae.tar.gz 8281 BLAKE2B d74e12debc35118ccd55abc297e1dd39408c8817ffff06965840a984bd5552b45da42a8f89f91adabd2e27b9a32d7d823ae065834aa7ccd5376d4ab3d429738c SHA512 cc564db276cf3cabba1f7dacbb84e5a90d1b2545bddf69ea84c266dd730e11c3db00d40565c74bf67a2f065f0f8e0a797db53fcdbeeade8cd692178367ce3533
DIST opensnitch-1.5.2.tar.gz 995296 BLAKE2B aab54c00de55c42aebbae23fd0cb7befdc87c633153c9ae4a4b6535587e2ccd3436343cdd121e76118d3c17ec23778fb80e5d973dcd8b296b2f1986cc2dc1e6f SHA512 77ad266dd3531f576e2b10aff5bcfa724c4e7b90d8b9deb01d7bdf24c728f32c9a7d16eaa91954177a3717fbebc8b1524cf975ae899c2d703ccaba4ac4b86c19
DIST opensnitch-1.5.3.tar.gz 1034789 BLAKE2B 4bb947931c66799f576659d1c0de47d832f098c26b1d80235d21017270b1fdcb84fc08bc36c77c1deab285beda9dffe98420b17fea88fc374bb0bc3780d6c176 SHA512 26cd48af5867dbf905d742819bab3632e5d7b2df25661088d3c38e4db3641ecd79fb70e03f99a5ca74149926feb40935fa3ded586a49695bb2bad948a2c823e9
DIST opensnitch-1.5.8.tar.gz 1054833 BLAKE2B a4ff85524cbe533977cb7740d5c26202444f26286dcb2ebaf081111e6b6152148b0b76c0da7c43e50aeb6ff164ea9154e505c400fac8a292e116e15ba28d4ecf SHA512 d3027f1b84ead4ca870c3aa6442811e1cf1056a29429a069de35d73a3366b474d3d95e5cf8f3666dcf3277375af49e13794290d9914fbeec169d84e2dd610a04
DIST opensnitch_amd64.o 10728 BLAKE2B 398f97a9136c8909955dc0ee2f258d2940b915fbd9142e97540813c977bb67cceb2cfc80df248512bc974960d0936c18c55496c1fd17e3176681560a52518047 SHA512 167b1913c0da8597079bee71063a084724b8326b3587ca91b7b72116ae8e998dae8871976fcb7b98135868ffe274d5d332dbacd53a0e47fb5510122b875674af
DIST opensnitch_i386.o 10368 BLAKE2B 15b4abd5da8c2ab29f91b2fdefe6ee095dde09d1dcb3180339ba8ab567e29400e77598f1f969c7a4e9b23140564807c237d52b5601d84e2733b658fa9ccd1aaa SHA512 a8e493f4f62e706d0499fa92777ebd8339c925b1622a75595971ee53a3d73b653749a053c3c43bb4a0dc7b6baaed45442d458626c3731bcbc97af069e2b7b160
16 changes: 12 additions & 4 deletions app-admin/opensnitch/files/systemd.patch
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
diff --git a/daemon/opensnitchd.service b/daemon/opensnitchd.service
index 014e79e..8a81d0e 100644
index 6c3e6df..57e44b3 100644
--- a/daemon/opensnitchd.service
+++ b/daemon/opensnitchd.service
@@ -8,7 +8,7 @@ After=network.target
@@ -1,14 +1,12 @@
[Unit]
Description=OpenSnitch is a GNU/Linux port of the Little Snitch application firewall.
-Documentation=https://github.com/gustavo-iniguez-goya/opensnitch/wiki
+Documentation=https://github.com/evilsocket/opensnitch/wiki
Wants=network.target
After=network.target

[Service]
Type=simple
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /etc/opensnitchd/rules
-PermissionsStartOnly=true
-ExecStartPre=/bin/mkdir -p /etc/opensnitchd/rules
-ExecStart=/usr/local/bin/opensnitchd -rules-path /etc/opensnitchd/rules
+ExecStart=/usr/bin/opensnitchd -rules-path /etc/opensnitchd/rules -ui-socket unix:///tmp/osui.sock -cpu-profile /tmp/cpu.profile -mem-profile /tmp/mem.profile
Restart=always
Expand Down
145 changes: 145 additions & 0 deletions app-admin/opensnitch/opensnitch-1.5.8.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PYTHON_COMPAT=( python3_{10..11} )
inherit distutils-r1 linux-info systemd xdg-utils

DESCRIPTION="Desktop application firewall"
HOMEPAGE="https://github.com/evilsocket/opensnitch"

EGO_PN="github.com/evilsocket/opensnitch"
# modified from opensnitch/daemon/go.mod
# NOTE: build fails with github.com/josharian/native after commit 5c7d0dd6ab
EGO_VENDOR=(
"github.com/fsnotify/fsnotify v1.4.7"
"github.com/golang/protobuf v1.5.0"
"github.com/google/gopacket v1.1.14"
"github.com/google/nftables v0.1.0"
"github.com/iovisor/gobpf v0.2.0"
"github.com/vishvananda/netlink e1a867c6b452"
"golang.org/x/net 491a49abca63 github.com/golang/net"
"golang.org/x/sys v0.2.0 github.com/golang/sys"
"google.golang.org/grpc v1.32.0 github.com/grpc/grpc-go"
"google.golang.org/protobuf v1.27.1 github.com/protocolbuffers/protobuf-go"

"golang.org/x/sync v0.1.0 github.com/golang/sync"
"golang.org/x/text v0.7.0 github.com/golang/text"
"google.golang.org/genproto 0dfe4f8abfcc github.com/googleapis/go-genproto"
"github.com/mdlayher/netlink v1.7.1"
"github.com/mdlayher/socket 41a913f399"
"github.com/josharian/native v1.1.0"
"github.com/vishvananda/netns 7a452d2d15"
)

inherit golang-vcs-snapshot

SRC_URI="
https://github.com/evilsocket/opensnitch/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
${EGO_VENDOR_URI}
"

LICENSE="GPL-3"
SLOT="0"
IUSE="bpf systemd"
KEYWORDS="~amd64 ~x86"

DEPEND=">=dev-lang/go-1.19
net-libs/libnetfilter_queue
dev-go/go-protobuf
dev-go/protoc-gen-go-grpc
"
RDEPEND="
dev-python/grpcio-tools[${PYTHON_USEDEP}]
dev-python/notify2[${PYTHON_USEDEP}]
dev-python/python-slugify[${PYTHON_USEDEP}]
dev-python/pyinotify[${PYTHON_USEDEP}]
dev-python/PyQt5[sql,${PYTHON_USEDEP}]
bpf? ( ~app-admin/opensnitch-ebpf-module-$PV )
"

RESTRICT+=" test"

# needed by iptable rules
CONFIG_CHECK="
NETFILTER_XT_MATCH_CONNTRACK
NETFILTER_XT_TARGET_NFQUEUE
"

pkg_pretend() {
linux-info_pkg_setup
}

src_prepare() {
rm -rf src/${EGO_PN}/ui/tests || die

if use systemd; then
pushd ${WORKDIR}/${P}/src/${EGO_PN} > /dev/null || die
eapply "${FILESDIR}/systemd.patch"
popd > /dev/null || die
fi

pushd src/${EGO_PN} > /dev/null || die
eapply_user
popd > /dev/null || die
}

src_compile() {
emake -C src/${EGO_PN} protocol

pushd src/${EGO_PN}/ui > /dev/null || die
pyrcc5 -o opensnitch/{resources_rc.py,/res/resources.qrc}
# workaround for namespace conflict
# see https://github.com/evilsocket/opensnitch/issues/496
# and https://github.com/evilsocket/opensnitch/pull/442
sed -i 's/^import ui_pb2/from . import ui_pb2/' opensnitch/ui_pb2* || die
popd > /dev/null || die

# see https://github.com/evilsocket/opensnitch/issues/851
# opensnitch does not build without -fcf-protection when using go >= 1.19,
# error message:
# cgo: cannot load DWARF output from $WORK/..//_cgo_.o: zlib: invalid header
GOPATH="${S}:$(get_golibdir_gopath)" \
GOCACHE="${T}/go-cache" \
CGO_CPPFLAGS="${CPPFLAGS} -fcf-protection" \
CGO_CFLAGS="${CFLAGS} -fcf-protection" \
CGO_CXXFLAGS="${CXXFLAGS} -fcf-protection" \
go build -v \
-buildmode=pie \
-ldflags "-compressdwarf=false -linkmode external" \
-o opensnitchd \
"${EGO_PN}/daemon" || die

pushd src/${EGO_PN}/ui > /dev/null || die
distutils-r1_src_compile
popd > /dev/null || die
}

src_install(){
dobin opensnitchd

pushd src/${EGO_PN}/ui > /dev/null || die
distutils-r1_src_install
popd > /dev/null || die

pushd src/${EGO_PN}/daemon > /dev/null || die
insinto /etc/opensnitchd/rules
insinto /etc/opensnitchd/
doins default-config.json
doins system-fw.json

popd > /dev/null || die

if use systemd; then
pushd src/${EGO_PN}/daemon > /dev/null || die
systemd_dounit opensnitchd.service
popd > /dev/null || die
else
newinitd "${FILESDIR}"/opensnitch.initd ${PN}
fi
}

pkg_postinst() {
xdg_icon_cache_update
}