Merge branch 'openwrt:master' into master

This commit is contained in:
Hayzam Sherif 2023-04-08 11:30:38 +05:30 committed by GitHub
commit 0d1bd4ff77
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 225 additions and 959 deletions

View file

@ -7,11 +7,11 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=pillow PKG_NAME:=pillow
PKG_VERSION:=9.4.0 PKG_VERSION:=9.5.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PYPI_NAME:=Pillow PYPI_NAME:=Pillow
PKG_HASH:=a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e PKG_HASH:=bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com> PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=HPND PKG_LICENSE:=HPND

View file

@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=python-pytz PKG_NAME:=python-pytz
PKG_VERSION:=2022.7.1 PKG_VERSION:=2023.3
PKG_RELEASE:=1 PKG_RELEASE:=1
PYPI_NAME:=pytz PYPI_NAME:=pytz
PKG_HASH:=01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0 PKG_HASH:=1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com> PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=MIT PKG_LICENSE:=MIT

View file

@ -9,19 +9,6 @@ if PACKAGE_libopenssl-afalg_sync
This increases memory usage, and has problems when process fork This increases memory usage, and has problems when process fork
with open digest contexts (openssh will not work because of it). with open digest contexts (openssh will not work because of it).
config AFALG_FALLBACK
bool "Enable software fallback feature"
default y
help
Use software to fulfill small requests. Using AF_ALG adds latency,
which makes it slow to perform small requests. Enabling this
option overcomes this problem, at the cost of increased memory
and CPU usage. This is a new, experimental feature; if you
encounter any problem, this is the first option to disable.
The fallback will fail if you enable this engine alongside
devcrypto, so you'll not be able to install both at the same
time if this option is enabled.
config AFALG_UPDATE_CTR_IV config AFALG_UPDATE_CTR_IV
bool "Don't rely on kernel to update CTR IV" bool "Don't rely on kernel to update CTR IV"
default y default y

View file

@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=afalg_engine PKG_NAME:=afalg_engine
PKG_VERSION:=1.2.0-beta.1 PKG_VERSION:=1.2.0-beta.1
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/cotequeiroz/afalg_engine/archive/v$(PKG_VERSION) PKG_SOURCE_URL:=https://github.com/cotequeiroz/afalg_engine/archive/v$(PKG_VERSION)
@ -25,7 +25,7 @@ PKG_CONFIG_DEPENDS:= \
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk include $(INCLUDE_DIR)/cmake.mk
include $(INCLUDE_DIR)/openssl-engine.mk include $(INCLUDE_DIR)/openssl-module.mk
$(eval $(call Package/openssl/add-engine,afalg,libopenssl-afalg_sync)) $(eval $(call Package/openssl/add-engine,afalg,libopenssl-afalg_sync))
define Package/libopenssl-afalg_sync define Package/libopenssl-afalg_sync
@ -33,7 +33,7 @@ define Package/libopenssl-afalg_sync
TITLE:=AF_ALG engine using sync crypto API TITLE:=AF_ALG engine using sync crypto API
URL:=https://github.com/cotequeiroz/afalg_engine URL:=https://github.com/cotequeiroz/afalg_engine
DEPENDS += @!OPENSSL_ENGINE_BUILTIN_AFALG +kmod-crypto-user DEPENDS += @!OPENSSL_ENGINE_BUILTIN_AFALG +kmod-crypto-user
CONFLICTS:=libopenssl-afalg $(if $(CONFIG_AFALG_FALLBACK),libopenssl-devcrypto) CONFLICTS:=libopenssl-afalg
MENU:=1 MENU:=1
endef endef
@ -54,7 +54,6 @@ endef
CMAKE_OPTIONS += \ CMAKE_OPTIONS += \
-DOPENSSL_ENGINES_DIR=/usr/lib/$(ENGINES_DIR) \ -DOPENSSL_ENGINES_DIR=/usr/lib/$(ENGINES_DIR) \
-DDIGESTS=$(if $(CONFIG_AFALG_DIGESTS),ON,OFF) \ -DDIGESTS=$(if $(CONFIG_AFALG_DIGESTS),ON,OFF) \
-DFALLBACK=$(if $(CONFIG_AFALG_FALLBACK),ON,OFF) \
-DUPDATE_CTR_IV=$(if $(CONFIG_AFALG_UPDATE_CTR_IV),ON,OFF) \ -DUPDATE_CTR_IV=$(if $(CONFIG_AFALG_UPDATE_CTR_IV),ON,OFF) \
-DUSE_ZERO_COPY=$(if $(CONFIG_AFALG_ZERO_COPY),ON,OFF) -DUSE_ZERO_COPY=$(if $(CONFIG_AFALG_ZERO_COPY),ON,OFF)

View file

@ -1,4 +1,4 @@
[afalg] [afalg_sect]
# Leave this alone and configure algorithms with CIPERS/DIGESTS below # Leave this alone and configure algorithms with CIPERS/DIGESTS below
default_algorithms = ALL default_algorithms = ALL

View file

@ -1,19 +1,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/openssl-engine.mk include $(INCLUDE_DIR)/openssl-module.mk
PKG_NAME:=gost_engine PKG_NAME:=gost_engine
ifeq ($(ENGINES_DIR),engines-1.1) PKG_VERSION:=3.0.1
PKG_VERSION:=1.1.0.3 PKG_HASH:=bfeac85883724cfbe0ecc6d942ac0524b908143e019ab3d3b6abe47a3466a628
PKG_HASH:=fff725052e82c9adb5b738729b30141f61ac91fa457a4f4b5de18b8b24092f75 PKG_LICENSE:=Apache-2.0
PKG_LICENSE:=OpenSSL PATCH_DIR=./patches-3
PATCH_DIR=./patches-1.1 PKG_RELEASE:=8
else
PKG_VERSION:=3.0.1
PKG_HASH:=bfeac85883724cfbe0ecc6d942ac0524b908143e019ab3d3b6abe47a3466a628
PKG_LICENSE:=Apache-2.0
PATCH_DIR=./patches-3
endif
PKG_RELEASE:=7
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/gost-engine/engine/archive/v$(PKG_VERSION) PKG_SOURCE_URL:=https://github.com/gost-engine/engine/archive/v$(PKG_VERSION)

View file

@ -1,4 +1,4 @@
[gost] [gost_sect]
default_algorithms = ALL default_algorithms = ALL
# CRYPT_PARAMS: OID of default GOST 28147-89 parameters It allows the # CRYPT_PARAMS: OID of default GOST 28147-89 parameters It allows the
# user to choose between different parameter sets of symmetric cipher # user to choose between different parameter sets of symmetric cipher

View file

@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=OpenBLAS PKG_NAME:=OpenBLAS
PKG_VERSION:=0.3.21 PKG_VERSION:=0.3.23
PKG_RELEASE:=2 PKG_RELEASE:=1
PKG_SOURCE:=OpenBLAS-$(PKG_VERSION).tar.gz PKG_SOURCE:=OpenBLAS-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/xianyi/OpenBLAS/releases/download/v$(PKG_VERSION)/ PKG_SOURCE_URL:=https://github.com/xianyi/OpenBLAS/releases/download/v$(PKG_VERSION)/
PKG_HASH:=f36ba3d7a60e7c8bcc54cd9aaa9b1223dd42eaf02c811791c37e8ca707c241ca PKG_HASH:=5d9491d07168a5d00116cdc068a40022c3455bf9293c7cb86a65b1054d7e5114
PKG_LICENSE:=BSD 3-Clause PKG_LICENSE:=BSD 3-Clause
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com> PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
@ -27,6 +27,7 @@ define Package/openblas
DEPENDS:= \ DEPENDS:= \
@!arc \ @!arc \
@!powerpc \ @!powerpc \
@!SOFT_FLOAT \
+INSTALL_GFORTRAN:libgfortran +INSTALL_GFORTRAN:libgfortran
endef endef

View file

@ -7,8 +7,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=banip PKG_NAME:=banip
PKG_VERSION:=0.8.2 PKG_VERSION:=0.8.3
PKG_RELEASE:=6 PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE:=GPL-3.0-or-later
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org> PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>

View file

@ -75,7 +75,7 @@ IP address blocking is commonly used to protect against brute force attacks, pre
* Provides a set search engine for certain IPs * Provides a set search engine for certain IPs
* Feed parsing by fast & flexible regex rulesets * Feed parsing by fast & flexible regex rulesets
* Minimal status & error logging to syslog, enable debug logging to receive more output * Minimal status & error logging to syslog, enable debug logging to receive more output
* Procd based init system support (start/stop/restart/reload/status/report/search/survey) * Procd based init system support (start/stop/restart/reload/status/report/search/survey/lookup)
* Procd network interface trigger support * Procd network interface trigger support
* Ability to add new banIP feeds on your own * Ability to add new banIP feeds on your own
@ -114,6 +114,7 @@ Available commands:
report [text|json|mail] Print banIP related set statistics report [text|json|mail] Print banIP related set statistics
search [<IPv4 address>|<IPv6 address>] Check if an element exists in a banIP set search [<IPv4 address>|<IPv6 address>] Check if an element exists in a banIP set
survey [<set name>] List all elements of a given banIP set survey [<set name>] List all elements of a given banIP set
lookup Lookup the IPs of domain names in the local lists and update them
running Check if service is running running Check if service is running
status Service status status Service status
trace Start with syscall trace trace Start with syscall trace
@ -226,18 +227,16 @@ Available commands:
~# /etc/init.d/banip status ~# /etc/init.d/banip status
::: banIP runtime information ::: banIP runtime information
+ status : active (nft: ✔, monitor: ✔) + status : active (nft: ✔, monitor: ✔)
+ version : 0.8.2-2 + version : 0.8.3-1
+ element_count : 211397 + element_count : 281161
+ active_feeds : allowlistvMAC, allowlistv4, allowlistv6, adawayv4, adawayv6, adguardv4, adguardtrackersv4, adguardv6, adguardtrackersv + active_feeds : allowlistvMAC, allowlistv6, allowlistv4, adawayv4, adguardtrackersv4, adawayv6, adguardv6, adguardv4, adguardtrackersv6, antipopadsv6, antipopadsv4, cinsscorev4, deblv4, countryv6, countryv4, deblv6, dohv4, dohv6, iblockadsv4, firehol1v4, oisdbigv4, yoyov6, threatviewv4, yoyov4, oisdbigv6, blocklistvMAC, blocklistv4, blocklistv6
6, antipopadsv4, antipopadsv6, cinsscorev4, countryv6, countryv4, deblv4, deblv6, dohv4, dohv6, firehol1v4, oisdsmallv + active_devices : br-wan ::: wan, wan6
6, oisdsmallv4, stevenblackv6, stevenblackv4, webclientv4, blocklistvMAC, blocklistv4, blocklistv6 + active_subnets : 91.64.169.252/24, 2a02:710c:0:60:958b:3bd0:9e14:abb/128
+ active_devices : eth2 ::: wan, wan6
+ active_subnets : 91.64.148.211/24, 2b02:710c:0:80:e442:4b0c:637d:1d33/128
+ nft_info : priority: -200, policy: memory, loglevel: warn, expiry: - + nft_info : priority: -200, policy: memory, loglevel: warn, expiry: -
+ run_info : base: /mnt/data/banIP, backup: /mnt/data/banIP/backup, report: /mnt/data/banIP/report, feed: /etc/banip/banip.feeds + run_info : base: /mnt/data/banIP, backup: /mnt/data/banIP/backup, report: /mnt/data/banIP/report, feed: /etc/banip/banip.feeds
+ run_flags : auto: ✔, proto (4/6): ✔/✔, log (wan-inp/wan-fwd/lan-fwd): ✔/✔/✔, dedup: ✔, split: ✘, allowed only: ✘ + run_flags : auto: ✔, proto (4/6): ✔/✔, log (wan-inp/wan-fwd/lan-fwd): ✔/✔/✔, dedup: ✔, split: ✘, allowed only: ✘
+ last_run : action: restart, duration: 0m 55s, date: 2023-03-10 19:33:08 + last_run : action: reload, duration: 1m 0s, date: 2023-04-06 12:34:10
+ system_info : cores: 2, memory: 1830, device: Turris Omnia, OpenWrt SNAPSHOT r22248-bf055fcdca + system_info : cores: 4, memory: 1822, device: Bananapi BPI-R3, OpenWrt SNAPSHOT r22498-75f7e2d10b
``` ```
**banIP search information** **banIP search information**
@ -288,15 +287,22 @@ list ban_logterm 'SecurityEvent=\"InvalidAccountID\".*RemoteAddress='
**allow-/blocklist handling** **allow-/blocklist handling**
banIP supports local allow and block lists (IPv4, IPv6, CIDR notation or domain names), located in /etc/banip/banip.allowlist and /etc/banip/banip.blocklist. banIP supports local allow and block lists (IPv4, IPv6, CIDR notation or domain names), located in /etc/banip/banip.allowlist and /etc/banip/banip.blocklist.
Unsuccessful login attempts or suspicious requests will be tracked and added to the local blocklist (see the 'ban\_autoblocklist' option). The blocklist behaviour can be further tweaked with the 'ban\_nftexpiry' option. Unsuccessful login attempts or suspicious requests will be tracked and added to the local blocklist (see the 'ban\_autoblocklist' option). The blocklist behaviour can be further tweaked with the 'ban\_nftexpiry' option.
Furthermore the uplink subnet will be added to local allowlist (see 'ban\_autowallowlist' option). Furthermore the uplink subnet will be added to local allowlist (see 'ban\_autoallowlist' option).
Both lists also accept domain names as input to allow IP filtering based on these names. The corresponding IPs (IPv4 & IPv6) will be extracted in a detached background process and added to the sets. Both lists also accept domain names as input to allow IP filtering based on these names. The corresponding IPs (IPv4 & IPv6) will be extracted and added to the sets. You can also start the domain lookup separately via /etc/init.d/banip lookup at any time.
**allowlist-only mode** **allowlist-only mode**
banIP supports an "allowlist only" mode. This option restricts the internet access from/to a small number of secure websites/IPs, and block access from/to the rest of the internet. All IPs and Domains which are _not_ listed in the allowlist are blocked. banIP supports an "allowlist only" mode. This option restricts the internet access from/to a small number of secure websites/IPs, and block access from/to the rest of the internet. All IPs and Domains which are _not_ listed in the allowlist are blocked.
**redirect Asterisk security logs to lodg/logread** **redirect Asterisk security logs to lodg/logread**
banIP only supports logfile scanning via logread, so to monitor attacks on Asterisk, its security log must be available via logread. To do this, edit '/etc/asterisk/logger.conf' and add the line 'syslog.local0 = security', then run 'asterisk -rx reload logger' to update the running Asterisk configuration. banIP only supports logfile scanning via logread, so to monitor attacks on Asterisk, its security log must be available via logread. To do this, edit '/etc/asterisk/logger.conf' and add the line 'syslog.local0 = security', then run 'asterisk -rx reload logger' to update the running Asterisk configuration.
**send status E-Mails and update the banIP lists via cron job**
For a regular, automatic status mailing and update of the used lists on a daily basis set up a cron job, e.g.
```
55 03 * * * /etc/init.d/banip report mail
00 04 * * * /etc/init.d/banip reload
```
**tweaks for low memory systems** **tweaks for low memory systems**
nftables supports the atomic loading of rules/sets/members, which is cool but unfortunately is also very memory intensive. To reduce the memory pressure on low memory systems (i.e. those with 256-512Mb RAM), you should optimize your configuration with the following options: nftables supports the atomic loading of rules/sets/members, which is cool but unfortunately is also very memory intensive. To reduce the memory pressure on low memory systems (i.e. those with 256-512Mb RAM), you should optimize your configuration with the following options:

View file

@ -78,6 +78,7 @@ ban_debug="0"
f_system() { f_system() {
local cpu core local cpu core
[ -z "${ban_dev}" ] && ban_cores="$(uci_get banip global ban_cores)"
ban_memory="$("${ban_awkcmd}" '/^MemAvailable/{printf "%s",int($2/1000)}' "/proc/meminfo" 2>/dev/null)" ban_memory="$("${ban_awkcmd}" '/^MemAvailable/{printf "%s",int($2/1000)}' "/proc/meminfo" 2>/dev/null)"
ban_ver="$(${ban_ubuscmd} -S call rpc-sys packagelist '{ "all": true }' 2>/dev/null | jsonfilter -ql1 -e '@.packages.banip')" ban_ver="$(${ban_ubuscmd} -S call rpc-sys packagelist '{ "all": true }' 2>/dev/null | jsonfilter -ql1 -e '@.packages.banip')"
ban_sysver="$(${ban_ubuscmd} -S call system board 2>/dev/null | jsonfilter -ql1 -e '@.model' -e '@.release.description' | ban_sysver="$(${ban_ubuscmd} -S call system board 2>/dev/null | jsonfilter -ql1 -e '@.model' -e '@.release.description' |
@ -426,7 +427,7 @@ f_getsub() {
f_getelements() { f_getelements() {
local file="${1}" local file="${1}"
[ -s "${file}" ] && printf "%s" "elements={ $(cat "${file}") };" [ -s "${file}" ] && printf "%s" "elements={ $(cat "${file}" 2>/dev/null) };"
} }
# build initial nft file with base table, chains and rules # build initial nft file with base table, chains and rules
@ -975,8 +976,6 @@ f_getstatus() {
done done
json_select ".." json_select ".."
fi fi
value="$(printf "%s" "${value}" |
awk '{NR=1;max=118;if(length($0)>max+1)while($0){if(NR==1){print substr($0,1,max)}else{printf"%-24s%s\n","",substr($0,1,max)}{$0=substr($0,max+1);NR=NR+1}}else print}')"
printf " + %-17s : %s\n" "${key}" "${value:-"-"}" printf " + %-17s : %s\n" "${key}" "${value:-"-"}"
done done
else else
@ -987,7 +986,7 @@ f_getstatus() {
# domain lookup # domain lookup
# #
f_lookup() { f_lookup() {
local cnt list domain lookup ip start_time end_time duration cnt_domain="0" cnt_ip="0" feed="${1}" local cnt list domain lookup ip elementsv4 elementsv6 start_time end_time duration cnt_domain="0" cnt_ip="0" feed="${1}"
start_time="$(date "+%s")" start_time="$(date "+%s")"
if [ "${feed}" = "allowlist" ]; then if [ "${feed}" = "allowlist" ]; then
@ -1004,32 +1003,36 @@ f_lookup() {
else else
if { [ "${feed}" = "allowlist" ] && ! "${ban_grepcmd}" -q "^${ip}" "${ban_allowlist}"; } || if { [ "${feed}" = "allowlist" ] && ! "${ban_grepcmd}" -q "^${ip}" "${ban_allowlist}"; } ||
{ [ "${feed}" = "blocklist" ] && ! "${ban_grepcmd}" -q "^${ip}" "${ban_blocklist}"; }; then { [ "${feed}" = "blocklist" ] && ! "${ban_grepcmd}" -q "^${ip}" "${ban_blocklist}"; }; then
cnt_ip="$((cnt_ip + 1))"
if [ "${ip##*:}" = "${ip}" ]; then if [ "${ip##*:}" = "${ip}" ]; then
if ! "${ban_nftcmd}" add element inet banIP "${feed}v4" "{ ${ip} }" >/dev/null 2>&1; then elementsv4="${elementsv4} ${ip},"
f_log "info" "failed to add IP '${ip}' (${domain}) to ${feed}v4 set"
continue
fi
else else
if ! "${ban_nftcmd}" add element inet banIP "${feed}v6" "{ ${ip} }" >/dev/null 2>&1; then elementsv6="${elementsv6} ${ip},"
f_log "info" "failed to add IP '${ip}' (${domain}) to ${feed}v6 set"
continue
fi
fi fi
if [ "${feed}" = "allowlist" ] && [ "${ban_autoallowlist}" = "1" ]; then if [ "${feed}" = "allowlist" ] && [ "${ban_autoallowlist}" = "1" ]; then
printf "%-42s%s\n" "${ip}" "# '${domain}' added on $(date "+%Y-%m-%d %H:%M:%S")" >>"${ban_allowlist}" printf "%-42s%s\n" "${ip}" "# '${domain}' added on $(date "+%Y-%m-%d %H:%M:%S")" >>"${ban_allowlist}"
elif [ "${feed}" = "blocklist" ] && [ "${ban_autoblocklist}" = "1" ]; then elif [ "${feed}" = "blocklist" ] && [ "${ban_autoblocklist}" = "1" ]; then
printf "%-42s%s\n" "${ip}" "# '${domain}' added on $(date "+%Y-%m-%d %H:%M:%S")" >>"${ban_blocklist}" printf "%-42s%s\n" "${ip}" "# '${domain}' added on $(date "+%Y-%m-%d %H:%M:%S")" >>"${ban_blocklist}"
fi fi
cnt_ip="$((cnt_ip + 1))"
fi fi
fi fi
done done
cnt_domain="$((cnt_domain + 1))" cnt_domain="$((cnt_domain + 1))"
done done
if [ -n "${elementsv4}" ]; then
if ! "${ban_nftcmd}" add element inet banIP "${feed}v4" "{ ${elementsv4} }" >/dev/null 2>&1; then
f_log "info" "failed to add lookup file to ${feed}v4 set"
fi
fi
if [ -n "${elementsv6}" ]; then
if ! "${ban_nftcmd}" add element inet banIP "${feed}v6" "{ ${elementsv6} }" >/dev/null 2>&1; then
f_log "info" "failed to add lookup file to ${feed}v6 set"
fi
fi
end_time="$(date "+%s")" end_time="$(date "+%s")"
duration="$(((end_time - start_time) / 60))m $(((end_time - start_time) % 60))s" duration="$(((end_time - start_time) / 60))m $(((end_time - start_time) % 60))s"
f_log "debug" "f_lookup ::: name: ${feed}, cnt_domain: ${cnt_domain}, cnt_ip: ${cnt_ip}, duration: ${duration}" f_log "info" "Lookup summary for the local ${feed}: Domains processed: ${cnt_domain}, IPs added: ${cnt_ip}, Duration: ${duration}"
} }
# table statistics # table statistics
@ -1198,7 +1201,7 @@ f_report() {
# set search # set search
# #
f_search() { f_search() {
local table_sets ip proto run_search search="${1}" local set table_sets ip proto run_search hold cnt search="${1}"
if [ -n "${search}" ]; then if [ -n "${search}" ]; then
ip="$(printf "%s" "${search}" | "${ban_awkcmd}" 'BEGIN{RS="(([0-9]{1,3}\\.){3}[0-9]{1,3})+"}{printf "%s",RT}')" ip="$(printf "%s" "${search}" | "${ban_awkcmd}" 'BEGIN{RS="(([0-9]{1,3}\\.){3}[0-9]{1,3})+"}{printf "%s",RT}')"
@ -1215,14 +1218,15 @@ f_search() {
return return
fi fi
printf "%s\n%s\n%s\n" ":::" "::: banIP Search" ":::" printf "%s\n%s\n%s\n" ":::" "::: banIP Search" ":::"
printf "%s\n" " Looking for IP '${ip}' on $(date "+%Y-%m-%d %H:%M:%S")" printf " %s\n" "Looking for IP '${ip}' on $(date "+%Y-%m-%d %H:%M:%S")"
printf "%s\n" " ---" printf " %s\n" "---"
cnt="1" cnt="1"
run_search="/var/run/banIP.search" run_search="/var/run/banIP.search"
for set in ${table_sets}; do for set in ${table_sets}; do
[ -f "${run_search}" ] && break
( (
if "${ban_nftcmd}" get element inet banIP "${set}" "{ ${ip} }" >/dev/null 2>&1; then if "${ban_nftcmd}" get element inet banIP "${set}" "{ ${ip} }" >/dev/null 2>&1; then
printf "%s\n" " IP found in Set '${set}'" printf " %s\n" "IP found in Set '${set}'"
: >"${run_search}" : >"${run_search}"
fi fi
) & ) &
@ -1231,11 +1235,8 @@ f_search() {
cnt="$((cnt + 1))" cnt="$((cnt + 1))"
done done
wait wait
if [ ! -f "${run_search}" ]; then [ ! -f "${run_search}" ] && printf " %s\n" "IP not found"
printf "%s\n" " IP not found" rm -f "${run_search}"
else
rm -f "${run_search}"
fi
} }
# set survey # set survey
@ -1243,16 +1244,15 @@ f_search() {
f_survey() { f_survey() {
local set_elements set="${1}" local set_elements set="${1}"
[ -n "${set}" ] && set_elements="$("${ban_nftcmd}" -j list set inet banIP "${set}" 2>/dev/null | jsonfilter -qe '@.nftables[*].set.elem[*]')" if [ -z "${set}" ]; then
if [ -z "${set}" ] || [ -z "${set_elements}" ]; then
printf "%s\n%s\n%s\n" ":::" "::: no valid survey input" ":::" printf "%s\n%s\n%s\n" ":::" "::: no valid survey input" ":::"
return return
fi fi
[ -n "${set}" ] && set_elements="$("${ban_nftcmd}" -j list set inet banIP "${set}" 2>/dev/null | jsonfilter -qe '@.nftables[*].set.elem[*]')"
printf "%s\n%s\n%s\n" ":::" "::: banIP Survey" ":::" printf "%s\n%s\n%s\n" ":::" "::: banIP Survey" ":::"
printf "%s\n" " List the elements of Set '${set}' on $(date "+%Y-%m-%d %H:%M:%S")" printf " %s\n" "List the elements of Set '${set}' on $(date "+%Y-%m-%d %H:%M:%S")"
printf "%s\n" " ---" printf " %s\n" "---"
printf "%s\n" "${set_elements}" [ -n "${set_elements}" ] && printf "%s\n" "${set_elements}" || printf " %s\n" "empty set"
} }
# send status mails # send status mails

View file

@ -124,21 +124,25 @@ for feed in allowlist ${ban_feed} blocklist; do
fi fi
done done
wait wait
# start background domain lookup
#
f_log "info" "start detached banIP domain lookup"
(f_lookup "allowlist") &
hold="$((cnt % ban_cores))"
[ "${hold}" = "0" ] && wait
(f_lookup "blocklist") &
# end processing
#
f_rmset f_rmset
f_rmdir "${ban_tmpdir}" f_rmdir "${ban_tmpdir}"
f_genstatus "active" f_genstatus "active"
f_log "info" "finished banIP download processes" f_log "info" "finished banIP download processes"
# start domain lookup
#
f_log "info" "start banIP domain lookup"
cnt="1"
for list in allowlist blocklist; do
(f_lookup "${list}") &
hold="$((cnt % ban_cores))"
[ "${hold}" = "0" ] && wait
cnt="$((cnt + 1))"
done
wait
# end processing
#
if [ "${ban_mailnotification}" = "1" ] && [ -n "${ban_mailreceiver}" ] && [ -x "${ban_mailcmd}" ]; then if [ "${ban_mailnotification}" = "1" ] && [ -n "${ban_mailreceiver}" ] && [ -x "${ban_mailcmd}" ]; then
( (
sleep ${ban_triggerdelay} sleep ${ban_triggerdelay}

View file

@ -12,6 +12,7 @@ USE_PROCD=1
extra_command "report" "[text|json|mail] Print banIP related set statistics" extra_command "report" "[text|json|mail] Print banIP related set statistics"
extra_command "search" "[<IPv4 address>|<IPv6 address>] Check if an element exists in a banIP set" extra_command "search" "[<IPv4 address>|<IPv6 address>] Check if an element exists in a banIP set"
extra_command "survey" "[<set name>] List all elements of a given banIP set" extra_command "survey" "[<set name>] List all elements of a given banIP set"
extra_command "lookup" "Lookup the IPs of domain names in the local lists and update them"
ban_init="/etc/init.d/banip" ban_init="/etc/init.d/banip"
ban_service="/usr/bin/banip-service.sh" ban_service="/usr/bin/banip-service.sh"
@ -20,10 +21,10 @@ ban_pidfile="/var/run/banip.pid"
ban_lock="/var/run/banip.lock" ban_lock="/var/run/banip.lock"
[ "${action}" = "boot" ] && /etc/init.d/banip running && exit 0 [ "${action}" = "boot" ] && /etc/init.d/banip running && exit 0
[ "${action}" = "stop" ] && ! /etc/init.d/banip running && exit 0 { [ "${action}" = "stop" ] || [ "${action}" = "lookup" ]; } && ! /etc/init.d/banip running && exit 0
[ ! -r "${ban_funlib}" ] && { [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "stop" ] || [ "${action}" = "report" ] || [ "${action}" = "search" ] || [ "${action}" = "survey" ] || [ "${action}" = "status" ]; } && exit 1 [ ! -r "${ban_funlib}" ] && [ "${action}" != "boot" ] && exit 1
[ -d "${ban_lock}" ] && { [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ]; } && exit 1 [ -d "${ban_lock}" ] && { [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "lookup" ]; } && exit 1
[ ! -d "${ban_lock}" ] && { [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ]; } && mkdir -p "${ban_lock}" [ ! -d "${ban_lock}" ] && { [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "lookup" ]; } && mkdir -p "${ban_lock}"
boot() { boot() {
: >"${ban_pidfile}" : >"${ban_pidfile}"
@ -61,7 +62,7 @@ stop_service() {
"${ban_nftcmd}" delete table inet banIP >/dev/null 2>&1 "${ban_nftcmd}" delete table inet banIP >/dev/null 2>&1
f_genstatus "stopped" f_genstatus "stopped"
f_rmpid f_rmpid
rm -rf "${ban_lock}" [ "${action}" = "stop" ] && rm -rf "${ban_lock}"
} }
restart() { restart() {
@ -74,10 +75,8 @@ status() {
} }
status_service() { status_service() {
local actual="${1}"
[ -z "$(command -v "f_system")" ] && . "${ban_funlib}" [ -z "$(command -v "f_system")" ] && . "${ban_funlib}"
[ -n "${actual}" ] && f_actual || f_getstatus f_getstatus
} }
report() { report() {
@ -95,6 +94,20 @@ survey() {
f_survey "${1}" f_survey "${1}"
} }
lookup() {
local list hold cnt="1"
[ -z "$(command -v "f_system")" ] && . "${ban_funlib}"
for list in allowlist blocklist; do
(f_lookup "${list}") &
hold="$((cnt % ban_cores))"
[ "${hold}" = "0" ] && wait
cnt="$((cnt + 1))"
done
wait
rm -rf "${ban_lock}"
}
service_triggers() { service_triggers() {
local iface trigger trigger_action delay local iface trigger trigger_action delay

View file

@ -6,7 +6,7 @@
# #
local banip_info report_info log_info system_info mail_text local banip_info report_info log_info system_info mail_text
banip_info="$(/etc/init.d/banip status 2>/dev/null)" banip_info="$(/etc/init.d/banip status 2>/dev/null | awk '{NR=1;max=140;if(length($0)>max+1)while($0){if(NR==1){print substr($0,1,max)}else{print substr($0,1,max)}{$0=substr($0,max+1);NR=NR+1}}else print}')"
report_info="$(cat ${ban_reportdir}/ban_report.txt 2>/dev/null)" report_info="$(cat ${ban_reportdir}/ban_report.txt 2>/dev/null)"
log_info="$("${ban_logreadcmd}" -l 100 -e "banIP/" 2>/dev/null | awk '{NR=1;max=140;if(length($0)>max+1)while($0){if(NR==1){print substr($0,1,max)}else{print substr($0,1,max)}{$0=substr($0,max+1);NR=NR+1}}else print}')" log_info="$("${ban_logreadcmd}" -l 100 -e "banIP/" 2>/dev/null | awk '{NR=1;max=140;if(length($0)>max+1)while($0){if(NR==1){print substr($0,1,max)}else{print substr($0,1,max)}{$0=substr($0,max+1);NR=NR+1}}else print}')"
system_info="$( system_info="$(
@ -14,11 +14,17 @@ system_info="$(
ubus call system board | awk 'BEGIN{FS="[{}\"]"}{if($2=="kernel"||$2=="hostname"||$2=="system"||$2=="model"||$2=="description")printf " + %-12s: %s\n",$2,$4}' ubus call system board | awk 'BEGIN{FS="[{}\"]"}{if($2=="kernel"||$2=="hostname"||$2=="system"||$2=="model"||$2=="description")printf " + %-12s: %s\n",$2,$4}'
)" )"
# mail body # content header
# #
mail_text="$(printf "%s\n" "<html><body><pre style='display:block;font-family:monospace;font-size:1rem;padding:20;background-color:#f3eee5;white-space:pre'>")" mail_text="$(printf "%s\n" "<html><body><pre style='display:block;font-family:monospace;font-size:1rem;padding:20;background-color:#f3eee5;white-space:pre'>")"
# content body
#
mail_text="$(printf "%s\n" "${mail_text}\n<strong>++\n++ System Information ++\n++</strong>\n${system_info:-"-"}")" mail_text="$(printf "%s\n" "${mail_text}\n<strong>++\n++ System Information ++\n++</strong>\n${system_info:-"-"}")"
mail_text="$(printf "%s\n" "${mail_text}\n\n<strong>++\n++ banIP Status ++\n++</strong>\n${banip_info:-"-"}")" mail_text="$(printf "%s\n" "${mail_text}\n\n<strong>++\n++ banIP Status ++\n++</strong>\n${banip_info:-"-"}")"
mail_text="$(printf "%s\n" "${mail_text}\n\n<strong>++\n++ banIP Report ++\n++</strong>\n${report_info:-"-"}")" [ -n "${report_info}" ] && mail_text="$(printf "%s\n" "${mail_text}\n\n<strong>++\n++ banIP Report ++\n++</strong>\n${report_info}")"
mail_text="$(printf "%s\n" "${mail_text}\n\n<strong>++\n++ Logfile Information ++\n++</strong>\n${log_info}")" [ -n "${log_info}" ] && mail_text="$(printf "%s\n" "${mail_text}\n\n<strong>++\n++ Logfile Information ++\n++</strong>\n${log_info}")"
# content footer
#
mail_text="$(printf "%s\n" "${mail_text}</pre></body></html>")" mail_text="$(printf "%s\n" "${mail_text}</pre></body></html>")"

View file

@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=dnsproxy PKG_NAME:=dnsproxy
PKG_VERSION:=0.48.2 PKG_VERSION:=0.48.3
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)? PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=fd385b3414e616aef5d96b7b007d5fc4fd21b73d6bc097811508e9ddb9b3f4cb PKG_HASH:=bc5f5e6d812293c13b7b6d42eae72a82231d9f332af1d2947c37dbdbf663abf3
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org> PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0

View file

@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=isc-dhcp PKG_NAME:=isc-dhcp
UPSTREAM_NAME:=dhcp UPSTREAM_NAME:=dhcp
PKG_VERSION:=4.4.3 PKG_VERSION:=4.4.3-P1
PKG_RELEASE:=7 PKG_RELEASE:=1
PKG_LICENSE:=BSD-3-Clause PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
@ -21,7 +21,7 @@ PKG_SOURCE:=$(UPSTREAM_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=ftp://ftp.isc.org/isc/dhcp/$(PKG_VERSION) \ PKG_SOURCE_URL:=ftp://ftp.isc.org/isc/dhcp/$(PKG_VERSION) \
http://ftp.funet.fi/pub/mirrors/ftp.isc.org/isc/dhcp/$(PKG_VERSION) \ http://ftp.funet.fi/pub/mirrors/ftp.isc.org/isc/dhcp/$(PKG_VERSION) \
http://ftp.iij.ad.jp/pub/network/isc/dhcp/$(PKG_VERSION) http://ftp.iij.ad.jp/pub/network/isc/dhcp/$(PKG_VERSION)
PKG_HASH:=0e3ec6b4c2a05ec0148874bcd999a66d05518378d77421f607fb0bc9d0135818 PKG_HASH:=0ac416bb55997ca8632174fd10737fd61cdb8dba2752160a335775bc21dc73c7
PKG_FIXUP:=autoreconf PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1
@ -132,18 +132,10 @@ $(call Package/isc-dhcp-server/description)
This package is compiled with IPv4 and IPv6 support. This package is compiled with IPv4 and IPv6 support.
endef endef
define Package/isc-dhcp-dyndns-ipv4 define Package/isc-dhcp-dyndns
$(call Package/isc-dhcp/Default) $(call Package/isc-dhcp/Default)
TITLE+= server dynamic DNS dependencies (meta) TITLE+= server dynamic DNS dependencies (meta)
DEPENDS+=isc-dhcp-server-ipv4 +bind-server +bind-client DEPENDS+=@(PACKAGE_isc-dhcp-server-ipv4||PACKAGE_isc-dhcp-server-ipv6) +bind-server +bind-client
VARIANT:=ipv4
endef
define Package/isc-dhcp-dyndns-ipv6
$(call Package/isc-dhcp/Default)
TITLE+= server dynamic DNS dependencies (meta)
DEPENDS+=isc-dhcp-server-ipv6 +bind-server +bind-client
VARIANT:=ipv6
endef endef
define Package/isc-dhcp-dyndns/description define Package/isc-dhcp-dyndns/description
@ -151,16 +143,6 @@ define Package/isc-dhcp-dyndns/description
Bootstrap Protocol (BOOTP). Bootstrap Protocol (BOOTP).
endef endef
define Package/isc-dhcp-dyndns-ipv4/description
$(call Package/isc-dhcp-dyndns/description)
This package is compiled with IPv4 support only.
endef
define Package/isc-dhcp-dyndns-ipv6/description
$(call Package/isc-dhcp-dyndns/description)
This package is compiled with IPv4 and IPv6 support.
endef
define Package/isc-dhcp-omshell-ipv4 define Package/isc-dhcp-omshell-ipv4
$(call Package/isc-dhcp/Default) $(call Package/isc-dhcp/Default)
DEPENDS:= +isc-dhcp-server-ipv4 DEPENDS:= +isc-dhcp-server-ipv4
@ -257,7 +239,7 @@ define Package/isc-dhcp-server-ipv6/conffiles
/etc/dhcpd6.conf /etc/dhcpd6.conf
endef endef
define Package/isc-dhcp-dyndns-$(BUILD_VARIANT)/install define Package/isc-dhcp-dyndns/install
: :
endef endef
@ -285,11 +267,10 @@ endef
$(eval $(call BuildPackage,isc-dhcp-relay-ipv4)) $(eval $(call BuildPackage,isc-dhcp-relay-ipv4))
$(eval $(call BuildPackage,isc-dhcp-server-ipv4)) $(eval $(call BuildPackage,isc-dhcp-server-ipv4))
$(eval $(call BuildPackage,isc-dhcp-dyndns-ipv4)) $(eval $(call BuildPackage,isc-dhcp-dyndns))
$(eval $(call BuildPackage,isc-dhcp-client-ipv4)) $(eval $(call BuildPackage,isc-dhcp-client-ipv4))
$(eval $(call BuildPackage,isc-dhcp-omshell-ipv4)) $(eval $(call BuildPackage,isc-dhcp-omshell-ipv4))
$(eval $(call BuildPackage,isc-dhcp-relay-ipv6)) $(eval $(call BuildPackage,isc-dhcp-relay-ipv6))
$(eval $(call BuildPackage,isc-dhcp-server-ipv6)) $(eval $(call BuildPackage,isc-dhcp-server-ipv6))
$(eval $(call BuildPackage,isc-dhcp-dyndns-ipv6))
$(eval $(call BuildPackage,isc-dhcp-client-ipv6)) $(eval $(call BuildPackage,isc-dhcp-client-ipv6))
$(eval $(call BuildPackage,isc-dhcp-omshell-ipv6)) $(eval $(call BuildPackage,isc-dhcp-omshell-ipv6))

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=strongswan PKG_NAME:=strongswan
PKG_VERSION:=5.9.10 PKG_VERSION:=5.9.10
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://download.strongswan.org/ https://download2.strongswan.org/ PKG_SOURCE_URL:=https://download.strongswan.org/ https://download2.strongswan.org/
@ -130,7 +130,16 @@ define Package/strongswan
$(call Package/strongswan/Default) $(call Package/strongswan/Default)
MENU:=1 MENU:=1
DEPENDS:= +libpthread +ip \ DEPENDS:= +libpthread +ip \
+kmod-crypto-aead \
+kmod-crypto-authenc \ +kmod-crypto-authenc \
+kmod-crypto-cbc \
+kmod-lib-zlib-inflate \
+kmod-lib-zlib-deflate \
+kmod-crypto-des \
+kmod-crypto-echainiv \
+kmod-crypto-hmac \
+kmod-crypto-md5 \
+kmod-crypto-sha1 \
+kmod-ipsec +kmod-ipsec4 +IPV6:kmod-ipsec6 +kmod-ipsec +kmod-ipsec4 +IPV6:kmod-ipsec6
endef endef

View file

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=tinyproxy PKG_NAME:=tinyproxy
PKG_VERSION:=1.10.0 PKG_VERSION:=1.11.1
PKG_RELEASE:=2 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/tinyproxy/tinyproxy/releases/download/$(PKG_VERSION) PKG_SOURCE_URL:=https://github.com/tinyproxy/tinyproxy/releases/download/$(PKG_VERSION)
PKG_HASH:=59be87689c415ba0d9c9bc6babbdd3df3b372d60b21e526b118d722dbc995682 PKG_HASH:=d66388448215d0aeb90d0afdd58ed00386fb81abc23ebac9d80e194fceb40f7c
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io> PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=GPL-2.0-or-later PKG_LICENSE:=GPL-2.0-or-later

View file

@ -63,6 +63,13 @@ option DefaultErrorFile "/usr/share/tinyproxy/default.html"
# #
option StatFile "/usr/share/tinyproxy/stats.html" option StatFile "/usr/share/tinyproxy/stats.html"
#
# BasicAuth: Tinyproxy server operators may want to not run an "open" proxy
# for the whole world, but rather limit usage to a smaller goup
# of users. They then put the line.
#
#option BasicAuth "username password"
# #
# Where to log the information. Either LogFile or Syslog should be set, # Where to log the information. Either LogFile or Syslog should be set,
# but not both. # but not both.

View file

@ -55,6 +55,14 @@ proxy_string() {
} }
} }
proxy_m_string() {
local SECTION=$1
local OPTION=$2
config_get _value "$SECTION" "$OPTION"
[ -n "$_value" ] && echo "${ALIAS:-${OPTION}} ""$_value"
}
proxy_flag() { proxy_flag() {
local SECTION=$1 local SECTION=$1
local OPTION=$2 local OPTION=$2
@ -108,6 +116,8 @@ start_proxy() {
proxy_string "$1" StatFile proxy_string "$1" StatFile
proxy_string "$1" LogFile proxy_string "$1" LogFile
proxy_m_string "$1" BasicAuth
proxy_flag "$1" Syslog proxy_flag "$1" Syslog
proxy_atom "$1" LogLevel proxy_atom "$1" LogLevel

View file

@ -1,16 +1,15 @@
--- a/src/sock.c --- a/src/sock.c
+++ b/src/sock.c +++ b/src/sock.c
@@ -39,8 +39,7 @@ @@ -63,7 +63,7 @@ static const char * family_string (int a
* returned if the bind succeeded. Otherwise, -1 is returned
* to indicate an error. * to indicate an error.
*/ */
-static int static int
-bind_socket (int sockfd, const char *addr, int family) -bind_socket (int sockfd, const char *addr, int family)
+static int bind_socket (int sockfd, const char *addr) +bind_socket (int sockfd, const char *addr)
{ {
struct addrinfo hints, *res, *ressave; struct addrinfo hints, *res, *ressave;
int n;
@@ -48,7 +47,7 @@ bind_socket (int sockfd, const char *add @@ -72,14 +72,14 @@ bind_socket (int sockfd, const char *add
assert (addr != NULL && strlen (addr) != 0); assert (addr != NULL && strlen (addr) != 0);
memset (&hints, 0, sizeof (struct addrinfo)); memset (&hints, 0, sizeof (struct addrinfo));
@ -18,8 +17,33 @@
+ hints.ai_family = AF_UNSPEC; + hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;
/* The local port it not important */ /* The local port is not important */
@@ -112,14 +111,12 @@ int opensock (const char *host, int port n = getaddrinfo (addr, NULL, &hints, &res);
if (n != 0) {
log_message (LOG_INFO,
- "bind_socket: getaddrinfo failed for %s: %s (af: %s)", addr, get_gai_error (n), family_string(family));
+ "bind_socket: getaddrinfo failed for %s: %s", addr, get_gai_error (n));
return -1;
}
@@ -102,14 +102,14 @@ bind_socket (int sockfd, const char *add
* Try binding the given socket to supplied addresses, stopping when one succeeds.
*/
static int
-bind_socket_list (int sockfd, sblist *addresses, int family)
+bind_socket_list (int sockfd, sblist *addresses)
{
size_t nb_addresses = sblist_getsize(addresses);
size_t i;
for (i = 0; i < nb_addresses; i++) {
const char *address = *(const char **)sblist_get(addresses, i);
- if (bind_socket(sockfd, address, family) >= 0) {
+ if (bind_socket(sockfd, address) >= 0) {
log_message(LOG_INFO, "Bound to %s", address);
return 0;
}
@@ -170,14 +170,12 @@ int opensock (const char *host, int port
/* Bind to the specified address */ /* Bind to the specified address */
if (bind_to) { if (bind_to) {
@ -29,10 +53,10 @@
close (sockfd); close (sockfd);
continue; /* can't bind, so try again */ continue; /* can't bind, so try again */
} }
} else if (config.bind_address) { } else if (config->bind_addrs) {
- if (bind_socket (sockfd, config.bind_address, - if (bind_socket_list (sockfd, config->bind_addrs,
- res->ai_family) < 0) { - res->ai_family) < 0) {
+ if (bind_socket (sockfd, config.bind_address) < 0) { + if (bind_socket_list (sockfd, config->bind_addrs) < 0) {
close (sockfd); close (sockfd);
continue; /* can't bind, so try again */ continue; /* can't bind, so try again */
} }

View file

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=coreutils PKG_NAME:=coreutils
PKG_VERSION:=9.1 PKG_VERSION:=9.2
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/coreutils PKG_SOURCE_URL:=@GNU/coreutils
PKG_HASH:=61a1f410d78ba7e7f37a5a4f50e6d1320aca33375484a3255eddf17a38580423 PKG_HASH:=6885ff47b9cdb211de47d368c17853f406daaf98b148aaecdf10de29cc04b0b3
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io> PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE:=GPL-3.0-or-later

View file

@ -9,7 +9,7 @@
EXTRA_DIST = \ EXTRA_DIST = \
.mailmap \ .mailmap \
@@ -210,6 +210,3 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib @@ -211,6 +211,3 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib
include $(top_srcdir)/lib/local.mk include $(top_srcdir)/lib/local.mk
include $(top_srcdir)/src/local.mk include $(top_srcdir)/src/local.mk
@ -18,7 +18,7 @@
-include $(top_srcdir)/tests/local.mk -include $(top_srcdir)/tests/local.mk
--- a/Makefile.in --- a/Makefile.in
+++ b/Makefile.in +++ b/Makefile.in
@@ -4115,11 +4115,7 @@ RECURSIVE_TARGETS = all-recursive check- @@ -4145,11 +4145,7 @@ RECURSIVE_TARGETS = all-recursive check-
install-ps-recursive install-recursive installcheck-recursive \ install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \ installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive tags-recursive uninstall-recursive
@ -31,7 +31,7 @@
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \ am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -4369,10 +4365,10 @@ am__DIST_COMMON = $(doc_coreutils_TEXINF @@ -4399,10 +4395,10 @@ am__DIST_COMMON = $(doc_coreutils_TEXINF
$(top_srcdir)/build-aux/missing \ $(top_srcdir)/build-aux/missing \
$(top_srcdir)/build-aux/test-driver \ $(top_srcdir)/build-aux/test-driver \
$(top_srcdir)/build-aux/texinfo.tex \ $(top_srcdir)/build-aux/texinfo.tex \
@ -46,25 +46,25 @@
$(top_srcdir)/tests/local.mk ABOUT-NLS AUTHORS COPYING \ $(top_srcdir)/tests/local.mk ABOUT-NLS AUTHORS COPYING \
ChangeLog INSTALL NEWS README THANKS TODO build-aux/compile \ ChangeLog INSTALL NEWS README THANKS TODO build-aux/compile \
build-aux/config.guess build-aux/config.rpath \ build-aux/config.guess build-aux/config.rpath \
@@ -4479,7 +4475,7 @@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ @@ -4516,7 +4512,7 @@ ERROR_H = @ERROR_H@
ERRNO_H = @ERRNO_H@
ETAGS = @ETAGS@ ETAGS = @ETAGS@
EUIDACCESS_LIBGEN = @EUIDACCESS_LIBGEN@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
-EXTRA_MANS = @EXTRA_MANS@ -EXTRA_MANS = @EXTRA_MANS@
+EXTRA_MANS = +EXTRA_MANS =
FDATASYNC_LIB = @FDATASYNC_LIB@
FILE_HAS_ACL_LIB = @FILE_HAS_ACL_LIB@
FLOAT_H = @FLOAT_H@ FLOAT_H = @FLOAT_H@
FNMATCH_H = @FNMATCH_H@ @@ -6171,7 +6167,7 @@ localedir_c_make = @localedir_c_make@
GETADDRINFO_LIB = @GETADDRINFO_LIB@
@@ -6057,7 +6053,7 @@ libexecdir = @libexecdir@
lispdir = @lispdir@
localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
localstatedir_c = @localstatedir_c@
localstatedir_c_make = @localstatedir_c_make@
-man1_MANS = @man1_MANS@ -man1_MANS = @man1_MANS@
+man1_MANS = +man1_MANS =
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mandir_c = @mandir_c@
oldincludedir = @oldincludedir@ mandir_c_make = @mandir_c_make@
@@ -6080,7 +6076,7 @@ top_build_prefix = @top_build_prefix@ @@ -6220,7 +6216,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
ALL_RECURSIVE_TARGETS = distcheck-hook check-root ALL_RECURSIVE_TARGETS = distcheck-hook check-root
@ -73,7 +73,7 @@
#if GNU_MAKE #if GNU_MAKE
# [nicer features that work only with GNU Make] # [nicer features that work only with GNU Make]
@@ -8272,7 +8268,7 @@ all: $(BUILT_SOURCES) @@ -8425,7 +8421,7 @@ all: $(BUILT_SOURCES)
.SUFFIXES: .1 .c .dvi .log .o .obj .pl .pl$(EXEEXT) .ps .sh .sh$(EXEEXT) .trs .x .xpl .xpl$(EXEEXT) .y .SUFFIXES: .1 .c .dvi .log .o .obj .pl .pl$(EXEEXT) .ps .sh .sh$(EXEEXT) .trs .x .xpl .xpl$(EXEEXT) .y
am--refresh: Makefile am--refresh: Makefile
@: @:
@ -82,7 +82,7 @@
@for dep in $?; do \ @for dep in $?; do \
case '$(am__configure_deps)' in \ case '$(am__configure_deps)' in \
*$$dep*) \ *$$dep*) \
@@ -8294,7 +8290,7 @@ Makefile: $(srcdir)/Makefile.in $(top_bu @@ -8447,7 +8443,7 @@ Makefile: $(srcdir)/Makefile.in $(top_bu
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac; esac;

View file

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=fio PKG_NAME:=fio
PKG_VERSION:=3.29 PKG_VERSION:=3.34
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://brick.kernel.dk/snaps PKG_SOURCE_URL:=http://brick.kernel.dk/snaps
PKG_HASH:=acffb407d14e973321ada4cf234b2840a94fff7989350cfe62142daba79e6786 PKG_HASH:=a5a28f19c701d4c8e04924bec1b85f6ac8c67fc8fe75968a5d6990e0b656a7a7
PKG_MAINTAINER:= PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0-or-later PKG_LICENSE:=GPL-2.0-or-later

View file

@ -9,12 +9,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=lxc PKG_NAME:=lxc
PKG_VERSION:=5.0.1 PKG_VERSION:=5.0.2
PKG_RELEASE:=4 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://linuxcontainers.org/downloads/lxc/ PKG_SOURCE_URL:=https://linuxcontainers.org/downloads/lxc/
PKG_HASH:=d8195423bb1e206f8521d24b6cde4789f043960c7cf065990a9cf741dcfd4222 PKG_HASH:=bea08d2e49efcee34fa58acd2bc95c0adc64d291c07f4cfaf4ac1d8ac5a36f45
PKG_MAINTAINER:=Marko Ratkaj <markoratkaj@gmail.com> PKG_MAINTAINER:=Marko Ratkaj <markoratkaj@gmail.com>
PKG_LICENSE:=LGPL-2.1-or-later BSD-2-Clause GPL-2.0 PKG_LICENSE:=LGPL-2.1-or-later BSD-2-Clause GPL-2.0

View file

@ -1,173 +0,0 @@
From c1115e1503bf955c97f4cf3b925a6a9f619764c3 Mon Sep 17 00:00:00 2001
From: Christian Brauner <brauner@kernel.org>
Date: Tue, 9 Aug 2022 16:14:25 +0200
Subject: build: detect where struct mount_attr is declared
Fixes: #4176
Signed-off-by: Christian Brauner (Microsoft) <christian.brauner@ubuntu.com>
---
meson.build | 30 ++++++++++++++++++++++++++++--
src/lxc/conf.c | 6 +++---
src/lxc/conf.h | 2 +-
src/lxc/mount_utils.c | 6 +++---
src/lxc/syscall_wrappers.h | 12 ++++++++++--
5 files changed, 45 insertions(+), 11 deletions(-)
--- a/meson.build
+++ b/meson.build
@@ -589,7 +589,6 @@ decl_headers = '''
foreach decl: [
'__aligned_u64',
'struct clone_args',
- 'struct mount_attr',
'struct open_how',
'struct rtnl_link_stats64',
]
@@ -609,7 +608,6 @@ foreach tuple: [
['struct seccomp_notif_sizes'],
['struct clone_args'],
['__aligned_u64'],
- ['struct mount_attr'],
['struct open_how'],
['struct rtnl_link_stats64'],
]
@@ -629,6 +627,34 @@ foreach tuple: [
endif
endforeach
+## Types.
+decl_headers = '''
+#include <sys/mount.h>
+'''
+
+# We get -1 if the size cannot be determined
+if cc.sizeof('struct mount_attr', prefix: decl_headers, args: '-D_GNU_SOURCE') > 0
+ srcconf.set10('HAVE_' + 'struct mount_attr'.underscorify().to_upper(), true)
+ found_types += 'struct mount_attr (sys/mount.h)'
+else
+ srcconf.set10('HAVE_' + 'struct mount_attr'.underscorify().to_upper(), false)
+ missing_types += 'struct mount_attr (sys/mount.h)'
+endif
+
+## Types.
+decl_headers = '''
+#include <linux/mount.h>
+'''
+
+# We get -1 if the size cannot be determined
+if cc.sizeof('struct mount_attr', prefix: decl_headers, args: '-D_GNU_SOURCE') > 0
+ srcconf.set10('HAVE_UAPI_' + 'struct mount_attr'.underscorify().to_upper(), true)
+ found_types += 'struct mount_attr (linux/mount.h)'
+else
+ srcconf.set10('HAVE_UAPI_' + 'struct mount_attr'.underscorify().to_upper(), false)
+ missing_types += 'struct mount_attr (linux/mount.h)'
+endif
+
## Headers.
foreach ident: [
['bpf', '''#include <sys/syscall.h>
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -2885,7 +2885,7 @@ static int __lxc_idmapped_mounts_child(s
struct lxc_mount_options opts = {};
int dfd_from;
const char *source_relative, *target_relative;
- struct lxc_mount_attr attr = {};
+ struct mount_attr attr = {};
ret = parse_lxc_mount_attrs(&opts, mntent.mnt_opts);
if (ret < 0)
@@ -3005,7 +3005,7 @@ static int __lxc_idmapped_mounts_child(s
/* Set propagation mount options. */
if (opts.attr.propagation) {
- attr = (struct lxc_mount_attr) {
+ attr = (struct mount_attr) {
.propagation = opts.attr.propagation,
};
@@ -4109,7 +4109,7 @@ int lxc_idmapped_mounts_parent(struct lx
for (;;) {
__do_close int fd_from = -EBADF, fd_userns = -EBADF;
- struct lxc_mount_attr attr = {};
+ struct mount_attr attr = {};
struct lxc_mount_options opts = {};
ssize_t ret;
--- a/src/lxc/conf.h
+++ b/src/lxc/conf.h
@@ -223,7 +223,7 @@ struct lxc_mount_options {
unsigned long mnt_flags;
unsigned long prop_flags;
char *data;
- struct lxc_mount_attr attr;
+ struct mount_attr attr;
char *raw_options;
};
--- a/src/lxc/mount_utils.c
+++ b/src/lxc/mount_utils.c
@@ -31,7 +31,7 @@ lxc_log_define(mount_utils, lxc);
* setting in @attr_set, but must also specify MOUNT_ATTR__ATIME in the
* @attr_clr field.
*/
-static inline void set_atime(struct lxc_mount_attr *attr)
+static inline void set_atime(struct mount_attr *attr)
{
switch (attr->attr_set & MOUNT_ATTR__ATIME) {
case MOUNT_ATTR_RELATIME:
@@ -272,7 +272,7 @@ int create_detached_idmapped_mount(const
{
__do_close int fd_tree_from = -EBADF;
unsigned int open_tree_flags = OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC;
- struct lxc_mount_attr attr = {
+ struct mount_attr attr = {
.attr_set = MOUNT_ATTR_IDMAP | attr_set,
.attr_clr = attr_clr,
.userns_fd = userns_fd,
@@ -335,7 +335,7 @@ int __fd_bind_mount(int dfd_from, const
__u64 attr_clr, __u64 propagation, int userns_fd,
bool recursive)
{
- struct lxc_mount_attr attr = {
+ struct mount_attr attr = {
.attr_set = attr_set,
.attr_clr = attr_clr,
.propagation = propagation,
--- a/src/lxc/syscall_wrappers.h
+++ b/src/lxc/syscall_wrappers.h
@@ -18,6 +18,12 @@
#include "macro.h"
#include "syscall_numbers.h"
+#if HAVE_STRUCT_MOUNT_ATTR
+#include <sys/mount.h>
+#elif HAVE_UAPI_STRUCT_MOUNT_ATTR
+#include <linux/mount.h>
+#endif
+
#ifdef HAVE_LINUX_MEMFD_H
#include <linux/memfd.h>
#endif
@@ -210,16 +216,18 @@ extern int fsmount(int fs_fd, unsigned i
/*
* mount_setattr()
*/
-struct lxc_mount_attr {
+#if !HAVE_STRUCT_MOUNT_ATTR && !HAVE_UAPI_STRUCT_MOUNT_ATTR
+struct mount_attr {
__u64 attr_set;
__u64 attr_clr;
__u64 propagation;
__u64 userns_fd;
};
+#endif
#if !HAVE_MOUNT_SETATTR
static inline int mount_setattr(int dfd, const char *path, unsigned int flags,
- struct lxc_mount_attr *attr, size_t size)
+ struct mount_attr *attr, size_t size)
{
return syscall(__NR_mount_setattr, dfd, path, flags, attr, size);
}

View file

@ -1,47 +0,0 @@
From ef1e0607b82e27350c2d677d649c6a0a9693fd40 Mon Sep 17 00:00:00 2001
From: Christian Brauner <brauner@kernel.org>
Date: Tue, 9 Aug 2022 16:27:40 +0200
Subject: build: detect sys/pidfd.h availability
Fixes: #4176
Signed-off-by: Christian Brauner (Microsoft) <christian.brauner@ubuntu.com>
---
meson.build | 1 +
src/lxc/process_utils.h | 6 ++++++
2 files changed, 7 insertions(+)
--- a/meson.build
+++ b/meson.build
@@ -734,6 +734,7 @@ foreach tuple: [
['sys/resource.h'],
['sys/memfd.h'],
['sys/personality.h'],
+ ['sys/pidfd.h'],
['sys/signalfd.h'],
['sys/timerfd.h'],
['pty.h'],
--- a/src/lxc/process_utils.h
+++ b/src/lxc/process_utils.h
@@ -15,6 +15,10 @@
#include <sys/syscall.h>
#include <unistd.h>
+#if HAVE_SYS_PIDFD_H
+#include <sys/pidfd.h>
+#endif
+
#include "compiler.h"
#include "syscall_numbers.h"
@@ -136,9 +140,11 @@
#endif
/* waitid */
+#if !HAVE_SYS_PIDFD_H
#ifndef P_PIDFD
#define P_PIDFD 3
#endif
+#endif
#ifndef CLONE_ARGS_SIZE_VER0
#define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */

View file

@ -1,143 +0,0 @@
From cbabe8abf11e7e7fb49c123bae31efdd9bc8f1e8 Mon Sep 17 00:00:00 2001
From: Christian Brauner <brauner@kernel.org>
Date: Tue, 9 Aug 2022 17:19:40 +0200
Subject: build: check for FS_CONFIG_* header symbol in sys/mount.h
Fixes: #4176
Signed-off-by: Christian Brauner (Microsoft) <christian.brauner@ubuntu.com>
---
meson.build | 59 +++++++++++++++++++++++++++++++++++++++++--
src/lxc/mount_utils.h | 16 ++++++++++++
2 files changed, 73 insertions(+), 2 deletions(-)
--- a/meson.build
+++ b/meson.build
@@ -638,8 +638,7 @@ if cc.sizeof('struct mount_attr', prefix
found_types += 'struct mount_attr (sys/mount.h)'
else
srcconf.set10('HAVE_' + 'struct mount_attr'.underscorify().to_upper(), false)
- missing_types += 'struct mount_attr (sys/mount.h)'
-endif
+ missing_types += 'struct mount_attr (sys/mount.h)' endif
## Types.
decl_headers = '''
@@ -655,6 +654,62 @@ else
missing_types += 'struct mount_attr (linux/mount.h)'
endif
+if cc.has_header_symbol('sys/mount.h', 'FSCONFIG_SET_FLAG')
+ srcconf.set10('HAVE_' + 'FSCONFIG_SET_FLAG'.underscorify().to_upper(), true)
+ found_types += 'FSCONFIG_SET_FLAG'
+else
+ srcconf.set10('HAVE_' + 'FSCONFIG_SET_FLAG'.underscorify().to_upper(), false)
+ missing_types += 'FSCONFIG_SET_FLAG'
+endif
+
+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_STRING')
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_STRING'.underscorify().to_upper(), true)
+ found_types += 'FS_CONFIG_SET_STRING'
+else
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_STRING'.underscorify().to_upper(), false)
+ missing_types += 'FS_CONFIG_SET_STRING'
+endif
+
+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_BINARY')
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_BINARY'.underscorify().to_upper(), true)
+ found_types += 'FS_CONFIG_SET_BINARY'
+else
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_BINARY'.underscorify().to_upper(), false)
+ missing_types += 'FS_CONFIG_SET_BINARY'
+endif
+
+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_PATH_EMPTY')
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_EMPTY'.underscorify().to_upper(), true)
+ found_types += 'FS_CONFIG_SET_PATH_EMPTY'
+else
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_EMPTY'.underscorify().to_upper(), false)
+ missing_types += 'FS_CONFIG_SET_PATH_EMPTY'
+endif
+
+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_PATH_FD')
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_FD'.underscorify().to_upper(), true)
+ found_types += 'FS_CONFIG_SET_PATH_FD'
+else
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_FD'.underscorify().to_upper(), false)
+ missing_types += 'FS_CONFIG_SET_PATH_FD'
+endif
+
+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_CMD_CREATE')
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_CREATE'.underscorify().to_upper(), true)
+ found_types += 'FS_CONFIG_SET_CMD_CREATE'
+else
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_CREATE'.underscorify().to_upper(), false)
+ missing_types += 'FS_CONFIG_SET_CMD_CREATE'
+endif
+
+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_CMD_RECONFIGURE')
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_RECONFIGURE'.underscorify().to_upper(), true)
+ found_types += 'FS_CONFIG_SET_CMD_RECONFIGURE'
+else
+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_RECONFIGURE'.underscorify().to_upper(), false)
+ missing_types += 'FS_CONFIG_SET_CMD_RECONFIGURE'
+endif
+
## Headers.
foreach ident: [
['bpf', '''#include <sys/syscall.h>
--- a/src/lxc/mount_utils.h
+++ b/src/lxc/mount_utils.h
@@ -82,37 +82,53 @@ struct lxc_rootfs;
#endif
/* fsconfig() commands */
+#if !HAVE_FSCONFIG_SET_FLAG
#ifndef FSCONFIG_SET_FLAG
#define FSCONFIG_SET_FLAG 0 /* Set parameter, supplying no value */
#endif
+#endif
+#if !HAVE_FSCONFIG_SET_STRING
#ifndef FSCONFIG_SET_STRING
#define FSCONFIG_SET_STRING 1 /* Set parameter, supplying a string value */
#endif
+#endif
+#if !HAVE_FSCONFIG_SET_BINARY
#ifndef FSCONFIG_SET_BINARY
#define FSCONFIG_SET_BINARY 2 /* Set parameter, supplying a binary blob value */
#endif
+#endif
+#if !HAVE_FSCONFIG_SET_PATH
#ifndef FSCONFIG_SET_PATH
#define FSCONFIG_SET_PATH 3 /* Set parameter, supplying an object by path */
#endif
+#endif
+#if !HAVE_FSCONFIG_SET_PATH_EMPTY
#ifndef FSCONFIG_SET_PATH_EMPTY
#define FSCONFIG_SET_PATH_EMPTY 4 /* Set parameter, supplying an object by (empty) path */
#endif
+#endif
+#if !HAVE_FSCONFIG_SET_FD
#ifndef FSCONFIG_SET_FD
#define FSCONFIG_SET_FD 5 /* Set parameter, supplying an object by fd */
#endif
+#endif
+#if !HAVE_FSCONFIG_CMD_CREATE
#ifndef FSCONFIG_CMD_CREATE
#define FSCONFIG_CMD_CREATE 6 /* Invoke superblock creation */
#endif
+#endif
+#if !FSCONFIG_CMD_RECONFIGURE
#ifndef FSCONFIG_CMD_RECONFIGURE
#define FSCONFIG_CMD_RECONFIGURE 7 /* Invoke superblock reconfiguration */
#endif
+#endif
/* fsmount() flags */
#ifndef FSMOUNT_CLOEXEC

View file

@ -1,197 +0,0 @@
From 4771699fd97b1e9ee7dc4f7cfe01c8ddd698f682 Mon Sep 17 00:00:00 2001
From: Christian Brauner <brauner@kernel.org>
Date: Wed, 10 Aug 2022 11:42:52 +0200
Subject: tree-wide: wipe direct or indirect linux/mount.h inclusion
It is incompatible with sys/mount.h and causes massive headaches.
Signed-off-by: Christian Brauner (Microsoft) <christian.brauner@ubuntu.com>
---
meson.build | 44 +++++++++++++-------------------------
src/lxc/macro.h | 13 +++++++++++
src/lxc/mount_utils.h | 2 +-
src/lxc/syscall_wrappers.h | 9 ++------
src/lxc/utils.c | 2 --
5 files changed, 31 insertions(+), 39 deletions(-)
--- a/meson.build
+++ b/meson.build
@@ -627,7 +627,6 @@ foreach tuple: [
endif
endforeach
-## Types.
decl_headers = '''
#include <sys/mount.h>
'''
@@ -640,74 +639,61 @@ else
srcconf.set10('HAVE_' + 'struct mount_attr'.underscorify().to_upper(), false)
missing_types += 'struct mount_attr (sys/mount.h)' endif
-## Types.
-decl_headers = '''
-#include <linux/mount.h>
-'''
-
-# We get -1 if the size cannot be determined
-if cc.sizeof('struct mount_attr', prefix: decl_headers, args: '-D_GNU_SOURCE') > 0
- srcconf.set10('HAVE_UAPI_' + 'struct mount_attr'.underscorify().to_upper(), true)
- found_types += 'struct mount_attr (linux/mount.h)'
-else
- srcconf.set10('HAVE_UAPI_' + 'struct mount_attr'.underscorify().to_upper(), false)
- missing_types += 'struct mount_attr (linux/mount.h)'
-endif
-
+## Check if sys/mount.h defines the fsconfig commands
if cc.has_header_symbol('sys/mount.h', 'FSCONFIG_SET_FLAG')
srcconf.set10('HAVE_' + 'FSCONFIG_SET_FLAG'.underscorify().to_upper(), true)
- found_types += 'FSCONFIG_SET_FLAG'
+ found_types += 'FSCONFIG_SET_FLAG (sys/mount.h)'
else
srcconf.set10('HAVE_' + 'FSCONFIG_SET_FLAG'.underscorify().to_upper(), false)
- missing_types += 'FSCONFIG_SET_FLAG'
+ missing_types += 'FSCONFIG_SET_FLAG (sys/mount.h)'
endif
if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_STRING')
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_STRING'.underscorify().to_upper(), true)
- found_types += 'FS_CONFIG_SET_STRING'
+ found_types += 'FS_CONFIG_SET_STRING (sys/mount.h)'
else
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_STRING'.underscorify().to_upper(), false)
- missing_types += 'FS_CONFIG_SET_STRING'
+ missing_types += 'FS_CONFIG_SET_STRING (sys/mount.h)'
endif
if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_BINARY')
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_BINARY'.underscorify().to_upper(), true)
- found_types += 'FS_CONFIG_SET_BINARY'
+ found_types += 'FS_CONFIG_SET_BINARY (sys/mount.h)'
else
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_BINARY'.underscorify().to_upper(), false)
- missing_types += 'FS_CONFIG_SET_BINARY'
+ missing_types += 'FS_CONFIG_SET_BINARY (sys/mount.h)'
endif
if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_PATH_EMPTY')
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_EMPTY'.underscorify().to_upper(), true)
- found_types += 'FS_CONFIG_SET_PATH_EMPTY'
+ found_types += 'FS_CONFIG_SET_PATH_EMPTY (sys/mount.h)'
else
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_EMPTY'.underscorify().to_upper(), false)
- missing_types += 'FS_CONFIG_SET_PATH_EMPTY'
+ missing_types += 'FS_CONFIG_SET_PATH_EMPTY (sys/mount.h)'
endif
if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_PATH_FD')
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_FD'.underscorify().to_upper(), true)
- found_types += 'FS_CONFIG_SET_PATH_FD'
+ found_types += 'FS_CONFIG_SET_PATH_FD (sys/mount.h)'
else
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_FD'.underscorify().to_upper(), false)
- missing_types += 'FS_CONFIG_SET_PATH_FD'
+ missing_types += 'FS_CONFIG_SET_PATH_FD (sys/mount.h)'
endif
if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_CMD_CREATE')
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_CREATE'.underscorify().to_upper(), true)
- found_types += 'FS_CONFIG_SET_CMD_CREATE'
+ found_types += 'FS_CONFIG_SET_CMD_CREAT (sys/mount.h)'
else
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_CREATE'.underscorify().to_upper(), false)
- missing_types += 'FS_CONFIG_SET_CMD_CREATE'
+ missing_types += 'FS_CONFIG_SET_CMD_CREATE (sys/mount.h)'
endif
if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_CMD_RECONFIGURE')
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_RECONFIGURE'.underscorify().to_upper(), true)
- found_types += 'FS_CONFIG_SET_CMD_RECONFIGURE'
+ found_types += 'FS_CONFIG_SET_CMD_RECONFIGURE (sys/mount.h)'
else
srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_RECONFIGURE'.underscorify().to_upper(), false)
- missing_types += 'FS_CONFIG_SET_CMD_RECONFIGURE'
+ missing_types += 'FS_CONFIG_SET_CMD_RECONFIGURE (sys/mount.h)'
endif
## Headers.
--- a/src/lxc/macro.h
+++ b/src/lxc/macro.h
@@ -8,6 +8,7 @@
#include <asm/types.h>
#include <limits.h>
#include <linux/if_link.h>
+#include <linux/ioctl.h>
#include <linux/loop.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
@@ -812,4 +813,16 @@ static inline bool is_set(__u32 bit, __u
#define BIT(nr) (1UL << (nr))
+#ifndef FS_IOC_GETFLAGS
+#define FS_IOC_GETFLAGS _IOR('f', 1, long)
+#endif
+
+#ifndef FS_IOC_SETFLAGS
+#define FS_IOC_SETFLAGS _IOW('f', 2, long)
+#endif
+
+#ifndef FS_IMMUTABLE_FL
+#define FS_IMMUTABLE_FL 0x00000010 /* Immutable file */
+#endif
+
#endif /* __LXC_MACRO_H */
--- a/src/lxc/mount_utils.h
+++ b/src/lxc/mount_utils.h
@@ -124,7 +124,7 @@ struct lxc_rootfs;
#endif
#endif
-#if !FSCONFIG_CMD_RECONFIGURE
+#if !HAVE_FSCONFIG_CMD_RECONFIGURE
#ifndef FSCONFIG_CMD_RECONFIGURE
#define FSCONFIG_CMD_RECONFIGURE 7 /* Invoke superblock reconfiguration */
#endif
--- a/src/lxc/syscall_wrappers.h
+++ b/src/lxc/syscall_wrappers.h
@@ -10,6 +10,7 @@
#include <linux/keyctl.h>
#include <sched.h>
#include <stdint.h>
+#include <sys/mount.h>
#include <sys/prctl.h>
#include <sys/syscall.h>
#include <sys/types.h>
@@ -18,12 +19,6 @@
#include "macro.h"
#include "syscall_numbers.h"
-#if HAVE_STRUCT_MOUNT_ATTR
-#include <sys/mount.h>
-#elif HAVE_UAPI_STRUCT_MOUNT_ATTR
-#include <linux/mount.h>
-#endif
-
#ifdef HAVE_LINUX_MEMFD_H
#include <linux/memfd.h>
#endif
@@ -216,7 +211,7 @@ extern int fsmount(int fs_fd, unsigned i
/*
* mount_setattr()
*/
-#if !HAVE_STRUCT_MOUNT_ATTR && !HAVE_UAPI_STRUCT_MOUNT_ATTR
+#if !HAVE_STRUCT_MOUNT_ATTR
struct mount_attr {
__u64 attr_set;
__u64 attr_clr;
--- a/src/lxc/utils.c
+++ b/src/lxc/utils.c
@@ -19,8 +19,6 @@
#include <string.h>
#include <sys/mman.h>
#include <sys/mount.h>
-/* Needs to be after sys/mount.h header */
-#include <linux/fs.h>
#include <sys/param.h>
#include <sys/prctl.h>
#include <sys/stat.h>

View file

@ -1,99 +0,0 @@
From 63468abd3287ebd5cc4ed9205334217031049fb4 Mon Sep 17 00:00:00 2001
From: Christian Brauner <brauner@kernel.org>
Date: Wed, 10 Aug 2022 12:03:54 +0200
Subject: tree-wide: use struct clone_args directly
Signed-off-by: Christian Brauner (Microsoft) <christian.brauner@ubuntu.com>
---
meson.build | 1 -
src/lxc/process_utils.c | 2 +-
src/lxc/process_utils.h | 7 ++++---
src/lxc/start.c | 2 +-
src/lxc/start.h | 1 -
src/tests/reboot.c | 2 --
6 files changed, 6 insertions(+), 9 deletions(-)
--- a/meson.build
+++ b/meson.build
@@ -582,7 +582,6 @@ decl_headers = '''
#include <linux/fs.h>
#include <linux/if_link.h>
#include <linux/openat2.h>
-#include <linux/sched.h>
#include <linux/types.h>
'''
--- a/src/lxc/process_utils.c
+++ b/src/lxc/process_utils.c
@@ -90,7 +90,7 @@ __returns_twice pid_t lxc_raw_legacy_clo
__returns_twice pid_t lxc_raw_clone(unsigned long flags, int *pidfd)
{
pid_t pid;
- struct lxc_clone_args args = {
+ struct clone_args args = {
.flags = flags,
.pidfd = ptr_to_u64(pidfd),
};
--- a/src/lxc/process_utils.h
+++ b/src/lxc/process_utils.h
@@ -5,7 +5,6 @@
#include "config.h"
-#include <linux/sched.h>
#include <sched.h>
#include <signal.h>
#include <stdbool.h>
@@ -165,7 +164,8 @@
#define u64_to_ptr(x) ((void *)(uintptr_t)x)
#endif
-struct lxc_clone_args {
+#if !HAVE_STRUCT_CLONE_ARGS
+struct clone_args {
__aligned_u64 flags;
__aligned_u64 pidfd;
__aligned_u64 child_tid;
@@ -178,8 +178,9 @@ struct lxc_clone_args {
__aligned_u64 set_tid_size;
__aligned_u64 cgroup;
};
+#endif
-__returns_twice static inline pid_t lxc_clone3(struct lxc_clone_args *args, size_t size)
+__returns_twice static inline pid_t lxc_clone3(struct clone_args *args, size_t size)
{
return syscall(__NR_clone3, args, size);
}
--- a/src/lxc/start.c
+++ b/src/lxc/start.c
@@ -1673,7 +1673,7 @@ static int lxc_spawn(struct lxc_handler
} else {
int cgroup_fd = -EBADF;
- struct lxc_clone_args clone_args = {
+ struct clone_args clone_args = {
.flags = handler->clone_flags,
.pidfd = ptr_to_u64(&handler->pidfd),
.exit_signal = SIGCHLD,
--- a/src/lxc/start.h
+++ b/src/lxc/start.h
@@ -5,7 +5,6 @@
#include "config.h"
-#include <linux/sched.h>
#include <sched.h>
#include <signal.h>
#include <stdbool.h>
--- a/src/tests/reboot.c
+++ b/src/tests/reboot.c
@@ -32,8 +32,6 @@
#include "namespace.h"
-#include <sched.h>
-#include <linux/sched.h>
#include <linux/reboot.h>
int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...);

View file

@ -1,112 +0,0 @@
From 133aa416ca2a5996090ec0e697e253646364d274 Mon Sep 17 00:00:00 2001
From: Christian Brauner <brauner@kernel.org>
Date: Wed, 10 Aug 2022 12:18:49 +0200
Subject: tree-wide: use struct open_how directly
Signed-off-by: Christian Brauner (Microsoft) <christian.brauner@ubuntu.com>
---
meson.build | 2 --
src/lxc/file_utils.c | 2 +-
src/lxc/mount_utils.c | 8 ++++----
src/lxc/syscall_wrappers.h | 6 ++++--
src/lxc/utils.c | 2 +-
5 files changed, 10 insertions(+), 10 deletions(-)
--- a/meson.build
+++ b/meson.build
@@ -579,9 +579,7 @@ decl_headers = '''
#include <uchar.h>
#include <sys/mount.h>
#include <sys/stat.h>
-#include <linux/fs.h>
#include <linux/if_link.h>
-#include <linux/openat2.h>
#include <linux/types.h>
'''
--- a/src/lxc/file_utils.c
+++ b/src/lxc/file_utils.c
@@ -652,7 +652,7 @@ int open_at(int dfd, const char *path, u
unsigned int resolve_flags, mode_t mode)
{
__do_close int fd = -EBADF;
- struct lxc_open_how how = {
+ struct open_how how = {
.flags = o_flags,
.mode = mode,
.resolve = resolve_flags,
--- a/src/lxc/mount_utils.c
+++ b/src/lxc/mount_utils.c
@@ -186,7 +186,7 @@ int fs_prepare(const char *fs_name,
int fd_from;
if (!is_empty_string(path_from)) {
- struct lxc_open_how how = {
+ struct open_how how = {
.flags = o_flags_from,
.resolve = resolve_flags_from,
};
@@ -237,7 +237,7 @@ int fs_attach(int fd_fs,
int fd_to, ret;
if (!is_empty_string(path_to)) {
- struct lxc_open_how how = {
+ struct open_how how = {
.flags = o_flags_to,
.resolve = resolve_flags_to,
};
@@ -308,7 +308,7 @@ int move_detached_mount(int dfd_from, in
int fd_to, ret;
if (!is_empty_string(path_to)) {
- struct lxc_open_how how = {
+ struct open_how how = {
.flags = o_flags_to,
.resolve = resolve_flags_to,
};
@@ -348,7 +348,7 @@ int __fd_bind_mount(int dfd_from, const
set_atime(&attr);
if (!is_empty_string(path_from)) {
- struct lxc_open_how how = {
+ struct open_how how = {
.flags = o_flags_from,
.resolve = resolve_flags_from,
};
--- a/src/lxc/syscall_wrappers.h
+++ b/src/lxc/syscall_wrappers.h
@@ -240,11 +240,13 @@ static inline int mount_setattr(int dfd,
* @mode: O_CREAT/O_TMPFILE file mode.
* @resolve: RESOLVE_* flags.
*/
-struct lxc_open_how {
+#if !HAVE_STRUCT_OPEN_HOW
+struct open_how {
__u64 flags;
__u64 mode;
__u64 resolve;
};
+#endif
/* how->resolve flags for openat2(2). */
#ifndef RESOLVE_NO_XDEV
@@ -296,7 +298,7 @@ struct lxc_open_how {
#define PROTECT_OPEN_RW (O_CLOEXEC | O_NOCTTY | O_RDWR | O_NOFOLLOW)
#if !HAVE_OPENAT2
-static inline int openat2(int dfd, const char *filename, struct lxc_open_how *how, size_t size)
+static inline int openat2(int dfd, const char *filename, struct open_how *how, size_t size)
{
return syscall(__NR_openat2, dfd, filename, how, size);
}
--- a/src/lxc/utils.c
+++ b/src/lxc/utils.c
@@ -1095,7 +1095,7 @@ int __safe_mount_beneath_at(int beneath_
unsigned int flags, const void *data)
{
__do_close int source_fd = -EBADF, target_fd = -EBADF;
- struct lxc_open_how how = {
+ struct open_how how = {
.flags = PROTECT_OPATH_DIRECTORY,
.resolve = PROTECT_LOOKUP_BENEATH_WITH_MAGICLINKS,
};

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=nano PKG_NAME:=nano
PKG_VERSION:=7.2 PKG_VERSION:=7.2
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/nano PKG_SOURCE_URL:=@GNU/nano
@ -138,7 +138,7 @@ endef
define Package/nano-full/install define Package/nano-full/install
$(call Package/nano/install,$1) $(call Package/nano/install,$1)
$(INSTALL_DIR) $(1)/etc $(1)/usr/share/nano $(INSTALL_DIR) $(1)/etc $(1)/usr/share/nano
$(INSTALL_CONF) ./files/nanorc $(1)/etc/nanorc $(INSTALL_DATA) ./files/nanorc $(1)/etc/nanorc
$(INSTALL_DATA) ./files/uci.nanorc $(1)/usr/share/nano $(INSTALL_DATA) ./files/uci.nanorc $(1)/usr/share/nano
$(CP) $(PKG_INSTALL_DIR)/usr/share/nano/* $(1)/usr/share/nano $(CP) $(PKG_INSTALL_DIR)/usr/share/nano/* $(1)/usr/share/nano
endef endef

View file

@ -8,8 +8,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=squashfs-tools PKG_NAME:=squashfs-tools
PKG_VERSION:=4.5.1 PKG_VERSION:=4.6.1
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING PKG_LICENSE_FILES:=COPYING
@ -18,7 +18,7 @@ PKG_CPE_ID:=cpe:/a:phillip_lougher:squashfs
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/plougher/squashfs-tools/tar.gz/${PKG_VERSION}? PKG_SOURCE_URL:=https://codeload.github.com/plougher/squashfs-tools/tar.gz/${PKG_VERSION}?
PKG_HASH:=277b6e7f75a4a57f72191295ae62766a10d627a4f5e5f19eadfbc861378deea7 PKG_HASH:=94201754b36121a9f022a190c75f718441df15402df32c2b520ca331a107511c
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@ -52,9 +52,6 @@ endef
Build/Configure:= Build/Configure:=
MAKE_FLAGS += \
XATTR_SUPPORT=
ifneq ($(CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT),) ifneq ($(CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT),)
MAKE_FLAGS += XZ_SUPPORT=1 MAKE_FLAGS += XZ_SUPPORT=1
endif endif

View file

@ -6,12 +6,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=stress-ng PKG_NAME:=stress-ng
PKG_VERSION:=0.15.03 PKG_VERSION:=0.15.06
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/ColinIanKing/stress-ng/tar.gz/refs/tags/V$(PKG_VERSION)? PKG_SOURCE_URL:=https://codeload.github.com/ColinIanKing/stress-ng/tar.gz/refs/tags/V$(PKG_VERSION)?
PKG_HASH:=7cceca64da37fd3c8db7167ed386fd7d3e1d9d6891a1f6227911ab8d4b17379c PKG_HASH:=c38cefcf0a83f6c65aed7c36e57a9a1ee8373418ef71cf089a75b0661dcd4623
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com> PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only

View file

@ -1,6 +1,6 @@
--- a/Makefile.config --- a/Makefile.config
+++ b/Makefile.config +++ b/Makefile.config
@@ -272,7 +272,7 @@ LD_GOLD: @@ -264,7 +264,7 @@ clean:
libraries: \ libraries: \
configdir \ configdir \
LIB_AIO LIB_APPARMOR LIB_BSD LIB_CRYPT LIB_DL \ LIB_AIO LIB_APPARMOR LIB_BSD LIB_CRYPT LIB_DL \

View file

@ -1,6 +1,6 @@
--- a/Makefile.config --- a/Makefile.config
+++ b/Makefile.config +++ b/Makefile.config
@@ -274,7 +274,7 @@ libraries: \ @@ -266,7 +266,7 @@ libraries: \
LIB_AIO LIB_APPARMOR LIB_BSD LIB_CRYPT LIB_DL \ LIB_AIO LIB_APPARMOR LIB_BSD LIB_CRYPT LIB_DL \
LIB_IPSEC_MB LIB_JPEG \ LIB_IPSEC_MB LIB_JPEG \
LIB_JUDY LIB_KMOD LIB_MD LIB_PTHREAD LIB_PTHREAD_SPINLOCK \ LIB_JUDY LIB_KMOD LIB_MD LIB_PTHREAD LIB_PTHREAD_SPINLOCK \

View file

@ -1,5 +1,5 @@
# #
# Copyright (C) 2007-2022 OpenWrt.org # Copyright (C) 2007-2023 OpenWrt.org
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@ -9,7 +9,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=zoneinfo PKG_NAME:=zoneinfo
PKG_VERSION:=2022g PKG_VERSION:=2023c
PKG_RELEASE:=1 PKG_RELEASE:=1
#As i couldn't find real license used "Public Domain" #As i couldn't find real license used "Public Domain"
@ -19,14 +19,14 @@ PKG_LICENSE:=Public Domain
PKG_SOURCE:=tzdata$(PKG_VERSION).tar.gz PKG_SOURCE:=tzdata$(PKG_VERSION).tar.gz
PKG_SOURCE_CODE:=tzcode$(PKG_VERSION).tar.gz PKG_SOURCE_CODE:=tzcode$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.iana.org/time-zones/repository/releases PKG_SOURCE_URL:=http://www.iana.org/time-zones/repository/releases
PKG_HASH:=4491db8281ae94a84d939e427bdd83dc389f26764d27d9a5c52d782c16764478 PKG_HASH:=3f510b5d1b4ae9bb38e485aa302a776b317fb3637bdb6404c4adf7b6cadd965c
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Download/tzcode define Download/tzcode
FILE=$(PKG_SOURCE_CODE) FILE=$(PKG_SOURCE_CODE)
URL=$(PKG_SOURCE_URL) URL=$(PKG_SOURCE_URL)
HASH:=9610bb0b9656ff404c361a41f3286da53064b5469d84f00c9cb2314c8614da74 HASH:=46d17f2bb19ad73290f03a203006152e0fa0d7b11e5b71467c4a823811b214e7
endef endef
$(eval $(call Download,tzcode)) $(eval $(call Download,tzcode))