Merge branch 'openwrt:master' into master

This commit is contained in:
Hayzam Sherif 2023-09-08 03:49:33 +05:30 committed by GitHub
commit c4844df444
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
139 changed files with 2143 additions and 1175 deletions

View file

@ -4,7 +4,7 @@ PKG_NAME:=syslog-ng
PKG_VERSION:=4.2.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=LGPL-2.1-or-later GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING LGPL.txt GPL.txt
PKG_CPE_ID:=cpe:/a:balabit:syslog-ng

View file

@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=lua-eco
PKG_VERSION:=2.4.0
PKG_VERSION:=2.5.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL=https://github.com/zhaojh329/lua-eco/releases/download/v$(PKG_VERSION)
PKG_HASH:=7dd3ae8c9548ad9f0bfcc9a95e77c6f24ef868d3dd21983c5b940f738360ff9b
PKG_HASH:=436c09dd7dbc88ab651ae7696f2102b5635628ab420cc550bc237ecb04cade5d
PKG_MAINTAINER:=Jianhui Zhao <zhaojh329@gmail.com>
PKG_LICENSE:=MIT

View file

@ -16,7 +16,7 @@ PKG_HASH:=9b7c3b412e9e69d172cfb24be0e6addcc9f1bd01a28db8bebe66d75ccc533d88
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_BUILD_DEPENDS:=python-poetry-core/host

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=awesomeversion
PKG_HASH:=a505558316010d2d10d487226f79c1157204af00fa462fdcf948e347011dd491
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENCE.md

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=Babel
PKG_HASH:=cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE

View file

@ -7,11 +7,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-ble2mqtt
PKG_VERSION:=0.1.9
PKG_VERSION:=0.2.0
PKG_RELEASE:=1
PYPI_NAME:=ble2mqtt
PKG_HASH:=4b7c9ea747d04687a7e57d47a7d847870e4d9f474967906e9e1e06b7bce5a5b9
PKG_HASH:=cd45b5fb382a71d441470899e01be50482d26e2d86e3012e1f5a9ab633248383
PKG_MAINTAINER:=Quintin Hill <stuff@quintin.me.uk>
PKG_LICENSE:=MIT

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=cachetools
PKG_HASH:=dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE

View file

@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-dbus-fast
PKG_VERSION:=1.93.0
PKG_VERSION:=1.94.1
PKG_RELEASE:=1
PYPI_NAME:=dbus-fast
PYPI_SOURCE_NAME:=dbus_fast
PKG_HASH:=4a86346d2fd26b589cf8f98a5467ecb363fce3b8b0d9cef3b5127c9408129428
PKG_HASH:=9514e4abf586c656fb70cf9dab323a019131a032765997972045059717b7537c
PKG_MAINTAINER:=Quintin Hill <stuff@quintin.me.uk>
PKG_LICENSE:=MIT

View file

@ -15,7 +15,7 @@ PYPI_NAME:=flask-babel
PYPI_SOURCE_NAME:=flask_babel
PKG_HASH:=be015772c5d7f046f3b99c508dcf618636eb93d21b713b356db79f3e79f69f39
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=Flask-SeaSurf
PKG_HASH:=54537008c769ac0ada8237877327c3e7ed74dcd8b01e74a9120ee0232c5951a9
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=Flask-Session
PKG_HASH:=0768e2bbf06f963ec1aa711bde7aa32dc39ff70f89b495d6db687d899eae4423
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=Markdown
PKG_HASH:=225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE.md

View file

@ -1,45 +1,140 @@
#!/bin/sh
set -e
process_filespec() {
local src_dir="$1"
local dst_dir="$2"
local filespec="$3"
echo "$filespec" | (
IFS='|'
while read fop fspec fperm; do
local fop=`echo "$fop" | tr -d ' \t\n'`
if [ "$fop" = "+" ]; then
if [ ! -e "${src_dir}${fspec}" ]; then
echo "File not found '${src_dir}${fspec}'"
exit 1
fi
dpath=`dirname "$fspec"`
if [ -z "$fperm" ]; then
dperm=`stat -c "%a" ${src_dir}${dpath}`
fi
mkdir -p -m$dperm ${dst_dir}${dpath}
echo "copying: '$fspec'"
cp -fpR ${src_dir}${fspec} ${dst_dir}${dpath}/
if [ -n "$fperm" ]; then
chmod -R $fperm ${dst_dir}${fspec}
fi
elif [ "$fop" = "-" ]; then
echo "removing: '$fspec'"
rm -fR ${dst_dir}${fspec}
elif [ "$fop" = "=" ]; then
echo "setting permissions: '$fperm' on '$fspec'"
chmod -R $fperm ${dst_dir}${fspec}
fi
done
)
log() {
printf '%s\n' "$*"
}
src_dir="$1"
dst_dir="$2"
error() {
printf 'Error: %s\n' "$*" >&2
}
path_exists() {
local dir="$1"
local path="$2"
[ -n "$(find "$dir"/$path -print -quit 2>/dev/null)" ]
}
file_dir_chmod() {
local dir="$1"
local path="$2"
local file_mode="$3"
local dir_mode="$4"
shift; shift; shift; shift;
if [ -n "$file_mode" ]; then
find "$dir"/$path -type f "$@" -exec chmod "$file_mode" -- '{}' +
fi
if [ -n "$dir_mode" ]; then
find "$dir"/$path -type d "$@" -exec chmod "$dir_mode" -- '{}' +
fi
}
src="$1"
dest="$2"
filespec="$3"
process_filespec "$src_dir" "$dst_dir" "$filespec" || {
echo "process filespec error-ed"
if [ -z "$src" ]; then
error "Missing source directory"
exit 1
}
fi
if [ -z "$dest" ]; then
error "Missing destination directory"
exit 1
fi
while IFS='|' read -r cmd path file_mode dir_mode; do
# trim whitespace
cmd="${cmd#"${cmd%%[![:space:]]*}"}"
cmd="${cmd%"${cmd##*[![:space:]]}"}"
path="${path#"${path%%[![:space:]]*}"}"
path="${path%"${path##*[![:space:]]}"}"
file_mode="${file_mode#"${file_mode%%[![:space:]]*}"}"
file_mode="${file_mode%"${file_mode##*[![:space:]]}"}"
dir_mode="${dir_mode#"${dir_mode%%[![:space:]]*}"}"
dir_mode="${dir_mode%"${dir_mode##*[![:space:]]}"}"
if [ -z "$cmd" ] || [ "$cmd" != "${cmd#\#}" ]; then
continue
fi
if [ -z "$path" ]; then
error "Missing path for \"$cmd\""
exit 1
fi
case "$cmd" in
+)
log "Copying: \"$path\""
if ! path_exists "$src" "$path"; then
error "\"$src/$path\" not found"
exit 1
fi
dir="${path%/*}"
mkdir -p "$dest/$dir"
cp -fpR "$src"/$path "$dest/$dir/"
file_dir_chmod "$dest" "$path" "$file_mode" "$dir_mode"
;;
-)
log "Removing: \"$path\""
if ! path_exists "$dest" "$path"; then
error "\"$dest/$path\" not found"
exit 1
fi
rm -fR -- "$dest"/$path
;;
=)
log "Setting recursive permissions \"${file_mode:-(none)}\"/\"${dir_mode:-(none)}\" on \"$path\""
if ! path_exists "$dest" "$path"; then
error "\"$dest/$path\" not found"
exit 1
fi
if [ -z "$file_mode$dir_mode" ]; then
error "Missing recursive permissions for \"$path\""
exit 1
fi
file_dir_chmod "$dest" "$path" "$file_mode" "$dir_mode"
;;
==)
log "Setting permissions \"${file_mode:-(none)}\"/\"${dir_mode:-(none)}\" on \"$path\""
if ! path_exists "$dest" "$path"; then
error "\"$dest/$path\" not found"
exit 1
fi
if [ -z "$file_mode$dir_mode" ]; then
error "Missing permissions for \"$path\""
exit 1
fi
file_dir_chmod "$dest" "$path" "$file_mode" "$dir_mode" -maxdepth 0
;;
*)
error "Unknown command \"$cmd\""
exit 1
;;
esac
done << EOF
$filespec
EOF

View file

@ -8,7 +8,7 @@ PKG_NAME:=python-paho-mqtt
PKG_VERSION:=1.6.1
PKG_RELEASE:=2
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>, Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>, Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=EPL-1.0 Eclipse Distribution License v1.0
PKG_LICENSE_FILES:=epl-v10 edl-v10

View file

@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-pluggy
PKG_VERSION:=1.2.0
PKG_VERSION:=1.3.0
PKG_RELEASE:=1
PYPI_NAME:=pluggy
PKG_HASH:=d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3
PKG_HASH:=cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>, Jeffery To <jeffery.to@gmail.com>
PKG_LICENSE:=MIT

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=pyotp
PKG_HASH:=346b6642e0dbdde3b4ff5a930b664ca82abfa116356ed48cc42c7d6590d36f63
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=pyrsistent
PKG_HASH:=1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE.mit

View file

@ -11,7 +11,7 @@ PKG_NAME:=python-requests
PKG_VERSION:=2.31.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>, Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>, Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:python-requests:requests

View file

@ -1,16 +1,19 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=rsa
PKG_VERSION:=4.6
PKG_NAME:=python-rsa
PKG_VERSION:=4.9
PKG_RELEASE:=1
PYPI_NAME:=$(PKG_NAME)
PKG_HASH:=109ea5a66744dd859bf16fe904b8d8b627adafb9408753161e766a92e7d681fa
PYPI_NAME:=rsa
PKG_HASH:=e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21
PKG_MAINTAINER:=Daniel Danzberger <daniel@dd-wrt.com>
PKG_LICENSE:=MIT
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:python-rsa_project:python-rsa
PKG_BUILD_DEPENDS:=python-poetry-core/host
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
include ../python3-package.mk
@ -19,15 +22,16 @@ define Package/python3-rsa
SUBMENU:=Python
SECTION:=lang
CATEGORY:=Languages
TITLE:=rsa
TITLE:=Pure-Python RSA implementation
URL:=https://stuvel.eu/rsa
DEPENDS:=+python3 +python3-pyasn1
DEPENDS:=+python3-light +python3-multiprocessing +python3-pydoc +python3-pyasn1
endef
define Package/python3-rsa/description
Is a pure-Python RSA implementation. It supports encryption and decryption,
signing and verifying signatures, and key generation according to PKCS#1 version 1.5.
It can be used as a Python library as well as on the commandline.
Python-RSA is a pure-Python RSA implementation. It supports encryption
and decryption, signing and verifying signatures, and key generation
according to PKCS#1 version 1.5. It can be used as a Python library as
well as on the commandline.
endef
$(eval $(call Py3Package,python3-rsa))

View file

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-schedule
PKG_VERSION:=0.6.0
PKG_RELEASE:=2
PKG_VERSION:=1.2.0
PKG_RELEASE:=1
PYPI_NAME:=schedule
PKG_HASH:=f9fb5181283de4db6e701d476dd01b6a3dd81c38462a54991ddbb9d26db857c9
PKG_HASH:=b4ad697aafba7184c9eb6a1e2ebc41f781547242acde8ceae9a0a25b04c0922d
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE.txt
@ -32,9 +32,10 @@ define Package/python3-schedule
endef
define Package/python3-schedule/description
An in-process scheduler for periodic jobs that uses the builder pattern for configuration.
The Schedule lets you run Python functions (or any other callable)
periodically at predetermined intervals using a simple, human-friendly syntax.
An in-process scheduler for periodic jobs that uses the builder pattern
for configuration. The Schedule lets you run Python functions (or any
other callable) periodically at predetermined intervals using a simple,
human-friendly syntax.
endef
$(eval $(call Py3Package,python3-schedule))

View file

@ -5,12 +5,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-schema
PKG_VERSION:=0.7.2
PKG_VERSION:=0.7.5
PKG_RELEASE:=1
PKG_MAINTAINER:=Karel Kočí <cynerd@email.cz>
PYPI_NAME:=schema
PKG_HASH:=b536f2375b49fdf56f36279addae98bd86a8afbd58b3c32ce363c464bed5fc1c
PKG_HASH:=f06717112c61895cabc4707752b88716e8420a8819d71404501e114f91043197
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE-MIT
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
@ -21,12 +24,15 @@ define Package/python3-schema
CATEGORY:=Languages
SUBMENU:=Python
URL:=https://github.com/keleshev/schema
TITLE:=python3-schema
TITLE:=Simple data validation library
DEPENDS:=+python3-light +python3-contextlib2
endef
define Package/python3-schema/description
Schema validation just got Pythonic
schema is a library for validating Python data structures, such as those
obtained from config-files, forms, external services or command-line
parsing, converted from JSON/YAML (or something else) to Python
data-types.
endef
$(eval $(call Py3Package,python3-schema))

View file

@ -8,14 +8,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-sentry-sdk
PKG_VERSION:=1.5.4
PKG_VERSION:=1.29.2
PKG_RELEASE:=1
PYPI_NAME:=sentry-sdk
PKG_HASH:=f7e54567937ebcbe938c4df1075ec891587faeb7c74184b88cf2894e47c86116
PKG_HASH:=a99ee105384788c3f228726a88baf515fe7b5f1d2d0f215a03d194369f158df7
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_LICENSE:=BSD-2-Clause
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include ../pypi.mk
@ -26,17 +26,16 @@ define Package/python3-sentry-sdk
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=Python Client for Sentry
TITLE:=Client for Sentry
URL:=https://github.com/getsentry/sentry-python
DEPENDS:= \
+python3 \
+python3-certifi \
+python3-light \
+python3-logging \
+python3-urllib3
endef
define Package/python3-sentry-sdk/description
Python Sentry-Python is an SDK for Sentry.
This is the official Python SDK for Sentry.
endef
$(eval $(call Py3Package,python3-sentry-sdk))

View file

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-slugify
PKG_VERSION:=4.0.1
PKG_VERSION:=8.0.1
PKG_RELEASE:=1
PYPI_NAME:=$(PKG_NAME)
PKG_HASH:=69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270
PKG_HASH:=ce0d46ddb668b3be82f4ed5e503dbc33dd815d83e2eb6824211310d3fb172a27
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
@ -31,7 +31,6 @@ define Package/python3-slugify
DEPENDS:= \
+python3-light \
+python3-codecs \
+python3-setuptools \
+python3-text-unidecode
endef

View file

@ -8,17 +8,19 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-sqlalchemy
PKG_VERSION:=1.4.22
PKG_VERSION:=2.0.20
PKG_RELEASE:=1
PYPI_NAME:=SQLAlchemy
PKG_HASH:=ec1be26cdccd60d180359a527d5980d959a26269a2c7b1b327a1eea0cab37ed8
PKG_HASH:=ca8a5ff2aa7f3ade6c498aaafce25b1eaeabe4e42b73e25519183e4566a16fc6
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:sqlalchemy:sqlalchemy
PKG_BUILD_DEPENDS:=python-cython/host
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
include ../python3-package.mk
@ -29,19 +31,15 @@ define Package/python3-sqlalchemy
SUBMENU:=Python
TITLE:=Database Abstraction Library
URL:=https://www.sqlalchemy.org
DEPENDS:= \
+python3-light \
+python3-urllib \
+python3-decimal \
+python3-logging
DEPENDS:=+python3 +python3-typing-extensions
endef
define Package/python3-sqlalchemy/description
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper
that gives application developers the full power and flexibility of SQL.
SQLAlchemy provides a full suite of well known enterprise-level persistence patterns,
designed for efficient and high-performing database access,
adapted into a simple and Pythonic domain language.
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
gives application developers the full power and flexibility of SQL.
SQLAlchemy provides a full suite of well known enterprise-level
persistence patterns, designed for efficient and high-performing
database access, adapted into a simple and Pythonic domain language.
endef
$(eval $(call Py3Package,python3-sqlalchemy))

View file

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-tornado
PKG_VERSION:=6.1
PKG_VERSION:=6.3.3
PKG_RELEASE:=1
PYPI_NAME:=tornado
PKG_HASH:=33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791
PKG_HASH:=e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
@ -27,17 +27,8 @@ define Package/python3-tornado
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=Web framework and asynchronous networking library
URL:=https://tornadoweb.org
DEPENDS:= \
+python3-asyncio \
+python3-codecs \
+python3-email \
+python3-light \
+python3-logging \
+python3-multiprocessing \
+python3-openssl \
+python3-unittest \
+python3-urllib
URL:=https://www.tornadoweb.org
DEPENDS:=+python3
endef
define Package/python3-tornado/description

View file

@ -8,14 +8,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-trio
PKG_VERSION:=0.22.0
PKG_VERSION:=0.22.2
PKG_RELEASE:=1
PYPI_NAME:=trio
PKG_HASH:=ce68f1c5400a47b137c5a4de72c7c901bd4e7a24fbdebfe9b41de8c6c04eaacf
PKG_HASH:=3887cf18c8bcc894433420305468388dac76932e9668afa1c49aa3806b6accb3
PKG_LICENSE:=Apache-2.0|MIT
PKG_LICENSE_FILES:=LICENSE.APACHE2|LICENSE.MIT
PKG_LICENSE:=Apache-2.0 MIT
PKG_LICENSE_FILES:=LICENSE.APACHE2 LICENSE.MIT
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
include ../pypi.mk
@ -26,14 +26,11 @@ define Package/python3-trio
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=A friendly Python library for async concurrency and I/O
URL:=https://trio.readthedocs.io
TITLE:=Friendly library for async concurrency and I/O
URL:=https://github.com/python-trio/trio
DEPENDS:= \
+python3-light \
+python3-attrs \
+python3-async-generator \
+python3-cffi \
+python3-exceptiongroup \
+python3-idna \
+python3-outcome \
+python3-sniffio \
@ -41,7 +38,8 @@ define Package/python3-trio
endef
define Package/python3-trio/description
The Trio projects goal is to produce a production-quality, permissively licensed, async/await-native I/O library for Python
The Trio projects goal is to produce a production-quality, permissively
licensed, async/await-native I/O library for Python.
endef
$(eval $(call Py3Package,python3-trio))

View file

@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-ubus
PKG_VERSION:=0.1.1
PKG_RELEASE:=2
PKG_VERSION:=0.1.2
PKG_RELEASE:=1
PYPI_NAME:=ubus
PKG_HASH:=7e57bda989bc35b48c7075d03ec2818226e722bbf1bde138d7e7ea26d462682a
PKG_HASH:=4dc4ef0fbcc8abb7a2354691475a58ff3eb015f1bab3150750729f7f657dd440
PKG_MAINTAINER:=Erik Larsson <who+openwrt@cnackers.org>
PKG_LICENSE:=LGPL-2.1-or-later
@ -28,7 +28,7 @@ define Package/python3-ubus
SUBMENU:=Python
SECTION:=lang
CATEGORY:=Languages
TITLE:=Python3 ubus
TITLE:=libubus bindings
URL:=https://gitlab.nic.cz/turris/python-ubus/
DEPENDS:=+libubus +libblobmsg-json +python3-light
endef

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=pyuci
PKG_HASH:=865a45d48fb5d363f1230e94fa2c5b01ae6487f02f2180b0a6f78193a70166e2
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=LICENSE

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=Unidecode
PKG_HASH:=fed09cf0be8cf415b391642c2a5addfc72194407caee4f98719e40ec2a72b830
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=LICENSE

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-urllib3
PKG_VERSION:=1.25.11
PKG_VERSION:=2.0.4
PKG_RELEASE:=1
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
@ -17,7 +17,9 @@ PKG_LICENSE_FILES:=LICENSE.txt
PKG_CPE_ID:=cpe:/a:urllib3_project:urllib3
PYPI_NAME:=urllib3
PKG_HASH:=8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2
PKG_HASH:=8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11
PKG_BUILD_DEPENDS:=python-hatchling/host
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk

View file

@ -7,16 +7,16 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=voluptuous-serialize
PKG_VERSION:=2.5.0
PKG_NAME:=python-voluptuous-serialize
PKG_VERSION:=2.6.0
PKG_RELEASE:=1
PYPI_NAME:=$(PKG_NAME)
PKG_HASH:=5359f2e0a4f972ae03066e0777b4f0755c9226b2af099ca4fc55432efd1a447b
PYPI_NAME:=voluptuous-serialize
PKG_HASH:=79acdc58239582a393144402d827fa8efd6df0f5350cdc606d9242f6f9bca7c4
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=COPYING
PKG_LICENSE_FILES:=LICENSE
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk

View file

@ -8,15 +8,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-voluptuous
PKG_VERSION:=0.12.1
PKG_VERSION:=0.13.1
PKG_RELEASE:=1
PYPI_NAME:=voluptuous
PKG_HASH:=663572419281ddfaf4b4197fd4942d181630120fb39b333e3adad70aeb56444b
PKG_HASH:=e8d31c20601d6773cb14d4c0f42aee29c6821bbd1018039aac7ac5605b489723
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
@ -28,12 +28,12 @@ define Package/python3-voluptuous
SUBMENU:=Python
TITLE:=Data validation library
URL:=https://github.com/alecthomas/voluptuous
DEPENDS:= \
+python3-light
DEPENDS:=+python3-light +python3-decimal +python3-urllib
endef
define Package/python3-voluptuous/description
It is primarily intended for validating data coming into Python as JSON, YAML, etc.
It is primarily intended for validating data coming into Python as JSON,
YAML, etc.
endef
$(eval $(call Py3Package,python3-voluptuous))

View file

@ -9,15 +9,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-wcwidth
PKG_VERSION:=0.2.5
PKG_VERSION:=0.2.6
PKG_RELEASE:=1
PYPI_NAME:=wcwidth
PKG_HASH:=c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83
PKG_HASH:=a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE.txt
PKG_LICENSE_FILES:=LICENSE
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
@ -33,7 +33,8 @@ define Package/python3-wcwidth
endef
define Package/python3-wcwidth/description
Python library that measures the width of unicode strings rendered to a terminal
Python library that measures the width of unicode strings rendered to a
terminal
endef
$(eval $(call Py3Package,python3-wcwidth))

View file

@ -1,11 +1,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-websocket-client
PKG_VERSION:=1.6.1
PKG_VERSION:=1.6.2
PKG_RELEASE:=1
PYPI_NAME:=websocket-client
PKG_HASH:=c951af98631d24f8df89ab1019fc365f2227c0892f12fd150e935607c79dd0dd
PKG_HASH:=53e95c826bf800c4c465f50093a8c4ff091c7327023b10bfaff40cf1ef170eaa
PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
PKG_LICENSE:=Apache-2.0

View file

@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-websockets
PKG_VERSION:=10.3
PKG_VERSION:=11.0.3
PKG_RELEASE:=1
PYPI_NAME:=websockets
PKG_HASH:=fc06cc8073c8e87072138ba1e431300e2d408f054b27047d047b549455066ff4
PKG_HASH:=88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016
PKG_MAINTAINER:=Michal Vasilek <michal.vasilek@nic.cz>
PKG_LICENSE:=BSD-3-Clause
@ -26,18 +26,18 @@ define Package/python3-websockets
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=Library for developing WebSocket servers and clients
URL:=https://websockets.readthedocs.io/
DEPENDS:=+python3-light +python3-asyncio +python3-ctypes +python3-email \
+python3-logging +python3-urllib
TITLE:=Implementation of the WebSocket Protocol
URL:=https://github.com/aaugustin/websockets
DEPENDS:=+python3
endef
define Package/python3-websockets/description
websockets is a library for building WebSocket servers and clients
in Python with a focus on correctness and simplicity.
websockets is a library for building WebSocket servers and clients in
Python with a focus on correctness, simplicity, robustness, and
performance.
Built on top of asyncio, Pythons standard asynchronous I/O framework.
It provides an elegant coroutine-based API.
Built on top of asyncio, Python's standard asynchronous I/O framework,
the default implementation provides an elegant coroutine-based API.
endef
$(eval $(call Py3Package,python3-websockets))

View file

@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-wheel
PKG_VERSION:=0.41.1
PKG_VERSION:=0.41.2
PKG_RELEASE:=1
PYPI_NAME:=wheel
PKG_HASH:=12b911f083e876e10c595779709f8a88a59f45aacc646492a67fe9ef796c1b47
PKG_HASH:=0c5ac5ff2afb79ac23ab82bab027a0be7b5dbcf2e54dc50efe4bf507de1f7985
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE.txt

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=4
PYPI_NAME:=PyYAML
PKG_HASH:=68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:pyyaml_project:pyyaml

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=bottle
PKG_HASH:=e1a9c94970ae6d710b3fb4526294dfeb86f2cb4a81eff3a4b98dc40fb0e5e021
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:bottlepy:bottle

View file

@ -20,7 +20,7 @@ PYTHON3:=python$(PYTHON3_VERSION)
PYTHON3PATH:=$(PYTHON3_LIB_DIR):$(STAGING_DIR)/$(PYTHON3_PKG_DIR):$(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)
-include $(PYTHON3_LIB_DIR)/config-$(PYTHON3_VERSION)/Makefile-vars
-include $(PYTHON3_LIB_DIR)/openwrt/Makefile-vars
# These configure args are needed in detection of path to Python header files
# using autotools.
@ -39,6 +39,7 @@ PYTHON3_VARS = \
CPPFLAGS="$(TARGET_CPPFLAGS) -I$(PYTHON3_INC_DIR)" \
LDFLAGS="$(TARGET_LDFLAGS) -lpython$(PYTHON3_VERSION)" \
_PYTHON_HOST_PLATFORM="$(_PYTHON_HOST_PLATFORM)" \
_PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH)" \
PYTHONPATH="$(PYTHON3PATH)" \
PYTHONDONTWRITEBYTECODE=1 \
_python_sysroot="$(STAGING_DIR)" \

View file

@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
include ../python3-version.mk
PKG_NAME:=python3
PKG_RELEASE:=1
PKG_RELEASE:=3
PKG_VERSION:=$(PYTHON3_VERSION).$(PYTHON3_VERSION_MICRO)
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
@ -31,7 +31,6 @@ PYTHON3_PKG_BUILD:=0
include ../python3-package.mk
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
HOST_BUILD_PARALLEL:=1
# LTO is handled here individually, see --with-lto below
@ -51,44 +50,52 @@ define Package/python3/Default
SUBMENU:=Python
SECTION:=lang
CATEGORY:=Languages
TITLE:=Python $(PYTHON3_VERSION) programming language
TITLE:=Python $(PYTHON3_VERSION)
URL:=https://www.python.org/
endef
define Package/python3/Default/description
Python is a dynamic object-oriented programming language that can be used
for many kinds of software development. It offers strong support for
integration with other languages and tools, comes with extensive standard
libraries, and can be learned in a few days. Many Python programmers
report substantial productivity gains and feel the language encourages
the development of higher quality, more maintainable code.
Python is an interpreted, interactive, object-oriented programming
language. It incorporates modules, exceptions, dynamic typing, very high
level dynamic data types, and classes. It supports multiple programming
paradigms beyond object-oriented programming, such as procedural and
functional programming. Python combines remarkable power with very clear
syntax. It has interfaces to many system calls and libraries, as well as
to various window systems, and is extensible in C or C++. It is also
usable as an extension language for applications that need a
programmable interface. Finally, Python is portable: it runs on many
Unix variants including Linux and macOS, and on Windows.
endef
define Package/libpython3
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) core library
TITLE+= core library
DEPENDS:=+libpthread
ABI_VERSION:=$(PYTHON3_VERSION)
endef
define Package/libpython3/description
This package contains only core Python library.
$(call Package/python3/Default/description)
This package contains only core Python library.
endef
define Package/python3-base
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) interpreter
TITLE+= base interpreter
DEPENDS:=+libpython3
endef
define Package/python3-base/description
This package contains only the interpreter and the bare minimum
for the interpreter to start.
$(call Package/python3/Default/description)
This package contains only the interpreter and the bare minimum for the
interpreter to start.
endef
define Package/python3-light
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) light installation
TITLE+= light installation
DEPENDS:=+python3-base +libbz2 +zlib
endef
@ -97,14 +104,15 @@ define Package/python3-light/config
endef
define Package/python3-light/description
This package is essentially the python3-base package plus
a few of the rarely used (and big) libraries stripped out
into separate packages.
$(call Package/python3/Default/description)
This package installs the base interpreter package and contains the most
commonly used parts of the standard library.
endef
PYTHON3_LIB_FILES_DEL:=
PYTHON3_PACKAGES:=
PYTHON3_SO_SUFFIX:=cpython-$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR).so
PYTHON3_SO_SUFFIX:=cpython-$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR)-*.so
PYTHON3_PACKAGES_DEPENDS:=
define Py3BasePackage
PYTHON3_PACKAGES+=$(1)
@ -112,13 +120,15 @@ define Py3BasePackage
PYTHON3_PACKAGES_DEPENDS+=$(1)
endif
PYTHON3_LIB_FILES_DEL+=$(2)
define Py3Package/$(1)/filespec
ifneq ($(2),)
$(subst $(space),$(newline),$(foreach lib_file,$(2),+|$(lib_file)))
-|/usr/lib/python$(PYTHON3_VERSION)/*/test
-|/usr/lib/python$(PYTHON3_VERSION)/*/tests
endif
endef
ifeq ($(2),)
Py3Package/$(1)/filespec=
else
define Py3Package/$(1)/filespec
$(foreach lib_file,$(2),
+|$(lib_file)
)
endef
endif
Py3Package/$(1)/install?=:
endef
@ -126,16 +136,19 @@ include ./files/python3-package-*.mk
define Package/python3
$(call Package/python3/Default)
TITLE+= programming language
DEPENDS:=+python3-light $(foreach package,$(PYTHON3_PACKAGES_DEPENDS),+$(package))
endef
define Package/python3/description
This package contains the (almost) full Python install.
It's python3-light + all other packages.
$(call Package/python3/Default/description)
This package installs almost all parts of the standard Python
installation.
endef
# Set READELF here so that the exact same readelf program name can be
# replaced in _sysconfigdata.py (in Py3Package/python3-base/install)
# replaced in _sysconfigdata_*.py (in Build/Install)
TARGET_CONFIGURE_OPTS+= \
READELF="$(TARGET_CROSS)readelf"
@ -183,23 +196,38 @@ CONFIGURE_ARGS += \
$(if $(CONFIG_IPV6),--enable-ipv6) \
$(if $(findstring mips,$(CONFIG_ARCH)),,--with-lto)
define Build/Install
$(call Build/Install/Default,)
$(SED) 's|$(TARGET_AR)|ar|g;s|$(TARGET_CROSS)readelf|readelf|g;s|$(TARGET_CC)|gcc|g;s|$(TARGET_CXX)|g++|g' \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/_sysconfigdata_*.py \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/config-$(PYTHON3_VERSION)-*/Makefile
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib $(1)/usr/lib/pkgconfig
$(INSTALL_DIR) $(2)/bin
$(INSTALL_DIR) $(1)/usr/include
$(CP) \
$(PKG_INSTALL_DIR)/usr/include/python$(PYTHON3_VERSION) \
$(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION) \
$(PKG_INSTALL_DIR)/usr/lib/libpython$(PYTHON3_VERSION).so* \
$(1)/usr/lib/
grep \
'^_PYTHON_HOST_PLATFORM=' \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/config-$(PYTHON3_VERSION)/Makefile > \
$(1)/usr/lib/python$(PYTHON3_VERSION)/config-$(PYTHON3_VERSION)/Makefile-vars
$(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON3_VERSION)/openwrt
grep -E \
'^(_PYTHON_HOST_PLATFORM|ABIFLAGS|MACHDEP|MULTIARCH)=' \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/config-$(PYTHON3_VERSION)-*/Makefile > \
$(1)/usr/lib/python$(PYTHON3_VERSION)/openwrt/Makefile-vars
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/python*.pc \
$(1)/usr/lib/pkgconfig
$(INSTALL_DIR) $(2)/bin
$(INSTALL_BIN) \
$(PKG_INSTALL_DIR)/usr/bin/python$(PYTHON3_VERSION)-config \
$(2)/bin/
@ -212,7 +240,7 @@ PYTHON3_BASE_LIB_FILES:= \
/usr/lib/python$(PYTHON3_VERSION)/encodings \
/usr/lib/python$(PYTHON3_VERSION)/_collections_abc.py \
/usr/lib/python$(PYTHON3_VERSION)/_sitebuiltins.py \
/usr/lib/python$(PYTHON3_VERSION)/_sysconfigdata.py \
/usr/lib/python$(PYTHON3_VERSION)/_sysconfigdata_*.py \
/usr/lib/python$(PYTHON3_VERSION)/_weakrefset.py \
/usr/lib/python$(PYTHON3_VERSION)/abc.py \
/usr/lib/python$(PYTHON3_VERSION)/codecs.py \
@ -228,24 +256,22 @@ PYTHON3_LIB_FILES_DEL+=$(PYTHON3_BASE_LIB_FILES)
define Py3Package/python3-base/filespec
+|/usr/bin/python$(PYTHON3_VERSION)
$(subst $(space),$(newline),$(foreach lib_file,$(PYTHON3_BASE_LIB_FILES),+|$(lib_file)))
$(foreach lib_file,$(PYTHON3_BASE_LIB_FILES),
+|$(lib_file)
)
endef
define Py3Package/python3-light/filespec
+|/usr/lib/python$(PYTHON3_VERSION)
-|/usr/lib/python$(PYTHON3_VERSION)/distutils/cygwinccompiler.py
-|/usr/lib/python$(PYTHON3_VERSION)/distutils/command/wininst*
-|/usr/lib/python$(PYTHON3_VERSION)/idlelib
-|/usr/lib/python$(PYTHON3_VERSION)/tkinter
-|/usr/lib/python$(PYTHON3_VERSION)/turtledemo
-|/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_test*.so
-|/usr/lib/python$(PYTHON3_VERSION)/pdb.doc
-|/usr/lib/python$(PYTHON3_VERSION)/test
-|/usr/lib/python$(PYTHON3_VERSION)/webbrowser.py
-|/usr/lib/python$(PYTHON3_VERSION)/*/test
-|/usr/lib/python$(PYTHON3_VERSION)/*/tests
-|/usr/lib/python$(PYTHON3_VERSION)/_osx_support.py
$(subst $(space),$(newline),$(foreach lib_file,$(PYTHON3_LIB_FILES_DEL),-|$(lib_file)))
$(foreach lib_file,$(filter /usr/lib/python$(PYTHON3_VERSION)/%,$(PYTHON3_LIB_FILES_DEL)),
-|$(lib_file)
)
endef
define Package/libpython3/install
@ -258,17 +284,10 @@ define Py3Package/python3-base/install
$(INSTALL_DIR) $(1)/usr/bin
$(LN) python$(PYTHON3_VERSION) $(1)/usr/bin/python3
$(LN) python$(PYTHON3_VERSION) $(1)/usr/bin/python
# This depends on being called before filespec is processed
$(SED) 's|$(TARGET_AR)|ar|g;s|$(TARGET_CROSS)readelf|readelf|g;s|$(TARGET_CC)|gcc|g;s|$(TARGET_CXX)|g++|g' \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/_sysconfigdata.py
endef
Py3Package/python3-light/install:=:
Py3Package/python3/install:=:
define Py3Package/python3/filespec
-|$(PYTHON3_PKG_DIR)
endef
Package/python3/install:=:
# libuuid is provided by e2fsprogs and uuid/uuid.h is moved into
# $(STAGING_DIR_HOST)/include/e2fsprogs
@ -351,14 +370,13 @@ $(foreach package, $(PYTHON3_PACKAGES), \
)
$(eval $(call BuildPackage,libpython3))
$(eval $(call BuildPackage,python3))
$(eval $(call Py3Package,python3-base))
$(eval $(call Py3Package,python3-light))
$(eval $(call Py3Package,python3))
$(eval $(call BuildPackage,python3-base))
$(eval $(call BuildPackage,python3-light))
$(eval $(call BuildPackage,python3))
$(eval $(call BuildPackage,python3-base-src))
$(eval $(call BuildPackage,python3-light-src))

View file

@ -7,10 +7,16 @@
define Package/python3-asyncio
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) asyncio module
TITLE+= asyncio module
DEPENDS:=+python3-light
endef
define Package/python3-asyncio/description
$(call Package/python3/Default/description)
This package contains the asyncio module.
endef
$(eval $(call Py3BasePackage,python3-asyncio, \
/usr/lib/python$(PYTHON3_VERSION)/asyncio \
))

View file

@ -7,16 +7,27 @@
define Package/python3-cgi
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) cgi module
TITLE+= cgi module
DEPENDS:=+python3-light +python3-email
endef
define Package/python3-cgitb
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) cgitb module
TITLE+= cgitb module
DEPENDS:=+python3-light +python3-cgi +python3-pydoc
endef
define Package/python3-cgi/description
$(call Package/python3/Default/description)
This package contains the cgi module.
endef
define Package/python3-cgitb/description
$(call Package/python3/Default/description)
This package contains the cgitb module.
endef
$(eval $(call Py3BasePackage,python3-cgi, \
/usr/lib/python$(PYTHON3_VERSION)/cgi.py \

View file

@ -7,10 +7,16 @@
define Package/python3-codecs
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) codecs + unicode support
TITLE+= codecs/Unicode support
DEPENDS:=+python3-light
endef
define Package/python3-codecs/description
$(call Package/python3/Default/description)
This package contains codecs and Unicode support.
endef
$(eval $(call Py3BasePackage,python3-codecs, \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_cn.$(PYTHON3_SO_SUFFIX) \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_hk.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,10 +7,16 @@
define Package/python3-ctypes
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) ctypes module
TITLE+= ctypes module
DEPENDS:=+python3-light +libffi
endef
define Package/python3-ctypes/description
$(call Package/python3/Default/description)
This package contains the ctypes module.
endef
$(eval $(call Py3BasePackage,python3-ctypes, \
/usr/lib/python$(PYTHON3_VERSION)/ctypes \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_ctypes.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,10 +7,16 @@
define Package/python3-dbm
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) dbm module
TITLE+= dbm module
DEPENDS:=+python3-light +libgdbm
endef
define Package/python3-dbm/description
$(call Package/python3/Default/description)
This package contains the dbm module.
endef
$(eval $(call Py3BasePackage,python3-dbm, \
/usr/lib/python$(PYTHON3_VERSION)/dbm \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_dbm.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,10 +7,16 @@
define Package/python3-decimal
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) decimal module
TITLE+= decimal module
DEPENDS:=+python3-light
endef
define Package/python3-decimal/description
$(call Package/python3/Default/description)
This package contains the decimal module.
endef
$(eval $(call Py3BasePackage,python3-decimal, \
/usr/lib/python$(PYTHON3_VERSION)/decimal.py \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_decimal.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,23 +7,27 @@
define Package/python3-dev
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) development files
TITLE+= development files
DEPENDS:=+python3 +python3-lib2to3
endef
define Package/python3-dev/description
$(call Package/python3/Default/description)
This package contains files for building Python modules, extending the
Python interpreter, or embedded Python in applications.
endef
define Py3Package/python3-dev/install
$(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/bin/python$(PYTHON3_VERSION)-config $(1)/usr/bin
$(LN) python$(PYTHON3_VERSION)-config $(1)/usr/bin/python3-config
$(LN) python$(PYTHON3_VERSION)-config $(1)/usr/bin/python-config
$(LN) python$(PYTHON3_VERSION)/config-$(PYTHON3_VERSION)/libpython$(PYTHON3_VERSION).a $(1)/usr/lib/
# This depends on being called before filespec is processed
$(SED) 's|$(TARGET_AR)|ar|g;s|$(TARGET_CROSS)readelf|readelf|g;s|$(TARGET_CC)|gcc|g;s|$(TARGET_CXX)|g++|g' \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/config-$(PYTHON3_VERSION)/Makefile
endef
$(eval $(call Py3BasePackage,python3-dev, \
/usr/lib/python$(PYTHON3_VERSION)/config-$(PYTHON3_VERSION) \
/usr/lib/python$(PYTHON3_VERSION)/config-$(PYTHON3_VERSION)-* \
/usr/include/python$(PYTHON3_VERSION) \
/usr/lib/pkgconfig \
, \

View file

@ -7,10 +7,16 @@
define Package/python3-distutils
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) distutils module
TITLE+= distutils module
DEPENDS:=+python3-light +python3-email
endef
define Package/python3-distutils/description
$(call Package/python3/Default/description)
This package contains the distutils module.
endef
$(eval $(call Py3BasePackage,python3-distutils, \
/usr/lib/python$(PYTHON3_VERSION)/distutils \
))

View file

@ -7,10 +7,16 @@
define Package/python3-email
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) email module
TITLE+= email module
DEPENDS:=+python3-light
endef
define Package/python3-email/description
$(call Package/python3/Default/description)
This package contains the email module.
endef
$(eval $(call Py3BasePackage,python3-email, \
/usr/lib/python$(PYTHON3_VERSION)/email \
))

View file

@ -7,10 +7,16 @@
define Package/python3-lib2to3
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) lib2to3 module
TITLE+= lib2to3 module
DEPENDS:=+python3
endef
define Package/python3-lib2to3/description
$(call Package/python3/Default/description)
This package contains the lib2to3 module.
endef
$(eval $(call Py3BasePackage,python3-lib2to3, \
/usr/lib/python$(PYTHON3_VERSION)/lib2to3 \
, \

View file

@ -7,10 +7,16 @@
define Package/python3-logging
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) logging module
TITLE+= logging module
DEPENDS:=+python3-light
endef
define Package/python3-logging/description
$(call Package/python3/Default/description)
This package contains the logging module.
endef
$(eval $(call Py3BasePackage,python3-logging, \
/usr/lib/python$(PYTHON3_VERSION)/logging \
))

View file

@ -7,10 +7,16 @@
define Package/python3-lzma
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) lzma module
TITLE+= lzma module
DEPENDS:=+python3-light +liblzma
endef
define Package/python3-lzma/description
$(call Package/python3/Default/description)
This package contains the lzma module.
endef
$(eval $(call Py3BasePackage,python3-lzma, \
/usr/lib/python$(PYTHON3_VERSION)/lzma.py \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_lzma.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,10 +7,16 @@
define Package/python3-multiprocessing
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) multiprocessing
TITLE+= multiprocessing module
DEPENDS:=+python3-light
endef
define Package/python3-multiprocessing/description
$(call Package/python3/Default/description)
This package contains the multiprocessing module.
endef
$(eval $(call Py3BasePackage,python3-multiprocessing, \
/usr/lib/python$(PYTHON3_VERSION)/multiprocessing \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_multiprocessing.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,10 +7,16 @@
define Package/python3-ncurses
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) ncurses module
TITLE+= ncurses module
DEPENDS:=+python3-light +libncursesw
endef
define Package/python3-ncurses/description
$(call Package/python3/Default/description)
This package contains the ncurses module.
endef
$(eval $(call Py3BasePackage,python3-ncurses, \
/usr/lib/python$(PYTHON3_VERSION)/curses \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_curses.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,10 +7,16 @@
define Package/python3-openssl
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) SSL module
TITLE+= ssl module
DEPENDS:=+python3-light +libopenssl +ca-certs
endef
define Package/python3-openssl/description
$(call Package/python3/Default/description)
This package contains the ssl module.
endef
$(eval $(call Py3BasePackage,python3-openssl, \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_hashlib.$(PYTHON3_SO_SUFFIX) \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_ssl.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,10 +7,16 @@
define Package/python3-pydoc
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) pydoc module
TITLE+= pydoc module
DEPENDS:=+python3-light
endef
define Package/python3-pydoc/description
$(call Package/python3/Default/description)
This package contains the pydoc module.
endef
$(eval $(call Py3BasePackage,python3-pydoc, \
/usr/lib/python$(PYTHON3_VERSION)/doctest.py \
/usr/lib/python$(PYTHON3_VERSION)/pydoc.py \

View file

@ -7,10 +7,16 @@
define Package/python3-readline
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) readline module
TITLE+= readline module
DEPENDS:=+python3-light +libreadline
endef
define Package/python3-readline/description
$(call Package/python3/Default/description)
This package contains the readline module.
endef
$(eval $(call Py3BasePackage,python3-readline, \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/readline.$(PYTHON3_SO_SUFFIX) \
))

View file

@ -7,10 +7,16 @@
define Package/python3-sqlite3
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) sqlite3 module
TITLE+= sqlite3 module
DEPENDS:=+python3-light +libsqlite3
endef
define Package/python3-sqlite3/description
$(call Package/python3/Default/description)
This package contains the sqlite3 module.
endef
$(eval $(call Py3BasePackage,python3-sqlite3, \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_sqlite3.$(PYTHON3_SO_SUFFIX) \
/usr/lib/python$(PYTHON3_VERSION)/sqlite3 \

View file

@ -7,10 +7,16 @@
define Package/python3-unittest
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) unittest module
TITLE+= unittest module
DEPENDS:=+python3-light
endef
define Package/python3-unittest/description
$(call Package/python3/Default/description)
This package contains the unittest module.
endef
$(eval $(call Py3BasePackage,python3-unittest, \
/usr/lib/python$(PYTHON3_VERSION)/unittest \
))

View file

@ -7,10 +7,16 @@
define Package/python3-urllib
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) URL library module
TITLE+= URL handling modules
DEPENDS:=+python3-light +python3-email
endef
define Package/python3-urllib/description
$(call Package/python3/Default/description)
This package contains the URL handling modules.
endef
$(eval $(call Py3BasePackage,python3-urllib, \
/usr/lib/python$(PYTHON3_VERSION)/urllib \
))

View file

@ -7,10 +7,16 @@
define Package/python3-uuid
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) UUID module
TITLE+= uuid module
DEPENDS:=+python3-light +libuuid
endef
define Package/python3-uuid/description
$(call Package/python3/Default/description)
This package contains the uuid module.
endef
$(eval $(call Py3BasePackage,python3-uuid, \
/usr/lib/python$(PYTHON3_VERSION)/uuid.py \
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_uuid.$(PYTHON3_SO_SUFFIX) \

View file

@ -7,10 +7,16 @@
define Package/python3-venv
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) venv module
TITLE+= venv module
DEPENDS:=+python3
endef
define Package/python3-venv/description
$(call Package/python3/Default/description)
This package contains the venv module.
endef
$(eval $(call Py3BasePackage,python3-venv, \
/usr/lib/python$(PYTHON3_VERSION)/ensurepip \
/usr/lib/python$(PYTHON3_VERSION)/venv \

View file

@ -7,10 +7,16 @@
define Package/python3-xml
$(call Package/python3/Default)
TITLE:=Python $(PYTHON3_VERSION) xml libs
TITLE+= XML modules
DEPENDS:=+python3-light +python3-urllib
endef
define Package/python3-xml/description
$(call Package/python3/Default/description)
This package contains the XML modules.
endef
$(eval $(call Py3BasePackage,python3-xml, \
/usr/lib/python$(PYTHON3_VERSION)/xml \
/usr/lib/python$(PYTHON3_VERSION)/xmlrpc \

View file

@ -1,22 +0,0 @@
--- a/configure
+++ b/configure
@@ -23352,7 +23352,7 @@ printf %s "checking ABIFLAGS... " >&6; }
printf "%s\n" "$ABIFLAGS" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5
printf %s "checking SOABI... " >&6; }
-SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
+SOABI='cpython-'`echo $VERSION | tr -d .`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
printf "%s\n" "$SOABI" >&6; }
--- a/configure.ac
+++ b/configure.ac
@@ -5683,7 +5683,7 @@ AC_SUBST(SOABI)
AC_MSG_CHECKING(ABIFLAGS)
AC_MSG_RESULT($ABIFLAGS)
AC_MSG_CHECKING(SOABI)
-SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
+SOABI='cpython-'`echo $VERSION | tr -d .`
AC_MSG_RESULT($SOABI)
# Release and debug (Py_DEBUG) ABI are compatible, but not Py_TRACE_REFS ABI

View file

@ -1,70 +0,0 @@
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -461,6 +461,7 @@ def get_makefile_filename():
def _get_sysconfigdata_name():
+ return '_sysconfigdata'
multiarch = getattr(sys.implementation, '_multiarch', '')
return os.environ.get(
'_PYTHON_SYSCONFIGDATA_NAME',
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -2111,7 +2111,7 @@ libinstall: all $(srcdir)/Modules/xxmodu
esac; \
done; \
done
- $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py \
+ $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata*.py \
$(DESTDIR)$(LIBDEST); \
$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
@@ -2273,7 +2273,7 @@ sharedinstall: all
--install-scripts=$(BINDIR) \
--install-platlib=$(DESTSHARED) \
--root=$(DESTDIR)/
- -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py
+ -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata*.py
-rm -r $(DESTDIR)$(DESTSHARED)/__pycache__
# Here are a couple of targets for MacOSX again, to install a full
--- a/configure
+++ b/configure
@@ -3630,7 +3630,7 @@ fi
fi
ac_cv_prog_PYTHON_FOR_REGEN=$with_build_python
PYTHON_FOR_FREEZE="$with_build_python"
- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$with_build_python
+ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata '$with_build_python
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_build_python" >&5
printf "%s\n" "$with_build_python" >&6; }
@@ -23421,7 +23421,7 @@ fi
-if test x$PLATFORM_TRIPLET = x; then
+if true ; then
LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}"
else
LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
--- a/configure.ac
+++ b/configure.ac
@@ -162,7 +162,7 @@ AC_ARG_WITH(
dnl Build Python interpreter is used for regeneration and freezing.
ac_cv_prog_PYTHON_FOR_REGEN=$with_build_python
PYTHON_FOR_FREEZE="$with_build_python"
- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$with_build_python
+ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata '$with_build_python
AC_MSG_RESULT([$with_build_python])
], [
AS_VAR_IF([cross_compiling], [yes],
@@ -5741,7 +5741,7 @@ fi],
dnl define LIBPL after ABIFLAGS and LDVERSION is defined.
AC_SUBST(PY_ENABLE_SHARED)
-if test x$PLATFORM_TRIPLET = x; then
+if true ; then
LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}"
else
LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"

View file

@ -0,0 +1,476 @@
From c163d7f0b67a568e9b64eeb9c1cbbaa127818596 Mon Sep 17 00:00:00 2001
From: Jeffery To <jeffery.to@gmail.com>
Date: Thu, 24 Aug 2023 20:22:50 +0800
Subject: [PATCH] gh-95855: Refactor platform triplet detection code, add
detection for MIPS soft float and musl libc (#107221)
- Move platform triplet detection code into Misc/platform_triplet.c
- Refactor MIPS detection, use defined(__mips64) to detect MIPS64
- Compute libc values in separate section
- Add detection for MIPS soft float
- Add detection for musl
musl supports SPE with its soft-float ABI:
https://git.musl-libc.org/cgit/musl/commit/?id=7be59733d71ada3a32a98622507399253f1d5e48
Original patch by Christian Heimes.
Co-authored-by: Christian Heimes <christian@python.org>
Co-authored-by: Erlend E. Aasland <erlend@python.org>
[omit news, changes to configure; adapt for Python 3.11]
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
---
...3-07-25-02-30-00.gh-issue-95855.wA7rAf.rst | 2 +
Misc/platform_triplet.c | 255 ++++++++++++++++++
configure | 192 +------------
configure.ac | 192 +------------
4 files changed, 265 insertions(+), 376 deletions(-)
create mode 100644 Misc/NEWS.d/next/Build/2023-07-25-02-30-00.gh-issue-95855.wA7rAf.rst
create mode 100644 Misc/platform_triplet.c
--- /dev/null
+++ b/Misc/platform_triplet.c
@@ -0,0 +1,255 @@
+/* Detect platform triplet from builtin defines
+ * cc -E Misc/platform_triplet.c | grep '^PLATFORM_TRIPLET=' | tr -d ' '
+ */
+#undef bfin
+#undef cris
+#undef fr30
+#undef linux
+#undef hppa
+#undef hpux
+#undef i386
+#undef mips
+#undef powerpc
+#undef sparc
+#undef unix
+#if defined(__ANDROID__)
+ # Android is not a multiarch system.
+#elif defined(__linux__)
+/*
+ * BEGIN of Linux block
+ */
+// Detect libc (based on config.guess)
+# include <features.h>
+# if defined(__UCLIBC__)
+# error uclibc not supported
+# elif defined(__dietlibc__)
+# error dietlibc not supported
+# elif defined(__GLIBC__)
+# define LIBC gnu
+# define LIBC_X32 gnux32
+# if defined(__ARM_PCS_VFP)
+# define LIBC_ARM gnueabihf
+# else
+# define LIBC_ARM gnueabi
+# endif
+# if defined(__loongarch__)
+# if defined(__loongarch_soft_float)
+# define LIBC_LA gnusf
+# elif defined(__loongarch_single_float)
+# define LIBC_LA gnuf32
+# elif defined(__loongarch_double_float)
+# define LIBC_LA gnu
+# else
+# error unknown loongarch floating-point base abi
+# endif
+# endif
+# if defined(_MIPS_SIM)
+# if defined(__mips_hard_float)
+# if _MIPS_SIM == _ABIO32
+# define LIBC_MIPS gnu
+# elif _MIPS_SIM == _ABIN32
+# define LIBC_MIPS gnuabin32
+# elif _MIPS_SIM == _ABI64
+# define LIBC_MIPS gnuabi64
+# else
+# error unknown mips sim value
+# endif
+# else
+# if _MIPS_SIM == _ABIO32
+# define LIBC_MIPS gnusf
+# elif _MIPS_SIM == _ABIN32
+# define LIBC_MIPS gnuabin32sf
+# elif _MIPS_SIM == _ABI64
+# define LIBC_MIPS gnuabi64sf
+# else
+# error unknown mips sim value
+# endif
+# endif
+# endif
+# if defined(__SPE__)
+# define LIBC_PPC gnuspe
+# else
+# define LIBC_PPC gnu
+# endif
+# else
+// Heuristic to detect musl libc
+# include <stdarg.h>
+# ifdef __DEFINED_va_list
+# define LIBC musl
+# define LIBC_X32 muslx32
+# if defined(__ARM_PCS_VFP)
+# define LIBC_ARM musleabihf
+# else
+# define LIBC_ARM musleabi
+# endif
+# if defined(__loongarch__)
+# if defined(__loongarch_soft_float)
+# define LIBC_LA muslsf
+# elif defined(__loongarch_single_float)
+# define LIBC_LA muslf32
+# elif defined(__loongarch_double_float)
+# define LIBC_LA musl
+# else
+# error unknown loongarch floating-point base abi
+# endif
+# endif
+# if defined(_MIPS_SIM)
+# if defined(__mips_hard_float)
+# if _MIPS_SIM == _ABIO32
+# define LIBC_MIPS musl
+# elif _MIPS_SIM == _ABIN32
+# define LIBC_MIPS musln32
+# elif _MIPS_SIM == _ABI64
+# define LIBC_MIPS musl
+# else
+# error unknown mips sim value
+# endif
+# else
+# if _MIPS_SIM == _ABIO32
+# define LIBC_MIPS muslsf
+# elif _MIPS_SIM == _ABIN32
+# define LIBC_MIPS musln32sf
+# elif _MIPS_SIM == _ABI64
+# define LIBC_MIPS muslsf
+# else
+# error unknown mips sim value
+# endif
+# endif
+# endif
+# if defined(_SOFT_FLOAT) || defined(__NO_FPRS__)
+# define LIBC_PPC muslsf
+# else
+# define LIBC_PPC musl
+# endif
+# else
+# error unknown libc
+# endif
+# endif
+
+# if defined(__x86_64__) && defined(__LP64__)
+PLATFORM_TRIPLET=x86_64-linux-LIBC
+# elif defined(__x86_64__) && defined(__ILP32__)
+PLATFORM_TRIPLET=x86_64-linux-LIBC_X32
+# elif defined(__i386__)
+PLATFORM_TRIPLET=i386-linux-LIBC
+# elif defined(__aarch64__) && defined(__AARCH64EL__)
+# if defined(__ILP32__)
+PLATFORM_TRIPLET=aarch64_ilp32-linux-LIBC
+# else
+PLATFORM_TRIPLET=aarch64-linux-LIBC
+# endif
+# elif defined(__aarch64__) && defined(__AARCH64EB__)
+# if defined(__ILP32__)
+PLATFORM_TRIPLET=aarch64_be_ilp32-linux-LIBC
+# else
+PLATFORM_TRIPLET=aarch64_be-linux-LIBC
+# endif
+# elif defined(__alpha__)
+PLATFORM_TRIPLET=alpha-linux-LIBC
+# elif defined(__ARM_EABI__)
+# if defined(__ARMEL__)
+PLATFORM_TRIPLET=arm-linux-LIBC_ARM
+# else
+PLATFORM_TRIPLET=armeb-linux-LIBC_ARM
+# endif
+# elif defined(__hppa__)
+PLATFORM_TRIPLET=hppa-linux-LIBC
+# elif defined(__ia64__)
+PLATFORM_TRIPLET=ia64-linux-LIBC
+# elif defined(__loongarch__) && defined(__loongarch_lp64)
+PLATFORM_TRIPLET=loongarch64-linux-LIBC_LA
+# elif defined(__m68k__) && !defined(__mcoldfire__)
+PLATFORM_TRIPLET=m68k-linux-LIBC
+# elif defined(__mips__)
+# if defined(__mips_isa_rev) && (__mips_isa_rev >=6)
+# if defined(_MIPSEL) && defined(__mips64)
+PLATFORM_TRIPLET=mipsisa64r6el-linux-LIBC_MIPS
+# elif defined(_MIPSEL)
+PLATFORM_TRIPLET=mipsisa32r6el-linux-LIBC_MIPS
+# elif defined(__mips64)
+PLATFORM_TRIPLET=mipsisa64r6-linux-LIBC_MIPS
+# else
+PLATFORM_TRIPLET=mipsisa32r6-linux-LIBC_MIPS
+# endif
+# else
+# if defined(_MIPSEL) && defined(__mips64)
+PLATFORM_TRIPLET=mips64el-linux-LIBC_MIPS
+# elif defined(_MIPSEL)
+PLATFORM_TRIPLET=mipsel-linux-LIBC_MIPS
+# elif defined(__mips64)
+PLATFORM_TRIPLET=mips64-linux-LIBC_MIPS
+# else
+PLATFORM_TRIPLET=mips-linux-LIBC_MIPS
+# endif
+# endif
+# elif defined(__or1k__)
+PLATFORM_TRIPLET=or1k-linux-LIBC
+# elif defined(__powerpc64__)
+# if defined(__LITTLE_ENDIAN__)
+PLATFORM_TRIPLET=powerpc64le-linux-LIBC
+# else
+PLATFORM_TRIPLET=powerpc64-linux-LIBC
+# endif
+# elif defined(__powerpc__)
+PLATFORM_TRIPLET=powerpc-linux-LIBC_PPC
+# elif defined(__s390x__)
+PLATFORM_TRIPLET=s390x-linux-LIBC
+# elif defined(__s390__)
+PLATFORM_TRIPLET=s390-linux-LIBC
+# elif defined(__sh__) && defined(__LITTLE_ENDIAN__)
+PLATFORM_TRIPLET=sh4-linux-LIBC
+# elif defined(__sparc__) && defined(__arch64__)
+PLATFORM_TRIPLET=sparc64-linux-LIBC
+# elif defined(__sparc__)
+PLATFORM_TRIPLET=sparc-linux-LIBC
+# elif defined(__riscv)
+# if __riscv_xlen == 32
+PLATFORM_TRIPLET=riscv32-linux-LIBC
+# elif __riscv_xlen == 64
+PLATFORM_TRIPLET=riscv64-linux-LIBC
+# else
+# error unknown platform triplet
+# endif
+# else
+# error unknown platform triplet
+# endif
+/*
+ * END of Linux block
+ */
+#elif defined(__FreeBSD_kernel__)
+# if defined(__LP64__)
+PLATFORM_TRIPLET=x86_64-kfreebsd-gnu
+# elif defined(__i386__)
+PLATFORM_TRIPLET=i386-kfreebsd-gnu
+# else
+# error unknown platform triplet
+# endif
+#elif defined(__gnu_hurd__)
+PLATFORM_TRIPLET=i386-gnu
+#elif defined(__APPLE__)
+PLATFORM_TRIPLET=darwin
+#elif defined(__VXWORKS__)
+PLATFORM_TRIPLET=vxworks
+#elif defined(__wasm32__)
+# if defined(__EMSCRIPTEN__)
+PLATFORM_TRIPLET=wasm32-emscripten
+# elif defined(__wasi__)
+# if defined(_REENTRANT)
+PLATFORM_TRIPLET=wasm32-wasi-threads
+# else
+PLATFORM_TRIPLET=wasm32-wasi
+# endif
+# else
+# error unknown wasm32 platform
+# endif
+#elif defined(__wasm64__)
+# if defined(__EMSCRIPTEN__)
+PLATFORM_TRIPLET=wasm64-emscripten
+# elif defined(__wasi__)
+PLATFORM_TRIPLET=wasm64-wasi
+# else
+# error unknown wasm64 platform
+# endif
+#else
+# error unknown platform triplet
+#endif
--- a/configure.ac
+++ b/configure.ac
@@ -917,180 +917,14 @@ fi
AC_MSG_CHECKING([for the platform triplet based on compiler characteristics])
-cat > conftest.c <<EOF
-#undef bfin
-#undef cris
-#undef fr30
-#undef linux
-#undef hppa
-#undef hpux
-#undef i386
-#undef mips
-#undef powerpc
-#undef sparc
-#undef unix
-#if defined(__ANDROID__)
- # Android is not a multiarch system.
-#elif defined(__linux__)
-# if defined(__x86_64__) && defined(__LP64__)
- x86_64-linux-gnu
-# elif defined(__x86_64__) && defined(__ILP32__)
- x86_64-linux-gnux32
-# elif defined(__i386__)
- i386-linux-gnu
-# elif defined(__aarch64__) && defined(__AARCH64EL__)
-# if defined(__ILP32__)
- aarch64_ilp32-linux-gnu
-# else
- aarch64-linux-gnu
-# endif
-# elif defined(__aarch64__) && defined(__AARCH64EB__)
-# if defined(__ILP32__)
- aarch64_be_ilp32-linux-gnu
-# else
- aarch64_be-linux-gnu
-# endif
-# elif defined(__alpha__)
- alpha-linux-gnu
-# elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
-# if defined(__ARMEL__)
- arm-linux-gnueabihf
-# else
- armeb-linux-gnueabihf
-# endif
-# elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
-# if defined(__ARMEL__)
- arm-linux-gnueabi
-# else
- armeb-linux-gnueabi
-# endif
-# elif defined(__hppa__)
- hppa-linux-gnu
-# elif defined(__ia64__)
- ia64-linux-gnu
-# elif defined(__m68k__) && !defined(__mcoldfire__)
- m68k-linux-gnu
-# elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6) && defined(_MIPSEL)
-# if _MIPS_SIM == _ABIO32
- mipsisa32r6el-linux-gnu
-# elif _MIPS_SIM == _ABIN32
- mipsisa64r6el-linux-gnuabin32
-# elif _MIPS_SIM == _ABI64
- mipsisa64r6el-linux-gnuabi64
-# else
-# error unknown platform triplet
-# endif
-# elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6)
-# if _MIPS_SIM == _ABIO32
- mipsisa32r6-linux-gnu
-# elif _MIPS_SIM == _ABIN32
- mipsisa64r6-linux-gnuabin32
-# elif _MIPS_SIM == _ABI64
- mipsisa64r6-linux-gnuabi64
-# else
-# error unknown platform triplet
-# endif
-# elif defined(__mips_hard_float) && defined(_MIPSEL)
-# if _MIPS_SIM == _ABIO32
- mipsel-linux-gnu
-# elif _MIPS_SIM == _ABIN32
- mips64el-linux-gnuabin32
-# elif _MIPS_SIM == _ABI64
- mips64el-linux-gnuabi64
-# else
-# error unknown platform triplet
-# endif
-# elif defined(__mips_hard_float)
-# if _MIPS_SIM == _ABIO32
- mips-linux-gnu
-# elif _MIPS_SIM == _ABIN32
- mips64-linux-gnuabin32
-# elif _MIPS_SIM == _ABI64
- mips64-linux-gnuabi64
-# else
-# error unknown platform triplet
-# endif
-# elif defined(__or1k__)
- or1k-linux-gnu
-# elif defined(__powerpc__) && defined(__SPE__)
- powerpc-linux-gnuspe
-# elif defined(__powerpc64__)
-# if defined(__LITTLE_ENDIAN__)
- powerpc64le-linux-gnu
-# else
- powerpc64-linux-gnu
-# endif
-# elif defined(__powerpc__)
- powerpc-linux-gnu
-# elif defined(__s390x__)
- s390x-linux-gnu
-# elif defined(__s390__)
- s390-linux-gnu
-# elif defined(__sh__) && defined(__LITTLE_ENDIAN__)
- sh4-linux-gnu
-# elif defined(__sparc__) && defined(__arch64__)
- sparc64-linux-gnu
-# elif defined(__sparc__)
- sparc-linux-gnu
-# elif defined(__riscv)
-# if __riscv_xlen == 32
- riscv32-linux-gnu
-# elif __riscv_xlen == 64
- riscv64-linux-gnu
-# else
-# error unknown platform triplet
-# endif
-# else
-# error unknown platform triplet
-# endif
-#elif defined(__FreeBSD_kernel__)
-# if defined(__LP64__)
- x86_64-kfreebsd-gnu
-# elif defined(__i386__)
- i386-kfreebsd-gnu
-# else
-# error unknown platform triplet
-# endif
-#elif defined(__gnu_hurd__)
- i386-gnu
-#elif defined(__APPLE__)
- darwin
-#elif defined(__VXWORKS__)
- vxworks
-#elif defined(__wasm32__)
-# if defined(__EMSCRIPTEN__)
- wasm32-emscripten
-# elif defined(__wasi__)
- wasm32-wasi
-# else
-# error unknown wasm32 platform
-# endif
-#elif defined(__wasm64__)
-# if defined(__EMSCRIPTEN__)
- wasm64-emscripten
-# elif defined(__wasi__)
- wasm64-wasi
-# else
-# error unknown wasm64 platform
-# endif
-#else
-# error unknown platform triplet
-#endif
-
-EOF
-
-if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then
- PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '`
- case "$build_os" in
- linux-musl*)
- PLATFORM_TRIPLET=`echo "$PLATFORM_TRIPLET" | sed 's/linux-gnu/linux-musl/'`
- ;;
- esac
+if $CPP $CPPFLAGS $srcdir/Misc/platform_triplet.c >conftest.out 2>/dev/null; then
+ PLATFORM_TRIPLET=`grep '^PLATFORM_TRIPLET=' conftest.out | tr -d ' '`
+ PLATFORM_TRIPLET="${PLATFORM_TRIPLET@%:@PLATFORM_TRIPLET=}"
AC_MSG_RESULT([$PLATFORM_TRIPLET])
else
AC_MSG_RESULT([none])
fi
-rm -f conftest.c conftest.out
+rm -f conftest.out
AC_MSG_CHECKING([for multiarch])
AS_CASE([$ac_sys_system],

View file

@ -1,49 +0,0 @@
From 15d512cc35106392ed7583d0e000d9a1b865f1e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Bo=C5=99ek?= <simon.borek@nic.cz>
Date: Mon, 27 Jun 2022 13:53:37 +0200
Subject: [PATCH 2/2] configure.ac: switch PLATFORM_TRIPLET suffix to '-musl'
based on `host_os` instead of `build_os`
As `build_os` and `host_os` are results of autoconf's `AC_CANONICAL_BUILD`
and `AC_CANONICAL_HOST` macros[^1], the former refers to the system running the build
and the latter to the system that will run the compiled program.
`PLATFORM_TRIPLET` should refer to the target platform when cross-compiling.
Its libc related part should be therefore derived from the target platform as well
- which is currently not the case - `PLATFORM_TRIPLET` '-gnu' suffix is/isn't switched to '-musl'
based on `build-os` rather than `host-os` which leads to error message[^2]
and build failure when compiling Python on glibc system for musl target.
[^1]: https://www.gnu.org/software/autoconf/manual/autoconf-2.68/html_node/Canonicalizing.html ,
https://www.gnu.org/software/autoconf/manual/autoconf-2.68/html_node/Specifying-Target-Triplets.html
[^2]: "internal configure error for the platform triplet, please file a bug report"
Co-authored-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Šimon Bořek <simon.borek@nic.cz>
---
configure | 2 +-
configure.ac | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/configure
+++ b/configure
@@ -6824,7 +6824,7 @@ EOF
if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then
PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '`
- case "$build_os" in
+ case "$host_os" in
linux-musl*)
PLATFORM_TRIPLET=`echo "$PLATFORM_TRIPLET" | sed 's/linux-gnu/linux-musl/'`
;;
--- a/configure.ac
+++ b/configure.ac
@@ -1081,7 +1081,7 @@ EOF
if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then
PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '`
- case "$build_os" in
+ case "$host_os" in
linux-musl*)
PLATFORM_TRIPLET=`echo "$PLATFORM_TRIPLET" | sed 's/linux-gnu/linux-musl/'`
;;

View file

@ -14,7 +14,7 @@ PKG_RELEASE:=1
PYPI_NAME:=ruamel.yaml
PKG_HASH:=9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE

View file

@ -16,7 +16,7 @@ PKG_HASH:=bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93
PKG_LICENSE:=Artistic-1.0-cl8
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk

View file

@ -1,6 +1,23 @@
From eeecf40c3eb3dbdf1981c508080ab3aa61e105e2 Mon Sep 17 00:00:00 2001
From: Erwin Rol <erwin@erwinrol.com>
Date: Fri, 13 Jan 2023 17:57:36 +0100
Subject: [PATCH] Fix format warnings
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fix the following warning
warning: format %d expects argument of type int, but argument 4 has type size_t {aka long unsigned int}
Signed-off-by: Erwin Rol <erwin@erwinrol.com>
---
dmx_usb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/dmx_usb.c
+++ b/dmx_usb.c
@@ -406,7 +406,7 @@ static ssize_t dmx_usb_write (struct file *file, const char *buffer, size_t coun
@@ -406,7 +406,7 @@ static ssize_t dmx_usb_write (struct fil
dev = (struct dmx_usb_device *)file->private_data;
@ -9,3 +26,12 @@
/* lock this object */
down (&dev->sem);
@@ -500,7 +500,7 @@ static long dmx_usb_ioctl (struct file *
return -ENODEV;
}
- dbg("%s - minor %d, cmd 0x%.4x, arg %ld", __FUNCTION__,
+ dbg("%s - minor %d, cmd 0x%.4x, arg %lu", __FUNCTION__,
dev->minor, cmd, arg);
/* fill in your device specific stuff here */

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libedit
PKG_VERSION:=20221030-3.1
PKG_VERSION:=20230828-3.1
PKG_RELEASE:=1
PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
@ -16,7 +16,7 @@ PKG_LICENSE:=BSD-3-Clause
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://thrysoee.dk/editline/
PKG_HASH:=f0925a5adf4b1bf116ee19766b7daa766917aec198747943b1c4edf67a4be2bb
PKG_HASH:=4ee8182b6e569290e7d1f44f0f78dac8716b35f656b76528f699c69c98814dad
PKG_INSTALL:=1

View file

@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=re2
PKG_VERSION:=2023-02-01
PKG_RELEASE:=1
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/google/re2/tar.gz/$(PKG_VERSION)?
@ -38,9 +38,15 @@ CMAKE_OPTIONS += \
TARGET_LDFLAGS += \
-Wl,--as-needed,--gc-sections
define Build/InstallDev
$(call Build/InstallDev/cmake,$(1))
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/re2.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/re2.pc
endef
define Package/re2/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libre2.so $(1)/usr/lib/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libre2.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,re2))

62
libs/libucontext/Makefile Normal file
View file

@ -0,0 +1,62 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libucontext
PKG_VERSION:=1.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/kaniini/libucontext/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=2657e087c493263e7bbbde152a5bc08ce22dc5a7970887ac4fd251b90b58401f
PKG_MAINTAINER:=Volker Christian <me@vchrist.at>
PKG_LICENSE:=ISC
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_FLAGS:=no-mips16
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/meson.mk
define Package/libucontext
SECTION:=libs
CATEGORY:=Libraries
TITLE:=libucontext is a library which provides the ucontext.h C API
URL:=https://github.com/kaniini/libucontext
DEPENDS:=@USE_MUSL
endef
define Package/libucontext-tests
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Test applications for libucontext
URL:=https://github.com/kaniini/libucontext
DEPENDS:=libucontext
endef
define Package/libucontext/description
Thie package is a development package aimed to be linked to
libraries/applications which need the SYS-V ucontext API.
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/include/libucontext $(1)/usr/include/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libucontext* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libucontext.pc $(1)/usr/lib/pkgconfig/
endef
define Package/libucontext/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libucontext*.so.* $(1)/usr/lib/
endef
define Package/libucontext-tests/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(MESON_BUILD_DIR)/test_libucontext_posix $(1)/usr/bin/
$(INSTALL_BIN) $(MESON_BUILD_DIR)/test_libucontext $(1)/usr/bin/
endef
$(eval $(call BuildPackage,libucontext))
$(eval $(call BuildPackage,libucontext-tests))

View file

@ -0,0 +1,17 @@
--- a/arch/arm/swapcontext.S
+++ b/arch/arm/swapcontext.S
@@ -17,10 +17,12 @@ ALIAS(__swapcontext, libucontext_swapcon
FUNC(libucontext_swapcontext)
/* copy all of the current registers into the ucontext structure */
- add r2, r0, #REG_OFFSET(0)
- stmia r2, {r0-r12}
str r13, [r0,#REG_OFFSET(13)]
str r14, [r0,#REG_OFFSET(15)]
+ add r2, r0, #REG_OFFSET(0)
+ /* copy r0 with value 0 to indicate success (return value 0) */
+ mov r0, #0
+ stmia r2, {r0-r12}
/* load new registers from the second ucontext structure */
add r14, r1, #REG_OFFSET(0)

View file

@ -0,0 +1,122 @@
--- a/test_libucontext.c
+++ b/test_libucontext.c
@@ -9,6 +9,9 @@
#include <string.h>
#include <libucontext/libucontext.h>
+#define handle_error(msg) \
+ do { perror(msg); exit(EXIT_FAILURE); } while (0)
+
static libucontext_ucontext_t ctx[3];
@@ -36,7 +39,8 @@ static void f1 (int a, int b, int c, int
printf("looks like all arguments are passed correctly\n");
printf("swap back to f2\n");
- libucontext_swapcontext(&ctx[1], &ctx[2]);
+ if (libucontext_swapcontext(&ctx[1], &ctx[2]) != 0)
+ handle_error("libucontext_swapcontext");
printf("finish f1\n");
}
@@ -44,7 +48,8 @@ static void f1 (int a, int b, int c, int
static void f2 (void) {
printf("start f2\n");
printf("swap to f1\n");
- libucontext_swapcontext(&ctx[2], &ctx[1]);
+ if (libucontext_swapcontext(&ctx[2], &ctx[1]) != 0)
+ handle_error("libucontext_swapcontext");
printf("finish f2, should swap to f1\n");
}
@@ -63,7 +68,8 @@ int main (int argc, const char *argv[])
printf("setting up context 1\n");
- libucontext_getcontext(&ctx[1]);
+ if (libucontext_getcontext(&ctx[1]) != 0)
+ handle_error("libucontext_getcontext");
ctx[1].uc_stack.ss_sp = st1;
ctx[1].uc_stack.ss_size = sizeof st1;
ctx[1].uc_link = &ctx[0];
@@ -83,16 +89,20 @@ int main (int argc, const char *argv[])
printf("doing initial swapcontext\n");
- libucontext_swapcontext(&ctx[0], &ctx[2]);
+ if (libucontext_swapcontext(&ctx[0], &ctx[2]) != 0)
+ handle_error("libucontext_swapcontext");
printf("returned from initial swapcontext\n");
/* test ability to use getcontext/setcontext without makecontext */
- libucontext_getcontext(&ctx[1]);
+ if (libucontext_getcontext(&ctx[1]) != 0)
+ handle_error("libucontext_getcontext");
printf("done = %d\n", done);
- if (done++ == 0) libucontext_setcontext(&ctx[1]);
+ if (done++ == 0)
+ if (libucontext_setcontext(&ctx[1]) != 0)
+ handle_error("libucontext_setcontext");
if (done != 2) {
fprintf(stderr, "wrong value for done. got %d, expected 2\n", done);
abort();
--- a/test_libucontext_posix.c
+++ b/test_libucontext_posix.c
@@ -9,6 +9,9 @@
#include <string.h>
#include <ucontext.h>
+#define handle_error(msg) \
+ do { perror(msg); exit(EXIT_FAILURE); } while (0)
+
static ucontext_t ctx[3];
@@ -36,7 +39,8 @@ static void f1 (int a, int b, int c, int
printf("looks like all arguments are passed correctly\n");
printf("swap back to f2\n");
- swapcontext(&ctx[1], &ctx[2]);
+ if (swapcontext(&ctx[1], &ctx[2]) != 0)
+ handle_error("swapcontext");
printf("finish f1\n");
}
@@ -44,7 +48,8 @@ static void f1 (int a, int b, int c, int
static void f2 (void) {
printf("start f2\n");
printf("swap to f1\n");
- swapcontext(&ctx[2], &ctx[1]);
+ if (swapcontext(&ctx[2], &ctx[1]) != 0)
+ handle_error("swapcontext");
printf("finish f2, should swap to f1\n");
}
@@ -83,16 +88,19 @@ int main (int argc, const char *argv[])
printf("doing initial swapcontext\n");
- swapcontext(&ctx[0], &ctx[2]);
-
+ if (swapcontext(&ctx[0], &ctx[2]) != 0)
+ handle_error("swapcontext");
printf("returned from initial swapcontext\n");
/* test ability to use getcontext/setcontext without makecontext */
- getcontext(&ctx[1]);
+ if (getcontext(&ctx[1]) != 0)
+ handle_error("getcontext");
printf("done = %d\n", done);
- if (done++ == 0) setcontext(&ctx[1]);
+ if (done++ == 0)
+ if (setcontext(&ctx[1]) != 0)
+ handle_error("setcontext");
if (done != 2) {
fprintf(stderr, "wrong value for done. got %d, expected 2\n", done);
abort();

View file

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mpfr
PKG_VERSION:=4.2.0
PKG_VERSION:=4.2.1
PKG_RELEASE:=1
PKG_SOURCE_URL:=@GNU/mpfr http://www.mpfr.org/mpfr-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_HASH:=06a378df13501248c1b2db5aa977a2c8126ae849a9d9b7be2546fb4a9c26d993
PKG_HASH:=277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2
PKG_LICENSE:=LGPL-3.0-or-later
PKG_LICENSE_FILES:=COPYING.LESSER

View file

@ -7,14 +7,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=nss
PKG_VERSION:=3.89.1
PKG_VERSION:=3.93
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:= \
https://download.cdn.mozilla.net/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src \
https://archive.mozilla.org/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src
PKG_HASH:=3adaedb9e70c3c5f40603bf60a01e336190a6dbe01929d395f16b01fe84a0156
PKG_HASH:=15f54bb72048eb105f8c0e936a04b899e74c3db9a19bbc1e00acee2af9476a8a
PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
PKG_LICENCE:=MPL-2.0

View file

@ -1,6 +1,6 @@
--- a/nss/lib/freebl/stubs.c
+++ b/nss/lib/freebl/stubs.c
@@ -501,7 +501,8 @@ extern PRStatus
@@ -506,7 +506,8 @@ extern PRStatus
PR_Sleep_stub(PRIntervalTime ticks)
{
STUB_SAFE_CALL1(PR_Sleep, ticks);

76
net/adblock-fast/Makefile Normal file
View file

@ -0,0 +1,76 @@
# Copyright 2023 Stan Grishin (stangri@melmac.ca)
# TLD optimization written by Dirk Brenken (dev@brenken.org)
# This is free software, licensed under the GNU General Public License v3.
include $(TOPDIR)/rules.mk
PKG_NAME:=adblock-fast
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.ca>
PKG_LICENSE:=GPL-3.0-or-later
include $(INCLUDE_DIR)/package.mk
define Package/adblock-fast
SECTION:=net
CATEGORY:=Network
TITLE:=AdBlock Fast Service
URL:=https://docs.openwrt.melmac.net/adblock-fast/
DEPENDS:=+jshn +curl
CONFLICTS:=simple-adblock
PROVIDES:=simple-adblock
PKGARCH:=all
endef
define Package/adblock-fast/description
Fast AdBlocking script to block ad or abuse/malware domains with DNSMASQ or Unbound.
Script supports local/remote list of domains and hosts-files for both block-listing and allow-listing.
Please see https://docs.openwrt.melmac.net/adblock-fast/ for more information.
endef
define Package/adblock-fast/conffiles
/etc/config/adblock-fast
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/adblock-fast/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/etc/init.d/adblock-fast $(1)/etc/init.d/adblock-fast
$(SED) "s|^\(readonly PKG_VERSION\).*|\1='$(PKG_VERSION)-$(PKG_RELEASE)'|" $(1)/etc/init.d/adblock-fast
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/etc/config/adblock-fast $(1)/etc/config/adblock-fast
$(INSTALL_DIR) $(1)/tmp
$(INSTALL_DATA) ./files/adblock-fast.config.update $(1)/tmp/adblock-fast.config.update
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/etc/uci-defaults/90-adblock-fast $(1)/etc/uci-defaults/90-adblock-fast
endef
define Package/adblock-fast/postinst
#!/bin/sh
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
sed -f /tmp/adblock-fast.config.update -i /etc/config/adblock-fast || true
/etc/init.d/adblock-fast enable
fi
exit 0
endef
define Package/adblock-fast/prerm
#!/bin/sh
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
echo "Stopping service and removing rc.d symlink for adblock-fast"
/etc/init.d/adblock-fast stop || true
/etc/init.d/adblock-fast killcache || true
/etc/init.d/adblock-fast disable || true
fi
exit 0
endef
$(eval $(call BuildPackage,adblock-fast))

View file

@ -0,0 +1,3 @@
# README
README has been moved to [https://docs.openwrt.melmac.net/adblock-fast/](https://docs.openwrt.melmac.net/adblock-fast/).

View file

@ -1,12 +1,3 @@
s|whitelist_domains_url|allowed_domains_url|g
s|whitelist_domain|allowed_domain|g
s|blacklist_hosts_url|blocked_hosts_url|g
s|blacklist_domains_url|blocked_domains_url|g
s|blacklist_domain|blocked_domain|g
s|ssl.bblck.me|cdn.jsdelivr.net/gh/paulgb/BarbBlock|g
s|raw.githubusercontent.com/StevenBlack/hosts/|cdn.jsdelivr.net/gh/StevenBlack/hosts@|g
s|raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/|cdn.jsdelivr.net/gh/hoshsadiq/adblock-nocoin-list@|g
s|raw.githubusercontent.com/jawz101/MobileAdTrackers/|cdn.jsdelivr.net/gh/jawz101/MobileAdTrackers@|g
s|http://winhelp2002.mvps.org/hosts.txt|https://winhelp2002.mvps.org/hosts.txt|g
s|list blocked_domains_url 'https://dbl.oisd.nl/basic'|list blocked_adblockplus_url 'https://small.oisd.nl/'|g
s|list blocked_domains_url 'https://dbl.oisd.nl/nsfw'|list blocked_adblockplus_url 'https://nsfw.oisd.nl/'|g

View file

@ -0,0 +1,118 @@
config adblock-fast 'config'
option enabled '0'
list allowed_domain 'cdn.jsdelivr.net'
option allow_non_ascii '0'
option canary_domains_icloud '0'
option canary_domains_mozilla '0'
option compressed_cache '0'
option compressed_cache_dir '/etc'
option config_update_enabled '0'
option config_update_url 'https://cdn.jsdelivr.net/gh/openwrt/packages/net/adblock-fast/files/adblock-fast.conf.update'
option curl_additional_param ''
option curl_max_file_size '30000000'
option curl_retry '3'
option debug '0'
option dns 'dnsmasq.servers'
option dnsmasq_instance '*'
# option dnsmasq_config_file_url 'https://big.oisd.nl/dnsmasq2'
option download_timeout '10'
option force_dns '1'
list force_dns_port '53'
list force_dns_port '853'
# ports listed below are used by some
# of the dnscrypt-proxy v1 resolvers
# list force_dns_port '553'
# list force_dns_port '1443'
# list force_dns_port '4343'
# list force_dns_port '4434'
# list force_dns_port '5443'
# list force_dns_port '8443'
option led 'none'
option parallel_downloads '1'
option procd_trigger_wan6 '0'
option procd_boot_wan_timeout '60'
option verbosity '2'
config file_url
option url 'https://cdn.jsdelivr.net/gh/StevenBlack/hosts/hosts'
option size '6770929'
option action 'block'
option enabled '0'
config file_url
option url 'https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_trackers_justdomains.txt'
option size '6241707'
option action 'block'
option enabled '0'
config file_url
option url 'https://big.oisd.nl/'
option size '6163363'
option action 'block'
option enabled '0'
config file_url
option url 'https://cdn.jsdelivr.net/gh/bongochong/CombinedPrivacyBlockLists/NoFormatting/cpbl-ctld.txt'
option size '2608152'
option action 'block'
option enabled '0'
config file_url
option url 'http://sysctl.org/cameleon/hosts'
option size '638545'
option action 'block'
option enabled '0'
config file_url
option url 'https://cdn.jsdelivr.net/gh/kboghdady/youTube_ads_4_pi-hole/black.list'
option size '553006'
option action 'block'
option enabled '0'
config file_url
option url 'https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_clickthroughs_justdomains.txt'
option size '362170'
option action 'block'
option enabled '0'
config file_url
option url 'https://someonewhocares.org/hosts/hosts'
option size '347410'
option action 'block'
option enabled '0'
config file_url
option url 'https://winhelp2002.mvps.org/hosts.txt'
option size '334861'
option action 'block'
option enabled '0'
config file_url
option url 'https://adaway.org/hosts.txt'
option size '243454'
option action 'block'
option enabled '0'
config file_url
option url 'https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_ads_justdomains.txt'
option size '222595'
option action 'block'
option enabled '0'
config file_url
option url 'https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_microsites_justdomains.txt'
option size '123275'
option action 'block'
option enabled '0'
config file_url
option url 'https://pgl.yoyo.org/as/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext'
option size '99588'
option action 'block'
option enabled '0'
config file_url
option url 'https://cdn.jsdelivr.net/gh/hoshsadiq/adblock-nocoin-list/hosts.txt'
option size '11149'
option action 'block'
option enabled '0'

View file

@ -1,6 +1,6 @@
#!/bin/sh /etc/rc.common
# Copyright 2017-2022 Stan Grishin (stangri@melmac.ca)
# shellcheck disable=SC1091,SC2016,SC3043,SC3057,SC3060
# Copyright 2023 MOSSDeF, Stan Grishin (stangri@melmac.ca)
# shellcheck disable=SC1091,SC2015,SC2016,SC3037,SC3043,SC3045,SC3057,SC3060
# shellcheck disable=SC2034
START=94
@ -28,7 +28,7 @@ else
fi
readonly PKG_VERSION='dev-test'
readonly packageName='simple-adblock'
readonly packageName='adblock-fast'
readonly serviceName="$packageName $PKG_VERSION"
readonly packageConfigFile="/etc/config/${packageName}"
readonly dnsmasqAddnhostsFile="/var/run/${packageName}/dnsmasq.addnhosts"
@ -59,12 +59,13 @@ readonly unboundGzip="${packageName}.unbound.gz"
readonly unboundFilter='s|^|local-zone: "|;s|$|" static|'
readonly A_TMP="/var/${packageName}.hosts.a.tmp"
readonly B_TMP="/var/${packageName}.hosts.b.tmp"
readonly jsonFile="/var/run/${packageName}/${packageName}.json"
readonly jsonFile="/dev/shm/$packageName-status.json"
readonly sharedMemoryError="/dev/shm/$packageName-error"
readonly hostsFilter='/localhost/d;/^#/d;/^[^0-9]/d;s/^0\.0\.0\.0.//;s/^127\.0\.0\.1.//;s/[[:space:]]*#.*$//;s/[[:cntrl:]]$//;s/[[:space:]]//g;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;/[^[:alnum:]_.-]/d;'
readonly domainsFilter='/^#/d;s/[[:space:]]*#.*$//;s/[[:space:]]*$//;s/[[:cntrl:]]$//;/[[:space:]]/d;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;/[^[:alnum:]_.-]/d;'
readonly adBlockPlusFilter='/^#/d;/^!/d;s/[[:space:]]*#.*$//;s/^||//;s/\^$//;s/[[:space:]]*$//;s/[[:cntrl:]]$//;/[[:space:]]/d;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;/[^[:alnum:]_.-]/d;'
readonly dnsmasqFileFilter='\|^server=/[[:alnum:]_.-].*/|!d'
readonly dnsmasq2FileFilter='\|^local=/[[:alnum:]_.-].*/|!d'
readonly _OK_='\033[0;32m\xe2\x9c\x93\033[0m'
readonly _FAIL_='\033[0;31m\xe2\x9c\x97\033[0m'
readonly __OK__='\033[0;32m[\xe2\x9c\x93]\033[0m'
@ -88,6 +89,8 @@ outputGzip=
outputCache=
awk='awk'
load_environment_flag=
allowed_url=
blocked_url=
debug() { local i j; for i in "$@"; do eval "j=\$$i"; echo "${i}: ${j} "; done; }
@ -250,6 +253,36 @@ load_network() {
output "${_ERROR_}: $(get_text 'errorNoWanGateway')!\\n"; return 1;
}
append_url() {
local cfg="$1" var="$2"
local en action url
config_get en "$cfg" enabled '1'
config_get action "$cfg" action 'block'
config_get url "$cfg" url
if [ "$en" = '1' ]; then
if [ "$action" = 'allow' ]; then
allowed_url="${allowed_url:+$allowed_url }${url}"
else
blocked_url="${blocked_url:+$blocked_url }${url}"
fi
fi
}
detect_file_type() {
local file="$1"
if [ "$(head -1 "$file")" = '[Adblock Plus]' ]; then
echo 'adBlockPlus'
elif grep -q '^server=' "$file"; then
echo 'dnsmasqFile'
elif grep -q '^local=' "$file"; then
echo 'dnsmasq2File'
elif grep -q '^0.0.0.0' "$file" || grep -q '^127.0.0.1' "$file"; then
echo 'hosts'
else
echo 'domains'
fi
}
load_environment() {
local i j
local validation_result="$1" param="$2"
@ -272,7 +305,7 @@ load_environment() {
fi
if [ "$debug" -ne 0 ]; then
exec 1>>/tmp/simple-adblock.log
exec 1>>"/tmp/$packageName.log"
exec 2>&1
set -x
fi
@ -444,20 +477,24 @@ load_environment() {
fi
# Prefer curl because it supports the file:// scheme.
if is_present 'curl'; then
dl_command="curl --silent --insecure"
dl_command='curl --silent --insecure'
dl_command="${dl_command}${curl_additional_param:+ $curl_additional_param}"
dl_command="${dl_command}${curl_max_file_size:+ --max-filesize $curl_max_file_size}"
dl_command="${dl_command}${curl_retry:+ --retry $curl_retry}"
dl_command="${dl_command}${download_timeout:+ --connect-timeout $download_timeout}"
dl_flag="-o"
dl_flag='-o'
elif is_present '/usr/libexec/wget-ssl'; then
dl_command="/usr/libexec/wget-ssl --no-check-certificate -q"
dl_command='/usr/libexec/wget-ssl --no-check-certificate -q'
dl_command="${dl_command}${download_timeout:+ --timeout $download_timeout}"
dl_flag="-O"
size_command='/usr/libexec/wget-ssl --no-check-certificate -q -O /dev/null --server-response'
size_command="${size_command}${download_timeout:+ --timeout $download_timeout}"
elif is_present wget && wget --version 2>/dev/null | grep -q "+https"; then
dl_command="wget --no-check-certificate -q"
dl_command="${dl_command}${download_timeout:+ --timeout $download_timeout}"
dl_flag="-O"
size_command='wget --no-check-certificate -q -O /dev/null --server-response'
size_command="${size_command}${download_timeout:+ --timeout $download_timeout}"
else
dl_command="uclient-fetch --no-check-certificate -q"
dl_command="${dl_command}${download_timeout:+ --timeout $download_timeout}"
@ -473,6 +510,8 @@ load_environment() {
else
unset isSSLSupported
fi
config_load "$packageName"
config_foreach append_url 'file_url'
load_environment_flag=1
cache 'test' && return 0
cache 'test_gzip' && return 0
@ -484,6 +523,26 @@ load_environment() {
fi
}
get_url_filesize() {
local url="$1" size size_command
[ -n "$url" ] || return 0
is_present 'curl' || return 0
size_command='curl --silent --insecure --fail --head --request GET'
size="$($size_command "$url" | grep -Po '^[cC]ontent-[lL]ength: \K\w+')"
echo -en "$size"
}
get_local_filesize() {
local file="$1" size
[ -f "$file" ] || return 0
if is_present stat; then
size="$(stat -c%s "$file")"
elif is_present wc; then
size="$(wc -c < "$file")"
fi
echo -en "$size"
}
resolver() {
local cfg="$1" param="$2"
case "$param" in
@ -520,10 +579,10 @@ dns() {
fi
config_load 'dhcp'
if [ "$dns_instance" = "*" ]; then
if [ "$dnsmasq_instance" = "*" ]; then
config_foreach resolver 'dnsmasq' "$dns"
elif [ -n "$dns_instance" ]; then
for i in $dns_instance; do
elif [ -n "$dnsmasq_instance" ]; then
for i in $dnsmasq_instance; do
resolver "@dnsmasq[$i]" "$dns" || resolver "$i" "$dns"
done
fi
@ -622,17 +681,19 @@ json() {
json_load_file "$jsonFile" 2>/dev/null
json_select 'data' 2>/dev/null
for i in status message error stats reload restart; do
json_get_var $i "$i" 2>/dev/null
json_get_var "$i" "$i" 2>/dev/null
done
fi
case "$action" in
get)
case "$param" in
triggers)
curReload="$parallel_downloads $debug $download_timeout $allowed_domain $blocked_domain $allowed_domains_url \
$blocked_adblockplus_url $blocked_domains_url $blocked_hosts_url $dns $config_update_enabled $config_update_url \
$dnsmasq_config_file_url $curl_additional_param $curl_max_file_size $curl_retry"
curRestart="$compressed_cache $compressed_cache_dir $force_dns $led $force_dns_port"
curReload="$parallel_downloads $debug $download_timeout \
$allowed_domain $blocked_domain $allowed_url $blocked_url $dns \
$config_update_enabled $config_update_url $dnsmasq_config_file_url \
$curl_additional_param $curl_max_file_size $curl_retry"
curRestart="$compressed_cache $compressed_cache_dir $force_dns $led \
$force_dns_port"
if [ ! -s "$jsonFile" ]; then
ret='on_boot'
elif [ "$curReload" != "$reload" ]; then
@ -663,10 +724,12 @@ json() {
set)
case "$param" in
triggers)
reload="$parallel_downloads $debug $download_timeout $allowed_domain $blocked_domain $allowed_domains_url \
$blocked_adblockplus_url $blocked_domains_url $blocked_hosts_url $dns $config_update_enabled $config_update_url \
$dnsmasq_config_file_url $curl_additional_param $curl_max_file_size $curl_retry"
restart="$compressed_cache $compressed_cache_dir $force_dns $led $force_dns_port"
reload="$parallel_downloads $debug $download_timeout \
$allowed_domain $blocked_domain $allowed_url $blocked_url $dns \
$config_update_enabled $config_update_url $dnsmasq_config_file_url \
$curl_additional_param $curl_max_file_size $curl_retry"
restart="$compressed_cache $compressed_cache_dir $force_dns $led \
$force_dns_port"
;;
*)
eval "$param"='${value}${extras:+|$extras}';;
@ -729,24 +792,37 @@ cache() {
esac
}
process_url() {
local label type D_TMP R_TMP
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then return 1; fi
label="${1##*//}"; label="${label%%/*}";
case "$2" in
adbp) label="ADBPlus: $label"; filter="$adBlockPlusFilter"
_process_file_url() {
if [ "$2" != '0' ]; then
json add error "errorConfigValidationFail"
output "${_ERROR_}: $(get_text 'errorConfigValidationFail')!\\n"
output "Please check if the '$packageConfigFile' contains correct values for config options.\\n"
fi
if [ "$parallel_downloads" -gt 0 ]; then
process_file_url "$1" &
else
process_file_url "$1"
fi
}
process_file_url() {
local cfg="$1" new_size
local label type D_TMP R_TMP filter
if [ -z "$cfg" ] || [ -n "${2}${3}" ]; then
url="$2"
action="$3"
fi
[ "$enabled" = '1' ] || return 0
[ -n "$url" ] || return 1
label="${url##*//}"
label="${label%%/*}"
label="File: $label"
case "$action" in
allow) type='Allowed'; D_TMP="$A_TMP"
;;
dnsmasq) label="Dnsmasq: $label"; filter="$dnsmasqFileFilter"
;;
domains) label="Domains: $label"; filter="$domainsFilter"
;;
hosts) label="Hosts: $label"; filter="$hostsFilter"
;;
esac
case "$3" in
allowed) type='Allowed'; D_TMP="$A_TMP"
;;
blocked) type='Blocked'; D_TMP="$B_TMP"
block) type='Blocked'; D_TMP="$B_TMP"
;;
file) type='File'; D_TMP="$B_TMP"
;;
@ -760,20 +836,33 @@ process_url() {
while [ -z "$R_TMP" ] || [ -e "$R_TMP" ]; do
R_TMP="$(mktemp -u -q -t ${packageName}_tmp.XXXXXXXX)"
done
if ! $dl_command "$1" "$dl_flag" "$R_TMP" 2>/dev/null || [ ! -s "$R_TMP" ]; then
if [ -z "$url" ] || ! $dl_command "$url" "$dl_flag" "$R_TMP" 2>/dev/null || \
[ ! -s "$R_TMP" ]; then
output 1 "$_FAIL_"
output 2 "[DL] $type $label $__FAIL__\\n"
echo "errorDownloadingList|${1}" >> "$sharedMemoryError"
echo "errorDownloadingList|${url}" >> "$sharedMemoryError"
else
sed -i "$filter" "$R_TMP"
[ -n "$cfg" ] && new_size="$(get_local_filesize "$R_TMP")"
if [ -n "$new_size" ] && [ "$size" != "$new_size" ]; then
uci set "${packageName}.${cfg}.size=$size"
fi
format="$(detect_file_type "$R_TMP")"
case "$format" in
adBlockPlus) filter="$adBlockPlusFilter";;
# dnsmasqFile) filter="$dnsmasqFileFilter";;
# dnsmasq2File) filter="$dnsmasq2FileFilter";;
domains) filter="$domainsFilter";;
hosts) filter="$hostsFilter";;
esac
[ -n "$filter" ] && sed -i "$filter" "$R_TMP"
if [ ! -s "$R_TMP" ]; then
output 1 "$_FAIL_"
output 2 "[DL] $type $label $__FAIL__\\n"
output 2 "[DL] $type $label ($format) $__FAIL__\\n"
echo "errorParsingList|${1}" >> "$sharedMemoryError"
else
cat "${R_TMP}" >> "$D_TMP"
output 1 "$_OK_"
output 2 "[DL] $type $label $__OK__\\n"
output 2 "[DL] $type $label ($format) $__OK__\\n"
fi
fi
rm -f "$R_TMP"
@ -798,15 +887,14 @@ download_dnsmasq_file() {
touch $A_TMP; touch $B_TMP;
output 1 'Downloading dnsmasq file '
rm -f "$sharedMemoryError"
process_url "$dnsmasq_config_file_url" 'dnsmasq' 'file'
# output 1 '\n'
process_file_url '' "$dnsmasq_config_file_url" 'file'
if [ -s "$sharedMemoryError" ]; then
while IFS= read -r line; do
json add error "$line"
done < "$sharedMemoryError"
rm -f "$sharedMemoryError"
fi
output 2 'Creating dnsmasq file '
output 2 'Moving dnsmasq file '
if mv "$B_TMP" "$outputFile"; then
output 2 "$__OK__\\n"
else
@ -834,36 +922,15 @@ download_lists() {
touch $A_TMP; touch $B_TMP;
output 1 'Downloading lists '
rm -f "$sharedMemoryError"
for hf in ${blocked_hosts_url}; do
if [ "$parallel_downloads" -gt 0 ]; then
process_url "$hf" 'hosts' 'blocked' &
else
process_url "$hf" 'hosts' 'blocked'
fi
done
for hf in ${blocked_adblockplus_url}; do
if [ "$parallel_downloads" -gt 0 ]; then
process_url "$hf" 'adbp' 'blocked' &
else
process_url "$hf" 'adbp' 'blocked'
fi
done
for hf in ${blocked_domains_url}; do
if [ "$parallel_downloads" -gt 0 ]; then
process_url "$hf" 'domains' 'blocked' &
else
process_url "$hf" 'domains' 'blocked'
fi
done
for hf in ${allowed_domains_url}; do
if [ "$parallel_downloads" -gt 0 ]; then
process_url "$hf" 'domains' 'allowed' &
else
process_url "$hf" 'domains' 'allowed'
fi
done
config_load "$packageName"
config_foreach load_validate_file_url_section 'file_url' _process_file_url
wait
if [ -n "$(uci changes "$packageName")" ]; then
output 2 "Saving updated file size(s) "
uci commit "$packageName" && output_okn || output_failn
fi
output 1 '\n'
if [ -s "$sharedMemoryError" ]; then
while IFS= read -r line; do
json add error "$line"
@ -1207,65 +1274,26 @@ adb_config_update() {
return 0
}
_config_add_url_size() {
local cfg="$1" url size
config_get url "$cfg" url
size="$(get_url_filesize "$url")"
output "$url${size:+: $size} "
if [ -n "$size" ]; then
uci set "${packageName}.${cfg}.size=$size"
output_okn
else
output_failn
fi
}
adb_sizes() {
local i
local validation_result="$3"
load_environment "$validation_result" 'quiet' || return 1
echo "# $(date)"
for i in ${blocked_adblockplus_url}; do
[ "${i//melmac}" != "$i" ] && continue
if $dl_command "$i" "$dl_flag" /tmp/sast 2>/dev/null && [ -s /tmp/sast ]; then
echo "# File size: $(du -sh /tmp/sast | $awk '{print $1}')"
if is_greater "$(du -sk /tmp/sast)" "500"; then
echo "# block-list too big for most routers"
elif is_greater "$(du -sk /tmp/sast)" "100"; then
echo "# block-list may be too big for some routers"
fi
rm -rf /tmp/sast
echo " list blocked_adblockplus_url '$i'"
echo ""
else
echo "# site was down on last check"
echo "# list blocked_adblockplus_url '$i'"
echo ""
fi
done
for i in ${blocked_domains_url}; do
[ "${i//melmac}" != "$i" ] && continue
if $dl_command "$i" "$dl_flag" /tmp/sast 2>/dev/null && [ -s /tmp/sast ]; then
echo "# File size: $(du -sh /tmp/sast | $awk '{print $1}')"
if is_greater "$(du -sk /tmp/sast)" "500"; then
echo "# block-list too big for most routers"
elif is_greater "$(du -sk /tmp/sast)" "100"; then
echo "# block-list may be too big for some routers"
fi
rm -rf /tmp/sast
echo " list blocked_domains_url '$i'"
echo ""
else
echo "# site was down on last check"
echo "# list blocked_domains_url '$i'"
echo ""
fi
done
for i in ${blocked_hosts_url}; do
if $dl_command "$i" "$dl_flag" /tmp/sast 2>/dev/null && [ -s /tmp/sast ]; then
echo "# File size: $(du -sh /tmp/sast | $awk '{print $1}')"
if is_greater "$(du -sk /tmp/sast)" "500"; then
echo "# block-list too big for most routers"
elif is_greater "$(du -sk /tmp/sast)" "100"; then
echo "# block-list may be too big for some routers"
fi
rm -rf /tmp/sast
echo " list blocked_hosts_url '$i'"
echo ""
else
echo "# site was down on last check"
echo "# list blocked_hosts_url '$i'"
echo ""
fi
done
config_load "$packageName"
config_foreach _config_add_url_size 'file_url'
uci commit "$packageName"
}
# shellcheck disable=SC2120
@ -1347,7 +1375,7 @@ adb_start() {
output 3 "Starting $serviceName...\\n"
json set status "statusStarting"
fi
if [ -n "$dnsmasq_config_file_url" ]; then
if [ "$dns" = 'dnsmasq.conf' ] && [ -n "$dnsmasq_config_file_url" ]; then
download_dnsmasq_file
else
download_lists
@ -1385,7 +1413,8 @@ adb_start() {
procd_set_param stderr 1
procd_open_data
json_add_string 'status' "$(json get status)"
json_add_string 'errors' "$(json get errors)"
json_add_string 'errors' "$(json get error)"
json_add_string 'warnings' "$(json get warning)"
if [ -s "$outputFile" ]; then
json_add_int 'entries' "$(wc -l < "$outputFile")"
else
@ -1603,6 +1632,14 @@ stop_service() { load_validate_config 'config' adb_stop "'$*'"; }
pause() { load_validate_config 'config' adb_pause "'$*'"; }
version() { echo "$PKG_VERSION"; }
load_validate_file_url_section() {
uci_load_validate "$packageName" "$packageName" "$1" "$2" \
'enabled:bool:1' \
'action:or("allow", "block"):block' \
'size:or(uinteger, "")' \
'url:string'
}
load_validate_config() {
. /lib/functions/network.sh
. /usr/share/libubox/jshn.sh
@ -1629,13 +1666,9 @@ load_validate_config() {
local procd_boot_wan_timeout
local led
local dns
local dns_instance
local dnsmasq_instance
local allowed_domain
local allowed_domains_url
local blocked_adblockplus_url
local blocked_domain
local blocked_domains_url
local blocked_hosts_url
local dnsmasq_config_file_url
uci_load_validate "$packageName" "$packageName" "$1" "${2}${3:+ $3}" \
'enabled:bool:0' \
@ -1650,7 +1683,7 @@ load_validate_config() {
'canary_domains_icloud:bool:0' \
'canary_domains_mozilla:bool:0' \
'config_update_enabled:bool:0' \
'config_update_url:string:https://cdn.jsdelivr.net/gh/openwrt/packages/net/simple-adblock/files/simple-adblock.conf.update' \
'config_update_url:string:https://cdn.jsdelivr.net/gh/openwrt/packages/net/adblock-fast/files/adblock-fast.conf.update' \
'download_timeout:range(1,60):20' \
'pause_timeout:range(10,120):60' \
'curl_additional_param:or("", string)' \
@ -1661,12 +1694,8 @@ load_validate_config() {
'procd_boot_wan_timeout:integer:60' \
'led:or("", "none", file, device, string)' \
'dns:or("dnsmasq.addnhosts", "dnsmasq.conf", "dnsmasq.ipset", "dnsmasq.nftset", "dnsmasq.servers", "unbound.adb_list"):dnsmasq.servers' \
'dns_instance:list(or(integer, string)):0' \
'dnsmasq_instance:list(or(integer, string)):*' \
'allowed_domain:list(string)' \
'allowed_domains_url:list(string)' \
'blocked_domain:list(string)' \
'blocked_adblockplus_url:list(string)' \
'blocked_domains_url:list(string)' \
'blocked_hosts_url:list(string)' \
'dnsmasq_config_file_url:string'
}

View file

@ -0,0 +1,165 @@
#!/bin/sh
# Copyright 2023 MOSSDeF, Stan Grishin (stangri@melmac.ca)
# shellcheck disable=SC1091,SC2015,SC3037,SC3043,SC2317,SC3060
readonly packageName='adblock-fast'
readonly _OK_='\033[0;32m\xe2\x9c\x93\033[0m'
readonly _FAIL_='\033[0;31m\xe2\x9c\x97\033[0m'
readonly __OK__='\033[0;32m[\xe2\x9c\x93]\033[0m'
readonly __FAIL__='\033[0;31m[\xe2\x9c\x97]\033[0m'
readonly _ERROR_='\033[0;31mERROR\033[0m'
readonly _WARNING_='\033[0;33mWARNING\033[0m'
output() {
# Can take a single parameter (text) to be output at any verbosity
# Or target verbosity level and text to be output at specifc verbosity
local msg memmsg logmsg
local sharedMemoryOutput="/dev/shm/$packageName-output"
verbosity="${verbosity:-2}"
if [ "$#" -ne 1 ]; then
if [ $((verbosity & $1)) -gt 0 ] || [ "$verbosity" = "$1" ]; then
shift
else
return 0
fi
fi
[ -t 1 ] && printf "%b" "$1"
msg="$1";
if [ "$(printf "%b" "$msg" | wc -l)" -gt 0 ]; then
[ -s "$sharedMemoryOutput" ] && memmsg="$(cat "$sharedMemoryOutput")"
logmsg="$(printf "%b" "${memmsg}${msg}" | sed 's/\x1b\[[0-9;]*m//g')"
logger -t "${packageName:-service}" "$(printf "%b" "$logmsg")"
rm -f "$sharedMemoryOutput"
else
printf "%b" "$msg" >> "$sharedMemoryOutput"
fi
}
output_ok() { output 1 "$_OK_"; output 2 "$__OK__\\n"; }
output_okn() { output 1 "$_OK_\\n"; output 2 "$__OK__\\n"; }
output_fail() { output 1 "$_FAIL_"; output 2 "$__FAIL__\\n"; }
output_failn() { output 1 "$_FAIL_\\n"; output 2 "$__FAIL__\\n"; }
is_present() { command -v "$1" >/dev/null 2>&1; }
get_url_filesize() {
local url="$1" size size_command
[ -n "$1" ] || return 0
is_present 'curl' || return 0
size_command='curl --silent --insecure --fail --head --request GET'
size="$($size_command "$url" | grep -Po '^[cC]ontent-[lL]ength: \K\w+')"
echo -en "$size"
}
# Transition from simple-adblock
_enable_url() {
local cfg="$1" url="$2" action="$3"
local u a
config_get u "$cfg" 'url'
config_get a "$cfg" 'action' 'block'
if [ "$u" = "$url" ] && [ "$a" = "$action" ]; then
uci del "${packageName}.${cfg}.enabled" && _found=1
fi
}
enable_add_url() {
local url="$1" action="$2" _found
config_load "$packageName"
config_foreach _enable_url 'file_url' "$url" "$action"
if [ -z "$_found" ]; then
uci add "${packageName}" 'file_url' >/dev/null 2>&1
uci set "${packageName}.@file_url[-1].url=$url"
uci set "${packageName}.@file_url[-1].size=$(get_url_filesize "$url")"
uci set "${packageName}.@file_url[-1].action=$action"
fi
}
if [ -s '/etc/config/simple-adblock' ] \
&& [ ! -s '/etc/config/adblock-fast-opkg' ] \
&& [ "$(uci get adblock-fast.config.enabled)" = '0' ]; then
cp -f '/etc/config/adblock-fast' '/etc/config/adblock-fast-opkg'
enabled="$(uci get simple-adblock.config.enabled)"
if [ -x '/etc/init.d/simple-adblock' ]; then
output "Stopping and disabling simple-adblock "
if /etc/init.d/simple-adblock stop >/dev/null 2>&1 \
&& /etc/init.d/simple-adblock disable \
&& uci set simple-adblock.config.enabled=0 \
&& uci commit simple-adblock; then
output_okn
else
output_failn
fi
else
output "Disabling simple-adblock."
if uci set simple-adblock.config.enabled=0 \
&& uci commit simple-adblock; then
output_okn
else
output_failn
fi
fi
output "Migrating simple-adblock config file "
for i in allow_non_ascii canary_domains_icloud canary_domains_mozilla \
compressed_cache compressed_cache_dir config_update_enabled \
curl_additional_param curl_max_file_size curl_retry download_timeout \
debug dns dns_instance dnsmasq_config_file_url force_dns led \
parallel_downloads procd_trigger_wan6 procd_boot_wan_timeout verbosity; do
j="$(uci -q get simple-adblock.config.${i})"
[ -n "$j" ] && uci set "${packageName}.config.${i}=${j}"
done
[ -n "$enabled" ] && uci set "${packageName}.config.enabled=${enabled}"
j="$(uci -q get simple-adblock.config.config_update_url)"
if [ "${j//simple-adblock/}" = "$j" ]; then
uci set "${packageName}.config.config_update_url=$j"
fi
ccd="$(uci get simple-adblock.config.compressed_cache_dir)"
ccd="${ccd:-/etc}"
for j in $(uci -q get simple-adblock.config.allowed_domain); do
[ -n "$j" ] && uci add_list "${packageName}.config.allowed_domain=${j}"
done
for j in $(uci -q get simple-adblock.config.blocked_domain); do
[ -n "$j" ] && uci add_list "${packageName}.config.blocked_domain=${j}"
done
for j in $(uci -q get simple-adblock.config.force_dns_port); do
[ -n "$j" ] && uci add_list "${packageName}.config.force_dns_port=${j}"
done
output_okn
for i in allowed_domains_url blocked_adblockplus_url blocked_domains_url \
blocked_hosts_url; do
output "Migrating simple-adblock ${i} "
for j in $(uci -q get simple-adblock.config.${i}); do
if [ "$i" = 'allowed_domains_url' ]; then
enable_add_url "$j" 'allow'
else
enable_add_url "$j" 'block'
fi
done
output_okn
done
uci commit "$packageName"
output "Migrating simple-adblock cache file(s) "
for i in '/var/run/simple-adblock/dnsmasq.addnhosts.cache' \
'/var/run/simple-adblock/dnsmasq.conf.cache' \
'/var/run/simple-adblock/dnsmasq.ipset.cache' \
'/var/run/simple-adblock/dnsmasq.nftset.cache' \
'/var/run/simple-adblock/dnsmasq.servers.cache' \
'/var/run/simple-adblock/unbound.cache'; do
if [ -s "$i" ]; then
current_dir="$(dirname "$i")"
mkdir -p "${current_dir//simple-adblock/adblock-fast}"
mv -f "$i" "${i//simple-adblock/adblock-fast}" && output_okn || output_failn
fi
done
for i in 'simple-adblock.dnsmasq.addnhosts.gz' \
'simple-adblock.dnsmasq.conf.gz' \
'simple-adblock.dnsmasq.ipset.gz' \
'simple-adblock.dnsmasq.nftset.gz' \
'simple-adblock.dnsmasq.servers.gz' \
'simple-adblock.unbound.gz'; do
i="${ccd}/${i}"
if [ -s "$i" ]; then
mkdir -p "${ccd//simple-adblock/adblock-fast}"
mv -f "$i" "${i//simple-adblock/adblock-fast}" && output_okn || output_failn
fi
done
output_okn
fi
exit 0

45
net/croc/Makefile Normal file
View file

@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2023 Jonas Jelonek
include $(TOPDIR)/rules.mk
PKG_NAME:=croc
PKG_VERSION:=9.6.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/schollz/croc/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=2d3ba7bae3c49e3870e2f8523c6be00e92fe6e46828269a8cea34d4034102cad
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jonas Jelonek <jelonek.jonas@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=no-mips16
GO_PKG:=github.com/schollz/croc/v9
GO_PKG_BUILD_PKG:=$(GO_PKG)
GO_PKG_LDFLAGS_X:=$(GO_PKG)/src/cli.Version=v$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
include ../../lang/golang/golang-package.mk
define Package/croc
SECTION:=net
CATEGORY:=Network
SUBMENU:=File Transfer
TITLE:=Easily and securely send things from one computer to another
URL:=https://github.com/schollz/croc
DEPENDS:=$(GO_ARCH_DEPENDS)
endef
define Package/croc/description
croc is a tool that allows any two computers to simply and securely
transfer files and folders by using a relay.
endef
$(eval $(call GoBinPackage,croc))
$(eval $(call BuildPackage,croc))

View file

@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ddns-scripts
PKG_VERSION:=2.8.2
PKG_RELEASE:=38
PKG_RELEASE:=39
PKG_LICENSE:=GPL-2.0

View file

@ -1,11 +1,11 @@
{
"name": "desec.io",
"ipv4": {
"url": "http://update.dedyn.io/update?username=[USERNAME]&password=[PASSWORD]&hostname=[DOMAIN]&myipv4=[IP]&myipv6=preserve",
"url": "https://update.dedyn.io/update?username=[USERNAME]&password=[PASSWORD]&hostname=[DOMAIN]&myipv4=[IP]&myipv6=preserve",
"answer": "good|nochg"
},
"ipv6": {
"url": "http://update.dedyn.io/update?username=[USERNAME]&password=[PASSWORD]&hostname=[DOMAIN]&myipv6=[IP]&myipv4=preserve",
"url": "https://update.dedyn.io/update?username=[USERNAME]&password=[PASSWORD]&hostname=[DOMAIN]&myipv6=[IP]&myipv4=preserve",
"answer": "good|nochg"
}
}

View file

@ -16,7 +16,7 @@ PKG_SOURCE_URL:=https://codeload.github.com/DNSCrypt/dnscrypt-proxy/tar.gz/$(PKG
PKG_HASH:=05f0a3e8c8f489caf95919e2a75a1ec4598edd3428d2b9dd357caba6adb2607d
PKG_BUILD_DIR:=$(BUILD_DIR)/dnscrypt-proxy-$(PKG_VERSION)
PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=ISC
PKG_LICENSE_FILES:=LICENSE

View file

@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=https-dns-proxy
PKG_VERSION:=2023-05-25
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy/
@ -39,15 +39,16 @@ endef
define Package/https-dns-proxy/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_DIR) $(1)/etc/uci-defaults/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/https_dns_proxy $(1)/usr/sbin/https-dns-proxy
$(INSTALL_BIN) ./files/https-dns-proxy.init $(1)/etc/init.d/https-dns-proxy
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/etc/init.d/https-dns-proxy $(1)/etc/init.d/https-dns-proxy
$(SED) "s|^\(readonly PKG_VERSION\).*|\1='$(PKG_VERSION)-$(PKG_RELEASE)'|" $(1)/etc/init.d/https-dns-proxy
$(INSTALL_CONF) ./files/https-dns-proxy.config $(1)/etc/config/https-dns-proxy
$(INSTALL_BIN) ./files/https-dns-proxy.defaults $(1)/etc/uci-defaults/50-https-dns-proxy-migrate-options.sh
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/etc/config/https-dns-proxy $(1)/etc/config/https-dns-proxy
$(INSTALL_DIR) $(1)/etc/hotplug.d/online
$(INSTALL_DATA) ./files/etc/hotplug.d/online/30-https-dns-proxy $(1)/etc/hotplug.d/online/30-https-dns-proxy
$(INSTALL_DIR) $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/50-https-dns-proxy-migrate-options.sh $(1)/etc/uci-defaults/50-https-dns-proxy-migrate-options.sh
endef
$(eval $(call BuildPackage,https-dns-proxy))

View file

@ -0,0 +1,2 @@
#!/bin/sh
/etc/init.d/https-dns-proxy start 'on_hotplug'

View file

@ -1,9 +1,9 @@
#!/bin/sh /etc/rc.common
# Copyright 2019-2022 Stan Grishin (stangri@melmac.ca)
# Copyright 2019-2023 Stan Grishin (stangri@melmac.ca)
# shellcheck disable=SC1091,SC3043,SC3060
# shellcheck disable=SC2034
START=95
START=90
# shellcheck disable=SC2034
USE_PROCD=1
@ -71,7 +71,7 @@ dnsmasq_restart() { [ -x /etc/init.d/dnsmasq ] || return 1; /etc/init.d/dnsmasq
version() { echo "$PKG_VERSION"; }
xappend() { param="$param $1"; }
xappend() { PROG_param="$PROG_param $1"; }
append_bool() {
local section="$1"
@ -127,13 +127,18 @@ append_bootstrap() {
[ "$ipv6_resolvers_only" -eq 0 ] && xappend '-4'
}
resolver_health_check() { resolveip -t 3 one.one.one.one >/dev/null 2>&1; }
boot() {
ubus -t 30 wait_for network.interface 2>/dev/null
rc_procd start_service 'on_boot'
resolver_health_check || rc_procd stop_service 'on_boot'
}
start_instance() {
local cfg="$1" param listen_addr listen_port ipv6_resolvers_only p url iface
local cfg="$1" param="$2"
local PROG_param
local listen_addr listen_port ipv6_resolvers_only p url iface
config_get url "$cfg" 'resolver_url'
config_get_bool ipv6_resolvers_only "$cfg" 'use_ipv6_resolvers_only' '0'
@ -153,7 +158,7 @@ start_instance() {
procd_open_instance
# shellcheck disable=SC2086
procd_set_param command $PROG $param
procd_set_param command $PROG $PROG_param
procd_set_param stderr 1
procd_set_param stdout 1
procd_set_param respawn
@ -161,7 +166,6 @@ start_instance() {
json_add_object mdns
procd_add_mdns_service "$packageName" 'udp' "$port" "DNS over HTTPS proxy"
json_close_object
json_add_string url "$url"
if [ "$force_dns" -ne 0 ]; then
json_add_array firewall
for iface in $procd_fw_src_interfaces; do
@ -218,12 +222,13 @@ start_instance() {
}
start_service() {
local param="$1"
local canaryDomains canary_domains_icloud canary_domains_mozilla
local dnsmasq_config_update force_dns force_dns_port
local procd_fw_src_interfaces
local port=5053
output "Starting $serviceName instances "
output "Starting $serviceName instances ${param:+$param }"
config_load "$packageName"
config_get_bool canary_domains_icloud 'config' 'canary_domains_icloud' '1'
config_get_bool canary_domains_mozilla 'config' 'canary_domains_mozilla' '1'
@ -239,7 +244,7 @@ start_service() {
fi
dhcp_backup 'create'
config_load "$packageName"
config_foreach start_instance "$packageName"
config_foreach start_instance "$packageName" "$param"
output "\\n"
if [ -n "$(uci_changes dhcp)" ]; then
output "Updating dnsmasq config "
@ -248,6 +253,10 @@ start_service() {
else
output_failn
fi
param='dnsmasq_restart'
fi
if [ "$param" = 'on_hotplug' ] || [ "$param" = 'on_boot' ] || \
[ "$param" = 'dnsmasq_restart' ] ; then
output "Restarting dnsmasq "
if dnsmasq_restart; then
output_okn
@ -258,10 +267,11 @@ start_service() {
}
stop_service() {
local param="$1"
local canaryDomains canary_domains_icloud canary_domains_mozilla
local dnsmasq_config_update
local s=0
output "Stopping $serviceName "
output "Stopping $serviceName ${param:+$param }"
config_load "$packageName"
config_get dnsmasq_config_update 'config' 'dnsmasq_config_update' '*'
config_get_bool canary_domains_icloud 'config' 'canary_domains_icloud' '1'
@ -278,7 +288,7 @@ stop_service() {
dnsmasq_restart || s=1
fi
# shellcheck disable=SC2015
[ "$s" -eq 0 ] && output_okn || output_failn
[ "$s" = '0' ] && output_okn || output_failn
}
# shellcheck disable=SC1091
@ -319,14 +329,16 @@ dnsmasq_doh_server() {
::) address='::1';;
esac
uci_add_list_if_new 'dhcp' "$cfg" 'server' "${address}#${port}"
uci_add_list_if_new 'dhcp' "$cfg" 'doh_server' "${address}#${port}"
;;
remove)
eval "$(ubus call service list "{ 'verbose': true, 'name': '$packageName' }" | jsonfilter -F '# ' -e 'TUPLES=@[*].instances[*].command[4,6]')"
for i in $TUPLES; do
for i in $(uci -q get "dhcp.$cfg.doh_server"); do
uci_remove_list 'dhcp' "$cfg" 'server' "$i"
uci_remove_list 'dhcp' "$cfg" 'doh_server' "$i"
done
for i in $canaryDomains; do
uci_remove_list 'dhcp' "$cfg" 'server' "/${i}/"
uci_remove_list 'dhcp' "$cfg" 'doh_server' "/${i}/"
done
;;
esac

View file

@ -1,6 +0,0 @@
#!/bin/sh
if [ "$ACTION" = 'ifup' ] && [ "$INTERFACE" = 'wan' ] && /etc/init.d/https-dns-proxy enabled; then
logger -t "https-dns-proxy" "Restarting https-dns-proxy due to $ACTION of $INTERFACE"
/etc/init.d/https-dns-proxy restart
fi

View file

@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=jool
PKG_VERSION:=4.1.8
PKG_VERSION:=4.1.10
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0-only
@ -16,8 +16,8 @@ PKG_LICENSE_FILES:=COPYING
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/NICMx/Jool.git
PKG_SOURCE_VERSION:=6822bdee4ec63467e82d723a3381b3116c1853d9
PKG_MIRROR_HASH:=6ef000459858a87e206c903828f428d469c18221789cb65fec91a8d822b0178f
PKG_SOURCE_VERSION:=47334c9124b7a2e3253fb279e6c33acb9c2b09a6
PKG_MIRROR_HASH:=ef34f68eb911c97016180ed09e852625a3c0fe49f7d7574382a03db75c23b60e
PKG_BUILD_DIR=$(KERNEL_BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_BUILD_PARALLEL:=1
@ -67,7 +67,7 @@ endef
define Package/jool/Default
SECTION:=net
CATEGORY:=Network
URL:=https://www.jool.mx
URL:=https://nicmx.github.io/Jool/
endef
define Package/jool/Default/description

View file

@ -0,0 +1,26 @@
From aa511f8856b4a437de005f23c6932948fffd8768 Mon Sep 17 00:00:00 2001
From: Alberto Leiva Popper <ydahhrk@gmail.com>
Date: Sat, 1 Jul 2023 09:52:09 -0600
Subject: [PATCH] Include csum_tcpudp_magic's header
Fixes build in some kernels.
In fact, I'm not sure why I'm not getting the warning. It looks as
though I should.
Thanks to Charles Hardin for this patch.
Fixes #407.
---
src/mod/common/rfc7915/6to4.c | 1 +
1 file changed, 1 insertion(+)
--- a/src/mod/common/rfc7915/6to4.c
+++ b/src/mod/common/rfc7915/6to4.c
@@ -1,6 +1,7 @@
#include "mod/common/rfc7915/6to4.h"
#include <linux/inetdevice.h>
+#include <net/ip6_checksum.h>
#include <net/udp.h>
#include <net/tcp.h>

View file

@ -1,21 +0,0 @@
From: Tiago Gaspar <tiagogaspar8@gmail.com>
Date: Fri, 21 Jan 2022 13:39:30 +0000
Subject: [PATCH] libtool: Reduce the required version
Current Openwrt's libtool verion is 2.4.2, yet, jool had the requirement
set to 2.4.6 in source.
Change that to Openwrt's version.
Signed-off-by: Tiago Gaspar <tiagogaspar8@gmail.com>
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@ AC_PREREQ([2.68])
AC_INIT([Jool], [4.1.8], [jool@nic.mx])
AC_CONFIG_SRCDIR([src/common/xlat.h])
AM_INIT_AUTOMAKE([subdir-objects])
-LT_PREREQ([2.4.6])
+LT_PREREQ([2.4.2])
# Checks for programs.
AC_PROG_CC

View file

@ -1,6 +1,6 @@
--- a/src/mod/common/skbuff.c
+++ b/src/mod/common/skbuff.c
@@ -109,9 +109,9 @@ static void print_skb_fields(struct sk_buff *skb, unsigned int tabs)
@@ -109,9 +109,9 @@ static void print_skb_fields(struct sk_b
print(tabs, "network_header:%u", skb->network_header);
print(tabs, "mac_header:%u", skb->mac_header);
print(tabs, "head:%p", skb->head);
@ -15,7 +15,7 @@
static int truncated(unsigned int tabs)
--- a/src/mod/common/xlator.c
+++ b/src/mod/common/xlator.c
@@ -875,7 +875,7 @@ void xlator_put(struct xlator *jool)
@@ -889,7 +889,7 @@ void xlator_put(struct xlator *jool)
static bool offset_equals(struct instance_entry_usr *offset,
struct jool_instance *instance)
{
@ -26,7 +26,7 @@
--- a/src/mod/common/nl/instance.c
+++ b/src/mod/common/nl/instance.c
@@ -37,7 +37,7 @@ static int serialize_instance(struct xlator *entry, void *arg)
@@ -37,7 +37,7 @@ static int serialize_instance(struct xla
if (!root)
return 1;

View file

@ -10,12 +10,12 @@ PKG_RELRO_FULL:=0
include $(TOPDIR)/rules.mk
PKG_NAME:=knot-resolver
PKG_VERSION:=5.5.3
PKG_VERSION:=5.7.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-resolver
PKG_HASH:=a38f57c68b7d237d662784d8406e6098aad66a148f44dcf498d1e9664c5fed2d
PKG_HASH:=383ef6db1cccabd2dd788ea9385f05e98a2bafdfeb7f0eda57ff9d572f4fad71
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
PKG_LICENSE:=GPL-3.0-later

Some files were not shown because too many files have changed in this diff Show more