GO_PKG_BUILD_PKG?=$(strip $(GO_PKG))/...
GO_PKG_WORK_DIR_NAME:=.go_work
-GO_PKG_WORK_DIR:=$(PKG_BUILD_DIR)/$(GO_PKG_WORK_DIR_NAME)
+GO_PKG_WORK_DIR=$(PKG_BUILD_DIR)/$(GO_PKG_WORK_DIR_NAME)
-GO_PKG_BUILD_DIR:=$(GO_PKG_WORK_DIR)/build
-GO_PKG_CACHE_DIR:=$(GO_PKG_WORK_DIR)/cache
+GO_PKG_BUILD_DIR=$(GO_PKG_WORK_DIR)/build
+GO_PKG_CACHE_DIR=$(GO_PKG_WORK_DIR)/cache
-GO_PKG_BUILD_BIN_DIR:=$(GO_PKG_BUILD_DIR)/bin$(if $(GO_HOST_TARGET_DIFFERENT),/$(GO_OS_ARCH))
+GO_PKG_BUILD_BIN_DIR=$(GO_PKG_BUILD_DIR)/bin$(if $(GO_HOST_TARGET_DIFFERENT),/$(GO_OS_ARCH))
-GO_PKG_BUILD_DEPENDS_SRC:=$(STAGING_DIR)$(GO_PKG_PATH)/src
+GO_PKG_BUILD_DEPENDS_SRC=$(STAGING_DIR)$(GO_PKG_PATH)/src
ifdef CONFIG_PKG_ASLR_PIE_ALL
ifeq ($(strip $(PKG_ASLR_PIE)),1)
-linkmode external \
-extldflags '$(patsubst -z%,-Wl$(comma)-z$(comma)%,$(TARGET_LDFLAGS))'
-GO_PKG_INSTALL_ARGS= \
- -v \
- -trimpath \
- -ldflags "all=$(GO_PKG_DEFAULT_LDFLAGS)"
-
-ifeq ($(GO_PKG_ENABLE_PIE),1)
- GO_PKG_INSTALL_ARGS+= -buildmode pie
-endif
-
-ifeq ($(GO_ARCH),arm)
- GO_PKG_INSTALL_ARGS+= -installsuffix "v$(GO_ARM)"
-
-else ifneq ($(filter $(GO_ARCH),mips mipsle),)
- GO_PKG_INSTALL_ARGS+= -installsuffix "$(GO_MIPS)"
-
-else ifneq ($(filter $(GO_ARCH),mips64 mips64le),)
- GO_PKG_INSTALL_ARGS+= -installsuffix "$(GO_MIPS64)"
-
-endif
-
-ifneq ($(strip $(GO_PKG_GCFLAGS)),)
- GO_PKG_INSTALL_ARGS+= -gcflags "$(GO_PKG_GCFLAGS)"
-endif
-
GO_PKG_CUSTOM_LDFLAGS= \
$(GO_PKG_LDFLAGS) \
$(patsubst %,-X %,$(GO_PKG_LDFLAGS_X))
-ifneq ($(strip $(GO_PKG_CUSTOM_LDFLAGS)),)
- GO_PKG_INSTALL_ARGS+= -ldflags "$(GO_PKG_CUSTOM_LDFLAGS) $(GO_PKG_DEFAULT_LDFLAGS)"
-endif
+GO_PKG_INSTALL_ARGS= \
+ -v \
+ -trimpath \
+ -ldflags "all=$(GO_PKG_DEFAULT_LDFLAGS)" \
+ $(if $(filter $(GO_PKG_ENABLE_PIE),1),-buildmode pie) \
+ $(if $(filter $(GO_ARCH),arm),-installsuffix "v$(GO_ARM)") \
+ $(if $(filter $(GO_ARCH),mips mipsle),-installsuffix "$(GO_MIPS)") \
+ $(if $(filter $(GO_ARCH),mips64 mips64le),-installsuffix "$(GO_MIPS64)") \
+ $(if $(GO_PKG_GCFLAGS),-gcflags "$(GO_PKG_GCFLAGS)") \
+ $(if $(GO_PKG_CUSTOM_LDFLAGS),-ldflags "$(GO_PKG_CUSTOM_LDFLAGS) $(GO_PKG_DEFAULT_LDFLAGS)")
# false if directory does not exist
GoPackage/is_dir_not_empty=$$$$($(FIND) $(1) -maxdepth 0 -type d \! -empty 2>/dev/null)
include $(TOPDIR)/rules.mk
PKG_NAME:=file
-PKG_VERSION:=5.38
-PKG_RELEASE:=2
+PKG_VERSION:=5.39
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://src.fedoraproject.org/lookaside/pkgs/file/ \
- http://download.openpkg.org/components/cache/file/ \
+PKG_SOURCE_URL:=http://download.openpkg.org/components/cache/file/ \
ftp://ftp.astron.com/pub/file/
-PKG_HASH:=593c2ffc2ab349c5aea0f55fedfe4d681737b6b62376a9b3ad1e77b2cc19fa34
+PKG_HASH:=f05d286a76d9556243d0cb05814929c2ecf3a5ba07963f8f70bfaaa70517fad1
PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
PKG_LICENSE:=BSD-2-Clause
PKG_NAME:=libplist
PKG_VERSION:=2.2.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://www.libimobiledevice.org/downloads
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libplist-2.0*.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libplist*.pc $(1)/usr/lib/pkgconfig/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libplist++-2.0.pc $(1)/usr/lib/pkgconfig/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libplist-2.0.pc $(1)/usr/lib/pkgconfig/
+ $(LN) libplist++-2.0.pc $(1)/usr/lib/pkgconfig/libplist++.pc
+ $(LN) libplist-2.0.pc $(1)/usr/lib/pkgconfig/libplist.pc
endef
define Package/libplist/install
include $(TOPDIR)/rules.mk
PKG_NAME:=libupnpp
-PKG_VERSION:=0.19.1
+PKG_VERSION:=0.19.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads
-PKG_HASH:=412b38bdd07441588c11bb1d64af7d112f439a46512d53c907f9b54a6666ff58
+PKG_HASH:=c9623533271605c92dfa603f5fe0ab6d3d5b4384a0c9173800784f4aa643a190
PKG_MAINTAINER:=Petko Bordjukov <bordjukov@gmail.com>
PKG_LICENSE:=LGPL-2.1-or-later
include $(TOPDIR)/rules.mk
PKG_NAME:=yaml
-PKG_VERSION:=0.2.4
+PKG_VERSION:=0.2.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://pyyaml.org/download/libyaml/
-PKG_HASH:=d80aeda8747b7c26fbbfd87ab687786e58394a8435ae3970e79cb97882e30557
+PKG_HASH:=c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4
PKG_MAINTAINER:=
PKG_LICENSE:=MIT
include $(TOPDIR)/rules.mk
PKG_NAME:=ffmpeg
-PKG_VERSION:=4.2.3
+PKG_VERSION:=4.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://ffmpeg.org/releases/
-PKG_HASH:=9df6c90aed1337634c1fb026fb01c154c29c82a64ea71291ff2da9aacb9aad31
+PKG_HASH:=1d0ad06484f44bcb97eba5e93c40bcb893890f9f64aeb43e46cd9bb4cbd6795d
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
Ian Leonard <antonlacon@gmail.com>
+++ /dev/null
-From 8beb9e571ca6fb38d5f784bedd581398fb3da06f Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Mon, 6 Apr 2020 17:38:59 -0700
-Subject: [PATCH] avfilter/vf_drawtext: only test available exceptions
-
-soft float systems do not define these macros under musl.
-
-Fixes: Ticket7102
-
-Signed-off-by: Rosen Penev <rosenp@gmail.com>
----
- libavfilter/vf_drawtext.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
-index 887a686d16d..abe1ca6c35c 100644
---- a/libavfilter/vf_drawtext.c
-+++ b/libavfilter/vf_drawtext.c
-@@ -1083,10 +1083,12 @@ static int func_eval_expr_int_format(AVFilterContext *ctx, AVBPrint *bp,
-
- feclearexcept(FE_ALL_EXCEPT);
- intval = res;
-+#if defined(FE_INVALID) && defined(FE_OVERFLOW) && defined(FE_UNDERFLOW)
- if ((ret = fetestexcept(FE_INVALID|FE_OVERFLOW|FE_UNDERFLOW))) {
- av_log(ctx, AV_LOG_ERROR, "Conversion of floating-point result to int failed. Control register: 0x%08x. Conversion result: %d\n", ret, intval);
- return AVERROR(EINVAL);
- }
-+#endif
-
- if (argc == 3)
- av_strlcatf(fmt_str, sizeof(fmt_str), "0%u", positions);
+#ifndef __mips16
#define get_cabac_inline get_cabac_inline_mips
- static av_always_inline int get_cabac_inline(CABACContext *c,
+ static av_always_inline int get_cabac_inline_mips(CABACContext *c,
uint8_t * const state){
-@@ -116,4 +117,5 @@ static av_always_inline int get_cabac_inline(CABACContext *c,
+@@ -116,4 +117,5 @@ static av_always_inline int get_cabac_inline_mips(CABACContext *c,
return bit;
}
+++ /dev/null
-From 875ba2333340c2e13af370832e49c9371ffb0f91 Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Sun, 5 Apr 2020 20:37:10 -0700
-Subject: [PATCH] avcodec/aacdec: fix compilation under soft float MIPS
-
-Place HAVE_MIPSFPU further up so that functions that use floating point
-ASM are defined away. Otherwise compilation failures result when soft
-float in enabled on the toolchain.
-
-Signed-off-by: Rosen Penev <rosenp@gmail.com>
----
- libavcodec/mips/aacdec_mips.c | 4 ++--
- libavcodec/mips/aacpsdsp_mips.c | 4 ++--
- libavcodec/mips/aacsbr_mips.c | 4 ++--
- libavcodec/mips/sbrdsp_mips.c | 4 ++--
- 4 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/libavcodec/mips/aacdec_mips.c b/libavcodec/mips/aacdec_mips.c
-index 01a2b3087ba..8e306529351 100644
---- a/libavcodec/mips/aacdec_mips.c
-+++ b/libavcodec/mips/aacdec_mips.c
-@@ -59,6 +59,7 @@
- #include "libavutil/mips/asmdefs.h"
-
- #if HAVE_INLINE_ASM
-+#if HAVE_MIPSFPU
- static av_always_inline void float_copy(float *dst, const float *src, int count)
- {
- // Copy 'count' floats from src to dst
-@@ -282,7 +283,6 @@ static void apply_ltp_mips(AACContext *ac, SingleChannelElement *sce)
- }
- }
-
--#if HAVE_MIPSFPU
- static av_always_inline void fmul_and_reverse(float *dst, const float *src0, const float *src1, int count)
- {
- /* Multiply 'count' floats in src0 by src1 and store the results in dst in reverse */
-@@ -433,9 +433,9 @@ static void update_ltp_mips(AACContext *ac, SingleChannelElement *sce)
- void ff_aacdec_init_mips(AACContext *c)
- {
- #if HAVE_INLINE_ASM
-+#if HAVE_MIPSFPU
- c->imdct_and_windowing = imdct_and_windowing_mips;
- c->apply_ltp = apply_ltp_mips;
--#if HAVE_MIPSFPU
- c->update_ltp = update_ltp_mips;
- #endif /* HAVE_MIPSFPU */
- #endif /* HAVE_INLINE_ASM */
-diff --git a/libavcodec/mips/aacpsdsp_mips.c b/libavcodec/mips/aacpsdsp_mips.c
-index 83fdc2f9dbd..ef47e31a9ea 100644
---- a/libavcodec/mips/aacpsdsp_mips.c
-+++ b/libavcodec/mips/aacpsdsp_mips.c
-@@ -57,6 +57,7 @@
- #include "libavutil/mips/asmdefs.h"
-
- #if HAVE_INLINE_ASM
-+#if HAVE_MIPSFPU
- static void ps_hybrid_analysis_ileave_mips(float (*out)[32][2], float L[2][38][64],
- int i, int len)
- {
-@@ -187,7 +188,6 @@ static void ps_hybrid_synthesis_deint_mips(float out[2][38][64],
- }
- }
-
--#if HAVE_MIPSFPU
- #if !HAVE_MIPS32R6 && !HAVE_MIPS64R6
- static void ps_add_squares_mips(float *dst, const float (*src)[2], int n)
- {
-@@ -450,9 +450,9 @@ static void ps_stereo_interpolate_mips(float (*l)[2], float (*r)[2],
- void ff_psdsp_init_mips(PSDSPContext *s)
- {
- #if HAVE_INLINE_ASM
-+#if HAVE_MIPSFPU
- s->hybrid_analysis_ileave = ps_hybrid_analysis_ileave_mips;
- s->hybrid_synthesis_deint = ps_hybrid_synthesis_deint_mips;
--#if HAVE_MIPSFPU
- #if !HAVE_MIPS32R6 && !HAVE_MIPS64R6
- s->add_squares = ps_add_squares_mips;
- s->mul_pair_single = ps_mul_pair_single_mips;
-diff --git a/libavcodec/mips/aacsbr_mips.c b/libavcodec/mips/aacsbr_mips.c
-index 56aa4e86822..2e0cd723d7e 100644
---- a/libavcodec/mips/aacsbr_mips.c
-+++ b/libavcodec/mips/aacsbr_mips.c
-@@ -58,6 +58,7 @@
- #define ENVELOPE_ADJUSTMENT_OFFSET 2
-
- #if HAVE_INLINE_ASM
-+#if HAVE_MIPSFPU
- static int sbr_lf_gen_mips(AACContext *ac, SpectralBandReplication *sbr,
- float X_low[32][40][2], const float W[2][32][32][2],
- int buf_idx)
-@@ -310,7 +311,6 @@ static int sbr_x_gen_mips(SpectralBandReplication *sbr, float X[2][38][64],
- return 0;
- }
-
--#if HAVE_MIPSFPU
- #if !HAVE_MIPS32R6 && !HAVE_MIPS64R6
- static void sbr_hf_assemble_mips(float Y1[38][64][2],
- const float X_high[64][40][2],
-@@ -611,9 +611,9 @@ static void sbr_hf_inverse_filter_mips(SBRDSPContext *dsp,
- void ff_aacsbr_func_ptr_init_mips(AACSBRContext *c)
- {
- #if HAVE_INLINE_ASM
-+#if HAVE_MIPSFPU
- c->sbr_lf_gen = sbr_lf_gen_mips;
- c->sbr_x_gen = sbr_x_gen_mips;
--#if HAVE_MIPSFPU
- #if !HAVE_MIPS32R6 && !HAVE_MIPS64R6
- c->sbr_hf_inverse_filter = sbr_hf_inverse_filter_mips;
- c->sbr_hf_assemble = sbr_hf_assemble_mips;
-diff --git a/libavcodec/mips/sbrdsp_mips.c b/libavcodec/mips/sbrdsp_mips.c
-index 1b0a10608de..83039fd802a 100644
---- a/libavcodec/mips/sbrdsp_mips.c
-+++ b/libavcodec/mips/sbrdsp_mips.c
-@@ -59,6 +59,7 @@
- #include "libavutil/mips/asmdefs.h"
-
- #if HAVE_INLINE_ASM
-+#if HAVE_MIPSFPU
- static void sbr_qmf_pre_shuffle_mips(float *z)
- {
- int Temp1, Temp2, Temp3, Temp4, Temp5, Temp6;
-@@ -165,7 +166,6 @@ static void sbr_qmf_post_shuffle_mips(float W[32][2], const float *z)
- );
- }
-
--#if HAVE_MIPSFPU
- #if !HAVE_MIPS32R6 && !HAVE_MIPS64R6
- static void sbr_sum64x5_mips(float *z)
- {
-@@ -890,9 +890,9 @@ static void sbr_hf_apply_noise_3_mips(float (*Y)[2], const float *s_m,
- void ff_sbrdsp_init_mips(SBRDSPContext *s)
- {
- #if HAVE_INLINE_ASM
-+#if HAVE_MIPSFPU
- s->qmf_pre_shuffle = sbr_qmf_pre_shuffle_mips;
- s->qmf_post_shuffle = sbr_qmf_post_shuffle_mips;
--#if HAVE_MIPSFPU
- #if !HAVE_MIPS32R6 && !HAVE_MIPS64R6
- s->sum64x5 = sbr_sum64x5_mips;
- s->sum_square = sbr_sum_square_mips;
PKG_VERSION:=2.7.8
# Release == build
# increase on changes of services files or tld_names.dat
-PKG_RELEASE:=20
+PKG_RELEASE:=21
PKG_LICENSE:=GPL-2.0
PKG_MAINTAINER:=
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_cloudflare.com-v4
$(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_cloudflare_com_v4.sh $(1)/usr/lib/ddns
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_cloudflare_com_v4_token.sh $(1)/usr/lib/ddns
endef
define Package/ddns-scripts_cloudflare.com-v4/postinst
#!/bin/sh
# and create new
printf "%s\\t%s\\n" '"cloudflare.com-v4"' '"update_cloudflare_com_v4.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
printf "%s\\t%s\\n" '"cloudflare.com-v4"' '"update_cloudflare_com_v4.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
+ printf "%s\\t%s\\n" '"cloudflare.com-v4-token"' '"update_cloudflare_com_v4_token.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
+ printf "%s\\t%s\\n" '"cloudflare.com-v4-token"' '"update_cloudflare_com_v4_token.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6
# on real system restart service if enabled
[ -z "$${IPKG_INSTROOT}" ] && {
[ -x /etc/uci-defaults/ddns_cloudflare.com-v4 ] && \
--- /dev/null
+#!/bin/sh
+#
+#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
+#
+# script for sending updates to cloudflare.com
+#.based on Ben Kulbertis cloudflare-update-record.sh found at http://gist.github.com/benkulbertis
+#.and on George Johnson's cf-ddns.sh found at https://github.com/gstuartj/cf-ddns.sh
+#.2016-2018 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
+
+# CloudFlare API documentation at https://api.cloudflare.com/
+#
+# This script is parsed by dynamic_dns_functions.sh inside send_update() function
+#
+# using following options from /etc/config/ddns
+# option username - your cloudflare e-mail
+# option password - cloudflare api token, you can get it from cloudflare.com/my-account/
+# option domain - "hostname@yourdomain.TLD" # syntax changed to remove split_FQDN() function and tld_names.dat.gz
+#
+# The proxy status would not be changed by this script. Please change it in Cloudflare dashboard manually.
+#
+# variable __IP already defined with the ip-address to use for update
+#
+
+# check parameters
+[ -z "$CURL" ] && [ -z "$CURL_SSL" ] && write_log 14 "Cloudflare communication require cURL with SSL support. Please install"
+#[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing key as 'username'"
+[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing secret as 'password'"
+[ $use_https -eq 0 ] && use_https=1 # force HTTPS
+
+# used variables
+local __HOST __DOMAIN __TYPE __URLBASE __PRGBASE __RUNPROG __DATA __IPV6 __ZONEID __RECID __PROXIED
+local __URLBASE="https://api.cloudflare.com/client/v4"
+local __TTL=120
+
+# split __HOST __DOMAIN from $domain
+# given data:
+# @example.com for "domain record"
+# host.sub@example.com for a "host record"
+__HOST=$(printf %s "$domain" | cut -d@ -f1)
+__DOMAIN=$(printf %s "$domain" | cut -d@ -f2)
+
+# Cloudflare v4 needs:
+# __DOMAIN = the base domain i.e. example.com
+# __HOST = the FQDN of record to modify
+# i.e. example.com for the "domain record" or host.sub.example.com for "host record"
+
+# handling domain record then set __HOST = __DOMAIN
+[ -z "$__HOST" ] && __HOST=$__DOMAIN
+# handling host record then rebuild fqdn host@domain.tld => host.domain.tld
+[ "$__HOST" != "$__DOMAIN" ] && __HOST="${__HOST}.${__DOMAIN}"
+
+# set record type
+[ $use_ipv6 -eq 0 ] && __TYPE="A" || __TYPE="AAAA"
+
+# transfer function to use for godaddy
+# all needed variables are set global here
+# so we can use them directly
+cloudflare_transfer() {
+ local __CNT=0
+ local __ERR
+ while : ; do
+ write_log 7 "#> $__RUNPROG"
+ eval "$__RUNPROG"
+ __ERR=$? # save communication error
+ [ $__ERR -eq 0 ] && break # no error break while
+
+ write_log 3 "cURL Error: '$__ERR'"
+ write_log 7 "$(cat $ERRFILE)" # report error
+
+ [ $VERBOSE_MODE -gt 1 ] && {
+ # VERBOSE_MODE > 1 then NO retry
+ write_log 4 "Transfer failed - Verbose Mode: $VERBOSE_MODE - NO retry on error"
+ break
+ }
+
+ __CNT=$(( $__CNT + 1 )) # increment error counter
+ # if error count > retry_count leave here
+ [ $retry_count -gt 0 -a $__CNT -gt $retry_count ] && \
+ write_log 14 "Transfer failed after $retry_count retries"
+
+ write_log 4 "Transfer failed - retry $__CNT/$retry_count in $RETRY_SECONDS seconds"
+ sleep $RETRY_SECONDS &
+ PID_SLEEP=$!
+ wait $PID_SLEEP # enable trap-handler
+ PID_SLEEP=0
+ done
+
+ # check for error
+ grep -q '"success":\s*true' $DATFILE || {
+ write_log 4 "CloudFlare reported an error:"
+ write_log 7 "$(cat $DATFILE)" # report error
+ return 1 # HTTP-Fehler
+ }
+}
+
+# Build base command to use
+__PRGBASE="$CURL -RsS -o $DATFILE --stderr $ERRFILE"
+# force network/interface-device to use for communication
+if [ -n "$bind_network" ]; then
+ local __DEVICE
+ network_get_physdev __DEVICE $bind_network || \
+ write_log 13 "Can not detect local device using 'network_get_physdev $bind_network' - Error: '$?'"
+ write_log 7 "Force communication via device '$__DEVICE'"
+ __PRGBASE="$__PRGBASE --interface $__DEVICE"
+fi
+# force ip version to use
+if [ $force_ipversion -eq 1 ]; then
+ [ $use_ipv6 -eq 0 ] && __PRGBASE="$__PRGBASE -4" || __PRGBASE="$__PRGBASE -6" # force IPv4/IPv6
+fi
+# set certificate parameters
+if [ "$cacert" = "IGNORE" ]; then # idea from Ticket #15327 to ignore server cert
+ __PRGBASE="$__PRGBASE --insecure" # but not empty better to use "IGNORE"
+elif [ -f "$cacert" ]; then
+ __PRGBASE="$__PRGBASE --cacert $cacert"
+elif [ -d "$cacert" ]; then
+ __PRGBASE="$__PRGBASE --capath $cacert"
+elif [ -n "$cacert" ]; then # it's not a file and not a directory but given
+ write_log 14 "No valid certificate(s) found at '$cacert' for HTTPS communication"
+fi
+# disable proxy if not set (there might be .wgetrc or .curlrc or wrong environment set)
+# or check if libcurl compiled with proxy support
+if [ -z "$proxy" ]; then
+ __PRGBASE="$__PRGBASE --noproxy '*'"
+elif [ -z "$CURL_PROXY" ]; then
+ # if libcurl has no proxy support and proxy should be used then force ERROR
+ write_log 13 "cURL: libcurl compiled without Proxy support"
+fi
+# set headers
+#__PRGBASE="$__PRGBASE --header 'X-Auth-Email: $username' "
+__PRGBASE="$__PRGBASE --header 'Authorization: Bearer $password' "
+__PRGBASE="$__PRGBASE --header 'Content-Type: application/json' "
+
+# read zone id for registered domain.TLD
+__RUNPROG="$__PRGBASE --request GET '$__URLBASE/zones?name=$__DOMAIN'"
+cloudflare_transfer || return 1
+# extract zone id
+__ZONEID=$(grep -o '"id":\s*"[^"]*' $DATFILE | grep -o '[^"]*$' | head -1)
+[ -z "$__ZONEID" ] && {
+ write_log 4 "Could not detect 'zone id' for domain.tld: '$__DOMAIN'"
+ return 127
+}
+
+# read record id for A or AAAA record of host.domain.TLD
+__RUNPROG="$__PRGBASE --request GET '$__URLBASE/zones/$__ZONEID/dns_records?name=$__HOST&type=$__TYPE'"
+cloudflare_transfer || return 1
+# extract record id
+__RECID=$(grep -o '"id":\s*"[^"]*' $DATFILE | grep -o '[^"]*$' | head -1)
+[ -z "$__RECID" ] && {
+ write_log 4 "Could not detect 'record id' for host.domain.tld: '$__HOST'"
+ return 127
+}
+
+# extract current stored IP
+__DATA=$(grep -o '"content":\s*"[^"]*' $DATFILE | grep -o '[^"]*$' | head -1)
+
+# check data
+[ $use_ipv6 -eq 0 ] \
+ && __DATA=$(printf "%s" "$__DATA" | grep -m 1 -o "$IPV4_REGEX") \
+ || __DATA=$(printf "%s" "$__DATA" | grep -m 1 -o "$IPV6_REGEX")
+
+# we got data so verify
+[ -n "$__DATA" ] && {
+ # expand IPv6 for compare
+ if [ $use_ipv6 -eq 1 ]; then
+ expand_ipv6 $__IP __IPV6
+ expand_ipv6 $__DATA __DATA
+ [ "$__DATA" = "$__IPV6" ] && { # IPv6 no update needed
+ write_log 7 "IPv6 at CloudFlare.com already up to date"
+ return 0
+ }
+ else
+ [ "$__DATA" = "$__IP" ] && { # IPv4 no update needed
+ write_log 7 "IPv4 at CloudFlare.com already up to date"
+ return 0
+ }
+ fi
+}
+
+# update is needed
+# let's build data to send
+# set proxied parameter
+__PROXIED=$(grep -o '"proxied":\s*[^",]*' $DATFILE | grep -o '[^:]*$')
+
+# use file to work around " needed for json
+cat > $DATFILE << EOF
+{"id":"$__ZONEID","type":"$__TYPE","name":"$__HOST","content":"$__IP","ttl":$__TTL,"proxied":$__PROXIED}
+EOF
+
+# let's complete transfer command
+__RUNPROG="$__PRGBASE --request PUT --data @$DATFILE '$__URLBASE/zones/$__ZONEID/dns_records/$__RECID'"
+cloudflare_transfer || return 1
+
+return 0
+
PKG_NAME:=https-dns-proxy
PKG_VERSION:=2020-04-09
-PKG_RELEASE=2
+PKG_RELEASE=3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy
CONFLICTS:=https_dns_proxy
endef
+define Package/https-dns-proxy/description
+https_dns_proxy is a light-weight DNS<-->HTTPS, non-caching translation proxy for the RFC 8484 DNS-over-HTTPS standard. It receives regular (UDP) DNS requests and issues them via DoH.
+Please see https://github.com/openwrt/packages/blob/master/net/https-dns-proxy/files/README.md for further information.
+endef
+
+define Package/https-dns-proxy/conffiles
+/etc/config/https-dns-proxy
+endef
+
define Package/https-dns-proxy/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d ${1}/etc/config
$(INSTALL_BIN) $(PKG_BUILD_DIR)/https_dns_proxy $(1)/usr/sbin/https-dns-proxy
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=jool
-PKG_VERSION:=4.0.8
+PKG_VERSION:=4.0.9
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/NICMx/Jool/releases/download/v$(PKG_VERSION)
-PKG_HASH:=73dd65a14feedc8bd0f650d3316bca346474c8420d60b48ca95bd1ca8846f1d4
+PKG_HASH:=d42215f87abf2e113bc039d23e6b4e1c39cafc90f0e5584adf0e40e996c68ffb
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0-only
include $(TOPDIR)/rules.mk
PKG_NAME:=kcptun
-PKG_VERSION:=20200103
-PKG_RELEASE:=2
+PKG_VERSION:=20200409
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/xtaci/kcptun/tar.gz/v${PKG_VERSION}?
-PKG_SOURCE_DATE:=2020-01-03
-PKG_HASH:=620d4cd3ed1660e71b0fe1041c063e8fb38dc3aa7a6c78f6570e812566f44bb5
+PKG_SOURCE_DATE:=2020-04-09
+PKG_HASH:=312b8f438549225dfd1eac95444dd6a4c50610578ddcf7ff21e19c73a855d4bc
PKG_MAINTAINER:=Dengfeng Liu <liudf0716@gmail.com>, Chao Liu <expiron18@gmail.com>
PKG_LICENSE:=MIT
PKG_NAME:=libreswan
PKG_VERSION:=3.32
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://download.libreswan.org/
+kmod-crypto-aead +kmod-crypto-authenc +kmod-crypto-gcm \
+kmod-crypto-hash +kmod-crypto-rng +kmod-ip-vti +kmod-ipsec \
+kmod-ipsec4 +kmod-ipt-ipsec +libevent2 +libevent2-pthreads \
- +libldns +librt +libunbound-heavy +nss-utils +nspr +libcap-ng
+ +libldns +librt +libunbound +nss-utils +nspr +libcap-ng
PROVIDES:=openswan
CONFLICTS:=strongswan
TITLE+= IPsec Server
include $(TOPDIR)/rules.mk
PKG_NAME:=miniupnpd
-PKG_VERSION:=2.1.20191006
-PKG_RELEASE:=6
+PKG_VERSION:=2.1.20200510
+PKG_RELEASE:=2
PKG_SOURCE_URL:=https://miniupnp.tuxfamily.org/files
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_HASH:=218fad7af31f3c22fb4c9db28a55a2a8b5067d41f5b38f52008a057a00d2206d
+PKG_HASH:=821e708f369cc1fb851506441fbc3a1f4a1b5a8bf8e84a9e71758a32f5127e8b
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:miniupnp_project:miniupnpd
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/version.mk
define Package/miniupnpd
SECTION:=net
CATEGORY:=Network
- DEPENDS:=+iptables +libip4tc +IPV6:libip6tc +IPV6:ip6tables +libuuid
+ DEPENDS:=+iptables +libip4tc +IPV6:libip6tc +IPV6:ip6tables +libuuid +libcap-ng
TITLE:=Lightweight UPnP IGD, NAT-PMP & PCP daemon
SUBMENU:=Firewall
URL:=https://miniupnp.tuxfamily.org/
echo "$(VERSION_NUMBER)" | tr '() ' '_' >$(PKG_BUILD_DIR)/os.openwrt
endef
+CONFIGURE_ARGS = \
+ $(if $(CONFIG_IPV6),--ipv6) \
+ --igd2 \
+ --leasefile \
+ --portinuse \
+ --firewall=iptables
+
TARGET_CFLAGS += $(FPIC) -flto
TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
-MAKE_FLAGS += \
- TARGET_OPENWRT=1 TEST=0 LIBS="" \
- CC="$(TARGET_CC) -DIPTABLES_143 -lip4tc -luuid \
- $(if $(CONFIG_IPV6),-lip6tc)" \
- CONFIG_OPTIONS="--portinuse --leasefile --igd2 \
- $(if $(CONFIG_IPV6),--ipv6)" \
- -f Makefile.linux miniupnpd
-
define Package/miniupnpd/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_DIR) $(1)/usr/share/miniupnpd
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/miniupnpd $(1)/usr/sbin/miniupnpd
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/miniupnpd $(1)/usr/sbin/miniupnpd
$(INSTALL_BIN) ./files/miniupnpd.init $(1)/etc/init.d/miniupnpd
$(INSTALL_CONF) ./files/upnpd.config $(1)/etc/config/upnpd
$(INSTALL_DATA) ./files/miniupnpd.hotplug $(1)/etc/hotplug.d/iface/50-miniupnpd
Cellular modem control and connectivity
-Optional libraries libmbim and libqmi are available. Optional mbim-utils and qmi-utils are available.
-Your modem may require additional kernel modules.
+Optional libraries libmbim and libqmi are available.
+Your modem may require additional kernel modules and/or the usb-modeswitch
+package.
## Usage
-# Once installed, you can configure the 2G/3G/4G modem connections directly in
- /etc/config/network as in the following example:
+Once installed, you can configure the 2G/3G/4G modem connections directly in
+/etc/config/network as in the following example:
config interface 'broadband'
- option device '/sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2.1'
- option proto 'modemmanager'
- option apn 'ac.vodafone.es'
- option username 'vodafone'
- option password 'vodafone'
- option pincode '7423'
- option lowpower '1'
+ option device '/sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2.1'
+ option proto 'modemmanager'
+ option apn 'ac.vodafone.es'
+ option allowedauth 'pap chap'
+ option username 'vodafone'
+ option password 'vodafone'
+ option pincode '7423'
+ option iptype 'ipv4'
+ option lowpower '1'
+
+Only 'device' and 'proto' are mandatory options, the remaining ones are all
+optional.
+
+The 'allowedauth' option allows limiting the list of authentication protocols.
+It is given as a space-separated list of values, including any of the
+following: 'pap', 'chap', 'mschap', 'mschapv2' or 'eap'. It will default to
+allowing all protocols.
+
+The 'iptype' option supports any of these values: 'ipv4', 'ipv6' or 'ipv4v6'.
+It will default to 'ipv4' if not given.
local ttyname="$2"
local username="$3"
local password="$4"
+ local allowedauth="$5"
+
+ # all auth types are allowed unless a user given list is given
+ local authopts
+ local pap=1
+ local chap=1
+ local mschap=1
+ local mschapv2=1
+ local eap=1
+
+ [ -n "$allowedauth" ] && {
+ pap=0 chap=0 mschap=0 mschapv2=0 eap=0
+ for auth in $allowedauth; do
+ case $auth in
+ "pap") pap=1 ;;
+ "chap") chap=1 ;;
+ "mschap") mschap=1 ;;
+ "mschapv2") mschapv2=1 ;;
+ "eap") eap=1 ;;
+ *) ;;
+ esac
+ done
+ }
+
+ [ $pap -eq 1 ] || append authopts "refuse-pap"
+ [ $chap -eq 1 ] || append authopts "refuse-chap"
+ [ $mschap -eq 1 ] || append authopts "refuse-mschap"
+ [ $mschapv2 -eq 1 ] || append authopts "refuse-mschap-v2"
+ [ $eap -eq 1 ] || append authopts "refuse-eap"
proto_run_command "${interface}" /usr/sbin/pppd \
"${ttyname}" \
nopcomp \
novj \
noauth \
+ $authopts \
${username:+ user $username} \
${password:+ password $password} \
lcp-echo-failure 5 \
no_device=1
proto_config_add_string device
proto_config_add_string apn
+ proto_config_add_string 'allowedauth:list(string)'
proto_config_add_string username
proto_config_add_string password
proto_config_add_string pincode
local interface="$1"
local modempath modemstatus bearercount bearerpath connectargs bearerstatus beareriface
- local bearermethod_ipv4 bearermethod_ipv6
+ local bearermethod_ipv4 bearermethod_ipv6 auth cliauth
local operatorname operatorid registration accesstech signalquality
- local device apn username password pincode iptype metric
+ local device apn allowedauth username password pincode iptype metric
local address prefix gateway mtu dns1 dns2
- json_get_vars device apn username password pincode iptype metric
+ json_get_vars device apn allowedauth username password pincode iptype metric
# validate sysfs path given in config
[ -n "${device}" ] || {
# always cleanup before attempting a new connection, just in case
modemmanager_cleanup_connection "${modemstatus}"
+ # if allowedauth list given, build option string
+ for auth in $allowedauth; do
+ cliauth="${cliauth}${cliauth:+|}$auth"
+ done
+
# setup connect args; APN mandatory (even if it may be empty)
echo "starting connection with apn '${apn}'..."
- connectargs="apn=${apn}${iptype:+,ip-type=${iptype}}${username:+,user=${username}}${password:+,password=${password}}${pincode:+,pin=${pincode}}"
+ connectargs="apn=${apn}${iptype:+,ip-type=${iptype}}${cliauth:+,allowed-auth=${cliauth}}${username:+,user=${username}}${password:+,password=${password}}${pincode:+,pin=${pincode}}"
mmcli --modem="${device}" --timeout 120 --simple-connect="${connectargs}" || {
proto_notify_error "${interface}" CONNECT_FAILED
proto_block_restart "${interface}"
modemmanager_connected_method_static_ipv4 "${interface}" "${beareriface}" "${address}" "${prefix}" "${gateway}" "${mtu}" "${dns1}" "${dns2}" "${metric}"
;;
"ppp")
- modemmanager_connected_method_ppp_ipv4 "${interface}" "${beareriface}" "${username}" "${password}"
+ modemmanager_connected_method_ppp_ipv4 "${interface}" "${beareriface}" "${username}" "${password}" "${allowedauth}"
;;
*)
proto_notify_error "${interface}" UNKNOWN_METHOD
include $(TOPDIR)/rules.mk
PKG_NAME:=rsync
-PKG_VERSION:=3.1.3
-PKG_RELEASE:=3
+PKG_VERSION:=3.2.1
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://download.samba.org/pub/rsync/src
-PKG_HASH:=55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0
+PKG_HASH:=95f2dd62979b500a99b34c1a6453a0787ada0330e4bec7fcffad37b9062d58d3
PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=COPYING
PKG_CPE_ID:=cpe:/a:rsync:rsync
+PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
endef
CONFIGURE_ARGS += \
- --with-included-popt=no \
+ --without-included-popt \
--disable-debug \
+ --disable-asm \
+ --disable-iconv \
+ --disable-iconv-open \
+ --disable-lz4 \
--disable-locale \
-
-ifeq ($(CONFIG_RSYNC_xattr),y)
- CONFIGURE_ARGS+= --enable-xattr-support
-else
- CONFIGURE_ARGS+= --disable-xattr-support
-endif
-
-ifeq ($(CONFIG_RSYNC_acl),y)
- CONFIGURE_ARGS+= --enable-acl-support
-else
- CONFIGURE_ARGS+= --disable-acl-support
-endif
-
-ifeq ($(CONFIG_RSYNC_zlib),y)
- CONFIGURE_ARGS+= --with-included-zlib=no
-else
- CONFIGURE_ARGS+= --with-included-zlib=yes
-endif
-
-ifeq ($(CONFIG_IPV6),y)
- TARGET_CFLAGS+= -DINET6
-else
- CONFIGURE_ARGS+= --disable-ipv6
-endif
-
-CONFIGURE_VARS += rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes
+ --disable-md2man \
+ --disable-openssl \
+ --disable-simd \
+ --disable-xxhash \
+ --disable-zstd \
+ --$(if $(CONFIG_RSYNC_xattr),en,dis)able-xattr-support \
+ --$(if $(CONFIG_RSYNC_acl),en,dis)able-acl-support \
+ --with$(if $(CONFIG_RSYNC_zlib),,out)-included-zlib \
+ --$(if $(CONFIG_IPV6),en,dis)able-ipv6
+
+define Build/Configure
+ $(call Build/Configure/Default)
+ $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" reconfigure
+endef
define Package/rsyncd
SECTION:=net
--- /dev/null
+commit f25dc9d21a9aba2d4c5f3d21273e1f7924d591be
+Author: Maxim Storchak <m.storchak@gmail.com>
+Date: Sun Jun 28 14:23:03 2020 +0300
+
+ Based on Pierre-Olivier Mercier's patch for https://bugzilla.samba.org/show_bug.cgi?id=10715
+
+ Original commit message:
+
+ From 811db086507aceaec0022798dd418956cdd4b54e Mon Sep 17 00:00:00 2001
+ From: Pierre-Olivier Mercier <nemunaire@nemunai.re>
+ Date: Mon, 4 Sep 2017 22:29:55 +0200
+ Subject: [PATCH] Test IPv6 compatibility instead of relying on library probes.
+
+ Legacy configure behaviour was to detect IPv6 support through known IPv6
+ capable version of common standard libraries. Now: it runs a POSIX test
+ to determine if IPv6 is usable (in case it has not been disabled).
+ ---
+
+diff --git a/configure.ac b/configure.ac
+index 28865ea..7a2bbfe 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -339,119 +339,36 @@ if test x"$rsync_cv_HAVE_BROKEN_LARGEFILE" != x"yes"; then
+ AC_SYS_LARGEFILE
+ fi
+
+-ipv6type=unknown
+-ipv6lib=none
+-ipv6trylibc=yes
+-
++# Checks if IPv6 is requested
++AC_MSG_CHECKING([whether to enable ipv6])
+ AC_ARG_ENABLE(ipv6,
+- AS_HELP_STRING([--disable-ipv6],[turn off IPv6 support]))
+-if test x"$enable_ipv6" != x"no"; then
+- AC_MSG_CHECKING([ipv6 stack type])
+- for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta cygwin; do
+- case $i in
+- inria)
+- # http://www.kame.net/
+- AC_EGREP_CPP(yes, [
+-#include <netinet/in.h>
+-#ifdef IPV6_INRIA_VERSION
+-yes
+-#endif],
+- [ipv6type=$i;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])
+- ])
+- ;;
+- kame)
+- # http://www.kame.net/
+- AC_EGREP_CPP(yes, [
+-#include <netinet/in.h>
+-#ifdef __KAME__
+-yes
+-#endif],
+- [ipv6type=$i;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- linux-glibc)
+- # http://www.v6.linux.or.jp/
+- AC_EGREP_CPP(yes, [
+-#include <features.h>
+-#if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
+-yes
+-#endif],
+- [ipv6type=$i;
+-AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- linux-inet6)
+- # http://www.v6.linux.or.jp/
+- if test -d /usr/inet6 -o -f /usr/inet6/lib/libinet6.a; then
+- ipv6type=$i
+- ipv6lib=inet6
+- ipv6libdir=/usr/inet6/lib
+- ipv6trylibc=yes;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])
+- CFLAGS="-I/usr/inet6/include $CFLAGS"
+- fi
+- ;;
+- solaris)
+- # http://www.sun.com
+- AC_EGREP_CPP(yes, [
+-#include <netinet/ip6.h>
+-#ifdef __sun
+-yes
+-#endif],
+- [ipv6type=$i;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- toshiba)
+- AC_EGREP_CPP(yes, [
+-#include <sys/param.h>
+-#ifdef _TOSHIBA_INET6
+-yes
+-#endif],
+- [ipv6type=$i;
+- ipv6lib=inet6;
+- ipv6libdir=/usr/local/v6/lib;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- v6d)
+- AC_EGREP_CPP(yes, [
+-#include </usr/local/v6/include/sys/v6config.h>
+-#ifdef __V6D__
+-yes
+-#endif],
+- [ipv6type=$i;
+- ipv6lib=v6;
+- ipv6libdir=/usr/local/v6/lib;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- zeta)
+- AC_EGREP_CPP(yes, [
+-#include <sys/param.h>
+-#ifdef _ZETA_MINAMI_INET6
+-yes
+-#endif],
+- [ipv6type=$i;
+- ipv6lib=inet6;
+- ipv6libdir=/usr/local/v6/lib;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- cygwin)
+- AC_EGREP_CPP(yes, [
+-#include <netinet/in.h>
+-#ifdef _CYGWIN_IN6_H
+-yes
+-#endif],
+- [ipv6type=$i;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- esac
+- if test "$ipv6type" != "unknown"; then
+- break
+- fi
+- done
+- AC_MSG_RESULT($ipv6type)
++[ --disable-ipv6 disable ipv6 support],
++[ case "$enableval" in
++ no)
++ AC_MSG_RESULT(no)
++ ;;
++ *) AC_MSG_RESULT(yes)
++ AC_DEFINE(INET6, 1, [true if you have IPv6])
++ ;;
++ esac ],
+
+- AC_SEARCH_LIBS(getaddrinfo, inet6)
+-fi
++ AC_TRY_RUN([ /* AF_INET6 avalable check */
++#include <stdlib.h>
++#include <sys/types.h>
++#include <sys/socket.h>
++main()
++{
++ if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
++ exit(1);
++ else
++ exit(0);
++}
++],
++ AC_MSG_RESULT(yes)
++ AC_DEFINE(INET6, 1, [true if you have IPv6]),
++ AC_MSG_RESULT(no),
++ AC_MSG_RESULT(no)
++))
+
+ dnl Do you want to disable use of locale functions
+ AC_ARG_ENABLE([locale],
PKG_NAME:=samba
PKG_VERSION:=4.12.3
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:= \
+
config samba
- option 'workgroup' 'WORKGROUP'
- option 'description' 'Samba on OpenWrt'
- option 'charset' 'UTF-8'
+ option workgroup 'WORKGROUP'
+ option charset 'UTF-8'
+ option description 'Samba on OpenWRT'
+ #option enable_extra_tuning '0'
+
+## example share
+#config sambashare
+ #option guest_only 'yes'
+ #option create_mask '0666'
+ #option dir_mask '0777'
+ #option force_root '1'
+ #option name 'share'
+ #option inherit_owner 'yes'
+ #option guest_ok 'yes'
+ #option read_only 'no'
+ #option path '/mnt/tmp'
+
+## reduce process priority via nice
+#config procd 'extra'
+ #option samba_nice '3'
+## on mvebu platform we need negative values!
+ #option samba_nice '-10'
config_get_bool DISABLE_WINBIND $1 disable_winbind 0
config_get_bool DISABLE_ASYNC_IO $1 disable_async_io 0
config_get_bool ALLOW_LEGACY_PROTOCOLS $1 allow_legacy_protocols 0
+ config_get_bool ENABLE_EXTRA_TUNING $1 enable_extra_tuning 0
mkdir -p /var/etc
sed -e "s#|NAME|#$hostname#g" \
{
printf "\n######### Dynamic written config options #########\n"
+
+ # extra tuning options by community feedback (kinda try&error)
+ if [ "$ENABLE_EXTRA_TUNING" -eq 1 ]; then
+ local socket_opt
+ socket_opt="$(grep -i 'socket options' /etc/samba/smb.conf.template | awk -F'=' '{print $2}' | tr -d '\n')"
+ [ -n "$socket_opt" ] && printf "\tsocket options =%s SO_KEEPALIVE\n" "$socket_opt" # add keepalive, maybe larger buffer? SO_RCVBUF=65536 SO_SNDBUF=65536
+
+ printf "\tmax xmit = 131072\n" # increase smb1 transmit size
+ printf "\tmin receivefile size = 131072\n" # allows zero-copy writes via fs
+ printf "\tfake oplocks = Yes\n" # may corrupt files for simultanous writes to the same files by multiple clients, but might also see big speed boost
+ printf "\tuse sendfile = Yes\n" # enable sendfile, not sure whats with the 2019 bug https://bugzilla.samba.org/show_bug.cgi?id=14095
+ # Removed in 4.12.x in favor of VFS io_uring ; this is per file, so may increase memory useage on many simultanous oplocked files!
+ printf "\twrite cache size = 262144\n" # adds a write cache buffer per file for oplocked files, flushes if size is exhausted
+ fi
+
if [ "$DISABLE_NETBIOS" -eq 1 ] || [ ! -x /usr/sbin/nmbd ]; then
printf "\tdisable netbios = yes\n"
# note: samba opens port 139 even if netbios is disabled via option above, so adjust listening ports
init_config() {
# Create samba dirs
- [ -d /var/lib/samba ] || mkdir -p /var/lib/samba
- [ -d /var/cache/samba ] || mkdir -p /var/cache/samba
+ [ -d /var/lib/samba ] || mkdir -m 755 -p /var/lib/samba
+ [ -d /var/cache/samba ] || mkdir -m 755 -p /var/cache/samba
+ [ -d /var/lock ] || mkdir -m 755 -p /var/lock
[ -d /var/run/samba ] || mkdir -p /var/run/samba
[ -d /var/log/samba ] || mkdir -p /var/log/samba
- [ -d /var/lock ] || mkdir -p /var/lock
chmod 0755 /var/lock
+ chmod 0755 /var/lib/samba
+ chmod 0755 /var/cache/samba
config_load samba4
config_foreach smb_header samba
## Set location of smbpasswd ('smbd -b' will show default compiled location)
#smb passwd file = /etc/samba/smbpasswd
- ## LAN/WAN options (IPTOS_LOWDELAY TCP_NODELAY) WAN (IPTOS_THROUGHPUT)
+ ## LAN (IPTOS_LOWDELAY TCP_NODELAY) WAN (IPTOS_THROUGHPUT) WiFi (SO_KEEPALIVE) try&error for buffer sizes (SO_RCVBUF=65536 SO_SNDBUF=65536)
socket options = IPTOS_LOWDELAY TCP_NODELAY
## If this integer parameter is set to a non-zero value, Samba will read from files asynchronously when the request size is bigger than this value.
#aio write behind = /*.tmp/
## lower CPU useage if supported and aio is disabled (aio read size = 0 ; aio write size = 0)
- ## currently broken (NOTE: see https://bugzilla.samba.org/show_bug.cgi?id=14095 )
+ ## is this still broken? issue is from 2019 (NOTE: see https://bugzilla.samba.org/show_bug.cgi?id=14095 )
## (no, yes)
#use sendfile = yes
PKG_NAME:=stubby
PKG_VERSION:=0.2.6
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/getdnsapi/$(PKG_NAME)
config_get tls_auth_name "$config" tls_auth_name
echo " tls_auth_name: \"$tls_auth_name\""
- config_get tls_auth_port "$config" tls_port ""
+ config_get tls_port "$config" tls_port ""
if [ -n "$tls_port" ]; then
echo " tls_port: $tls_port"
fi
PKG_NAME:=unbound
PKG_VERSION:=1.10.1
-PKG_RELEASE:=3
+PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://nlnetlabs.nl/downloads/unbound
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
+PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_libunbound_dnscrypt \
+ CONFIG_PACKAGE_libunbound_ipset \
+ CONFIG_PACKAGE_libunbound_libevent \
+ CONFIG_PACKAGE_libunbound_libpthread \
+ CONFIG_PACKAGE_libunbound_pythonmodule \
+ CONFIG_PACKAGE_libunbound_subnet
+
include $(INCLUDE_DIR)/package.mk
define Package/unbound/Default
define Package/unbound-daemon
$(call Package/unbound/Default)
- TITLE+= (daemon, light traffic)
- DEPENDS+= +libunbound-light
- VARIANT:=light
+ TITLE+= (daemon)
+ DEPENDS+= +libunbound
endef
define Package/unbound-daemon/description
- This package contains the Unbound daemon with basic includes
- necessary to meet the needs of UCI/LuCI configuration optoins.
+ This package contains the Unbound daemon including 'libevent', 'libmnl', and
+ 'libpthread' to better handle large networks with heavy query loads. Options
+ are available under libraries/network/libunbound to custom trim Unbound for
+ smaller targets.
endef
-define Package/unbound-daemon-heavy
- $(call Package/unbound/Default)
- TITLE+= (daemon, heavy traffic)
- URL:=https://nlnetlabs.nl/documentation/unbound/howto-optimise
- DEPENDS+= +libunbound-heavy +libpthread +libevent2 +libevent2-pthreads +libmnl
- VARIANT:=heavy
- PROVIDES:=unbound-daemon
-endef
-
-define Package/unbound-daemon-heavy/description
- This package contains the Unbound daemon including 'libevent' and
- 'libpthread' to better handle large networks with heavy query loads.
- It also offers ipset support.
-endef
-
-define Package/libunbound-light
+define Package/libunbound
$(call Package/unbound/Default)
SECTION:=libs
CATEGORY:=Libraries
SUBMENU:=Networking
- TITLE+= (library, light traffic)
- VARIANT:=light
- PROVIDES:=libunbound
- DEFAULT_VARIANT:=1
+ TITLE+= (library)
+ DEPENDS+=+PACKAGE_libunbound_dnscrypt:libsodium \
+ +PACKAGE_libunbound_ipset:libmnl \
+ +PACKAGE_libunbound_libevent:libevent2 \
+ +PACKAGE_libunbound_libpthread:libpthread \
+ +PACKAGE_libunbound_pythonmodule:python3-base
endef
-define Package/libunbound-light/description
- This package contains the Unbound shared library with basic includes
- necessary to meet the needs of UCI/LuCI configuration options.
-endef
-
-define Package/libunbound-heavy
- $(call Package/unbound/Default)
- SECTION:=libs
- CATEGORY:=Libraries
- SUBMENU:=Networking
- TITLE+= (library, heavy traffic)
- URL:=https://nlnetlabs.nl/documentation/unbound/howto-optimise
- DEPENDS+= +libpthread +libevent2 +libevent2-pthreads +libmnl
- VARIANT:=heavy
- PROVIDES:=libunbound
-endef
-
-define Package/libunbound-heavy/description
- This package contains the Unbound shared library including 'libevent' and
- 'libpthread' to better handle large networks with heavy query loads. It
- also offers ipset support.
+define Package/libunbound/description
+ This package contains the Unbound library including 'libevent', 'libmnl', and
+ 'libpthread' to better handle large networks with heavy query loads. Options
+ are available to custom trim Unbound for smaller targets.
endef
define Package/unbound-anchor
This package contains the Unbound DNS lookup utility.
endef
+define Package/libunbound/config
+ if PACKAGE_libunbound
+ config PACKAGE_libunbound_dnscrypt
+ bool "Build with DNSCRYPT support."
+ default n
+ config PACKAGE_libunbound_ipset
+ bool "Build with IPSET (libmnl) support."
+ default y
+ config PACKAGE_libunbound_libevent
+ bool "Build with expanded network resource (libevent) support."
+ default y
+ config PACKAGE_libunbound_libpthread
+ bool "Build with POSIX threading (libpthread) support."
+ default y
+ config PACKAGE_libunbound_pythonmodule
+ bool "Build with PYTHON module for prototyping and data analysis."
+ default n
+ config PACKAGE_libunbound_subnet
+ bool "Build with SUBNET cache module support."
+ default n
+ endif
+endef
+
CONFIGURE_ARGS += \
--disable-dsa \
--disable-gost \
--with-user=unbound \
--with-run-dir=/var/lib/unbound \
--with-conf-file=/var/lib/unbound/unbound.conf \
- --with-pidfile=/var/run/unbound.pid
-
-ifeq ($(BUILD_VARIANT),heavy)
- CONFIGURE_ARGS += \
- --enable-ipset \
- --with-pthreads \
- --with-libevent="$(STAGING_DIR)/usr" \
- --with-libmnl="$(STAGING_DIR)/usr" \
- --enable-event-api
-else
- CONFIGURE_ARGS += \
- --without-pthreads \
- --without-solaris-threads \
- --without-libevent
-endif
+ --with-pidfile=/var/run/unbound.pid \
+ $(if $(CONFIG_PACKAGE_libunbound_dnscrypt), \
+ --enable-dnscrypt --with-libsodium="$(STAGING_DIR)/usr",) \
+ $(if $(CONFIG_PACKAGE_libunbound_ipset), \
+ --enable-ipset --with-libmnl="$(STAGING_DIR)/usr",) \
+ $(if $(CONFIG_PACKAGE_libunbound_libevent), \
+ --enable-event-api --with-libevent="$(STAGING_DIR)/usr",--without-libevent) \
+ $(if $(CONFIG_PACKAGE_libunbound_libpthread), \
+ --with-pthreads,--without-pthreads --without-solaris-threads) \
+ $(if $(CONFIG_PACKAGE_libunbound_python),--with-pythonmodule,) \
+ $(if $(CONFIG_PACKAGE_libunbound_subnet),--enable-subnet,) \
define Package/unbound-daemon/conffiles
/etc/config/unbound
/etc/unbound/unbound_srv.conf
endef
-Package/unbound-daemon-heavy/conffiles = $(Package/unbound-daemon/conffiles)
-
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libunbound.{so*,a,la} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/unbound.h $(1)/usr/include/
-ifeq ($(BUILD_VARIANT),heavy)
+ifneq ($(CONFIG_PACKAGE_libunbound_libevent),)
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/unbound-event.h $(1)/usr/include/
endif
endef
$(INSTALL_DATA) ./files/unbound.sh $(1)/usr/lib/unbound/unbound.sh
endef
-Package/unbound-daemon-heavy/install = $(Package/unbound-daemon/install)
-
-define Package/libunbound-light/install
+define Package/libunbound/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libunbound.so.* $(1)/usr/lib/
endef
-Package/libunbound-heavy/install = $(Package/libunbound-light/install)
-
define Package/unbound-anchor/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/unbound-anchor $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,unbound-daemon))
-$(eval $(call BuildPackage,unbound-daemon-heavy))
-$(eval $(call BuildPackage,libunbound-light))
-$(eval $(call BuildPackage,libunbound-heavy))
+$(eval $(call BuildPackage,libunbound))
$(eval $(call BuildPackage,unbound-anchor))
$(eval $(call BuildPackage,unbound-checkconf))
$(eval $(call BuildPackage,unbound-control))
list zone_name '.'
```
+## Optional Compile Switches
+Unbound can be changed by toggling switches within `make menuconfig` Libraries/Network/libunbound. Disable libevent, libpthread, and ipset to attempt to gain performance and size on small single core targets. These downgrade options are well tested, but they are not needed unless Unbound will not fit. Take care before enabling subnetcache, dnscrypt, and python options. These enhancements are not fully tested within OpenWrt and python is a large dependency. These enhancements are default off and they do not have UCI. You will need to use the files `/etc/unbound/unbound_srv.conf` and `/etc/unbound/unbound_ext.conf` to configure these modules. The `server:` clause line `module: subnetcache validator python iterator` will be filled out if the modules are compiled in.
+
+Note: if you use python, then you will need to manual configure and you cannot use chroot. The scripts are not yet enhanced enough to set up the directory binding.
+
## Complete List of UCI Options
**/etc/config/unbound**:
```
Level. Same as previous option only this applies to the WAN. WAN are
inferred by a UCI `config dhcp` entry that contains the 'option ignore 1'.
+ option dns_assist 'none'
+ Program Name. Use DNS helpers found on local host and match to their UCI.
+ Only program 'ipset-dns' is supported so far. NSD and Bind might be useful
+ but they don't have UCI to parse.
+
option dns64 '0'
Boolean. Enable DNS64 through Unbound in order to bridge networks that are
IPV6 only and IPV4 only (see RFC6052).
UB_DHCP_CONF=$UB_VARDIR/dhcp.conf
UB_ZONE_CONF=$UB_VARDIR/zone.conf.tmp
UB_CTRL_CONF=$UB_VARDIR/ctrl.conf.tmp
+UB_ASSIST_CONF=$UB_VARDIR/assist.conf.tmp
UB_SRVMASQ_CONF=$UB_VARDIR/dnsmasq_srv.conf.tmp
UB_EXTMASQ_CONF=$UB_VARDIR/dnsmasq_ext.conf.tmp
UB_SRV_CONF=$UB_VARDIR/unbound_srv.conf
UB_D_CONTROL=0
UB_D_DOMAIN_TYPE=static
UB_D_DHCP_LINK=none
+UB_D_DNS_ASSIST=none
UB_D_EXTRA_DNS=0
UB_D_LAN_FQDN=0
UB_D_PRIV_BLCK=1
##############################################################################
+unbound_assistant() {
+ local port=53000
+
+ case "$UB_D_DNS_ASSIST" in
+ ipset-dns)
+ port=$( uci_get ipset-dns.@ipset-dns[0].port )
+
+ if [ ! -f "$UB_ASSIST_CONF" ] \
+ && [ $port -gt 0 ] && [ $port -lt 65535 ] ; then
+ {
+ echo "# $UB_ASSIST_CONF generated by UCI $( date -Is )"
+ echo "forward-zone:"
+ echo " name: ."
+ echo " forward-addr: 127.0.0.1@$port"
+ echo " forward-first: no"
+ } > $UB_ASSIST_CONF
+ fi
+ ;;
+
+ nsd)
+ echo "# Sorry, NSD does not have UCI to read and link." >> $UB_ASSIST_CONF
+ ;;
+
+ bind)
+ echo "# Sorry, Bind does not have UCI to read and link." >> $UB_ASSIST_CONF
+ ;;
+ esac
+}
+
+##############################################################################
+
unbound_zone() {
local cfg=$1
local servers_ip=""
##############################################################################
unbound_conf() {
- local rt_mem rt_conn rt_buff modulestring domain ifsubnet
+ local rt_mem rt_conn rt_buff modulestring domain ifsubnet moduleopts
{
# server: for this whole function
fi
+ if [ "$UB_B_IF_AUTO" -gt 0 ] ; then
+ echo " interface-automatic: yes" >> $UB_CORE_CONF
+ fi
+
+
+ case "$UB_D_DNS_ASSIST" in
+ bind|ipset-dns|nsd)
+ echo " do-not-query-localhost: no" >> $UB_CORE_CONF
+ ;;
+ esac
+
+
case "$UB_D_PROTOCOL" in
ip4_only)
{
esac
- if [ "$UB_B_IF_AUTO" -gt 0 ] ; then
- echo " interface-automatic: yes" >> $UB_CORE_CONF
- fi
-
-
case "$UB_D_RESOURCE" in
# Tiny - Unbound's recommended cheap hardware config
tiny) rt_mem=1 ; rt_conn=2 ; rt_buff=1 ;;
# Assembly of module-config: options is tricky; order matters
+ moduleopts="$( /usr/sbin/unbound -V )"
modulestring="iterator"
+ case $moduleopts in
+ *with-python*)
+ modulestring="python $modulestring"
+ ;;
+ esac
+
+
if [ "$UB_B_DNSSEC" -gt 0 ] ; then
if [ "$UB_B_NTP_BOOT" -gt 0 ] ; then
# DNSSEC chicken and egg with getting NTP time
fi
+ case $moduleopts in
+ *enable-subnet*)
+ modulestring="subnetcache $modulestring"
+ ;;
+ esac
+
+
if [ "$UB_B_DNS64" -gt 0 ] ; then
echo " dns64-prefix: $UB_IP_DNS64" >> $UB_CORE_CONF
config_get UB_D_CONTROL "$cfg" unbound_control 0
config_get UB_D_DOMAIN_TYPE "$cfg" domain_type static
config_get UB_D_DHCP_LINK "$cfg" dhcp_link none
+ config_get UB_D_DNS_ASSIST "$cfg" dns_assist none
config_get UB_D_EXTRA_DNS "$cfg" add_extra_dns 0
config_get UB_D_LAN_FQDN "$cfg" add_local_fqdn 0
config_get UB_D_PRIV_BLCK "$cfg" rebind_protection 1
fi
+ if [ "$UB_D_DNS_ASSIST" = "none" ] ; then
+ UB_D_DNS_ASSIST=none
+
+ elif [ ! -x /usr/sbin/bind ] || [ ! -x /etc/init.d/bind ] \
+ || [ ! -x /usr/sbin/nsd ] || [ ! -x /etc/init.d/nsd ] \
+ || [ ! -x /usr/sbin/ipset-dns ] || [ ! -x /etc/init.d/ipset-dns ] ; then
+ UB_D_DNS_ASSIST=none
+ fi
+
+
if [ "$UB_D_DHCP_LINK" = "dnsmasq" ] ; then
if [ ! -x /usr/sbin/dnsmasq ] || [ ! -x /etc/init.d/dnsmasq ] ; then
UB_D_DHCP_LINK=none
fi
+ if [ -f "$UB_ASSIST_CONF" ] ; then
+ # UCI found link to DNS helpers
+ cat $UB_ASSIST_CONF >> $UB_TOTAL_CONF
+ rm $UB_ASSIST_CONF
+ fi
+
+
if [ -f "$UB_EXT_CONF" ] ; then
{
# Pull your own extend feature clauses here
unbound_hostname
# control:
unbound_control
+ # assistants
+ unbound_assistant
# dnsmasq
dnsmasq_link
# merge
PKG_NAME:=portaudio
PKG_VERSION:=190600_20161030
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=pa_stable_v$(PKG_VERSION).tgz
PKG_SOURCE_URL:=http://www.portaudio.com/archives/
PKG_HASH:=f5a21d7dcd6ee84397446fa1fa1a0675bb2e8a4a6dceb4305a8404698d8d1513
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+PKG_MAINTAINER:=
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE.txt
-PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org>
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
-PKG_INSTALL:=1
+CMAKE_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/portaudio
SECTION:=sound
different platforms. Many applications use PortAudio for Audio I/O.
endef
-CONFIGURE_ARGS+= \
- --with-alsa \
- --without-asihpi \
- --without-jack \
- --with-oss \
-
-EXTRA_CFLAGS += $(TARGET_CPPFLAGS)
-
-define Build/Compile
- $(call Build/Compile/Default,lib/libportaudio.la)
-endef
-
-define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/include/portaudio.h \
- $(PKG_INSTALL_DIR)/usr/include/pa_linux_alsa.h \
- $(1)/usr/include/
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/lib/libportaudio.{a,so*} \
- $(1)/usr/lib/
- $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/portaudio-*.pc \
- $(1)/usr/lib/pkgconfig/
-endef
-
define Package/portaudio/install
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libportaudio.so.* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libportaudio.so $(1)/usr/lib/
endef
$(eval $(call BuildPackage,portaudio))
include $(TOPDIR)/rules.mk
PKG_NAME:=upmpdcli
-PKG_VERSION:=1.4.9
+PKG_VERSION:=1.4.12
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads
-PKG_HASH:=ace5a3166891109d2a874f21306986857ee2620230a77751ed6209f7b5cc9c58
+PKG_HASH:=bffc78c140ad688987894ea5a1e162e6dcbc7dcae7d2cc322a894f5ea2a2f53b
PKG_MAINTAINER:=Petko Bordjukov <bordjukov@gmail.com>
PKG_LICENSE:=LGPL-2.1-or-later
include $(TOPDIR)/rules.mk
PKG_NAME:=cgroupfs-mount
-PKG_VERSION:=1.4
-PKG_RELEASE:=2
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://codeload.github.com/tianon/cgroupfs-mount/tar.gz/${PKG_VERSION}?
-PKG_HASH:=d6c8aff7af59c7d0082ee3018c97f73b0421e81a49bb28ad9f66a36da5cd6ec7
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/tianon/$(PKG_NAME)
+PKG_SOURCE_VERSION:=0549428171605eae3097a3e21bf7664845eac9e8
+PKG_SOURCE_DATE:=2020-06-26
+PKG_MIRROR_HASH:=ca217ffff5aa938149d2d8adfe15d800903d2fec180acb2400c36d62905988ea
PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
include $(TOPDIR)/rules.mk
PKG_NAME:=prometheus-node-exporter-lua
-PKG_VERSION:=2020.02.03
-PKG_RELEASE:=2
+PKG_VERSION:=2020.06.26
+PKG_RELEASE:=1
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
PKG_LICENSE:=Apache-2.0
--- /dev/null
+local ubus = require "ubus"
+
+local function scrape()
+ local metric_dawn_ap_channel_utilization_ratio = metric("dawn_ap_channel_utilization_ratio","gauge")
+ local metric_dawn_ap_stations_total = metric("dawn_ap_stations_total","gauge")
+ local metric_dawn_station_signal_dbm = metric("dawn_station_signal_dbm","gauge")
+
+ local u = ubus.connect()
+ local network = u:call("dawn", "get_network", {})
+
+ for ssid, ssid_table in pairs(network) do
+ for ap, ap_table in pairs(ssid_table) do
+
+ if (ap_table['local'] == true) then
+
+ local ht_support = (ap_table['ht_support'] == true) and 1 or 0
+ local vht_support = (ap_table['vht_support'] == true) and 1 or 0
+
+ local labels = {
+ ssid = ssid,
+ bssid = ap,
+ freq = ap_table['freq'],
+ ht_support = ht_support,
+ vht_support = vht_support,
+ neighbor_report = ap_table['neighbor_report'],
+ }
+ metric_dawn_ap_channel_utilization_ratio(labels, ap_table['channel_utilization'] / 255)
+ metric_dawn_ap_stations_total(labels, ap_table['num_sta'])
+
+ for client, client_table in pairs(ap_table) do
+ if (type(client_table) == "table") then
+
+ local client_ht_support = (client_table['ht'] == true) and 1 or 0
+ local client_vht_support = (client_table['vht'] == true) and 1 or 0
+ local client_signal = client_table['signal'] or -255
+
+ local labels = {
+ ssid = ssid,
+ bssid = ap,
+ mac = client,
+ ht_support = client_ht_support,
+ vht_support = client_vht_support,
+ }
+ metric_dawn_station_signal_dbm(labels, client_signal)
+ end
+ end
+ end
+ end
+ end
+end
+
+return { scrape = scrape }
\ No newline at end of file
GO_PKG_BUILD_PKG:=github.com/syncthing/syncthing/cmd/syncthing/
GO_PKG_INSTALL_EXTRA:=^gui/
+GO_PKG_LDFLAGS_X:=\
+ github.com/syncthing/syncthing/lib/build.Version=v$(PKG_VERSION) \
+ github.com/syncthing/syncthing/lib/build.Stamp=$(SOURCE_DATE_EPOCH) \
+ github.com/syncthing/syncthing/lib/build.User=openwrt \
+ github.com/syncthing/syncthing/lib/build.Host=openwrt \
+ github.com/syncthing/syncthing/lib/build.Program=syncthing
+
include $(INCLUDE_DIR)/package.mk
include ../../lang/golang/golang-package.mk
USERID:=syncthing:syncthing
endef
-GO_PKG_LDFLAGS_X:=\
- github.com/syncthing/syncthing/lib/build.Version=v$(PKG_VERSION) \
- github.com/syncthing/syncthing/lib/build.Stamp=$(SOURCE_DATE_EPOCH) \
- github.com/syncthing/syncthing/lib/build.User=openwrt \
- github.com/syncthing/syncthing/lib/build.Host=openwrt \
- github.com/syncthing/syncthing/lib/build.Program=syncthing
-
define Build/Compile
$(call GoPackage/Build/Compile,-tags noupgrade)
endef
PKG_NAME:=xfsprogs
PKG_VERSION:=5.5.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/fs/xfs/xfsprogs
--- a/io/mmap.c
+++ b/io/mmap.c
-@@ -11,6 +11,10 @@
+@@ -11,6 +11,14 @@
#include "init.h"
#include "io.h"
+#ifndef MAP_SYNC
+#define MAP_SYNC 0
+#endif
++
++#ifndef MAP_SHARED_VALIDATE
++#define MAP_SHARED_VALIDATE 0x03
++#endif
+
static cmdinfo_t mmap_cmd;
static cmdinfo_t mread_cmd;