Merge branch 'openwrt:master' into master
This commit is contained in:
commit
e38af41ec1
19 changed files with 201 additions and 368 deletions
|
@ -5,26 +5,23 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=maturin
|
PKG_NAME:=maturin
|
||||||
PKG_VERSION:=0.14.10
|
PKG_VERSION:=0.14.15
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://codeload.github.com/PyO3/maturin/tar.gz/v$(PKG_VERSION)?
|
PKG_SOURCE_URL:=https://codeload.github.com/PyO3/maturin/tar.gz/v$(PKG_VERSION)?
|
||||||
PKG_HASH:=8fc9bcdcb7f1535d5e3e8bb500c348ca1bff5a6dce87b0ab7dbc5a49723da28a
|
PKG_HASH:=60cbf8ff73a36333c3f5483ca679a52169839db381f06683d8e61a6c00c28cf7
|
||||||
|
|
||||||
PKG_MAINTAINER:=Luca Barbato <lu_zero@luminem.org>
|
PKG_MAINTAINER:=Luca Barbato <lu_zero@luminem.org>
|
||||||
PKG_LICENSE:=Apache-2.0 MIT
|
PKG_LICENSE:=Apache-2.0 MIT
|
||||||
PKG_LICENSE_FILES:=license-apache license-mit
|
PKG_LICENSE_FILES:=license-apache license-mit
|
||||||
|
|
||||||
HOST_BUILD_DEPENDS:=rust/host
|
HOST_BUILD_DEPENDS:=rust/host
|
||||||
PKG_BUILD_DEPENDS:=rust/host
|
|
||||||
|
|
||||||
PKG_BUILD_PARALLEL:=1
|
|
||||||
PKG_HOST_ONLY:=1
|
PKG_HOST_ONLY:=1
|
||||||
|
|
||||||
include ../rust-package.mk
|
|
||||||
include $(INCLUDE_DIR)/host-build.mk
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include ../rust/rust-host-build.mk
|
||||||
|
|
||||||
define Package/maturin
|
define Package/maturin
|
||||||
SECTION:=lang
|
SECTION:=lang
|
||||||
|
@ -35,19 +32,11 @@ define Package/maturin
|
||||||
URL:=https://maturin.rs
|
URL:=https://maturin.rs
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Host/Compile
|
|
||||||
$(call Host/Compile/Cargo)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/maturin/description
|
define Package/maturin/description
|
||||||
Build and publish crates with pyo3, rust-cpython, cffi and uniffi
|
Build and publish crates with pyo3, rust-cpython, cffi and uniffi
|
||||||
bindings as well as rust binaries as python packages.
|
bindings as well as rust binaries as python packages.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Host/Install
|
$(eval $(call RustBinHostBuild))
|
||||||
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin
|
|
||||||
$(INSTALL_BIN) $(HOST_INSTALL_DIR)/bin/maturin $(STAGING_DIR_HOSTPKG)/bin/maturin
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call HostBuild))
|
$(eval $(call HostBuild))
|
||||||
$(eval $(call BuildPackage,maturin))
|
$(eval $(call BuildPackage,maturin))
|
|
@ -1,95 +0,0 @@
|
||||||
# Rust Language Options
|
|
||||||
menu "Compiler Options"
|
|
||||||
visible if PACKAGE_rust
|
|
||||||
|
|
||||||
config RUST_DEBUG
|
|
||||||
bool "Enables Debugging Environment (--enable-debug)"
|
|
||||||
|
|
||||||
config RUST_DOCS
|
|
||||||
bool "Build standard library documentation (--enable-docs)"
|
|
||||||
|
|
||||||
config RUST_COMPILER_DOCS
|
|
||||||
bool "Build compiler documentation (--enable-compiler-docs)"
|
|
||||||
|
|
||||||
config RUST_OPTIMIZE_TESTS
|
|
||||||
bool "Build tests with optimizations (--enable-optimized-tests)"
|
|
||||||
|
|
||||||
config RUST_PARALLEL
|
|
||||||
bool "Build with multi-threaded support (--enable-parallel-compiler)"
|
|
||||||
|
|
||||||
config RUST_VERBOSE_TESTS
|
|
||||||
bool "Enable verbose output when running tests (--enable-verbose-tests)"
|
|
||||||
|
|
||||||
config RUST_CCACHE
|
|
||||||
bool "Build with ccache enabled (--enable-ccache)"
|
|
||||||
|
|
||||||
config RUST_LLVM_STATIC
|
|
||||||
bool "Statically link to libstdc++ to LLVM (--enable-llvm-static-stdccp)"
|
|
||||||
|
|
||||||
config RUST_LLVM_SHARED
|
|
||||||
bool "Prefer shared linking to LLVM (--enable-llvm-link-shared)"
|
|
||||||
|
|
||||||
config RUST_CODEGEN_TESTS
|
|
||||||
bool "Run the src/test/codegen tests (--enable-codegen-tests)"
|
|
||||||
|
|
||||||
config RUST_OPTION_CHECKING
|
|
||||||
bool "Complain about unrecognized options in this configure script (--enable-option-checking)"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config RUST_ENABLE_NINJA
|
|
||||||
bool "Build LLVM using the Ninja generator (--enable-ninja)"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config RUST_LOCKED_DEPS
|
|
||||||
bool "Force Cargo.lock to be up to date (--enable-locked-deps)"
|
|
||||||
|
|
||||||
config RUST_VENDOR
|
|
||||||
bool "Enable usage of vendored Rust crates (--enable-vendor)"
|
|
||||||
|
|
||||||
config RUST_SANITIZERS
|
|
||||||
bool "Build the sanitizer runtimes (asan, lsan, msan, tsan) (--enable-sanitizers)"
|
|
||||||
|
|
||||||
config RUST_DIST_SRC
|
|
||||||
bool "When building tarballs enables building a source tarball (--enable-dist-src)"
|
|
||||||
|
|
||||||
config RUST_CARGO_NATIVE_STATIC
|
|
||||||
bool "Build static native libraries in Cargo (--enable-cargo-native-static)"
|
|
||||||
|
|
||||||
config RUST_PROFILER
|
|
||||||
bool "Build the profiler runtime (--enable-profiler)"
|
|
||||||
|
|
||||||
config RUST_FULL_TOOLS
|
|
||||||
bool "Build all tools (--enable-full-tools)"
|
|
||||||
|
|
||||||
config RUST_MISSING_TOOLS
|
|
||||||
bool "Allow failures when building tools (--enable-missing-tools)"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config RUST_USE_LIBCXX
|
|
||||||
bool "Build LLVM with libc++ (--enable-use-libcxx)"
|
|
||||||
|
|
||||||
config RUST_CONTROL_FLOW_GUARD
|
|
||||||
bool "Enable Control Flow Guard (--enable-control-flow-guard)"
|
|
||||||
|
|
||||||
config RUST_OPTIMIZE_LLVM
|
|
||||||
bool "Build optimized LLVM (--enable-optimize-llvm)"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config RUST_LLVM_ASSERTIONS
|
|
||||||
bool "Build LLVM with assertions (--enable-llvm-assertions)"
|
|
||||||
|
|
||||||
config RUST_DEBUG_ASSERTIONS
|
|
||||||
bool "Build with debugging assertions (--enable-debug-assertions)"
|
|
||||||
|
|
||||||
config RUST_LLVM_RELEASE_DEBUGINFO
|
|
||||||
bool "Build LLVM with debugger metadata (--enable-llvm-release-debuginfo)"
|
|
||||||
|
|
||||||
config RUST_MANAGE_SUBMODULES
|
|
||||||
bool "Let the build manage the git submodules (--enable-manage-submodules)"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config RUST_FULL_BOOTSTRAP
|
|
||||||
bool "Full Bootstrap - Build three compilers instead of two (--enable-full-bootstrap)"
|
|
||||||
|
|
||||||
endmenu
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ PKG_RELEASE:=1
|
||||||
PKG_SOURCE:=rustc-$(PKG_VERSION)-src.tar.gz
|
PKG_SOURCE:=rustc-$(PKG_VERSION)-src.tar.gz
|
||||||
PKG_SOURCE_URL:=https://static.rust-lang.org/dist/
|
PKG_SOURCE_URL:=https://static.rust-lang.org/dist/
|
||||||
PKG_HASH:=eaf4d8b19f23a232a4770fb53ab5e7acdedec11da1d02b0e5d491ca92ca96d62
|
PKG_HASH:=eaf4d8b19f23a232a4770fb53ab5e7acdedec11da1d02b0e5d491ca92ca96d62
|
||||||
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/rustc-$(PKG_VERSION)-src/
|
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/rustc-$(PKG_VERSION)-src
|
||||||
|
|
||||||
PKG_MAINTAINER:=Luca Barbato <lu_zero@luminem.org>
|
PKG_MAINTAINER:=Luca Barbato <lu_zero@luminem.org>
|
||||||
PKG_LICENSE:=Apache-2.0 MIT
|
PKG_LICENSE:=Apache-2.0 MIT
|
||||||
|
@ -20,17 +20,24 @@ PKG_LICENSE_FILES:=LICENSE-APACHE LICENSE-MIT
|
||||||
HOST_BUILD_DEPENDS:=python3/host
|
HOST_BUILD_DEPENDS:=python3/host
|
||||||
PKG_HOST_ONLY:=1
|
PKG_HOST_ONLY:=1
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
include $(INCLUDE_DIR)/host-build.mk
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include ./rust-values.mk
|
||||||
|
|
||||||
# rust environment variables
|
define Package/rust
|
||||||
include ./rust-host.mk
|
SECTION:=lang
|
||||||
|
CATEGORY:=Languages
|
||||||
|
SUBMENU:=Rust
|
||||||
|
TITLE:=Rust Programming Language Compiler
|
||||||
|
URL:=https://www.rust-lang.org/
|
||||||
|
DEPENDS:=$(RUST_ARCH_DEPENDS)
|
||||||
|
endef
|
||||||
|
|
||||||
# Rust Temp Directory
|
define Package/rust/description
|
||||||
RUST_TMP_DIR:=$(TMP_DIR)/rust-install
|
Rust is a multi-paradigm, general-purpose programming language designed for performance
|
||||||
|
and safety, especially safe concurrency. Rust is syntactically similar to C++, but can
|
||||||
RUST_INSTALL_HOST_FILENAME:=$(PKG_NAME)-$(PKG_VERSION)-$(RUSTC_HOST_ARCH)-install.tar.xz
|
guarantee memory safety by using a borrow checker to validate references.
|
||||||
RUST_INSTALL_TARGET_FILENAME:=$(PKG_NAME)-$(PKG_VERSION)-$(RUSTC_TARGET_ARCH)-install.tar.xz
|
endef
|
||||||
|
|
||||||
# Rust-lang has an uninstall script
|
# Rust-lang has an uninstall script
|
||||||
RUST_UNINSTALL:=$(CARGO_HOME)/lib/rustlib/uninstall.sh
|
RUST_UNINSTALL:=$(CARGO_HOME)/lib/rustlib/uninstall.sh
|
||||||
|
@ -41,8 +48,8 @@ TARGET_CONFIGURE_ARGS = \
|
||||||
--set=target.$(RUSTC_TARGET_ARCH).cc=$(TARGET_CC_NOCACHE) \
|
--set=target.$(RUSTC_TARGET_ARCH).cc=$(TARGET_CC_NOCACHE) \
|
||||||
--set=target.$(RUSTC_TARGET_ARCH).cxx=$(TARGET_CXX_NOCACHE) \
|
--set=target.$(RUSTC_TARGET_ARCH).cxx=$(TARGET_CXX_NOCACHE) \
|
||||||
--set=target.$(RUSTC_TARGET_ARCH).linker=$(TARGET_CC_NOCACHE) \
|
--set=target.$(RUSTC_TARGET_ARCH).linker=$(TARGET_CC_NOCACHE) \
|
||||||
--set=target.$(RUSTC_TARGET_ARCH).musl-root=$(TOOLCHAIN_DIR) \
|
--set=target.$(RUSTC_TARGET_ARCH).ranlib=$(TARGET_RANLIB) \
|
||||||
--set=target.$(RUSTC_TARGET_ARCH).ranlib=$(TARGET_RANLIB)
|
$(if $(CONFIG_USE_MUSL),--set=target.$(RUSTC_TARGET_ARCH).musl-root=$(TOOLCHAIN_DIR))
|
||||||
|
|
||||||
# CARGO_HOME is an environmental
|
# CARGO_HOME is an environmental
|
||||||
HOST_CONFIGURE_OPTS += CARGO_HOME="$(CARGO_HOME)"
|
HOST_CONFIGURE_OPTS += CARGO_HOME="$(CARGO_HOME)"
|
||||||
|
@ -59,82 +66,38 @@ HOST_CONFIGURE_ARGS = \
|
||||||
--datadir=$(CARGO_HOME)/share \
|
--datadir=$(CARGO_HOME)/share \
|
||||||
--mandir=$(CARGO_HOME)/man \
|
--mandir=$(CARGO_HOME)/man \
|
||||||
--dist-compression-formats=xz \
|
--dist-compression-formats=xz \
|
||||||
--enable-llvm-link-shared \
|
|
||||||
--enable-llvm-plugins \
|
|
||||||
--enable-missing-tools \
|
--enable-missing-tools \
|
||||||
--enable-ninja \
|
|
||||||
--disable-sanitizers \
|
--disable-sanitizers \
|
||||||
--release-channel=stable \
|
--release-channel=stable \
|
||||||
--enable-cargo-native-static \
|
--enable-cargo-native-static \
|
||||||
|
--set=llvm.download-ci-llvm=true \
|
||||||
$(TARGET_CONFIGURE_ARGS)
|
$(TARGET_CONFIGURE_ARGS)
|
||||||
|
|
||||||
define Host/Prepare
|
|
||||||
# Ensure rust temp directory
|
|
||||||
[ -d $(RUST_TMP_DIR) ] || \
|
|
||||||
mkdir -p $(RUST_TMP_DIR)
|
|
||||||
|
|
||||||
$(call Host/Prepare/Default)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Host/Uninstall
|
define Host/Uninstall
|
||||||
# Call the Uninstall script
|
# Call the Uninstall script
|
||||||
[ -f $(RUST_UNINSTALL) ] && \
|
[ -f $(RUST_UNINSTALL) ] && \
|
||||||
$(BASH) $(RUST_UNINSTALL) || echo No Uninstall
|
$(BASH) $(RUST_UNINSTALL) || echo No Uninstall
|
||||||
|
|
||||||
rm -rf $(RUST_TMP_DIR)
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Makes and then packages the dist artifacts
|
|
||||||
define Host/Compile
|
define Host/Compile
|
||||||
cd $(HOST_BUILD_DIR) && \
|
|
||||||
$(PYTHON) x.py --config ./config.toml dist build-manifest cargo llvm-tools \
|
|
||||||
rustc rust-std rust-src
|
|
||||||
|
|
||||||
$(call Host/PackageDist)
|
|
||||||
endef
|
|
||||||
|
|
||||||
# Distribution Artifacts are packaged by Host/PackageDist
|
|
||||||
# We just need to extract and install
|
|
||||||
define Host/Install
|
|
||||||
$(TAR) -C $(RUST_TMP_DIR) -xJf $(DL_DIR)/$(RUST_INSTALL_HOST_FILENAME) && \
|
|
||||||
$(TAR) -C $(RUST_TMP_DIR) -xJf $(DL_DIR)/$(RUST_INSTALL_TARGET_FILENAME)
|
|
||||||
|
|
||||||
cd $(RUST_TMP_DIR) && \
|
|
||||||
find -iname "*.xz" -exec tar -xJf {} ";" && \
|
|
||||||
find ./* -type f -name install.sh -execdir sh {} --prefix=$(CARGO_HOME) --disable-ldconfig \;
|
|
||||||
|
|
||||||
echo -e "[target.$(RUSTC_TARGET_ARCH)]\nlinker = \"$(TARGET_CC_NOCACHE)\"\nrustflags = [\"-Ctarget-feature=-crt-static\", \"-Clink-args=$(RUSTC_LDFLAGS)\"]" > $(CARGO_HOME)/config
|
|
||||||
echo -e "\n[profile.stripped]\ninherits = \"release\"\nopt-level = \"s\"\nstrip = true" >> $(CARGO_HOME)/config
|
|
||||||
endef
|
|
||||||
|
|
||||||
# Packages the Distribution Artifacts into HOST and TARGET bundles.
|
|
||||||
define Host/PackageDist
|
|
||||||
( \
|
( \
|
||||||
cd $(HOST_BUILD_DIR)/build/dist ; \
|
cd $(HOST_BUILD_DIR) ; \
|
||||||
$(TAR) -cJf $(DL_DIR)/$(RUST_INSTALL_TARGET_FILENAME) \
|
$(PYTHON) x.py --config ./config.toml dist build-manifest cargo llvm-tools \
|
||||||
rust-*-$(RUSTC_TARGET_ARCH).tar.xz ; \
|
rustc rust-std rust-src ; \
|
||||||
$(TAR) -cJf $(DL_DIR)/$(RUST_INSTALL_HOST_FILENAME) \
|
|
||||||
--exclude rust-*-$(RUSTC_TARGET_ARCH).tar.xz *.xz ; \
|
|
||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/rust
|
define Host/Install
|
||||||
SECTION:=lang
|
( \
|
||||||
CATEGORY:=Languages
|
cd $(HOST_BUILD_DIR)/build/dist ; \
|
||||||
TITLE:=Rust Programming Language Compiler
|
find -iname "*.xz" -exec tar -xJf {} \; ; \
|
||||||
URL:=https://www.rust-lang.org/
|
find ./* -type f -name install.sh -execdir sh {} --prefix=$(CARGO_HOME) --disable-ldconfig \; ; \
|
||||||
DEPENDS:=$(RUST_ARCH_DEPENDS) \
|
\
|
||||||
+pkg-config +libunwind +libopenssl +liblzma +libc
|
sed -e 's|@RUSTC_TARGET_ARCH@|$(RUSTC_TARGET_ARCH)|g' \
|
||||||
endef
|
-e 's|@TARGET_CC_NOCACHE@|$(TARGET_CC_NOCACHE)|g' \
|
||||||
|
-e 's|@RUSTC_LDFLAGS@|$(RUSTC_LDFLAGS)|g' \
|
||||||
define Package/rust/description
|
$(CURDIR)/files/cargo-config > $(CARGO_HOME)/config ; \
|
||||||
Rust is a multi-paradigm, general-purpose programming language designed for performance
|
)
|
||||||
and safety, especially safe concurrency. Rust is syntactically similar to C++, but can
|
|
||||||
guarantee memory safety by using a borrow checker to validate references.
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/rust/config
|
|
||||||
source "$(SOURCE)/Config.in"
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call HostBuild))
|
$(eval $(call HostBuild))
|
||||||
|
|
8
lang/rust/files/cargo-config
Normal file
8
lang/rust/files/cargo-config
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[target.@RUSTC_TARGET_ARCH@]
|
||||||
|
linker = "@TARGET_CC_NOCACHE@"
|
||||||
|
rustflags = ["-Ctarget-feature=-crt-static", "-Clink-args=@RUSTC_LDFLAGS@"]
|
||||||
|
|
||||||
|
[profile.stripped]
|
||||||
|
inherits = "release"
|
||||||
|
opt-level = "s"
|
||||||
|
strip = true
|
45
lang/rust/rust-host-build.mk
Normal file
45
lang/rust/rust-host-build.mk
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
#
|
||||||
|
# Copyright (C) 2023 Luca Barbato and Donald Hoskins
|
||||||
|
|
||||||
|
ifeq ($(origin RUST_INCLUDE_DIR),undefined)
|
||||||
|
RUST_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||||
|
endif
|
||||||
|
include $(RUST_INCLUDE_DIR)/rust-values.mk
|
||||||
|
|
||||||
|
# $(1) path to the package (optional)
|
||||||
|
# $(2) additional arguments to cargo (optional)
|
||||||
|
define Host/Compile/Cargo
|
||||||
|
( \
|
||||||
|
cd $(HOST_BUILD_DIR) ; \
|
||||||
|
export PATH="$(CARGO_HOME)/bin:$(PATH)" ; \
|
||||||
|
CARGO_HOME=$(CARGO_HOME) \
|
||||||
|
CC=$(HOSTCC_NOCACHE) \
|
||||||
|
cargo install -v \
|
||||||
|
--profile stripped \
|
||||||
|
$(if $(RUST_PKG_FEATURES),--features "$(RUST_PKG_FEATURES)") \
|
||||||
|
--root $(HOST_INSTALL_DIR) \
|
||||||
|
--path "$(if $(strip $(1)),$(strip $(1)),.)" $(2) ; \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Uninstall/Cargo
|
||||||
|
( \
|
||||||
|
cd $(HOST_BUILD_DIR) ; \
|
||||||
|
export PATH="$(CARGO_HOME)/bin:$(PATH)" ; \
|
||||||
|
CARGO_HOME=$(CARGO_HOME) \
|
||||||
|
CC=$(HOSTCC_NOCACHE) \
|
||||||
|
cargo uninstall -v \
|
||||||
|
--root $(HOST_INSTALL_DIR) || true ; \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define RustBinHostBuild
|
||||||
|
define Host/Install
|
||||||
|
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin
|
||||||
|
$(INSTALL_BIN) $(HOST_INSTALL_DIR)/bin/* $(STAGING_DIR_HOSTPKG)/bin/
|
||||||
|
endef
|
||||||
|
endef
|
||||||
|
|
||||||
|
Host/Compile=$(call Host/Compile/Cargo)
|
||||||
|
Host/Uninstall=$(call Host/Uninstall/Cargo)
|
|
@ -2,27 +2,49 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2023 Luca Barbato and Donald Hoskins
|
# Copyright (C) 2023 Luca Barbato and Donald Hoskins
|
||||||
|
|
||||||
rust_mk_path:=$(dir $(lastword $(MAKEFILE_LIST)))
|
# Variables (all optional) to be set in package Makefiles:
|
||||||
include $(rust_mk_path)rust-host.mk
|
#
|
||||||
|
# RUST_PKG_FEATURES - list of options, default empty
|
||||||
|
#
|
||||||
|
# Space or comma separated list of features to activate
|
||||||
|
#
|
||||||
|
# e.g. RUST_PKG_FEATURES:=enable-foo,with-bar
|
||||||
|
|
||||||
# $(1) path to the package
|
ifeq ($(origin RUST_INCLUDE_DIR),undefined)
|
||||||
# $(2) additional arguments to cargo
|
RUST_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||||
define Host/Compile/Cargo
|
endif
|
||||||
( \
|
include $(RUST_INCLUDE_DIR)/rust-values.mk
|
||||||
cd $(HOST_BUILD_DIR) ; \
|
|
||||||
export PATH="$(CARGO_HOME)/bin:$(PATH)" ; \
|
|
||||||
CARGO_HOME=$(CARGO_HOME) CC=$(HOSTCC) \
|
|
||||||
cargo install -v --profile stripped --root $(HOST_INSTALL_DIR) --path "$(if $(strip $(1)),$(strip $(1)),.)" $(2) ; \
|
|
||||||
)
|
|
||||||
endef
|
|
||||||
|
|
||||||
# $(1) path to the package
|
# Support only a subset for now.
|
||||||
# $(2) additional arguments to cargo
|
RUST_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mipsel||mips64||mips64el||mipsel||powerpc64||x86_64)
|
||||||
|
|
||||||
|
# $(1) path to the package (optional)
|
||||||
|
# $(2) additional arguments to cargo (optional)
|
||||||
define Build/Compile/Cargo
|
define Build/Compile/Cargo
|
||||||
( \
|
( \
|
||||||
cd $(PKG_BUILD_DIR) ; \
|
cd $(PKG_BUILD_DIR) ; \
|
||||||
export PATH="$(CARGO_HOME)/bin:$(PATH)" ; \
|
export PATH="$(CARGO_HOME)/bin:$(PATH)" ; \
|
||||||
CARGO_HOME=$(CARGO_HOME) TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUST_CFLAGS)" TARGET_CC=$(TARGET_CC_NOCACHE) CC=cc \
|
CARGO_HOME=$(CARGO_HOME) \
|
||||||
cargo install -v --profile stripped --target $(RUSTC_TARGET_ARCH) --root $(PKG_INSTALL_DIR) --path "$(if $(strip $(1)),$(strip $(1)),.)" $(2) ; \
|
TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUST_CFLAGS)" \
|
||||||
|
TARGET_CC=$(TARGET_CC_NOCACHE) \
|
||||||
|
CC=$(HOSTCC) \
|
||||||
|
cargo install -v \
|
||||||
|
--profile stripped \
|
||||||
|
--target $(RUSTC_TARGET_ARCH) \
|
||||||
|
$(if $(strip $(RUST_PKG_FEATURES)),--features "$(strip $(RUST_PKG_FEATURES))") \
|
||||||
|
--root $(PKG_INSTALL_DIR) \
|
||||||
|
--path "$(if $(strip $(1)),$(strip $(1)),.)" \
|
||||||
|
$(2) ; \
|
||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define RustBinPackage
|
||||||
|
ifndef Package/$(1)/install
|
||||||
|
define Package/$(1)/install
|
||||||
|
$$(INSTALL_DIR) $$(1)/usr/bin/
|
||||||
|
$$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/bin/* $$(1)/usr/bin/
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
Build/Compile=$(call Build/Compile/Cargo)
|
||||||
|
|
|
@ -5,19 +5,10 @@
|
||||||
# Rust Environmental Vars
|
# Rust Environmental Vars
|
||||||
CONFIG_HOST_SUFFIX:=$(word 4, $(subst -, ,$(GNU_HOST_NAME)))
|
CONFIG_HOST_SUFFIX:=$(word 4, $(subst -, ,$(GNU_HOST_NAME)))
|
||||||
RUSTC_HOST_ARCH:=$(HOST_ARCH)-unknown-linux-$(CONFIG_HOST_SUFFIX)
|
RUSTC_HOST_ARCH:=$(HOST_ARCH)-unknown-linux-$(CONFIG_HOST_SUFFIX)
|
||||||
CARGO_HOME:=$(STAGING_DIR_HOST)/cargo
|
CARGO_HOME:=$(STAGING_DIR_HOSTPKG)/cargo
|
||||||
|
|
||||||
# Support only a subset for now.
|
ifeq ($(CONFIG_USE_MUSL),y)
|
||||||
RUST_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mipsel||mips64||mips64el||mipsel||powerpc64||x86_64)
|
# Force linking of the SSP library for musl
|
||||||
|
|
||||||
# Common Build Flags
|
|
||||||
RUST_BUILD_FLAGS = \
|
|
||||||
CARGO_HOME="$(CARGO_HOME)"
|
|
||||||
|
|
||||||
# This adds the rust environmental variables to Make calls
|
|
||||||
MAKE_FLAGS += $(RUST_BUILD_FLAGS)
|
|
||||||
|
|
||||||
# Force linking of the SSP library
|
|
||||||
ifdef CONFIG_PKG_CC_STACKPROTECTOR_REGULAR
|
ifdef CONFIG_PKG_CC_STACKPROTECTOR_REGULAR
|
||||||
ifeq ($(strip $(PKG_SSP)),1)
|
ifeq ($(strip $(PKG_SSP)),1)
|
||||||
RUSTC_LDFLAGS += -lssp_nonshared
|
RUSTC_LDFLAGS += -lssp_nonshared
|
||||||
|
@ -28,6 +19,7 @@ ifdef CONFIG_PKG_CC_STACKPROTECTOR_STRONG
|
||||||
TARGET_CFLAGS += -lssp_nonshared
|
TARGET_CFLAGS += -lssp_nonshared
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# mips64 openwrt has a specific targed in rustc
|
# mips64 openwrt has a specific targed in rustc
|
||||||
ifeq ($(ARCH),mips64)
|
ifeq ($(ARCH),mips64)
|
|
@ -1,119 +0,0 @@
|
||||||
ifeq ($(CONFIG_RUST_DEBUG),y)
|
|
||||||
CONFIGURE_ARGS += --enable-debug
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_DOCS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-docs
|
|
||||||
else
|
|
||||||
CONFIGURE_ARGS += --disable-docs
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_COMPILER_DOCS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-compiler-docs
|
|
||||||
else
|
|
||||||
CONFIGURE_ARGS += --disable-compiler-docs
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_OPTIMIZE_TESTS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-optimize-tests
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_PARALLEL),y)
|
|
||||||
CONFIGURE_ARGS += --enable-parallel-compiler
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_VERBOSE_TESTS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-verbose-tests
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(filter $(CONFIG_RUST_CCACHE) $(CCACHE),y),)
|
|
||||||
CONFIGURE_ARGS += --enable-ccache
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_CCACHE),y)
|
|
||||||
CONFIGURE_ARGS += --enable-ccache
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_LLVM_STATIC),y)
|
|
||||||
CONFIGURE_ARGS += --enable-llvm-static-stdcpp
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_LLVM_SHARED),y)
|
|
||||||
CONFIGURE_ARGS += --enable-llvm-link-shared
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_CODEGEN_TESTS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-codegen-tests
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_OPTION_CHECKING),y)
|
|
||||||
CONFIGURE_ARGS += --enable-option-checking
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_ENABLE_NINJA),y)
|
|
||||||
CONFIGURE_ARGS += --enable-ninja
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_LOCKED_DEPS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-locked-deps
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_VENDOR),y)
|
|
||||||
CONFIGURE_ARGS += --enable-vendor
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_SANITIZERS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-sanitizers
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_DIST_SRC),y)
|
|
||||||
CONFIGURE_ARGS += --enable-dist-src
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_CARGO_NATIVE_STATIC),y)
|
|
||||||
CONFIGURE_ARGS += --enable-cargo-native-static
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_PROFILER),y)
|
|
||||||
CONFIGURE_ARGS += --enable-profiler
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_FULL_TOOLS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-full-tools
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_MISSING_TOOLS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-missing-tools
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_USE_LIBCXX),y)
|
|
||||||
CONFIGURE_ARGS += --enable-use-libcxx
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_CONTROL_FLOW_GUARD),y)
|
|
||||||
CONFIGURE_ARGS += --enable-control-flow-guard
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_OPTIMIZE_LLVM),y)
|
|
||||||
CONFIGURE_ARGS += --enable-optimize-llvm
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_LLVM_ASSERTIONS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-llvm-assertions
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_DEBUG_ASSERTIONS),y)
|
|
||||||
CONFIGURE_ARGS += --enable-debug-assertions
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_LLVM_RELEASE_DEBUGINFO),y)
|
|
||||||
CONFIGURE_ARGS += --enable-llvm-release-debuginfo
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_MANAGE_SUBMODULES),y)
|
|
||||||
CONFIGURE_ARGS += --enable-manage-submodules
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_RUST_FULL_BOOTSTRAP),y)
|
|
||||||
CONFIGURE_ARGS += --enable-full-bootstrap
|
|
||||||
endif
|
|
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=pcre2
|
PKG_NAME:=pcre2
|
||||||
PKG_VERSION:=10.37
|
PKG_VERSION:=10.37
|
||||||
PKG_RELEASE:=$(AUTORELEASE)
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_URL:=@SF/pcre/$(PKG_NAME)/$(PKG_VERSION)
|
PKG_SOURCE_URL:=@SF/pcre/$(PKG_NAME)/$(PKG_VERSION)
|
||||||
|
@ -28,6 +28,7 @@ PKG_CONFIG_DEPENDS:=\
|
||||||
PKG_BUILD_DEPENDS:=zlib
|
PKG_BUILD_DEPENDS:=zlib
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
include $(INCLUDE_DIR)/cmake.mk
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
|
||||||
define Package/libpcre2/default
|
define Package/libpcre2/default
|
||||||
|
@ -55,6 +56,18 @@ define Package/libpcre2-32
|
||||||
TITLE:=A Perl Compatible Regular Expression library (32bit support)
|
TITLE:=A Perl Compatible Regular Expression library (32bit support)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
CMAKE_HOST_OPTIONS += \
|
||||||
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DPCRE2_BUILD_PCRE2_8=ON \
|
||||||
|
-DPCRE2_BUILD_PCRE2_16=ON \
|
||||||
|
-DPCRE2_BUILD_PCRE2_32=ON \
|
||||||
|
-DPCRE2_DEBUG=OFF \
|
||||||
|
-DPCRE2_DISABLE_PERCENT_ZT=ON \
|
||||||
|
-DPCRE2_SUPPORT_JIT=OFF \
|
||||||
|
-DPCRE2_SHOW_REPORT=OFF \
|
||||||
|
-DPCRE2_BUILD_PCRE2GREP=OFF \
|
||||||
|
-DPCRE2_BUILD_TESTS=OFF
|
||||||
|
|
||||||
CMAKE_OPTIONS += \
|
CMAKE_OPTIONS += \
|
||||||
-DBUILD_SHARED_LIBS=ON \
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
-DPCRE2_BUILD_PCRE2_8=ON \
|
-DPCRE2_BUILD_PCRE2_8=ON \
|
||||||
|
@ -92,3 +105,4 @@ endef
|
||||||
$(eval $(call BuildPackage,libpcre2))
|
$(eval $(call BuildPackage,libpcre2))
|
||||||
$(eval $(call BuildPackage,libpcre2-16))
|
$(eval $(call BuildPackage,libpcre2-16))
|
||||||
$(eval $(call BuildPackage,libpcre2-32))
|
$(eval $(call BuildPackage,libpcre2-32))
|
||||||
|
$(eval $(call HostBuild))
|
||||||
|
|
|
@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=banip
|
PKG_NAME:=banip
|
||||||
PKG_VERSION:=0.8.2
|
PKG_VERSION:=0.8.2
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=3
|
||||||
PKG_LICENSE:=GPL-3.0-or-later
|
PKG_LICENSE:=GPL-3.0-or-later
|
||||||
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
|
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
|
||||||
|
|
||||||
|
|
|
@ -148,6 +148,7 @@ Available commands:
|
||||||
| ban_dev | list | - / autodetect | wan device(s), e.g. 'eth2' |
|
| ban_dev | list | - / autodetect | wan device(s), e.g. 'eth2' |
|
||||||
| ban_trigger | list | - | logical startup trigger interface(s), e.g. 'wan' |
|
| ban_trigger | list | - | logical startup trigger interface(s), e.g. 'wan' |
|
||||||
| ban_triggerdelay | option | 10 | trigger timeout before banIP processing begins |
|
| ban_triggerdelay | option | 10 | trigger timeout before banIP processing begins |
|
||||||
|
| ban_triggeraction | option | start | trigger action on ifup events, e.g. start, restart or reload |
|
||||||
| ban_deduplicate | option | 1 | deduplicate IP addresses across all active sets |
|
| ban_deduplicate | option | 1 | deduplicate IP addresses across all active sets |
|
||||||
| ban_splitsize | option | 0 | split ext. sets after every n lines/members (saves RAM) |
|
| ban_splitsize | option | 0 | split ext. sets after every n lines/members (saves RAM) |
|
||||||
| ban_cores | option | - / autodetect | limit the cpu cores used by banIP (saves RAM) |
|
| ban_cores | option | - / autodetect | limit the cpu cores used by banIP (saves RAM) |
|
||||||
|
@ -168,6 +169,7 @@ Available commands:
|
||||||
| ban_mailsender | option | no-reply@banIP | sender address for banIP related notification E-Mails |
|
| ban_mailsender | option | no-reply@banIP | sender address for banIP related notification E-Mails |
|
||||||
| ban_mailtopic | option | banIP notification | topic for banIP related notification E-Mails |
|
| ban_mailtopic | option | banIP notification | topic for banIP related notification E-Mails |
|
||||||
| ban_mailprofile | option | ban_notify | mail profile used in 'msmtp' for banIP related notification E-Mails |
|
| ban_mailprofile | option | ban_notify | mail profile used in 'msmtp' for banIP related notification E-Mails |
|
||||||
|
| ban_mailnotification | option | 0 | receive E-Mail notifications with every banIP run |
|
||||||
| ban_reportelements | option | 1 | list set elements in the report, disable this to speed up the report significantly |
|
| ban_reportelements | option | 1 | list set elements in the report, disable this to speed up the report significantly |
|
||||||
| ban_resolver | option | - | external resolver used for DNS lookups |
|
| ban_resolver | option | - | external resolver used for DNS lookups |
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,7 @@ ban_mailsender="no-reply@banIP"
|
||||||
ban_mailreceiver=""
|
ban_mailreceiver=""
|
||||||
ban_mailtopic="banIP notification"
|
ban_mailtopic="banIP notification"
|
||||||
ban_mailprofile="ban_notify"
|
ban_mailprofile="ban_notify"
|
||||||
|
ban_mailnotifcation="0"
|
||||||
ban_reportelements="1"
|
ban_reportelements="1"
|
||||||
ban_nftloglevel="warn"
|
ban_nftloglevel="warn"
|
||||||
ban_nftpriority="-200"
|
ban_nftpriority="-200"
|
||||||
|
@ -168,6 +169,7 @@ f_log() {
|
||||||
fi
|
fi
|
||||||
if [ "${class}" = "err" ]; then
|
if [ "${class}" = "err" ]; then
|
||||||
f_genstatus "error"
|
f_genstatus "error"
|
||||||
|
[ "${ban_mailnotification}" = "1" ] && [ -n "${ban_mailreceiver}" ] && [ -x "${ban_mailcmd}" ] && f_mail
|
||||||
f_rmdir "${ban_tmpdir}"
|
f_rmdir "${ban_tmpdir}"
|
||||||
rm -rf "${ban_lock}"
|
rm -rf "${ban_lock}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -351,10 +353,10 @@ f_getif() {
|
||||||
# get wan devices
|
# get wan devices
|
||||||
#
|
#
|
||||||
f_getdev() {
|
f_getdev() {
|
||||||
local dev iface update="0" cnt="0" cnt_max="10"
|
local dev iface update="0" cnt="0" cnt_max="30"
|
||||||
|
|
||||||
if [ "${ban_autodetect}" = "1" ]; then
|
if [ "${ban_autodetect}" = "1" ]; then
|
||||||
while [ -z "${ban_dev}" ] && [ "${cnt}" -le "${cnt_max}" ]; do
|
while [ "${cnt}" -lt "${cnt_max}" ] && [ -z "${ban_dev}" ]; do
|
||||||
network_flush_cache
|
network_flush_cache
|
||||||
for iface in ${ban_ifv4} ${ban_ifv6}; do
|
for iface in ${ban_ifv4} ${ban_ifv6}; do
|
||||||
network_get_device dev "${iface}"
|
network_get_device dev "${iface}"
|
||||||
|
@ -1032,6 +1034,7 @@ f_report() {
|
||||||
local detail set_details jsnval timestamp autoadd_allow autoadd_block sum_sets sum_setinput sum_setforwardwan sum_setforwardlan sum_setelements sum_cntinput sum_cntforwardwan sum_cntforwardlan
|
local detail set_details jsnval timestamp autoadd_allow autoadd_block sum_sets sum_setinput sum_setforwardwan sum_setforwardlan sum_setelements sum_cntinput sum_cntforwardwan sum_cntforwardlan
|
||||||
|
|
||||||
[ -z "${ban_dev}" ] && f_conf
|
[ -z "${ban_dev}" ] && f_conf
|
||||||
|
f_system
|
||||||
f_mkdir "${ban_reportdir}"
|
f_mkdir "${ban_reportdir}"
|
||||||
report_jsn="${ban_reportdir}/ban_report.jsn"
|
report_jsn="${ban_reportdir}/ban_report.jsn"
|
||||||
report_txt="${ban_reportdir}/ban_report.txt"
|
report_txt="${ban_reportdir}/ban_report.txt"
|
||||||
|
@ -1182,9 +1185,10 @@ f_report() {
|
||||||
[ -s "${report_jsn}" ] && cat "${report_jsn}"
|
[ -s "${report_jsn}" ] && cat "${report_jsn}"
|
||||||
;;
|
;;
|
||||||
"mail")
|
"mail")
|
||||||
[ -x "${ban_mailcmd}" ] && f_mail
|
[ -n "${ban_mailreceiver}" ] && [ -x "${ban_mailcmd}" ] && f_mail
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
rm -f "${report_txt}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# set search
|
# set search
|
||||||
|
@ -1212,7 +1216,7 @@ f_search() {
|
||||||
printf "%s\n%s\n%s\n" ":::" "::: banIP Search" ":::"
|
printf "%s\n%s\n%s\n" ":::" "::: banIP Search" ":::"
|
||||||
printf "%s\n" " Looking for IP '${ip}' on $(date "+%Y-%m-%d %H:%M:%S")"
|
printf "%s\n" " Looking for IP '${ip}' on $(date "+%Y-%m-%d %H:%M:%S")"
|
||||||
printf "%s\n" " ---"
|
printf "%s\n" " ---"
|
||||||
cnt=1
|
cnt="1"
|
||||||
for set in ${table_sets}; do
|
for set in ${table_sets}; do
|
||||||
(
|
(
|
||||||
if "${ban_nftcmd}" get element inet banIP "${set}" "{ ${ip} }" >/dev/null 2>&1; then
|
if "${ban_nftcmd}" get element inet banIP "${set}" "{ ${ip} }" >/dev/null 2>&1; then
|
||||||
|
@ -1257,11 +1261,8 @@ f_mail() {
|
||||||
|
|
||||||
# load mail template
|
# load mail template
|
||||||
#
|
#
|
||||||
[ ! -r "${ban_mailtemplate}" ] && f_log "err" "the mail template is missing"
|
[ -r "${ban_mailtemplate}" ] && . "${ban_mailtemplate}" || f_log "info" "the mail template is missing"
|
||||||
. "${ban_mailtemplate}"
|
[ -z "${mail_text}" ] && f_log "info" "the 'mail_text' template variable is empty"
|
||||||
|
|
||||||
[ -z "${ban_mailreceiver}" ] && f_log "err" "the option 'ban_mailreceiver' is missing"
|
|
||||||
[ -z "${mail_text}" ] && f_log "err" "the 'mail_text' is empty"
|
|
||||||
[ "${ban_debug}" = "1" ] && msmtp_debug="--debug"
|
[ "${ban_debug}" = "1" ] && msmtp_debug="--debug"
|
||||||
|
|
||||||
# send mail
|
# send mail
|
||||||
|
@ -1273,7 +1274,7 @@ f_mail() {
|
||||||
f_log "info" "failed to send status mail (${?})"
|
f_log "info" "failed to send status mail (${?})"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
f_log "debug" "f_mail ::: template: ${ban_mailtemplate}, profile: ${ban_mailprofile}, receiver: ${ban_mailreceiver}, rc: ${?}"
|
f_log "debug" "f_mail ::: notification: ${ban_mailnotification}, template: ${ban_mailtemplate}, profile: ${ban_mailprofile}, receiver: ${ban_mailreceiver}, rc: ${?}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# check banIP availability and initial sourcing
|
# check banIP availability and initial sourcing
|
||||||
|
|
|
@ -29,12 +29,12 @@ f_mkfile "${ban_allowlist}"
|
||||||
#
|
#
|
||||||
if [ "${ban_action}" != "reload" ]; then
|
if [ "${ban_action}" != "reload" ]; then
|
||||||
if [ -x "${ban_fw4cmd}" ]; then
|
if [ -x "${ban_fw4cmd}" ]; then
|
||||||
cnt=0
|
cnt="0"
|
||||||
while [ "${cnt}" -lt "10" ] && ! /etc/init.d/firewall status | grep -q "^active"; do
|
while [ "${cnt}" -lt "30" ] && ! /etc/init.d/firewall status >/dev/null 2>&1; do
|
||||||
cnt="$((cnt + 1))"
|
cnt="$((cnt + 1))"
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
if ! /etc/init.d/firewall status | grep -q "^active"; then
|
if ! /etc/init.d/firewall status >/dev/null 2>&1; then
|
||||||
f_log "err" "nft based firewall/fw4 not functional"
|
f_log "err" "nft based firewall/fw4 not functional"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
@ -125,7 +125,7 @@ for feed in allowlist ${ban_feed} blocklist; do
|
||||||
done
|
done
|
||||||
wait
|
wait
|
||||||
|
|
||||||
# start domain lookup
|
# start background domain lookup
|
||||||
#
|
#
|
||||||
f_log "info" "start detached banIP domain lookup"
|
f_log "info" "start detached banIP domain lookup"
|
||||||
(f_lookup "allowlist") &
|
(f_lookup "allowlist") &
|
||||||
|
@ -133,15 +133,16 @@ hold="$((cnt % ban_cores))"
|
||||||
[ "${hold}" = "0" ] && wait
|
[ "${hold}" = "0" ] && wait
|
||||||
(f_lookup "blocklist") &
|
(f_lookup "blocklist") &
|
||||||
|
|
||||||
# tidy up
|
# end processing
|
||||||
#
|
#
|
||||||
f_rmset
|
f_rmset
|
||||||
f_rmdir "${ban_tmpdir}"
|
f_rmdir "${ban_tmpdir}"
|
||||||
f_genstatus "active"
|
f_genstatus "active"
|
||||||
|
[ "${ban_mailnotification}" = "1" ] && [ -n "${ban_mailreceiver}" ] && [ -x "${ban_mailcmd}" ] && f_mail
|
||||||
f_log "info" "finished banIP download processes"
|
f_log "info" "finished banIP download processes"
|
||||||
rm -rf "${ban_lock}"
|
rm -rf "${ban_lock}"
|
||||||
|
|
||||||
# start log service
|
# start detached log service
|
||||||
#
|
#
|
||||||
if [ -x "${ban_logreadcmd}" ] && [ -n "${ban_logterm%%??}" ]; then
|
if [ -x "${ban_logreadcmd}" ] && [ -n "${ban_logterm%%??}" ]; then
|
||||||
f_log "info" "start detached banIP log service"
|
f_log "info" "start detached banIP log service"
|
||||||
|
@ -184,7 +185,7 @@ if [ -x "${ban_logreadcmd}" ] && [ -n "${ban_logterm%%??}" ]; then
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# start no-op service loop
|
# start detached no-op service loop
|
||||||
#
|
#
|
||||||
else
|
else
|
||||||
f_log "info" "start detached no-op banIP service (logterms are missing)"
|
f_log "info" "start detached no-op banIP service (logterms are missing)"
|
||||||
|
|
|
@ -94,14 +94,15 @@ survey() {
|
||||||
}
|
}
|
||||||
|
|
||||||
service_triggers() {
|
service_triggers() {
|
||||||
local iface trigger delay
|
local iface trigger trigger_action delay
|
||||||
|
|
||||||
trigger="$(uci_get banip global ban_trigger)"
|
trigger="$(uci_get banip global ban_trigger)"
|
||||||
|
trigger_action="$(uci_get banip global ban_triggeraction "start")"
|
||||||
delay="$(uci_get banip global ban_triggerdelay "10")"
|
delay="$(uci_get banip global ban_triggerdelay "10")"
|
||||||
PROCD_RELOAD_DELAY=$((delay * 1000))
|
PROCD_RELOAD_DELAY=$((delay * 1000))
|
||||||
|
|
||||||
for iface in ${trigger}; do
|
for iface in ${trigger}; do
|
||||||
procd_add_interface_trigger "interface.*.up" "${iface}" "${ban_init}" "start"
|
procd_add_interface_trigger "interface.*.up" "${iface}" "${ban_init}" "${trigger_action}"
|
||||||
done
|
done
|
||||||
procd_add_reload_trigger "banip"
|
procd_add_reload_trigger "banip"
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=dnslookup
|
PKG_NAME:=dnslookup
|
||||||
PKG_VERSION:=1.8.1
|
PKG_VERSION:=1.9.1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://codeload.github.com/ameshkov/dnslookup/tar.gz/v$(PKG_VERSION)?
|
PKG_SOURCE_URL:=https://codeload.github.com/ameshkov/dnslookup/tar.gz/v$(PKG_VERSION)?
|
||||||
PKG_HASH:=51b9cbc626e091eb7a98bc326ad026f36d95f8b5917f71f13011466fcdddb3f9
|
PKG_HASH:=ac108b80f5d7b510ce1fdb1880470d177c5b89cf228c34302442527cf68bb76e
|
||||||
|
|
||||||
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||||
PKG_LICENSE:=MIT
|
PKG_LICENSE:=MIT
|
||||||
|
|
|
@ -33,7 +33,7 @@ PKG_CONFIG_DEPENDS:= \
|
||||||
CONFIG_GENSIO_TCL \
|
CONFIG_GENSIO_TCL \
|
||||||
CONFIG_GENSIO_SSHD
|
CONFIG_GENSIO_SSHD
|
||||||
|
|
||||||
PKG_BUILD_DEPENDS:=PACKAGE_python3-gensio:swig
|
PKG_BUILD_DEPENDS:=PACKAGE_python3-gensio:swig/host
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
include ../../lang/python/python3-package.mk
|
include ../../lang/python/python3-package.mk
|
||||||
|
@ -129,10 +129,11 @@ endef
|
||||||
|
|
||||||
define Package/python3-gensio
|
define Package/python3-gensio
|
||||||
$(call Package/gensio/Default)
|
$(call Package/gensio/Default)
|
||||||
TITLE+= (Python3-bindings)
|
TITLE+= (Python bindings)
|
||||||
SECTION:=lang
|
SECTION:=lang
|
||||||
CATEGORY:=Languages
|
CATEGORY:=Languages
|
||||||
DEPENDS:=+PACKAGE_python3-gensio:python3-light +libgensio
|
SUBMENU:=Python
|
||||||
|
DEPENDS:=+PACKAGE_python3-gensio:python3-light +libgensiocpp
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/python3-gensio/description
|
define Package/python3-gensio/description
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=sing-box
|
PKG_NAME:=sing-box
|
||||||
PKG_VERSION:=1.1.6
|
PKG_VERSION:=1.2.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)?
|
PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)?
|
||||||
PKG_HASH:=2fdf93fd49c9375cd14b2fe2e2163cbad4b65d0cfa422c592855e7810036ef56
|
PKG_HASH:=ec70c2eecf85788e82c29ec4ca129e25292d5fc66a510b4b713fe337650740a9
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-3.0-or-later
|
PKG_LICENSE:=GPL-3.0-or-later
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
@ -19,6 +19,8 @@ PKG_USE_MIPS16:=0
|
||||||
GO_PKG:=github.com/sagernet/sing-box
|
GO_PKG:=github.com/sagernet/sing-box
|
||||||
GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd/sing-box
|
GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd/sing-box
|
||||||
|
|
||||||
|
GO_PKG_LDFLAGS_X:=$(GO_PKG)/constant.Version=$(PKG_VERSION)
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
include ../../lang/golang/golang-package.mk
|
include ../../lang/golang/golang-package.mk
|
||||||
|
|
||||||
|
@ -47,6 +49,9 @@ define Package/sing-box/config
|
||||||
bool "Build with Clash API support"
|
bool "Build with Clash API support"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config SINGBOX_WITH_DHCP
|
||||||
|
bool "Build with DHCP support, see DHCP DNS transport."
|
||||||
|
|
||||||
config SINGBOX_WITH_ECH
|
config SINGBOX_WITH_ECH
|
||||||
bool "Build with TLS ECH extension support for TLS outbound"
|
bool "Build with TLS ECH extension support for TLS outbound"
|
||||||
|
|
||||||
|
@ -67,6 +72,10 @@ define Package/sing-box/config
|
||||||
bool "Build with QUIC support"
|
bool "Build with QUIC support"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config SINGBOX_WITH_REALITY_SERVER
|
||||||
|
bool "Build with reality TLS server support, see TLS."
|
||||||
|
default y
|
||||||
|
|
||||||
config SINGBOX_WITH_SHADOWSOCKSR
|
config SINGBOX_WITH_SHADOWSOCKSR
|
||||||
bool "Build with ShadowsocksR support"
|
bool "Build with ShadowsocksR support"
|
||||||
|
|
||||||
|
@ -86,12 +95,14 @@ endef
|
||||||
PKG_CONFIG_DEPENDS:= \
|
PKG_CONFIG_DEPENDS:= \
|
||||||
CONFIG_SINGBOX_WITH_ACME \
|
CONFIG_SINGBOX_WITH_ACME \
|
||||||
CONFIG_SINGBOX_WITH_CLASH_API \
|
CONFIG_SINGBOX_WITH_CLASH_API \
|
||||||
|
CONFIG_SINGBOX_WITH_DHCP \
|
||||||
CONFIG_SINGBOX_WITH_ECH \
|
CONFIG_SINGBOX_WITH_ECH \
|
||||||
CONFIG_SINGBOX_WITH_EMBEDDED_TOR \
|
CONFIG_SINGBOX_WITH_EMBEDDED_TOR \
|
||||||
CONFIG_SINGBOX_WITH_GRPC \
|
CONFIG_SINGBOX_WITH_GRPC \
|
||||||
CONFIG_SINGBOX_WITH_GVISOR \
|
CONFIG_SINGBOX_WITH_GVISOR \
|
||||||
CONFIG_SINGBOX_WITH_LWIP \
|
CONFIG_SINGBOX_WITH_LWIP \
|
||||||
CONFIG_SINGBOX_WITH_QUIC \
|
CONFIG_SINGBOX_WITH_QUIC \
|
||||||
|
CONFIG_SINGBOX_WITH_REALITY_SERVER \
|
||||||
CONFIG_SINGBOX_WITH_SHADOWSOCKSR \
|
CONFIG_SINGBOX_WITH_SHADOWSOCKSR \
|
||||||
CONFIG_SINGBOX_WITH_UTLS \
|
CONFIG_SINGBOX_WITH_UTLS \
|
||||||
CONFIG_SINGBOX_WITH_V2RAY_API \
|
CONFIG_SINGBOX_WITH_V2RAY_API \
|
||||||
|
@ -100,6 +111,7 @@ PKG_CONFIG_DEPENDS:= \
|
||||||
GO_PKG_TAGS:=$(subst $(space),$(comma),$(strip \
|
GO_PKG_TAGS:=$(subst $(space),$(comma),$(strip \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_ACME),with_acme) \
|
$(if $(CONFIG_SINGBOX_WITH_ACME),with_acme) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_CLASH_API),with_clash_api) \
|
$(if $(CONFIG_SINGBOX_WITH_CLASH_API),with_clash_api) \
|
||||||
|
$(if $(CONFIG_SINGBOX_WITH_DHCP),with_dhcp) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_ECH),with_ech) \
|
$(if $(CONFIG_SINGBOX_WITH_ECH),with_ech) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_EMBEDDED_TOR),with_embedded_tor) \
|
$(if $(CONFIG_SINGBOX_WITH_EMBEDDED_TOR),with_embedded_tor) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_GRPC),with_grpc) \
|
$(if $(CONFIG_SINGBOX_WITH_GRPC),with_grpc) \
|
||||||
|
@ -107,6 +119,7 @@ GO_PKG_TAGS:=$(subst $(space),$(comma),$(strip \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_LWIP),with_lwip) \
|
$(if $(CONFIG_SINGBOX_WITH_LWIP),with_lwip) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_QUIC),with_quic) \
|
$(if $(CONFIG_SINGBOX_WITH_QUIC),with_quic) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_SHADOWSOCKSR),with_shadowsocksr) \
|
$(if $(CONFIG_SINGBOX_WITH_SHADOWSOCKSR),with_shadowsocksr) \
|
||||||
|
$(if $(CONFIG_SINGBOX_WITH_REALITY_SERVER),with_reality_server) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_UTLS),with_utls) \
|
$(if $(CONFIG_SINGBOX_WITH_UTLS),with_utls) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_V2RAY_API),with_v2ray_api) \
|
$(if $(CONFIG_SINGBOX_WITH_V2RAY_API),with_v2ray_api) \
|
||||||
$(if $(CONFIG_SINGBOX_WITH_WIREGUARD),with_wireguard) \
|
$(if $(CONFIG_SINGBOX_WITH_WIREGUARD),with_wireguard) \
|
||||||
|
|
|
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=ripgrep
|
PKG_NAME:=ripgrep
|
||||||
PKG_VERSION:=13.0.0
|
PKG_VERSION:=13.0.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://codeload.github.com/BurntSushi/ripgrep/tar.gz/$(PKG_VERSION)?
|
PKG_SOURCE_URL:=https://codeload.github.com/BurntSushi/ripgrep/tar.gz/$(PKG_VERSION)?
|
||||||
|
@ -18,12 +18,10 @@ PKG_LICENSE_FILES:=LICENSE-MIT UNLICENSE
|
||||||
|
|
||||||
PKG_BUILD_DEPENDS:=rust/host
|
PKG_BUILD_DEPENDS:=rust/host
|
||||||
|
|
||||||
include ../../lang/rust/rust-package.mk
|
RUST_PKG_FEATURES:=pcre2
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
define Build/Compile
|
include $(INCLUDE_DIR)/package.mk
|
||||||
$(call Build/Compile/Cargo,, --features 'pcre2')
|
include ../../lang/rust/rust-package.mk
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/ripgrep
|
define Package/ripgrep
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
|
@ -38,9 +36,5 @@ define Package/ripgrep/description
|
||||||
while respecting your gitignore
|
while respecting your gitignore
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ripgrep/install
|
$(eval $(call RustBinPackage,ripgrep))
|
||||||
$(INSTALL_DIR) $(1)/bin
|
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/target/$(RUSTC_TARGET_ARCH)/stripped/rg $(1)/bin/rg
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage,ripgrep))
|
$(eval $(call BuildPackage,ripgrep))
|
||||||
|
|
|
@ -20,6 +20,7 @@ PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
PKG_HOST_ONLY:=1
|
PKG_HOST_ONLY:=1
|
||||||
HOST_BUILD_PARALLEL:=1
|
HOST_BUILD_PARALLEL:=1
|
||||||
|
HOST_BUILD_DEPENDS:=pcre2/host
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/host-build.mk
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
@ -33,7 +34,7 @@ define Package/swig
|
||||||
endef
|
endef
|
||||||
|
|
||||||
HOST_CONFIGURE_ARGS += \
|
HOST_CONFIGURE_ARGS += \
|
||||||
--without-pcre
|
--with-pcre
|
||||||
|
|
||||||
define Package/swig/description
|
define Package/swig/description
|
||||||
tool that generates bindings for various languages
|
tool that generates bindings for various languages
|
||||||
|
|
Loading…
Reference in a new issue