include $(TOPDIR)/rules.mk
PKG_NAME:=htop
-PKG_VERSION:=3.2.1
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=3.2.2
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/htop-dev/htop/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=b5ffac1949a8daaabcffa659c0964360b5008782aae4dfa7702d2323cfb4f438
+PKG_HASH:=3829c742a835a0426db41bb039d1b976420c21ec65e93b35cd9bfd2d57f44ac8
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=sudo
-PKG_VERSION:=1.9.12p1
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=1.9.12p2
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.sudo.ws/dist
-PKG_HASH:=475a18a8eb3da8b2917ceab063a6baf51ea09128c3c47e3e0e33ab7497bab7d8
+PKG_HASH:=b9a0b1ae0f1ddd9be7f3eafe70be05ee81f572f6f536632c44cd4101bb2a8539
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
include $(TOPDIR)/rules.mk
PKG_NAME:=delve
-PKG_VERSION:=1.8.2
+PKG_VERSION:=1.20.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/go-delve/delve/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=fbf6ea7e1ed0c92e543c7f5f2343928e185e11e4cba1c7c9d3bfc28d1c323900
+PKG_HASH:=a10aa97d3f6b6219877a73dd305d511442ad0caab740de76fc005796a480de93
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=nasm
+PKG_VERSION:=2.16.01
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=https://www.nasm.us/pub/nasm/releasebuilds/$(PKG_VERSION)/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_HASH:=c77745f4802375efeee2ec5c0ad6b7f037ea9c87c92b149a9637ff099f162558
+
+PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
+PKG_LICENSE:=BSD-2-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/nasm
+ SECTION:=devel
+ CATEGORY:=Development
+ TITLE:=nasm assembler
+ DEPENDS:=@TARGET_x86
+endef
+
+define Package/nasm/description
+ NASM, the Netwide Assembler: an assembler targetting the
+ Intel x86 series of processors, with portable source.
+endef
+
+CONFIGURE_ARGS += --disable-lto --disable-werror --disable-gdb
+
+define Package/nasm/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ndisasm $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nasm $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,nasm))
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=v4l2loopback
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/umlaeute/v4l2loopback.git
-PKG_SOURCE_VERSION:=baf9de279afc7a7c7513e9c40a0c9ff88f456af4
-PKG_SOURCE_DATE:=2021-07-13
-PKG_MIRROR_HASH:=811a4b0bbefe14cf4a74dbb3d45f5ae147f50f1d67dbb6f0fe3e5a9888adf49a
+PKG_SOURCE_VERSION:=v0.12.7
+PKG_MIRROR_HASH:=e5e5d897bdaa7f2fb0b897e503cecaeee234fcdc7f2f138aae501ef742f5b2b2
PKG_MAINTAINER:=Michel Promonet <michel.promonet@free.fr>
SUBMENU:=Video Support
TITLE:=v4l2loopback kernel module
FILES:=$(PKG_BUILD_DIR)/v4l2loopback.ko
- DEPENDS:=+kmod-video-core +kmod-video-videobuf2
+ DEPENDS:=+kmod-video-core
AUTOLOAD:=$(call AutoProbe,v4l2loopback)
endef
For more information, please refer to the Chicken Scheme website at https://call-cc.org.
endef
-MAKE_FLAGS += PLATFORM=linux C_COMPILER=$(TARGET_CC) LINKER=$(TARGET_CC) PREFIX=/usr C_COMPILER_OPTIMIZATION_OPTIONS="$(TARGET_CFLAGS)"
+MAKE_FLAGS += PLATFORM=linux C_COMPILER="$(TARGET_CC)" LINKER="$(TARGET_CC)" PREFIX=/usr C_COMPILER_OPTIMIZATION_OPTIONS="$(TARGET_CFLAGS)"
# not installed:
# - csc and chicken, the compiler
include $(TOPDIR)/rules.mk
PKG_NAME:=php
-PKG_VERSION:=8.2.1
+PKG_VERSION:=8.2.2
PKG_RELEASE:=1
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_HASH:=650d3bd7a056cabf07f6a0f6f1dd8ba45cd369574bbeaa36de7d1ece212c17af
+PKG_HASH:=bdc4aa38e652bac86039601840bae01c0c3653972eaa6f9f93d5f71953a7ee33
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
include $(TOPDIR)/rules.mk
PKG_NAME:=pillow
-PKG_VERSION:=9.3.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=9.4.0
+PKG_RELEASE:=1
PYPI_NAME:=Pillow
-PKG_HASH:=c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f
+PKG_HASH:=a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=HPND
include $(TOPDIR)/rules.mk
PKG_NAME:=python-chardet
-PKG_VERSION:=5.0.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=5.1.0
+PKG_RELEASE:=1
PKG_LICENSE:=LGPL-2.1
PYPI_NAME:=chardet
-PKG_HASH:=0368df2bfd78b5fc20572bb4e9bb7fb53e2c094f60ae9993339e8671d0afb8aa
+PKG_HASH:=0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
URL:=https://github.com/chardet/chardet
TITLE:=Universal encoding detector
- DEPENDS:=+python3-light
+ DEPENDS:=+python3-light +python3-logging
endef
define Package/python3-chardet/description
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=python-evdev
-PKG_VERSION:=1.6.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=1.6.1
+PKG_RELEASE:=1
PKG_LICENSE:=BSD-3-Clause
PKG_MAINTAINER:=Paulo Costa <me@paulo.costa.nom.br>, Alexandru Ardelean <ardeleanalex@gmail.com>
PYPI_NAME:=evdev
-PKG_HASH:=ecfa01b5c84f7e8c6ced3367ac95288f43cd84efbfd7dd7d0cdbfc0d18c87a6a
+PKG_HASH:=299db8628cc73b237fc1cc57d3c2948faa0756e2a58b6194b5bf81dc2081f1e3
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/rules.mk
PKG_NAME:=python-pytz
-PKG_VERSION:=2022.7
+PKG_VERSION:=2022.7.1
PKG_RELEASE:=1
PYPI_NAME:=pytz
-PKG_HASH:=7ccfae7b4b2c067464a6733c6261673fdb8fd1be905460396b97a073e9fa683a
+PKG_HASH:=01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=MIT
include $(TOPDIR)/rules.mk
PKG_NAME:=python-requests
-PKG_VERSION:=2.28.1
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=2.28.2
+PKG_RELEASE:=1
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>, Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=Apache-2.0
PKG_CPE_ID:=cpe:/a:python-requests:requests
PYPI_NAME:=requests
-PKG_HASH:=7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983
+PKG_HASH:=98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
HOST_PYTHON3_PIP_CACHE_DIR:=$(DL_DIR)/pip-cache
+define SetupPyShim
+ if [ -f $(1)/pyproject.toml ] && [ ! -f $(1)/setup.py ] ; then \
+ $(CP) $(python3_mk_path)setup.py.shim $(1)setup.py ; \
+ fi
+endef
+
# Multiple concurrent pip processes can lead to errors or unexpected results: https://github.com/pypa/pip/issues/2361
# $(1) => packages to install
define HostPython3/PipInstall
# $(2) => additional arguments to setup.py
# $(3) => additional variables
define HostPython3/ModSetup
+ $(call SetupPyShim,$(HOST_BUILD_DIR)/$(strip $(1)))
$(call HostPython3/Run, \
$(HOST_BUILD_DIR)/$(strip $(1)), \
setup.py $(2), \
- $(3))
+ $(3) PY_PKG_VERSION=$(PKG_VERSION))
endef
# $(3) => additional variables
define Python3/ModSetup
$(INSTALL_DIR) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)
+ $(call SetupPyShim,$(PKG_BUILD_DIR)/$(strip $(1)))
$(call Python3/Run, \
$(PKG_BUILD_DIR)/$(strip $(1)), \
setup.py $(2), \
- $(3))
+ $(3) PY_PKG_VERSION=$(PKG_VERSION))
endef
define Python3/FixShebang
include ../python3-version.mk
PKG_NAME:=python3
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_VERSION:=$(PYTHON3_VERSION).$(PYTHON3_VERSION_MICRO)
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
+|/usr/lib/python$(PYTHON3_VERSION)
-|/usr/lib/python$(PYTHON3_VERSION)/distutils/cygwinccompiler.py
-|/usr/lib/python$(PYTHON3_VERSION)/distutils/command/wininst*
--|/usr/lib/python$(PYTHON3_VERSION)/ensurepip
-|/usr/lib/python$(PYTHON3_VERSION)/idlelib
-|/usr/lib/python$(PYTHON3_VERSION)/tkinter
-|/usr/lib/python$(PYTHON3_VERSION)/turtledemo
endef
$(eval $(call Py3BasePackage,python3-pip, \
+ /usr/lib/python$(PYTHON3_VERSION)/ensurepip \
, \
DO_NOT_ADD_TO_PACKAGE_DEPENDS \
))
--- /dev/null
+import os
+import setuptools
+
+# FIXME: see about getting rid of PY_PKG_VERSION asap when setuptools handles this correctly
+if __name__ == "__main__":
+ setuptools.setup(version=os.environ['PY_PKG_VERSION'])
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libjaylink
+PKG_VERSION:=0.3.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://gitlab.zapb.de/libjaylink/libjaylink/-/archive/$(PKG_VERSION)
+PKG_HASH:=a2d98c1aa13dcf41c6c681767a43cdefc42b6f71af9362937555051007514cd9
+
+PKG_MAINTAINER:=Paul Fertser <fercerpav@gmail.com>
+PKG_LICENSE:=GPL-2.0+
+PKG_LICENSE_FILES:=COPYING
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libjaylink
+ SECTION:=libs
+ CATEGORY:=Libraries
+ DEPENDS:=+libusb-1.0
+ TITLE:=Library to access SEGGER J-Link and compatible devices
+ URL:=https://gitlab.zapb.de/libjaylink/libjaylink.git
+endef
+
+define Package/libjaylink/description
+libjaylink is a shared library written in C to access SEGGER J-Link and
+compatible devices.
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include/libjaylink
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/libjaylink/*.h $(1)/usr/include/libjaylink/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjaylink.so* $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libjaylink.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libjaylink/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjaylink.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libjaylink))
PKG_NAME:=liburing
PKG_VERSION:=2.3
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.kernel.dk/cgit/liburing/snapshot
For more info on io_uring, please see: https://kernel.dk/io_uring.pdf
endef
-CONFIGURE_ARGS:=--prefix=$(CONFIGURE_PREFIX) --cc=${TARGET_CC}
+CONFIGURE_ARGS:=--prefix=$(CONFIGURE_PREFIX) --cc="${TARGET_CC}"
define Build/Compile
$(MAKE) $(PKG_BUILD_DIR) \
include $(TOPDIR)/rules.mk
PKG_NAME:=libwebp
-PKG_VERSION:=1.2.4
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=1.3.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://storage.googleapis.com/downloads.webmproject.org/releases/webp
-PKG_HASH:=7bf5a8a28cc69bcfa8cb214f2c3095703c6b73ac5fba4d5480c205331d9494df
+PKG_HASH:=64ac4614db292ae8c5aa26de0295bf1623dbb3985054cb656c55e67431def17c
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=BSD-3-Clause
define Package/libwebp/install
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwebp*.s* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.s* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libwebp))
--- a/src/dsp/cpu.h
+++ b/src/dsp/cpu.h
-@@ -106,7 +106,7 @@
+@@ -108,7 +108,7 @@
#define WEBP_HAVE_NEON
#endif
include $(TOPDIR)/rules.mk
PKG_NAME:=nghttp2
-PKG_VERSION:=1.44.0
+PKG_VERSION:=1.51.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/nghttp2/nghttp2/releases/download/v$(PKG_VERSION)
-PKG_HASH:=5699473b29941e8dafed10de5c8cb37a3581edf62ba7d04b911ca247d4de3c5d
+PKG_HASH:=66aa76d97c143f42295405a31413e5e7d157968dad9f957bb4b015b598882e6b
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
PKG_LICENSE:=MIT
define Build/Compile
cd $(PKG_BUILD_DIR)/PcapPlusPlus; ./configure-linux.sh --install-dir /usr
- make -C $(PKG_BUILD_DIR)/PcapPlusPlus CXXFLAGS="$(TARGET_CXXFLAGS) -fPIC" CFLAGS="$(TARGET_CFLAGS) -fPIC" CXX=$(TARGET_CXX) CC=$(TARGET_CC) AR=$(TARGET_AR) libs
+ make -C $(PKG_BUILD_DIR)/PcapPlusPlus CXXFLAGS="$(TARGET_CXXFLAGS) -fPIC" CFLAGS="$(TARGET_CFLAGS) -fPIC" CXX="$(TARGET_CXX)" CC="$(TARGET_CC)" AR=$(TARGET_AR) libs
endef
define Build/InstallDev
include $(TOPDIR)/rules.mk
PKG_NAME:=v4l2tools
-PKG_VERSION:=0.1.8
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=0.2.0
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/mpromonet/v4l2tools.git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-PKG_MIRROR_HASH:=5d848ab811126e9ad11cc374e312e460cebe40fab99164d4368fe0e69dc07997
+PKG_MIRROR_HASH:=8cb932b0aa3b273155e7814479b7bfc102b65912ca6d8537123916c514ba9ffd
PKG_MAINTAINER:=Michel Promonet<michel.promonet@free.fr>
PKG_LICENSE:=Unlicense
PKG_NAME:=atlas-sw-probe
PKG_VERSION:=5080
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/RIPE-NCC/ripe-atlas-software-probe.git
echo "prod" > $(1)/$(SCRIPTS_DIR)/state/mode
# Copy scripts
- $(CP) $(PKG_BUILD_DIR)/bin/{ATLAS,common-pre.sh,common.sh,reginit.sh,resolvconf} $(1)/$(SCRIPTS_DIR)/bin/
+ $(CP) $(PKG_BUILD_DIR)/bin/{ATLAS,resolvconf} $(1)/$(SCRIPTS_DIR)/bin/
+ $(CP) $(PKG_BUILD_DIR)/bin/*.sh $(1)/$(SCRIPTS_DIR)/bin/
$(CP) $(PKG_BUILD_DIR)/bin/arch/{linux,openwrt-sw-probe} $(1)/$(SCRIPTS_DIR)/bin/arch/
# Create config info
You can disable DoHTTPS if you do not need it or need
to avoid the additional library dependency.
+config BIND_ENABLE_GSSAPI
+ bool
+ default n
+ prompt "Include GSSPAI support in bind"
+ help
+ BIND 9 supports GSSAPI. This depends on libcomerr and krb5-libs.
+ Disable it by default as krb5-libs is rather large.
+
endif
include $(TOPDIR)/rules.mk
PKG_NAME:=bind
-PKG_VERSION:=9.18.10
+PKG_VERSION:=9.18.11
PKG_RELEASE:=3
USERID:=bind=57:bind=57
PKG_SOURCE_URL:= \
https://www.mirrorservice.org/sites/ftp.isc.org/isc/bind9/$(PKG_VERSION) \
https://ftp.isc.org/isc/bind9/$(PKG_VERSION)
-PKG_HASH:=f415a92feb62568b50854a063cb231e257351f8672186d0ab031a49b3de2cac6
+PKG_HASH:=8ff3352812230cbcbda42df87cad961f94163d3da457c5e4bef8057fd5df2158
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=aclocal.m4 libtool.m4
PKG_CONFIG_DEPENDS := \
CONFIG_BIND_LIBJSON \
CONFIG_BIND_LIBXML2 \
- CONFIG_BIND_ENABLE_DOH
+ CONFIG_BIND_ENABLE_DOH \
+ CONFIG_BIND_ENABLE_GSSAPI
PKG_BUILD_DEPENDS += BIND_LIBXML2:libxml2 BIND_LIBJSON:libjson-c
+libatomic \
+libuv \
+BIND_ENABLE_DOH:libnghttp2 \
+ +BIND_ENABLE_GSSAPI:krb5-libs \
+ +BIND_ENABLE_GSSAPI:libcomerr \
+BIND_LIBXML2:libxml2 \
+BIND_LIBJSON:libjson-c
TITLE:=bind shared libraries
--with-openssl="$(STAGING_DIR)/usr" \
--without-lmdb \
--enable-epoll \
- --without-gssapi \
--without-readline \
--sysconfdir=/etc/bind
--disable-doh
endif
+ifdef CONFIG_BIND_ENABLE_GSSAPI
+ CONFIGURE_ARGS += \
+ --with-gssapi
+else
+ CONFIGURE_ARGS += \
+ --without-gssapi
+endif
+
CONFIGURE_VARS += \
BUILD_CC="$(TARGET_CC)" \
touch $conf_local_file
local args=
- [ no_ipv6 ] && args="-4"
+ no_ipv6 && args="-4"
procd_open_instance
procd_set_param command /usr/sbin/named -u bind -f $args -c $config_file
include $(TOPDIR)/rules.mk
PKG_NAME:=cloudflared
-PKG_VERSION:=2022.12.1
+PKG_VERSION:=2023.2.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/cloudflare/cloudflared/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=8cc5c41ea98a9d72687d5f62e733a9033191e834e4fa9b2aecc557f0ccfbda56
+PKG_HASH:=468b0953eca6ab189859073067857062c91ed9adb18e12a43527e0dba3aa6409
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=crowdsec-firewall-bouncer
-PKG_VERSION:=0.0.21
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=0.0.25
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/crowdsecurity/cs-firewall-bouncer/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=c92e02085c4c8481009a46ba80374329d102a45933fd0fd2164901954331923e
+PKG_HASH:=15ffaa38644215a4cf5e5d5d3a6fc6f0800057bc55d4bd25778d8e952679506e
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
define Package/crowdsec-firewall-bouncer
$(call Package/crowdsec-firewall-bouncer/Default)
- DEPENDS:=@(PACKAGE_iptables||PACKAGE_nftables) \
- $(GO_ARCH_DEPENDS)
+ DEPENDS:=$(GO_ARCH_DEPENDS)
endef
define Package/golang-crowdsec-firewall-bouncer-dev
crowdsec-firewall-bouncer will fetch new and old decisions
from a CrowdSec API to add them in a blocklist used by supported firewalls.
- You must install iptables+ipset or nftables.
+ You must install nftables.
endef
define Package/crowdsec-firewall-bouncer/description
define Package/crowdsec-firewall-bouncer/install
$(call GoPackage/Package/Install/Bin,$(1))
- $(INSTALL_DIR) $(1)/etc/crowdsec/bouncers
- $(INSTALL_DATA) \
- $(GO_PKG_BUILD_DIR)/src/$(GO_PKG)/config/crowdsec-firewall-bouncer.yaml \
- $(1)/etc/crowdsec/bouncers
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_CONF) ./files/crowdsec.config $(1)/etc/config/crowdsec
$(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) \
- ./files/crowdsec-firewall-bouncer.initd \
- $(1)/etc/init.d/crowdsec-firewall-bouncer
-
- $(INSTALL_DIR) $(1)/etc
- $(INSTALL_BIN) \
- ./files/crowdsec-firewall-bouncer.firewall \
- $(1)/etc/firewall.cs
-
- $(INSTALL_DIR) $(1)/etc/uci-defaults
- $(INSTALL_BIN) \
- ./files/crowdsec-firewall-bouncer.defaults \
- $(1)/etc/uci-defaults/99_crowdsec-firewall-bouncer
+ $(INSTALL_BIN) ./files/crowdsec-firewall-bouncer.initd $(1)/etc/init.d/crowdsec-firewall-bouncer
endef
define Package/crowdsec-firewall-bouncer/conffiles
-/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
+/etc/config/crowdsec
endef
$(eval $(call GoBinPackage,crowdsec-firewall-bouncer))
+++ /dev/null
-#!/bin/sh
-
-CONFIG=/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
-## Gen&ConfigApiKey
-if grep -q "{API_KEY}" "$CONFIG"; then
- SUFFIX=`tr -dc A-Za-z0-9 </dev/urandom | head -c 8`
- API_KEY=`/usr/bin/cscli bouncers add crowdsec-firewall-bouncer-${SUFFIX} -o raw`
- sed -i "s,^\(\s*api_key\s*:\s*\).*\$,\1$API_KEY," $CONFIG
-else
- echo API key already registered...
-fi
-
-# unfortunately, UCI doesn't provide a nice way to add an anonymous section only if it doesn't already exist
-if ! uci show firewall | grep -q firewall.cs; then
- name="$(uci add firewall include)"
- uci set "firewall.${name}.path=/etc/firewall.cs"
- uci set "firewall.${name}.enabled=1"
- uci set "firewall.${name}.reload=1"
- echo -e "Adding the following UCI config:\n $(uci changes)"
- uci commit
-fi
-
-exit 0
+++ /dev/null
-#!/bin/sh
-/etc/init.d/crowdsec enabled && /etc/init.d/crowdsec restart
-/etc/init.d/crowdsec-firewall-bouncer enabled && /etc/init.d/crowdsec-firewall-bouncer restart
-exit 0
#!/bin/sh /etc/rc.common
-# Copyright (C) 2021-2022 Gerald Kerma <gandalf@gk2.net>
-START=99
USE_PROCD=1
+
+START=99
+
NAME=crowdsec-firewall-bouncer
PROG=/usr/bin/cs-firewall-bouncer
-CONFIG=/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
-BACKEND=iptables
VARCONFIGDIR=/var/etc/crowdsec/bouncers
VARCONFIG=/var/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
-FW_BACKEND="iptables"
+
+CONFIGURATION=crowdsec
+
+TABLE="crowdsec"
+TABLE6="crowdsec6"
service_triggers() {
procd_add_reload_trigger crowdsec-firewall-bouncer
+ procd_add_config_trigger "config.change" "crowdsec" /etc/init.d/crowdsec-firewall-bouncer reload
}
-init_config() {
- ## CheckFirewall
- iptables="true"
- which iptables > /dev/null
- FW_BACKEND=""
- if [[ $? != 0 ]]; then
- echo "iptables is not present"
- iptables="false"
- else
- FW_BACKEND="iptables"
- echo "iptables found"
- fi
+init_yaml() {
- nftables="true"
- which nft > /dev/null
- if [[ $? != 0 ]]; then
- echo "nftables is not present"
- nftables="false"
- else
- FW_BACKEND="nftables"
- echo "nftables found"
- fi
+ local section="$1"
- if [ "$nftables" = "true" -a "$iptables" = "true" ]; then
- echo "Found nftables(default) and iptables..."
- fi
+ local update_frequency
+ local log_level
+ local api_url
+ local api_key
+ local ipv6
+ local deny_action
+ local deny_log
+ local log_prefix
+ local log_max_size
+ local log_max_backups
+ local log_max_age
+ local ipv4
+ local input_chain_name
+ local input6_chain_name
- if [ "$FW_BACKEND" = "iptables" ]; then
- which ipset > /dev/null
- if [[ $? != 0 ]]; then
- echo "ipset not found, install it !"
- fi
- fi
- BACKEND=$FW_BACKEND
+ config_get update_frequency $section update_frequency '10s'
+ config_get log_level $section log_level 'info'
+ config_get api_url $section api_url "http://127.0.0.1:8080"
+ config_get api_key $section api_key "API_KEY"
+ config_get_bool ipv6 $section ipv6 '1'
+ config_get deny_action $section deny_action "drop"
+ config_get_bool deny_log $section deny_log '0'
+ config_get log_prefix $section log_prefix "crowdsec: "
+ config_get log_max_size $section log_max_size '100'
+ config_get log_max_backups $section log_max_backups '3'
+ config_get log_max_age $section log_max_age '30'
+ config_get_bool ipv4 $section ipv4 '1'
+ config_get input_chain_name $section input_chain_name "input"
+ config_get input6_chain_name $section input6_chain_name "input"
# Create tmp dir & permissions if needed
if [ ! -d "${VARCONFIGDIR}" ]; then
mkdir -m 0755 -p "${VARCONFIGDIR}"
fi;
- cp $CONFIG $VARCONFIG
+ cat > $VARCONFIG <<-EOM
+ mode: nftables
+ pid_dir: /var/run/
+ update_frequency: $update_frequency
+ daemonize: true
+ log_mode: file
+ log_dir: /var/log/
+ log_level: $log_level
+ log_compression: true
+ log_max_size: $log_max_size
+ log_max_backups: $log_max_backups
+ log_max_age: $log_max_age
+ api_url: $api_url
+ api_key: $api_key
+ insecure_skip_verify: true
+ disable_ipv6: boolnot($ipv6)
+ deny_action: $deny_action
+ deny_log: bool($deny_log)
+ supported_decisions_type:
+ - ban
+ #to change log prefix
+ deny_log_prefix: "$log_prefix"
+ #to change the blacklists name
+ blacklists_ipv4: crowdsec-blacklists
+ blacklists_ipv6: crowdsec6-blacklists
+ #type of ipset to use
+ ipset_type: nethash
+ #if present, insert rule in those chains
+ iptables_chains:
+ - INPUT
+ # - FORWARD
+ # - DOCKER-USER
+ ## nftables
+ nftables:
+ ipv4:
+ enabled: bool($ipv4)
+ set-only: true
+ table: $TABLE
+ chain: $input_chain_name
+ ipv6:
+ enabled: bool($ipv6)
+ set-only: true
+ table: $TABLE6
+ chain: $input6_chain_name
+ # packet filter
+ pf:
+ # an empty disables the anchor
+ anchor_name: ""
+ prometheus:
+ enabled: false
+ listen_addr: 127.0.0.1
+ listen_port: 60601
+ EOM
- sed -i "s,^\(\s*mode\s*:\s*\).*\$,\1$BACKEND," $VARCONFIG
+ sed -i "s/bool(1)/true/g" $VARCONFIG
+ sed -i "s/bool(0)/false/g" $VARCONFIG
+ sed -i "s/boolnot(1)/false/g" $VARCONFIG
+ sed -i "s/boolnot(0)/true/g" $VARCONFIG
+ sed -i "s,^\(\s*api_url\s*:\s*\).*\$,\1$api_url," $VARCONFIG
+ sed -i "s,^\(\s*api_key\s*:\s*\).*\$,\1$api_key," $VARCONFIG
+}
+
+init_nftables() {
+
+ local section="$1"
+
+ local priority
+ local deny_action
+ local deny_log
+ local log_prefix
+ local ipv4
+ local ipv6
+ local filter_input
+ local filter_forward
+ local input_chain_name
+ local forward_chain_name
+ local input6_chain_name
+ local forward6_chain_name
+ local interface
+ local log_term=""
+
+ config_get priority $section priority "4"
+ config_get deny_action $section deny_action "drop"
+ config_get_bool deny_log $section deny_log '0'
+ config_get log_prefix $section log_prefix "crowdsec: "
+ config_get_bool ipv4 $section ipv4 '1'
+ config_get_bool ipv6 $section ipv6 '1'
+ config_get_bool filter_input $section filter_input '1'
+ config_get_bool filter_forward $section filter_forward '1'
+ config_get input_chain_name $section input_chain_name "input"
+ config_get forward_chain_name $section forward_chain_name "forward"
+ config_get input6_chain_name $section input6_chain_name "input"
+ config_get forward6_chain_name $section forward6_chain_name "forward"
+ config_get interface $section interface 'eth1'
+
+ if [ "$deny_log" -eq "1" ] ; then
+ local log_term="log prefix \"${log_prefix}\""
+ fi
+
+ local interface="${interface// /, }"
+
+ #as of kernel 3.18 we can delete a table without need to flush it
+ nft delete table ip crowdsec 2>/dev/null
+ nft delete table ip6 crowdsec6 2>/dev/null
+
+ if [ "$ipv4" -eq "1" ] ; then
+
+ nft add table ip crowdsec
+ nft add set ip crowdsec crowdsec-blacklists '{ type ipv4_addr; flags timeout; }'
+
+ if [ "$filter_input" -eq "1" ] ; then
+ nft add chain ip "$TABLE" $input_chain_name "{ type filter hook input priority $priority; policy accept; }"
+ nft add rule ip "$TABLE" $input_chain_name iifname { $interface } ct state new ip saddr @crowdsec-blacklists ${log_term} counter $deny_action
+ fi
+ if [ "$filter_forward" -eq "1" ] ; then
+ nft add chain ip "$TABLE" $forward_chain_name "{ type filter hook forward priority $priority; policy accept; }"
+ nft add rule ip "$TABLE" $forward_chain_name iifname { $interface } ct state new ip saddr @crowdsec-blacklists ${log_term} counter $deny_action
+ fi
+ fi
+
+ if [ "$ipv6" -eq "1" ] ; then
+
+ nft add table ip6 crowdsec6
+ nft add set ip6 crowdsec6 crowdsec6-blacklists '{ type ipv6_addr; flags timeout; }'
+
+ if [ "$filter_input" -eq "1" ] ; then
+ nft add chain ip6 "$TABLE6" $input6_chain_name "{ type filter hook input priority $priority; policy accept; }"
+ nft add rule ip6 "$TABLE6" $input6_chain_name iifname { $interface } ct state new ip6 saddr @crowdsec6-blacklists ${log_term} counter $deny_action
+ fi
+ if [ "$filter_forward" -eq "1" ] ; then
+ nft add chain ip6 "$TABLE6" $forward6_chain_name "{ type filter hook forward priority $priority; policy accept; }"
+ nft add rule ip6 "$TABLE6" $forward6_chain_name iifname { $interface } ct state new ip6 saddr @crowdsec6-blacklists ${log_term} counter $deny_action
+ fi
+ fi
+}
+
+run_bouncer() {
+
+ local section="$1"
+
+ local enabled
+ config_get_bool enabled $section enabled 0
+
+ if [ "$enabled" -eq "1" ] ; then
+
+ init_yaml "$section"
+ init_nftables "$section"
+
+ procd_open_instance
+ procd_set_param command "$PROG" -c "$VARCONFIG"
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_close_instance
+ fi
}
start_service() {
- init_config
- procd_open_instance
- procd_set_param command "$PROG" -c "$VARCONFIG"
- procd_close_instance
+ config_load "${CONFIGURATION}"
+ config_foreach run_bouncer bouncer
+}
+
+service_stopped() {
+
+ rm $VARCONFIG
+
+ nft delete table ip crowdsec 2>/dev/null
+ nft delete table ip6 crowdsec6 2>/dev/null
}
+
+
--- /dev/null
+config bouncer
+ option enabled '0'
+ option ipv4 '1'
+ option ipv6 '1'
+ option api_url 'http://localhost:8080/'
+ option api_key ''
+ option update_frequency '10s'
+ option deny_action 'drop'
+ option deny_log '0'
+ option log_prefix 'crowdsec: '
+ option log_level 'info'
+ option filter_input '1'
+ option filter_forward '1'
+ list interface 'eth1'
+
+++ /dev/null
---- a/config/crowdsec-firewall-bouncer.yaml
-+++ b/config/crowdsec-firewall-bouncer.yaml
-@@ -20,5 +20,5 @@ supported_decisions_types:
- #if present, insert rule in those chains
- iptables_chains:
- - INPUT
--# - FORWARD
-+ - FORWARD
- # - DOCKER-USER
PKG_NAME:=dawn
PKG_SOURCE_DATE:=2022-07-24
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/berlin-open-wireless-lab/DAWN.git
PKG_NAME:=ddns-scripts
PKG_VERSION:=2.8.2
-PKG_RELEASE:=33
+PKG_RELEASE:=34
PKG_LICENSE:=GPL-2.0
--- /dev/null
+{
+ "name": "hosting.de",
+ "ipv4": {
+ "url": "https://[USERNAME]:[PASSWORD]@ddns.hosting.de/nic/update?hostname=[DOMAIN]&myip=[IP]",
+ "answer": "good|nochg"
+ },
+ "ipv6": {
+ "url": "https://[USERNAME]:[PASSWORD]@ddns.hosting.de/nic/update?hostname=[DOMAIN]&myip=[IP]",
+ "answer": "good|nochg"
+ }
+}
goip.de
google.com
he.net
+hosting.de
infomaniak.com
inwx.de
joker.com
include $(TOPDIR)/rules.mk
PKG_NAME:=dnscrypt-proxy2
-PKG_VERSION:=2.1.2
+PKG_VERSION:=2.1.4
PKG_RELEASE:=1
PKG_SOURCE:=dnscrypt-proxy-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/DNSCrypt/dnscrypt-proxy/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=aa55fd52b9c1b983405bf98b42ec754f5d6f59b429ba9c98115df617eef5dea4
+PKG_HASH:=05f0a3e8c8f489caf95919e2a75a1ec4598edd3428d2b9dd357caba6adb2607d
PKG_BUILD_DIR:=$(BUILD_DIR)/dnscrypt-proxy-$(PKG_VERSION)
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
include $(TOPDIR)/rules.mk
PKG_NAME:=haproxy
-PKG_VERSION:=2.6.6
-PKG_RELEASE:=104
+PKG_VERSION:=2.6.8
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.haproxy.org/download/2.6/src
-PKG_HASH:=d0c80c90c04ae79598b58b9749d53787f00f7b515175e7d8203f2796e6a6594d
+PKG_HASH:=a02ad64550dd30a94b25fd0e225ba699649d0c4037bca3b36b20e8e3235bb86f
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>, \
Christian Lachner <gladiac@gmail.com>
#!/bin/sh
CLONEURL=https://git.haproxy.org/git/haproxy-2.6.git
-BASE_TAG=v2.6.6
+BASE_TAG=v2.6.8
TMP_REPODIR=tmprepo
PATCHESDIR=patches
PKG_NAME:=isc-dhcp
UPSTREAM_NAME:=dhcp
PKG_VERSION:=4.4.3
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=6
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
rm -rf ${cleandirs} ${cleanfiles} ; \
(cd ${bindsrcdir} && \
- ./configure ${bindconfig} > ${binddir}/configure.log); \
-+ export CC=${CROSS_CC} AR=${TARGET_AR} RANLIB=${TARGET_RANLIB} && \
++ export CC="${CROSS_CC}" AR=${TARGET_AR} RANLIB=${TARGET_RANLIB} && \
+ ./configure ${bindconfig} --disable-atomic \
+ --disable-kqueue --disable-epoll --disable-kqueue \
+ --disable-epoll --disable-devpoll --without-openssl \
@@ -57,6 +57,7 @@ bind1:
rm -rf ${cleandirs} ${cleanfiles} ; \
(cd ${bindsrcdir} && \
- export CC=${CROSS_CC} AR=${TARGET_AR} RANLIB=${TARGET_RANLIB} && \
+ export CC="${CROSS_CC}" AR=${TARGET_AR} RANLIB=${TARGET_RANLIB} && \
+ ac_cv_func_catgets=no \
./configure ${bindconfig} --disable-atomic \
--disable-kqueue --disable-epoll --disable-kqueue \
include $(TOPDIR)/rules.mk
PKG_NAME:=nextdns
-PKG_VERSION:=1.38.0
+PKG_VERSION:=1.39.4
PKG_RELEASE:=1
PKG_SOURCE:=nextdns-$(PKG_VERSION).tar.gz
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_SOURCE_URL:=https://codeload.github.com/nextdns/nextdns/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=74cd9d37ea9051b5b5f8f10be1462fb4ebe77b4dbcccd8c94ba049828bd21bff
+PKG_HASH:=e24db909fbd732e064be465b74f4004a6f4fc0f422ef7c10e86ff707a016ccac
PKG_MAINTAINER:=Olivier Poitrey <rs@nextdns.io>
PKG_LICENSE:=MIT
include $(TOPDIR)/rules.mk
PKG_NAME:=openssh
-PKG_VERSION:=9.1p1
+PKG_VERSION:=9.2p1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
https://ftp.spline.de/pub/OpenBSD/OpenSSH/portable/
-PKG_HASH:=19f85009c7e3e23787f0236fbb1578392ab4d4bf9f8ec5fe6bc1cd7e8bfdd288
+PKG_HASH:=3f66dbf1655fb45f50e1c56da62ab01218c228807b21338d634ebcdf9d71cf46
PKG_LICENSE:=BSD ISC
PKG_LICENSE_FILES:=LICENCE
MAINTAINER:=Peter Wagner <tripolar@gmx.at>
URL:=http://www.openssh.com/
SUBMENU:=SSH
- VARIANT:=without-pam
endef
define Package/openssh-moduli
DEPENDS+= +openssh-keygen +OPENSSH_LIBFIDO2:libfido2
TITLE+= server
USERID:=sshd=22:sshd=22
+ VARIANT:=without-pam
endef
define Package/openssh-server/config
PKG_NAME:=pbr
PKG_VERSION:=1.0.1
-PKG_RELEASE:=14
+PKG_RELEASE:=16
PKG_LICENSE:=GPL-3.0-or-later
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
option interface 'wan'
option dest_addr 'plex.tv my.plexapp.com emby.media app.emby.media tv.emby.media'
option enabled '0'
-
-config policy
- option name 'WireGuard Server'
- option interface 'wan'
- option src_port '51820'
- option chain 'OUTPUT'
- option proto 'udp'
- option enabled '0'
# is_ipv6_global() { is_ipv6 "$1" && ! is_ipv6_link_local "$1" && ! is_ipv6_link_local "$1"; }
is_list() { str_contains "$1" "," || str_contains "$1" " "; }
is_netmask() { local ip="${1%/*}"; [ "$ip" != "$1" ] && is_ipv4 "$ip"; }
-is_domain() { str_contains "$1" '[a-zA-Z]'; }
+is_domain() { ! is_ipv6 "$1" && str_contains "$1" '[a-zA-Z]'; }
is_phys_dev() { [ "${1:0:1}" = "@" ] && ip l show | grep -E -q "^\\d+\\W+${1:1}"; }
dnsmasq_kill() { killall -q -s HUP dnsmasq; }
dnsmasq_restart() { output 3 'Restarting dnsmasq '; if /etc/init.d/dnsmasq restart >/dev/null 2>&1; then output_okn; else output_failn; fi; }
fi
[ -z "$param4" ] && param4="$(resolveip_to_nftset4 "$param")"
[ -z "$param6" ] && param6="$(resolveip_to_nftset6 "$param")"
- if [ -z "$param4" ] && [ -z "$param6" ]; then
+ if [ -z "$param4" ] && [ -z "$param6" ]; then
state add 'errorSummary' 'errorFailedToResolve' "$param"
else
nft4 add element inet "$nftTable" "$nftset4" "{ $param4 }" && ipv4_error=0
include $(TOPDIR)/rules.mk
PKG_NAME:=pdns-recursor
-PKG_VERSION:=4.8.0
+PKG_VERSION:=4.8.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
-PKG_HASH:=ccb9017a1a788e95e948e7b240ef8db53ae8a507b915f260188ef343f7f68bdc
+PKG_HASH:=4382d3e84f13401685772779dfede6cbc8157ecf6763fa7fdb1dd33ee3f79ac7
PKG_MAINTAINER:=Peter van Dijk <peter.van.dijk@powerdns.com>
PKG_LICENCE:=GPL-2.0-only
#
PKG_NAME:=shadowsocks-libev
PKG_VERSION:=3.3.5
-PKG_RELEASE:=7
+PKG_RELEASE:=8
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)
set {{ set_name(suf, af) }} {
type ipv{{af}}_addr;
flags interval;
+ auto-merge;
{% let elems = set_elements(suf, af); if (length(elems)): %}
elements = {
{% for (let i = 0; i < length(elems); i++): %}
PKG_NAME:=simple-adblock
PKG_VERSION:=1.9.3
-PKG_RELEASE:=6
+PKG_RELEASE:=7
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
PKG_LICENSE:=GPL-3.0-or-later
# enabling this will disable processing of any other block/allow-lists
# option dnsmasq_config_file_url 'https://dnsmasq.oisd.nl/'
-# File size: 34.0M
+# File size: 19.0M
# block-list too big for most routers
-# list blocked_hosts_url 'https://hosts.oisd.nl/'
+# list blocked_domains_url 'https://dbl.oisd.nl/'
# site was down on last check
# list blocked_domains_url 'http://support.it-mate.co.uk/downloads/hosts.txt'
s|blacklist_domains_url|blocked_domains_url|g
s|blacklist_domain|blocked_domain|g
s|ssl.bblck.me|cdn.jsdelivr.net/gh/paulgb/BarbBlock|g
-s|dbl.oisd.nl|hosts.oisd.nl|g
s|raw.githubusercontent.com/StevenBlack/hosts/|cdn.jsdelivr.net/gh/StevenBlack/hosts@|g
s|raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/|cdn.jsdelivr.net/gh/hoshsadiq/adblock-nocoin-list@|g
s|raw.githubusercontent.com/jawz101/MobileAdTrackers/|cdn.jsdelivr.net/gh/jawz101/MobileAdTrackers@|g
fi
}
+allow() { load_validate_config 'config' adb_allow "'$*'"; }
+boot() {
+ ubus -t 30 wait_for network.interface 2>/dev/null
+ rc_procd start_service 'on_boot'
+}
+check() { load_validate_config 'config' adb_check "'$*'"; }
+dl() { rc_procd start_service 'download'; }
+killcache() {
+ rm -f "$dnsmasqAddnhostsCache" "$dnsmasqAddnhostsGzip"
+ rm -f "$dnsmasqConfCache" "$dnsmasqConfGzip"
+ rm -f "$dnsmasqIpsetCache" "$dnsmasqIpsetGzip"
+ rm -f "$dnsmasqNftsetCache" "$dnsmasqNftsetGzip"
+ rm -f "$dnsmasqServersCache" "$dnsmasqServersGzip"
+ rm -f "$unboundCache" "$unboundGzip"
+ config_load 'dhcp'
+ config_foreach resolver 'dnsmasq' 'cleanup'
+ uci_commit 'dhcp'
+ return 0
+}
+reload_service() { rc_procd start_service 'restart'; }
+restart_service() { rc_procd start_service 'restart'; }
service_started() { procd_set_config_changed firewall; }
service_stopped() { procd_set_config_changed firewall; }
-restart_service() { rc_procd start_service 'restart'; }
-reload_service() { rc_procd start_service 'restart'; }
-start_service() {
- load_validate_config 'config' adb_config_update "'$*'"
- load_validate_config 'config' adb_start "'$*'"
-}
-stop_service() { load_validate_config 'config' adb_stop "'$*'"; }
-status_service() { load_validate_config 'config' adb_status "''"; }
service_triggers() {
local wan wan6 i
local procd_trigger_wan6
done
procd_add_config_trigger "config.change" "$packageName" "/etc/init.d/${packageName}" reload
}
-allow() { load_validate_config 'config' adb_allow "'$*'"; }
-check() { load_validate_config 'config' adb_check "'$*'"; }
-dl() { rc_procd start_service 'download'; }
-killcache() {
- rm -f "$dnsmasqAddnhostsCache" "$dnsmasqAddnhostsGzip"
- rm -f "$dnsmasqConfCache" "$dnsmasqConfGzip"
- rm -f "$dnsmasqIpsetCache" "$dnsmasqIpsetGzip"
- rm -f "$dnsmasqNftsetCache" "$dnsmasqNftsetGzip"
- rm -f "$dnsmasqServersCache" "$dnsmasqServersGzip"
- rm -f "$unboundCache" "$unboundGzip"
- config_load 'dhcp'
- config_foreach resolver 'dnsmasq' 'cleanup'
- uci_commit 'dhcp'
- return 0
-}
sizes() { load_validate_config 'config' adb_sizes "''"; }
+start_service() {
+ load_validate_config 'config' adb_config_update "'$*'"
+ load_validate_config 'config' adb_start "'$*'"
+}
+status_service() { load_validate_config 'config' adb_status "''"; }
+stop_service() { load_validate_config 'config' adb_stop "'$*'"; }
version() { echo "$PKG_VERSION"; }
load_validate_config() {
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=sing-box
+PKG_VERSION:=1.1.5
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=a1e642362f41bd0e362cd9c8d2f0d29d2eca6a55a948677f6f03cfb81c4f0657
+
+PKG_LICENSE:=GPL-3.0-or-later
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Van Waholtz <brvphoenix@gmail.com>
+
+PKG_BUILD_DEPENDS:=golang/host
+PKG_BUILD_PARALLEL:=1
+PKG_USE_MIPS16:=0
+
+GO_PKG:=github.com/sagernet/sing-box
+GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd/sing-box
+
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/golang/golang-package.mk
+
+define Package/sing-box
+ TITLE:=The universal proxy platform
+ SECTION:=net
+ CATEGORY:=Network
+ URL:=https://sing-box.sagernet.org
+ DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +kmod-tun
+ USERID:=sing-box=5566:sing-box=5566
+endef
+
+define Package/sing-box/description
+ Sing-box is a universal proxy platform which supports hysteria, SOCKS, Shadowsocks,
+ ShadowsocksR, ShadowTLS, Tor, trojan, VLess, VMess, WireGuard and so on.
+endef
+
+define Package/sing-box/config
+ menu "Select build options"
+ depends on PACKAGE_sing-box
+
+ config SINGBOX_WITH_ACME
+ bool "Build with ACME TLS certificate issuer support"
+ default n
+
+ config SINGBOX_WITH_CLASH_API
+ bool "Build with Clash API support"
+ default y
+
+ config SINGBOX_WITH_ECH
+ bool "Build with TLS ECH extension support for TLS outbound"
+ default n
+
+ config SINGBOX_WITH_EMBEDDED_TOR
+ bool "Build with embedded Tor support"
+ default n
+
+ config SINGBOX_WITH_GRPC
+ bool "Build with standard gRPC support"
+ default n
+
+ config SINGBOX_WITH_GVISOR
+ bool "Build with gVisor support"
+ default y
+
+ config SINGBOX_WITH_LWIP
+ bool "Build with LWIP Tun stack support"
+ default n
+
+ config SINGBOX_WITH_QUIC
+ bool "Build with QUIC support"
+ default y
+
+ config SINGBOX_WITH_SHADOWSOCKSR
+ bool "Build with ShadowsocksR support"
+ default n
+
+ config SINGBOX_WITH_UTLS
+ bool "Build with uTLS support for TLS outbound"
+ default y
+
+ config SINGBOX_WITH_V2RAY_API
+ bool "Build with V2Ray API support"
+ default n
+
+ config SINGBOX_WITH_WIREGUARD
+ bool "Build with WireGuard support"
+ default y
+ endmenu
+endef
+
+PKG_CONFIG_DEPENDS:= \
+ CONFIG_SINGBOX_WITH_ACME \
+ CONFIG_SINGBOX_WITH_CLASH_API \
+ CONFIG_SINGBOX_WITH_ECH \
+ CONFIG_SINGBOX_WITH_EMBEDDED_TOR \
+ CONFIG_SINGBOX_WITH_GRPC \
+ CONFIG_SINGBOX_WITH_GVISOR \
+ CONFIG_SINGBOX_WITH_LWIP \
+ CONFIG_SINGBOX_WITH_QUIC \
+ CONFIG_SINGBOX_WITH_SHADOWSOCKSR \
+ CONFIG_SINGBOX_WITH_UTLS \
+ CONFIG_SINGBOX_WITH_V2RAY_API \
+ CONFIG_SINGBOX_WITH_WIREGUARD
+
+GO_PKG_TAGS:=$(subst $(space),$(comma),$(strip \
+ $(if $(CONFIG_SINGBOX_WITH_ACME),with_acme) \
+ $(if $(CONFIG_SINGBOX_WITH_CLASH_API),with_clash_api) \
+ $(if $(CONFIG_SINGBOX_WITH_ECH),with_ech) \
+ $(if $(CONFIG_SINGBOX_WITH_EMBEDDED_TOR),with_embedded_tor) \
+ $(if $(CONFIG_SINGBOX_WITH_GRPC),with_grpc) \
+ $(if $(CONFIG_SINGBOX_WITH_GVISOR),with_gvisor) \
+ $(if $(CONFIG_SINGBOX_WITH_LWIP),with_lwip) \
+ $(if $(CONFIG_SINGBOX_WITH_QUIC),with_quic) \
+ $(if $(CONFIG_SINGBOX_WITH_SHADOWSOCKSR),with_shadowsocksr) \
+ $(if $(CONFIG_SINGBOX_WITH_UTLS),with_utls) \
+ $(if $(CONFIG_SINGBOX_WITH_V2RAY_API),with_v2ray_api) \
+ $(if $(CONFIG_SINGBOX_WITH_WIREGUARD),with_wireguard) \
+))
+
+define Package/sing-box/conffiles
+/etc/config/sing-box
+/etc/sing-box/
+endef
+
+define Package/sing-box/install
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/sing-box $(1)/usr/bin/sing-box
+
+ $(INSTALL_DIR) $(1)/etc/sing-box
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/release/config/config.json $(1)/etc/sing-box
+
+ $(INSTALL_DIR) $(1)/etc/config/
+ $(INSTALL_CONF) ./files/sing-box.conf $(1)/etc/config/sing-box
+ $(INSTALL_DIR) $(1)/etc/init.d/
+ $(INSTALL_BIN) ./files/sing-box.init $(1)/etc/init.d/sing-box
+endef
+
+$(eval $(call BuildPackage,sing-box))
--- /dev/null
+
+config sing-box 'main'
+ option enabled '0'
+ option user 'sing-box'
+ option conffile '/etc/sing-box/config.json'
+ option workdir '/usr/share/sing-box'
+
--- /dev/null
+#!/bin/sh /etc/rc.common
+
+USE_PROCD=1
+START=99
+
+NAME="sing-box"
+PROG="/usr/bin/sing-box"
+
+start_service() {
+ config_load "$NAME"
+
+ local enabled user group conffile workdir
+ config_get_bool enabled "main" "enabled" "0"
+ [ "$enabled" -eq "1" ] || return 0
+
+ config_get user "main" "user" "root"
+ config_get conffile "main" "conffile"
+ config_get workdir "main" "workdir" "/usr/share/sing-box"
+
+ mkdir -p "$workdir"
+ local group="$(id -ng $user)"
+ chown $user:$group "$workdir"
+
+ procd_open_instance "$NAME.main"
+ procd_set_param command "$PROG" run -c "$conffile" -D "$workdir"
+
+ # Use root user if you want to use the TUN mode.
+ procd_set_param user "$user"
+ procd_set_param file "$conffile"
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_set_param respawn
+
+ procd_close_instance
+}
+
+service_triggers() {
+ procd_add_reload_trigger "$NAME"
+}
--- /dev/null
+#!/bin/sh
+
+sing-box version | grep -F "$PKG_VERSION"
include $(TOPDIR)/rules.mk
PKG_NAME:=snort3
-PKG_VERSION:=3.1.50.0
+PKG_VERSION:=3.1.53.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/snort3/snort3/archive/refs/tags/
-PKG_HASH:=983497578587c5b1291994608fef70700d7f251461e79ac897751bba57cc56b5
+PKG_HASH:=e76429903cc56353ab21c0f4c0ec495054ba82f56d8d94943930bc0c3165be4c
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_LICENSE:=GPL-2.0-only
include $(TOPDIR)/rules.mk
PKG_NAME:=snowflake
-PKG_VERSION:=2.4.2
+PKG_VERSION:=2.5.1
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://git.torproject.org/pluggable-transports/snowflake.git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-PKG_MIRROR_HASH:=b6e47a50558ed4f5a4b5f9bc25d6aaf7da168b305dd9b52b3a92ecb028d883fc
+PKG_MIRROR_HASH:=7f36f48ab07ac9a3944202613b024072f3ad0ad55b495fde611ee30223410fdf
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=stunnel
-PKG_VERSION:=5.66
+PKG_VERSION:=5.67
PKG_RELEASE:=$(AUTORELEASE)
PKG_LICENSE:=GPL-2.0-or-later
https://www.usenix.org.uk/mirrors/stunnel/archive/$(word 1, $(subst .,$(space),$(PKG_VERSION))).x/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=558178704d1aa5f6883aac6cc5d6bbf2a5714c8a0d2e91da0392468cee9f579c
+PKG_HASH:=3086939ee6407516c59b0ba3fbf555338f9d52f459bcab6337c0f00e91ea8456
PKG_FIXUP:=autoreconf
PKG_FIXUP:=patch-libtool
include $(TOPDIR)/rules.mk
PKG_NAME:=tailscale
-PKG_VERSION:=1.32.3
+PKG_VERSION:=1.36.0
PKG_RELEASE:=1
PKG_SOURCE:=tailscale-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/tailscale/tailscale/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=4cf88a1d754240ce71b29d3a65ca480091ad9c614ac99c541cef6fdaf0585dd4
+PKG_HASH:=25b293a7e65d7b962f0c56454d66fa56c89c3aa995467218f24efa335b924c76
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
PKG_LICENSE:=BSD-3-Clause
Package/tailscaled/description:=$(Package/tailscale/description)
+define Package/tailscaled/conffiles
+/etc/config/tailscale
+/etc/tailscale/tailscaled.state
+endef
+
+GO_IPTABLES_VERSION:=0.6.0
+GO_IPTABLES_FILE:=$(PKG_NAME)-go-iptables-$(GO_IPTABLES_VERSION).tar.gz
+
+define Download/go-iptables
+ URL:=https://codeload.github.com/coreos/go-iptables/tar.gz/v$(GO_IPTABLES_VERSION)?
+ URL_FILE:=$(GO_IPTABLES_FILE)
+ FILE:=$(GO_IPTABLES_FILE)
+ HASH:=a784cc17fcb17879f073eae47bc4c2e899f59f6906dac5a0aa7a9cc9f95ea66d
+endef
+
+define Build/Prepare
+ $(PKG_UNPACK)
+ [ ! -d ./src/ ] || $(CP) ./src/. $(PKG_BUILD_DIR)
+ $(eval $(call Download,go-iptables))
+ ( \
+ mkdir -p $(PKG_BUILD_DIR)/patched/ ; \
+ gzip -dc $(DL_DIR)/$(GO_IPTABLES_FILE) | $(HOST_TAR) -C $(PKG_BUILD_DIR)/patched $(TAR_OPTIONS) ; \
+ mv $(PKG_BUILD_DIR)/patched/go-iptables-$(GO_IPTABLES_VERSION) $(PKG_BUILD_DIR)/patched/go-iptables ; \
+ )
+ $(Build/Patch)
+endef
+
define Package/tailscale/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/tailscale $(1)/usr/sbin
endef
define Package/tailscaled/install
- $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/tailscaled $(1)/usr/sbin
- $(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files//tailscale.init $(1)/etc/init.d/tailscale
- $(INSTALL_DIR) $(1)/etc/config/
$(INSTALL_DATA) ./files//tailscale.conf $(1)/etc/config/tailscale
endef
-define Package/tailscaled/conffiles
-/etc/config/tailscale
-/etc/tailscale/tailscaled.state
-endef
-
$(eval $(call BuildPackage,tailscale))
$(eval $(call BuildPackage,tailscaled))
tailscale up
```
+If you are running with nftables, it is not supported by tailscale,
+so disable it and configure firewall by yourself and add argument
+--netfilter-mode off
+to tailscale up command to disable iptables use.
+
After that, you should see your router in tailscale admin page.
--- /dev/null
+--- a/go.mod
++++ b/go.mod
+@@ -2,6 +2,8 @@ module tailscale.com
+
+ go 1.19
+
++replace github.com/coreos/go-iptables => ./patched/go-iptables
++
+ require (
+ filippo.io/mkcert v1.4.3
+ github.com/Microsoft/go-winio v0.6.0
+--- a/patched/go-iptables/iptables/iptables.go
++++ b/patched/go-iptables/iptables/iptables.go
+@@ -149,12 +149,39 @@ func New(opts ...option) (*IPTables, err
+ return ipt, nil
+ }
+
++func NewFake(opts ...option) (*IPTables, error) {
++
++ ipt := &IPTables{
++ path: "/bin/false",
++ proto: ProtocolIPv4,
++ hasCheck: false,
++ hasWait: false,
++ waitSupportSecond: false,
++ hasRandomFully: false,
++ v1: 0,
++ v2: 0,
++ v3: 0,
++ mode: "legacy",
++ timeout: 0,
++ }
++
++ for _, opt := range opts {
++ opt(ipt)
++ }
++
++ return ipt, nil
++}
++
+ // New creates a new IPTables for the given proto.
+ // The proto will determine which command is used, either "iptables" or "ip6tables".
+ func NewWithProtocol(proto Protocol) (*IPTables, error) {
+ return New(IPFamily(proto), Timeout(0))
+ }
+
++func NewFakeWithProtocol(proto Protocol) (*IPTables, error) {
++ return NewFake(IPFamily(proto), Timeout(0))
++}
++
+ // Proto returns the protocol used by this IPTables.
+ func (ipt *IPTables) Proto() Protocol {
+ return ipt.proto
--- /dev/null
+--- a/wgengine/router/router_linux.go
++++ b/wgengine/router/router_linux.go
+@@ -129,7 +129,7 @@ func newUserspaceRouter(logf logger.Logf
+
+ ipt4, err := iptables.NewWithProtocol(iptables.ProtocolIPv4)
+ if err != nil {
+- return nil, err
++ ipt4, err = iptables.NewFakeWithProtocol(iptables.ProtocolIPv4)
+ }
+
+ v6err := checkIPv6(logf)
+@@ -148,7 +148,7 @@ func newUserspaceRouter(logf logger.Logf
+ // if unavailable. We want that to be a non-fatal error.
+ ipt6, err = iptables.NewWithProtocol(iptables.ProtocolIPv6)
+ if err != nil {
+- return nil, err
++ ipt6, err = iptables.NewFakeWithProtocol(iptables.ProtocolIPv6)
+ }
+ }
+
+@@ -1635,11 +1635,6 @@ func checkIPv6(logf logger.Logf) error {
+ return fmt.Errorf("kernel doesn't support IPv6 policy routing: %w", err)
+ }
+
+- // Some distros ship ip6tables separately from iptables.
+- if _, err := exec.LookPath("ip6tables"); err != nil {
+- return err
+- }
+-
+ return nil
+ }
+
--- /dev/null
+--- a/cmd/tailscale/cli/up.go
++++ b/cmd/tailscale/cli/up.go
+@@ -143,7 +143,7 @@ func defaultNetfilterMode() string {
+ if distro.Get() == distro.Synology {
+ return "off"
+ }
+- return "on"
++ return "off"
+ }
+
+ type upArgsT struct {
#!/bin/sh
-if command -v tailscale; then
- tailscale version | grep "$2" || exit 1
-fi
-if command -v tailscaled; then
- tailscaled -version | grep "$2"
-fi
+case "$1" in
+ tailscale)
+ tailscale version | grep "$2"
+ ;;
+ tailscaled)
+ tailscaled -version | grep "$2"
+ ;;
+esac
include $(TOPDIR)/rules.mk
PKG_NAME:=tcpreplay
-PKG_VERSION:=4.4.1
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=4.4.3
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/appneta/tcpreplay/releases/download/v$(PKG_VERSION)
-PKG_HASH:=51f70ed14be5913f19c25cdfa530e98c14cedab1c76fbdd26eca7b61b57344f2
+PKG_HASH:=352fcd073c61140e5008ffe4e37d4744c31037e73854a921cd8b6b5d9f29cd54
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=docs/LICENSE
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/gargargar/udphp.git
-PKG_SOURCE_DATE:=2022-12-30
-PKG_SOURCE_VERSION:=e4ab512ab5ba3955fd5a23a76ffaae00f627ec3c
-PKG_MIRROR_HASH:=68ce9885b7fc1e10ff2afbe003dd65489d3e64ca0212914c513469e581127974
+PKG_SOURCE_DATE:=2023-01-13
+PKG_SOURCE_VERSION:=7c0fc5fcf3b807b053c5906bdd8c2acb244c1cbd
+PKG_MIRROR_HASH:=19693aef4020e58955dba25f28b76a396a4c1fbb7ef7464cfaf45405d9eb0c5e
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/rules.mk
PKG_NAME:=v2ray-core
-PKG_VERSION:=5.2.1
+PKG_VERSION:=5.3.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=97bc872e798fed51c23c39f8f63ee25984658e2b252b0ec2c8ec469c00a4d77a
+PKG_HASH:=8e97e2647cb1dee8aa7e71df276c56d74258b2d97bb490a362afa84bdf1b9e25
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
-GEOIP_VER:=202212220043
+GEOIP_VER:=202302090046
GEOIP_FILE:=geoip.dat.$(GEOIP_VER)
define Download/geoip
URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/
URL_FILE:=geoip.dat
FILE:=$(GEOIP_FILE)
- HASH:=2c19f53055777a126a4687feb41dab033180b517de058a0d18b6344c4987f57d
+ HASH:=38e200a655c3e401dde6a438e79d493c3dbdd224e104a5158bef01f78ad4a151
endef
-GEOSITE_VER:=20221226075817
+GEOSITE_VER:=20230208103804
GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER)
define Download/geosite
URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/
URL_FILE:=dlc.dat
FILE:=$(GEOSITE_FILE)
- HASH:=7651fe111ed789d3508f2d6bfaa547141beb7bf1d392b57207889c5f6df53e19
+ HASH:=479fe1557bf873a2951483315eb75d769e7e74e4523fd130c6762b30b7c49a2c
endef
define Package/v2ray-geodata/template
include $(TOPDIR)/rules.mk
PKG_NAME:=xfrpc
-PKG_VERSION:=1.11.587
+PKG_VERSION:=2.1.606
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/liudf0716/xfrpc.git
PKG_SOURCE_VERSION:=$(PKG_VERSION)
-PKG_MIRROR_HASH:=da58e702d3b451e1b5a3d59ac3842cc424f636ca879c19ebb94cce8aa8dde3bb
+PKG_MIRROR_HASH:=2f9f98fde54f66a6c562356f66d0abd3ec41fcd6833915831378a37398ff2cc5
PKG_MAINTAINER:=Dengfeng Liu <liudf0716@gmail.com>
PKG_LICENSE:=GPL-3.0-or-later
include $(TOPDIR)/rules.mk
PKG_NAME:=xl2tpd
-PKG_VERSION:=1.3.17
+PKG_VERSION:=1.3.18
PKG_RELEASE:=1
PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
PKG_LICENSE:=GPL-2.0
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MIRROR_HASH:=5fbc1fe5a01ebd5b0eb2929b85e68eb271e29cc2989320aa1ae2b32f0ac0e540
+PKG_MIRROR_HASH:=f4faa15357063a2ac11e427adbcac6b51c755cc294f1a26fe4eb0c008840df31
PKG_INSTALL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=xray-core
-PKG_VERSION:=1.7.2
+PKG_VERSION:=1.7.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=e35824e19e8acc06296ce6bfa78a14a6f3ee8f42a965f7762b7056b506457a29
+PKG_HASH:=a5fc936136a57a463bf9a895d068fdfa895b168ae6093c58a10208e098b6b2d3
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
PKG_LICENSE:=MPL-2.0
include $(TOPDIR)/rules.mk
PKG_NAME:=bash
-PKG_VERSION:=5.1.16
+PKG_VERSION:=5.2.15
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/bash
-PKG_HASH:=5bac17218d3911834520dad13cd1f85ab944e1c09ae1aba55906be1f8192f558
+PKG_HASH:=13720965b5f4fc3a0d4b61dd37e7565c741da9a5be24edc2ae00182fc1b3588c
PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
PKG_LICENSE:=GPL-3.0-or-later
--- a/Makefile.in
+++ b/Makefile.in
-@@ -798,10 +798,8 @@ loadables:
+@@ -813,10 +813,8 @@ loadables:
# $(MAKE) -f $(srcdir)/Makefile $(MFLAGS) srcdir=$(srcdir)
doc documentation: force
--- a/config-top.h
+++ b/config-top.h
-@@ -91,20 +91,20 @@
+@@ -97,20 +97,20 @@
#define DEFAULT_BASHRC "~/.bashrc"
/* System-wide .bashrc file for interactive shells. */
include $(TOPDIR)/rules.mk
PKG_NAME:=clocate
-PKG_SOURCE_DATE:=2021-11-09
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_SOURCE_DATE:=2023-01-20
+PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/blocktrron/clocate.git
-PKG_SOURCE_VERSION:=4a4c0c0cb53fc3df2891d649eb457efdee843572
-PKG_MIRROR_HASH:=8eef756ea5e951097eea53feb243a317612f88c2628c9417f4b28a28a3b4686c
+PKG_SOURCE_VERSION:=510cc944e4d4c28b5cc30d9808ab14e80486b437
+PKG_MIRROR_HASH:=f4bcb77df4fc163a0d9b3350088ba6692f718ba0a1d48fa968685e2fded79ab8
PKG_MAINTAINER:=David Bauer <mail@david-bauer.net>
PKG_LICENSE:=GPL-2.0-only
PKG_NAME:=collectd
PKG_VERSION:=5.12.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_RELEASE:=42
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://collectd.org/files/ \
PKG_NAME:=crun
PKG_VERSION:=1.7.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/containers/crun.git
CATEGORY:=Utilities
TITLE:=crun
URL:=https://github.com/containers/crun
- DEPENDS:=@!arc +libseccomp +libcap
+ DEPENDS:=@!arc +libseccomp +libcap +libgcrypt
endef
define Package/crun/description
GOPATH=$(GO_PKG_BUILD_DIR) \
GOCACHE=$(GO_BUILD_CACHE_DIR) \
GOROOT_FINAL=$(GO_TARGET_ROOT) \
- CC=$(TARGET_CC) \
- CXX=$(TARGET_CXX) \
+ CC="$(TARGET_CC)" \
+ CXX="$(TARGET_CXX)" \
$(GO_PKG_VARS)
MAKE_FLAGS += \
COMMIT=$(PKG_SOURCE_VERSION)
include $(TOPDIR)/rules.mk
PKG_NAME:=lrzsz
-PKG_VERSION:=0.12.20
-PKG_RELEASE:=3
+PKG_VERSION:=0.12.21
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://ohse.de/uwe/releases/
-PKG_HASH:=c28b36b14bddb014d9e9c97c52459852f97bd405f89113f30bee45ed92728ff1
+PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
+PKG_SOURCE_URL:=@DEBIAN/pool/main/l/lrzsz/
+PKG_HASH:=3262e5df47b108d33e184ff3bf5af14ddca1ac15118ac4ed9171a57c1593ae00
+PKG_BUILD_DIR=$(BUILD_DIR)/lrzsz-990823
PKG_MAINTAINER:=Hsing-Wang Liao <kuoruan@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:lrzsz_project
PKG_INSTALL:=1
define Package/lrzsz
SECTION:=utils
CATEGORY:=Utilities
- TITLE:=X, Y and Z-modem protocols
+ TITLE:=Tools for zmodem/xmodem/ymodem file transfer
URL:=https://ohse.de/uwe/software/lrzsz.html
endef
define Package/lrzsz/description
- Transfer files in your login sessions.
- Very leightweight and straight forward.
- You just need a terminal client that can do
- either X, Y or Z-modem file transfers.
+ lrzsz is a cosmetically modified zmodem/ymodem/xmodem package built
+ from the public-domain version of Chuck Forsberg's rzsz package.
+
+ These programs use error correcting protocols ({z,x,y}modem) to send
+ (sz, sx, sb) and receive (rz, rx, rb) files over a dial-in serial port
+ from a variety of programs running under various operating systems.
+endef
+
+# to stop automake from running, the bundled autohell crap is too old
+define Build/Configure
+ touch $(PKG_BUILD_DIR)/*
+ touch $(PKG_BUILD_DIR)/*/*
+ $(call Build/Configure/Default)
endef
define Package/lrzsz/install
--- /dev/null
+From 89fef6d8dc539ed6225b46b8e755e08bbf48d27b Mon Sep 17 00:00:00 2001
+From: Uwe Ohse <uwe@ohse.de>
+Date: Sun, 1 Mar 2020 22:34:24 +0000
+Subject: [PATCH] siginterrupt after the call to signal, otherwise ymodem
+ transfer hangs. WTF?
+
+---
+ src/zreadline.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/src/zreadline.c
++++ b/src/zreadline.c
+@@ -71,6 +71,9 @@ readline_internal(unsigned int timeout)
+ vstringf("Calling read: alarm=%d Readnum=%d ",
+ n, readline_readnum);
+ signal(SIGALRM, zreadline_alarm_handler);
++#ifdef HAVE_SIGINTERRUPT
++ siginterrupt(SIGALRM,1);
++#endif
+ alarm(n);
+ }
+ else if (Verbose > 5)
--- /dev/null
+From a7c525191aa725f4ebb7b489cdd7dd854a4e42fb Mon Sep 17 00:00:00 2001
+From: Uwe Ohse <uwe@ohse.de>
+Date: Sun, 1 Mar 2020 22:35:28 +0000
+Subject: [PATCH] may-be-security-fix: avoid possible underflow
+
+Fixes: CVE-2018-10195
+
+[a.heider: mention CVE in commit message]
+---
+ src/zm.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/src/zm.c
++++ b/src/zm.c
+@@ -432,10 +432,11 @@ zsdata(const char *buf, size_t length, i
+ VPRINTF(3,("zsdata: %lu %s", (unsigned long) length,
+ Zendnames[(frameend-ZCRCE)&3]));
+ crc = 0;
+- do {
++ while (length>0) {
+ zsendline(*buf); crc = updcrc((0377 & *buf), crc);
+ buf++;
+- } while (--length>0);
++ length--;
++ }
+ xsendline(ZDLE); xsendline(frameend);
+ crc = updcrc(frameend, crc);
+
--- a/src/Makefile.in
+++ b/src/Makefile.in
-@@ -372,13 +372,13 @@ install-exec-local:
+@@ -414,13 +414,13 @@ install-exec-local:
rm -f $(DESTDIR)/$(bindir)/`echo lsb | sed -e '$(transform)'`
ln $(DESTDIR)/$(bindir)/`echo lsz |sed -e '$(transform)'` \
$(DESTDIR)/$(bindir)/`echo lsb |sed -e '$(transform)'`
--- a/src/lrz.c
+++ b/src/lrz.c
-@@ -2319,7 +2319,7 @@ exec2(const char *s)
+@@ -2296,7 +2296,7 @@ exec2(const char *s)
if (*s == '!')
++s;
io_mode(0,0);
#endif
--- a/src/lsz.c
+++ b/src/lsz.c
-@@ -1997,7 +1997,7 @@ zsendfdata (struct zm_fileinfo *zi)
+@@ -1988,7 +1988,7 @@ zsendfdata (struct zm_fileinfo *zi)
blklen = calc_blklen (total_sent);
total_sent += blklen + OVERHEAD;
if (Verbose > 2 && blklen != old)
#ifdef HAVE_MMAP
if (mm_addr) {
if (zi->bytes_sent + blklen < mm_size)
---- a/src/tcp.c
-+++ b/src/tcp.c
-@@ -56,7 +56,7 @@ tcp_server (char *buf)
- struct sockaddr_in s;
- struct sockaddr_in t;
- int on=1;
-- size_t len;
-+ socklen_t len;
-
- if ((sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
- error(1,errno,"socket");
-@@ -91,7 +91,7 @@ tcp_accept (int d)
- {
- int so;
- struct sockaddr_in s;
-- size_t namelen;
-+ socklen_t namelen;
- int num=0;
-
- namelen = sizeof(s);
--- a/src/zm.c
+++ b/src/zm.c
-@@ -451,7 +451,7 @@ zsda32(const char *buf, size_t length, i
+@@ -453,7 +453,7 @@ zsda32(const char *buf, size_t length, i
int c;
unsigned long crc;
int i;
zsendline_s(buf,length);
--- a/src/zreadline.c
+++ b/src/zreadline.c
-@@ -68,13 +68,13 @@ readline_internal(unsigned int timeout)
+@@ -68,7 +68,7 @@ readline_internal(unsigned int timeout)
else if (n==0)
n=1;
if (Verbose > 5)
+ vstringf("Calling read: alarm=%u Readnum=%zu ",
n, readline_readnum);
signal(SIGALRM, zreadline_alarm_handler);
+ #ifdef HAVE_SIGINTERRUPT
+@@ -77,7 +77,7 @@ readline_internal(unsigned int timeout)
alarm(n);
}
else if (Verbose > 5)
--- /dev/null
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mv88e6xxx_dump
+PKG_RELEASE:=1
+
+PKG_FIXUP:=autoreconf
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/lunn/mv88e6xxx_dump
+PKG_MIRROR_HASH:=2f1bce89212a10be89e106398ccc2f7eedcc1a7299bf8a1a05b3baf061f779f5
+PKG_SOURCE_DATE:=2022.03.29
+PKG_SOURCE_VERSION:=a3f713f99e0004d17d9282e0cb253505b9ca35b6
+
+PKG_MAINTAINER:=Etienne Champetier <champetier.etienne@gmail.com>
+PKG_LICENSE:=GPL-2.0-only
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/mv88e6xxx_dump
+ SECTION:=utils
+ CATEGORY:=Utilities
+ URL:=https://github.com/lunn/mv88e6xxx_dump
+ TITLE:=mv88e6xxx_dump
+ DEPENDS:=@(TARGET_ath79||TARGET_imx||TARGET_kirkwood||TARGET_mvebu||TARGET_qoriq) +libmnl
+endef
+
+define Package/mv88e6xxx_dump/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/mv88e6xxx_dump $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,mv88e6xxx_dump))
include $(TOPDIR)/rules.mk
PKG_NAME:=nano
-PKG_VERSION:=7.1
+PKG_VERSION:=7.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/nano
-PKG_HASH:=57ba751e9b7519f0f6ddee505202e387c75dde440c1f7aa1b9310cc381406836
+PKG_HASH:=86f3442768bd2873cec693f83cdf80b4b444ad3cc14760b74361474fc87a4526
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=ncdu
-PKG_VERSION:=1.17
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=1.18
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://dev.yorhel.nl/download
-PKG_HASH:=810745a8ed1ab3788c87d3aea4cc1a14edf6ee226f764bcc383e024ba56adbf1
+PKG_HASH:=3c37a1a96580c9c5d2cc352dc3c5eef0d909158c05f1cc29db4712544c8b9f95
PKG_MAINTAINER:=Charles E. Lehner <cel@celehner.com>
PKG_LICENSE:=MIT
--- a/src/util.h
+++ b/src/util.h
-@@ -36,18 +36,18 @@
+@@ -39,18 +39,18 @@ void die(const char *, ...);
C(DEFAULT, _,_,0 , _, _, 0, WHITE, BLACK,0)\
C(BOX_TITLE, _,_,B , BLUE, _, B, BLUE, BLACK,B)\
C(HD, _,_,R , BLACK, CYAN, 0, BLACK, CYAN, 0) /* header & footer */\
include $(TOPDIR)/rules.mk
PKG_NAME:=openocd
-PKG_SOURCE_VERSION:=v0.11.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_SOURCE_VERSION:=v0.12.0
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://git.code.sf.net/p/openocd/code
-PKG_MIRROR_HASH:=ec31ce908d951c6c7e173c7474269f3f105d7a7b3991afbe8f54f8d96646c725
+PKG_MIRROR_HASH:=19085e31904d9a04a77dc79e02c441372498e680361e77fe9ffdb482c2ddb19c
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
TITLE:=OpenOCD Utility
URL:=http://openocd.sf.net/
DEPENDS:=+libusb-1.0 \
- +libusb-compat \
+libftdi1 \
+hidapi \
- +libgpiod
+ +libgpiod \
+ +libjaylink
endef
define Package/openocd/description
define Build/Prepare
$(call Build/Prepare/Default)
-$(RM) $(PKG_BUILD_DIR)/guess-rev.sh
+ -$(RM) $(PKG_BUILD_DIR)/jimtcl/configure.ac
endef
CONFIGURE_ARGS += \
include $(TOPDIR)/rules.mk
PKG_NAME:=stress-ng
-PKG_VERSION:=0.15.01
+PKG_VERSION:=0.15.03
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/ColinIanKing/stress-ng/tar.gz/refs/tags/V$(PKG_VERSION)?
-PKG_HASH:=2168627350d8e3b7f4571732d6117ab054a9851600899c30ad82fd3c9649d644
+PKG_HASH:=7cceca64da37fd3c8db7167ed386fd7d3e1d9d6891a1f6227911ab8d4b17379c
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=GPL-2.0-only
include $(TOPDIR)/rules.mk
PKG_NAME:=stress
+PKG_VERSION:=1.0.7
PKG_RELEASE:=1
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=1.0.5
-PKG_SOURCE_URL:=https://github.com/resurrecting-open-source-projects/stress
-PKG_MIRROR_HASH:=711e42ead6fd220a98821aae0cf024930785e439d3d0d50663fed1b2cd021bd1
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://github.com/resurrecting-open-source-projects/stress/releases/download/${PKG_VERSION}/
+PKG_HASH:=e63adb57597e617c14ecb0d841b5d990460796d9e9ec69bd56fe645ef02eb239
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=GPL-2.0-only
--- a/src/stress.c
+++ b/src/stress.c
-@@ -263,6 +263,7 @@ main (int argc, char **argv)
+@@ -266,9 +266,12 @@ main (int argc, char **argv)
+ while ((forks = (do_cpu + do_io + do_vm + do_hdd)))
+ {
+ long long backoff, timeout = 0;
++ struct timespec b;
- /* Calculate the backoff value so we get good fork throughput. */
- backoff = do_backoff * forks;
-+ struct timespec b = {backoff / 1000000, (backoff % 1000000) * 1000};
- dbg (stdout, "using backoff sleep of %llius\n", backoff);
+ /* Calculate the backoff value so we get good fork throughput. */
+ backoff = do_backoff * forks;
++ b.tv_sec = backoff / 1000000;
++ b.tv_nsec = (backoff % 1000000) * 1000;
+ dbg (stdout, "using backoff sleep of %llius\n", backoff);
- /* If we are supposed to respect a timeout, calculate it. */
-@@ -297,7 +298,7 @@ main (int argc, char **argv)
- {
+ /* If we are supposed to respect a timeout, calculate it. */
+@@ -304,7 +307,7 @@ main (int argc, char **argv)
case 0: /* child */
- alarm (timeout);
-- usleep (backoff);
-+ nanosleep(&b, NULL);
- if (do_dryrun)
- exit (0);
- exit (hogcpu ());
-@@ -318,7 +319,7 @@ main (int argc, char **argv)
- {
+ worker_init();
+ alarm (timeout);
+- usleep (backoff);
++ nanosleep (&b, NULL);
+ if (do_dryrun)
+ exit (0);
+ exit (hogcpu ());
+@@ -326,7 +329,7 @@ main (int argc, char **argv)
case 0: /* child */
- alarm (timeout);
-- usleep (backoff);
-+ nanosleep(&b,&b);
- if (do_dryrun)
- exit (0);
- exit (hogio ());
-@@ -338,7 +339,7 @@ main (int argc, char **argv)
- {
+ worker_init();
+ alarm (timeout);
+- usleep (backoff);
++ nanosleep (&b, NULL);
+ if (do_dryrun)
+ exit (0);
+ exit (hogio ());
+@@ -347,7 +350,7 @@ main (int argc, char **argv)
case 0: /* child */
- alarm (timeout);
-- usleep (backoff);
-+ nanosleep(&b, &b);
- if (do_dryrun)
- exit (0);
- exit (hogvm
-@@ -359,7 +360,7 @@ main (int argc, char **argv)
- {
+ worker_init();
+ alarm (timeout);
+- usleep (backoff);
++ nanosleep (&b, NULL);
+ if (do_dryrun)
+ exit (0);
+ exit (hogvm (do_vm_bytes, do_vm_stride, do_vm_hang, do_vm_keep));
+@@ -368,7 +371,7 @@ main (int argc, char **argv)
case 0: /* child */
- alarm (timeout);
-- usleep (backoff);
-+ nanosleep(&b, &b);
- if (do_dryrun)
- exit (0);
- exit (hoghdd (do_hdd_bytes));
+ worker_init();
+ alarm (timeout);
+- usleep (backoff);
++ nanosleep (&b, NULL);
+ if (do_dryrun)
+ exit (0);
+ exit (hoghdd (do_hdd_bytes));
include $(TOPDIR)/rules.mk
PKG_NAME:=uvol
-PKG_VERSION:=0.8
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=0.9
+PKG_RELEASE:=2
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_LICENSE:=GPL-2.0-or-later
get_free_area() {
local found=
- sfdisk -q -F "$1" 2>/dev/null | while read -r start end sectors size; do
+ sfdisk --bytes -q -F "$1" 2>/dev/null | while read -r start end sectors size; do
case $start in
*"Unpartitioned"* | *"Units:"* | *"Sector"* | *"Start"* )
continue
;;
[0-9]*)
- case "$size" in
- *"k" | *"b")
- continue
- ;;
- *"M")
- [ "${size%%.*M}" -lt 100 ] && continue
- ;;
- *"G" | *"T")
- ;;
- esac
- [ "$found" ] || echo "start=$start, size=$((end - start))"
+ [ "$size" -lt $((100 * 1024 * 1024)) ] && continue
+ [ "$found" ] || echo "start=$start, size=$sectors"
found=1
;;
esac