Guest User

Untitled

a guest
Dec 5th, 2024
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 5.75 KB | Source Code | 0 0
  1. # SPDX-License-Identifier: GPL-2.0-only
  2.  
  3. include $(TOPDIR)/rules.mk
  4.  
  5. PKG_NAME:=suricata
  6. PKG_VERSION:=8.0.0
  7. PKG_RELEASE:=1
  8.  
  9. PKG_SOURCE_PROTO:=git
  10. PKG_SOURCE_URL:=https://github.com/OISF/suricata.git
  11. PKG_MIRROR_HASH:=595c7a39405905053296bfdd3cbafd290bacfb86082299370fff8eff43c2b264
  12. PKG_SOURCE_DATE:=2024-12-03
  13. PKG_SOURCE_VERSION:=e9173f3b069b201448ebc808610406157e56cef6
  14.  
  15. PKG_CONFIG_DEPENDS:=CONFIG_KERNEL_XDP_SOCKETS
  16.  
  17. #PKG_FIXUP:=autoreconf
  18. #PKG_REMOVE_FILES:=autogen.sh
  19. PKG_FIXUP:=patch-libtool
  20.  
  21. PKG_BUILD_DEPENDS:=rust/host python3/host
  22.  
  23. include $(INCLUDE_DIR)/package.mk
  24. include $(INCLUDE_DIR)/bpf.mk
  25. include $(INCLUDE_DIR)/nls.mk
  26. include ../../lang/rust/rust-values.mk
  27.  
  28. define Package/suricata
  29.     SUBMENU:=Firewall
  30.     SECTION:=net
  31.     CATEGORY:=Network
  32.     DEPENDS:=+libexpat +jansson +libelf +libbpf +libbsd +libpcre2 +libyaml +libpcap +libcap-ng $(ICONV_DEPENDS) $(INTL_DEPENDS) \
  33.         +nspr +libnss +liblz4 +libatomic +libnet-1.2.x +libxdp +libnfnetlink +libunwind +libhiredis +vectorscan-runtime +SURICATA_ENABLE_PFRING:libpfring +zlib \
  34.     +SURICATA_ENABLE_NFLOG:libnetfilter-log \
  35.     +SURICATA_ENABLE_NFQUEUE:libnetfilter-queue +SURICATA_ENABLE_NFQUEUE:iptables-mod-nfqueue \
  36.     +SURICATA_ENABLE_HIREDIS:libhiredis +SURICATA_ENABLE_HIREDIS:libevent2  +SURICATA_ENABLE_HIREDIS:libevent2-pthreads \
  37.     +SURICATA_ENABLE_LIBMAGIC:libmagic \
  38.     +SURICATA_ENABLE_GEOIP:libmaxminddb \
  39.     +SURICATA_ENABLE_PYTHON:python3 +SURICATA_ENABLE_PYTHON:python3-yaml \
  40.     +lua5.4
  41.   TITLE:=OISF Suricata IDS
  42.   URL:=https://www.openinfosecfoundation.org/
  43.   MENU:=1
  44. endef
  45.  
  46. define Package/suricata/description
  47.     Suricata is an open source-based intrusion detection system (IDS), intrusion
  48.     prevention system (IPS), and Network Monitoring System (NMS)
  49. endef
  50.  
  51. define Package/suricata/config
  52.   source "$(SOURCE)/Config.in"
  53. endef
  54.  
  55. TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/hs -w -I$(PKG_BUILD_DIR)/src -I$(PKG_BUILD_DIR)/rust/gen -D_GNU_SOURCE
  56.  
  57. export CARGO_TARGET_$(subst -,_,$(call toupper,$(RUSTC_TARGET_ARCH)))_LINKER=$(REAL_GNU_TARGET_NAME)-gcc
  58.  
  59. CONFIGURE_VARS += \
  60.   HAVE_PF_RING_FLOW_OFFLOAD=1 \
  61.   pfring_recv_chunk=yes
  62.  
  63. CONFIGURE_ARGS += \
  64.   --target=$(RUSTC_TARGET_ARCH) \
  65.   --host=$(RUSTC_TARGET_ARCH) \
  66.   --build=$(GNU_HOST_NAME) \
  67.   --enable-shared \
  68.   --disable-silent-rules \
  69.   --disable-maintainer-mode \
  70.   --disable-dependency-tracking \
  71.   --disable-gccmarch-native \
  72.   --disable-gccprofile \
  73.   --with-gnu-ld \
  74.   --with-sysroot=$(STAGING_DIR)
  75. #   --enable-non-bundled-htp \
  76. #   --with-libhtp-includes=$(STAGING_DIR_HOSTPKG)/include \
  77. #   --with-libhtp-libraries=$(STAGING_DIR_HOSTPKG)/lib
  78. #   --with-sysroot=$(TOOLCHAIN_DIR)
  79.  
  80. ifeq ($(CONFIG_SURICATA_ENABLE_PYTHON),y)
  81. CONFIGURE_ARGS += --enable-python
  82. endif
  83. ifeq ($(CONFIG_SURICATA_ENABLE_PFRING),y)
  84. CONFIGURE_ARGS += --enable-pfring
  85. endif
  86. ifeq ($(CONFIG_SURICATA_ENABLE_LUAJIT),y)
  87. CONFIGURE_ARGS += --enable-luajit
  88. endif
  89. ifeq ($(CONFIG_SURICATA_ENABLE_GCCPROTECT),y)
  90. CONFIGURE_ARGS += --enable-gccprotect
  91. endif
  92. ifeq ($(CONFIG_SURICATA_ENABLE_GCCPROFILE),n)
  93. CONFIGURE_ARGS += --enable-gccprofile
  94. endif
  95.  
  96. # For now, x86_64 targets can't use PIE
  97. ifneq ($(CONFIG_TARGET_x86),y)
  98.   ifeq ($(CONFIG_PKG_ASLR_PIE_ALL),y)
  99.     CONFIGURE_ARGS += --enable-pie
  100.   else
  101.     ifeq ($(CONFIG_PKG_ASLR_PIE_REGULAR),y)
  102.       CONFIGURE_ARGS += --enable-pie
  103.     endif
  104.   endif
  105. endif
  106.  
  107. ifeq ($(CONFIG_SURICATA_ENABLE_NFQUEUE),y)
  108. CONFIGURE_ARGS += --enable-nfqueue
  109. endif
  110.  
  111. ifeq ($(CONFIG_SURICATA_ENABLE_GEOIP),y)
  112. CONFIGURE_ARGS += --enable-geoip
  113. endif
  114.  
  115. ifeq ($(CONFIG_SURICATA_ENABLE_LIBMAGIC),y)
  116. CONFIGURE_ARGS += --enable-libmagic
  117. endif
  118.  
  119. ifeq ($(CONFIG_SURICATA_ENABLE_DEBUG),y)
  120. TARGET_CXXFLAGS += -ggdb3
  121. CONFIGURE_ARGS += --enable-debug
  122. endif
  123.  
  124. ifeq ($(CONFIG_SURICATA_ENABLE_HIREDIS),y)
  125. CONFIGURE_ARGS += --enable-hiredis
  126. endif
  127.  
  128. ifeq ($(CONFIG_SURICATA_ENABLE_EBPF),y)
  129. CONFIGURE_ARGS += --enable-ebpf --enable-ebpf-build
  130. endif
  131.  
  132. ifeq ($(CONFIG_SURICATA_ENABLE_NFLOG),y)
  133. CONFIGURE_ARGS += --enable-nflog
  134. endif
  135.  
  136. define Build/Configure
  137.     ( \
  138.         $(CONFIGURE_VARS) cargo install --force --root $(STAGING_DIR)/host cbindgen ; \
  139.         cd $(PKG_BUILD_DIR) && $(CONFIGURE_VARS) ./scripts/bundle.sh ; \
  140.         cd $(PKG_BUILD_DIR) && $(CONFIGURE_VARS) ./autogen.sh && $(CONFIGURE_VARS) ./configure $(CONFIGURE_ARGS) ; \
  141.     )
  142.     $(call Build/Configure/Default)
  143. endef
  144.  
  145. define Build/Install
  146.     $(call Build/Install/Default,install)
  147.     $(call Build/Install/Default,install-conf)
  148. endef
  149.  
  150. define Package/suricata/conffiles
  151. /etc/config/suricata
  152. /etc/suricata/
  153. endef
  154.  
  155. define Package/suricata/install
  156.     $(INSTALL_DIR) $(1)/usr/bin
  157.     $(SED) '1c\#!/usr/bin/python3\' -i $(PKG_INSTALL_DIR)/usr/bin/{suricatactl,suricatasc,suricata-update}
  158.     $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/suricata $(1)/usr/bin/suricata
  159.     $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/suricatactl $(1)/usr/bin/suricatactl
  160.     $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/suricatasc $(1)/usr/bin/suricatasc
  161.     $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/suricata-update $(1)/usr/bin/suricata-update
  162.    
  163.     $(INSTALL_DIR) $(1)/usr/lib
  164.     $(CP) -r $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
  165.  
  166.     $(INSTALL_DIR) $(1)/usr/include
  167.     $(CP) -r $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
  168.  
  169.     $(INSTALL_DIR) $(1)/etc/suricata
  170.     $(CP) $(PKG_BUILD_DIR)/suricata.yaml \
  171.     $(PKG_BUILD_DIR)/etc/classification.config \
  172.     $(PKG_BUILD_DIR)/threshold.config \
  173.     $(PKG_BUILD_DIR)/etc/reference.config \
  174.     $(1)/etc/suricata/
  175.  
  176.     $(INSTALL_DIR) $(1)/usr/share/suricata/rules
  177.     $(CP) $(PKG_INSTALL_DIR)/usr/share/suricata/rules/* $(1)/usr/share/suricata/rules/
  178.  
  179.     $(INSTALL_DIR) $(1)/etc/init.d
  180.     $(INSTALL_DIR) $(1)/etc/config
  181.  
  182.     $(INSTALL_BIN) ./files/etc/init.d/suricata $(1)/etc/init.d/suricata
  183.     $(INSTALL_CONF) ./files/etc/config/suricata $(1)/etc/config/suricata
  184. endef
  185.  
  186. $(eval $(call BuildPackage,suricata))
  187.  
Advertisement
Add Comment
Please, Sign In to add comment