From c690c0c4476d228884dae1d73bad018694de26dc Mon Sep 17 00:00:00 2001 From: Vincent Li Date: Sat, 14 Sep 2024 15:33:34 +0000 Subject: [PATCH] lunatik: add lunatik addon lunatik has LuaXDP that supports scripting XDP for TLS SNI parsing and many other scripting featuers for kernel. see lunatik build workaround in detail https://github.com/luainkernel/lunatik/issues/189 https://github.com/vincentmli/BPFire/issues/40 Signed-off-by: Vincent Li --- config/rootfiles/common/lunatik | 46 ++++++++++++++++++ lfs/lunatik | 82 +++++++++++++++++++++++++++++++++ make.sh | 1 + 3 files changed, 129 insertions(+) create mode 100644 config/rootfiles/common/lunatik create mode 100644 lfs/lunatik diff --git a/config/rootfiles/common/lunatik b/config/rootfiles/common/lunatik new file mode 100644 index 000000000..47c0a264c --- /dev/null +++ b/config/rootfiles/common/lunatik @@ -0,0 +1,46 @@ +lib/modules/6.6.15-ipfire/lunatik +lib/modules/6.6.15-ipfire/lunatik/luacompletion.ko +lib/modules/6.6.15-ipfire/lunatik/luadata.ko +lib/modules/6.6.15-ipfire/lunatik/luadevice.ko +lib/modules/6.6.15-ipfire/lunatik/luafib.ko +lib/modules/6.6.15-ipfire/lunatik/luafifo.ko +lib/modules/6.6.15-ipfire/lunatik/lualinux.ko +lib/modules/6.6.15-ipfire/lunatik/luanetfilter.ko +lib/modules/6.6.15-ipfire/lunatik/luanotifier.ko +lib/modules/6.6.15-ipfire/lunatik/luaprobe.ko +lib/modules/6.6.15-ipfire/lunatik/luarcu.ko +lib/modules/6.6.15-ipfire/lunatik/luasocket.ko +lib/modules/6.6.15-ipfire/lunatik/luasyscall.ko +lib/modules/6.6.15-ipfire/lunatik/luathread.ko +lib/modules/6.6.15-ipfire/lunatik/luaxdp.ko +lib/modules/6.6.15-ipfire/lunatik/luaxtable.ko +lib/modules/6.6.15-ipfire/lunatik/lunatik.ko +lib/modules/6.6.15-ipfire/lunatik/lunatik_run.ko +lib/modules/lua +lib/modules/lua/driver.lua +lib/modules/lua/examples +lib/modules/lua/examples/dnsblock +lib/modules/lua/examples/dnsblock/common.lua +lib/modules/lua/examples/dnsblock/dnsblock.lua +lib/modules/lua/examples/dnsblock/nf_dnsblock.lua +lib/modules/lua/examples/dnsdoctor +lib/modules/lua/examples/dnsdoctor/common.lua +lib/modules/lua/examples/dnsdoctor/dnsdoctor.lua +lib/modules/lua/examples/dnsdoctor/libxt_dnsdoctor.lua +lib/modules/lua/examples/dnsdoctor/nf_dnsdoctor.lua +lib/modules/lua/examples/echod +lib/modules/lua/examples/echod/daemon.lua +lib/modules/lua/examples/echod/worker.lua +lib/modules/lua/examples/filter +lib/modules/lua/examples/filter/sni.lua +lib/modules/lua/examples/keylocker.lua +lib/modules/lua/examples/shared.lua +lib/modules/lua/examples/spyglass.lua +lib/modules/lua/examples/systrack.lua +lib/modules/lua/examples/tap.lua +lib/modules/lua/mailbox.lua +lib/modules/lua/socket +lib/modules/lua/socket/inet.lua +lib/modules/lua/syscall +lib/modules/lua/syscall/table.lua +usr/sbin/lunatik diff --git a/lfs/lunatik b/lfs/lunatik new file mode 100644 index 000000000..4969d16f9 --- /dev/null +++ b/lfs/lunatik @@ -0,0 +1,82 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2024 IPFire Team # +# Copyright (C) 2024 BPFire +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 5.3.2 + +THISAPP = lunatik-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_BLAKE2 = ea116236c073b038bedc1c1c3a61b1eff7e4dc9fed105fdf469190002ff54b45216fc84a4a7257bf12e8adb5207c7c93aab32e017d64ab522c91cca131ac86d6 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +b2 : $(subst %,%_BLAKE2,$(objects)) + +############################################################################### +# Downloading, checking, b2sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_BLAKE2,$(objects)) : + @$(B2SUM) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_APP) && make btf_install + cd $(DIR_APP) && make + cd $(DIR_APP) && make install + cd $(DIR_APP) && make examples_install + cd $(DIR_APP)/examples/filter && make + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index aaedcda55..7a863c2e3 100755 --- a/make.sh +++ b/make.sh @@ -1721,6 +1721,7 @@ buildipfire() { lfsmake2 loxilb-tc lfsmake2 loxicmd lfsmake2 loxilb + lfsmake2 lunatik # Kernelbuild ... current we have no platform that need