From 783118944874d559e30eea1600352e3feb5263a7 Mon Sep 17 00:00:00 2001
From: Andreas Wacknitz <A.Wacknitz@gmx.de>
Date: Sun, 31 Mar 2024 09:35:05 +0200
Subject: [PATCH] libcares: update to 1.28.0

---
 tools/license-detector |   55 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/tools/license-detector b/tools/license-detector
index cf45a75..f70a8cd 100755
--- a/tools/license-detector
+++ b/tools/license-detector
@@ -19,17 +19,19 @@
 function usage
 {
 	[[ -n "$1" ]] && printf "ERROR: %s\n\n" "$1" >&2
-	printf "Usage: license-detector [-d] LICENSE_FILE\n" >&2
+	printf "Usage: license-detector [-d] [-l LICENSE] LICENSE_FILE\n" >&2
 	[[ -n "$1" ]] && exit 1
 	exit 0
 }
 
 
 DEBUG=0
-while getopts ":hd" OPT ; do
+LICENSE="*"
+while getopts ":hdl:" OPT ; do
 	case "$OPT" in
 	"?"|"h")	usage ;;
 	"d")		DEBUG=1 ;;
+	"l")		LICENSE="*.$OPTARG" ;;
 	esac
 done
 shift $((OPTIND - 1))
@@ -49,14 +51,14 @@
 
 if grep -q -i "Artistic License" "$F" ; then
 	if ! grep -q -i "Artistic License.*2" "$F" ; then
-		D="Artistic-1.0-TODO"
+		D=
 		grep -q "7\. C subroutines" "$F" && grep -q "10\. THIS PACKAGE IS PROVIDED" "$F" && D="Artistic-1.0-Perl"
 		grep -q "7\. C or perl subroutines" "$F" && grep -q "10\. THIS PACKAGE IS PROVIDED" "$F" && D="Artistic-1.0-cl8"
 		grep -q "7\. C or perl subroutines" "$F" && grep -q "9\. THIS PACKAGE IS PROVIDED" "$F" && D="Artistic-1.0"
 	else
 		D="Artistic-2.0"
 	fi
-	[[ -n "$L" ]] && L="$L OR " ; L="$L$D"
+	[[ -n "$L" && -n "$D" ]] && L="$L OR " ; L="$L$D"
 fi
 
 if grep -A 1 "GNU GENERAL PUBLIC LICENSE" "$F" | grep -q "Version 1, February 1989" ; then
@@ -65,33 +67,43 @@
 	[[ -n "$L" ]] && L="$L OR " ; L="$L$D"
 fi
 
-if grep -i -A 1 "GENERAL PUBLIC LICENSE" "$F" | grep -q "Version 2, June 1991" ; then
-	D="GPL-2.0-only"
-	grep -A 2 "GNU General Public License as published by the" "$F" | grep -q "or (at your option) any" && D="GPL-2.0-or-later"
-	[[ -n "$L" ]] && L="$L OR " ; L="$L$D"
-fi
-
-if grep -A 1 "GNU LIBRARY GENERAL PUBLIC LICENSE" "$F" | grep -q "Version 2, June 1991" ; then
-	D="LGPL-2.0-only"
-	[[ -n "$L" ]] && L="$L OR " ; L="$L$D"
-fi
-
 TMPFILE=$(mktemp -q)
 [[ -z "$TMPFILE" ]] && printf "ERROR: Temporary file creation failed\n" >&2 && exit 1
 
-for l in "$WS_TOOLS"/licenses/* ; do
+typeset -A matched
+for l in "$WS_TOOLS"/licenses/$LICENSE ; do
 	[[ -f "$l" ]] || continue
 	# skip filters
 	[[ "$l" != "${l%.filter}" ]] && continue
 
+	# extract license identifier
+	license_id="${l##*/}"
+	license_id="${license_id#header.}"
+	license_id="${license_id#license.}"
+	# sanity check, this should never happen
+	[[ -z "$license_id" ]] && continue
+
+	# make sure we do not match one license twice
+	[[ -n "$matched[$license_id]" ]] && continue
+
 	cat <<#EOF > "$TMPFILE"
 		dos2unix -ascii \\
+			| tr -d '\\014' \\
+			| LC_ALL=C sed -E -e 's/^[[:space:]]+\$//g' \\
 			| awk '/^#/{next}/^\$/{\$0="\n"}1' ORS=' ' \\
-			| sed -E -e 's/[[:space:]]+/ /g' -e 's/^ //' -e 's/ \$//' -e '/^\$/d' \\
+			| LC_ALL=C sed -E -e 's/[[:space:]]+/ /g' -e 's/^ //' -e 's/ \$//' -e '/^\$/d' \\
 	EOF
+	# Remove some reStructuredText markup
+	if [[ "${F%.rst}" != "$F" ]] ; then
+		cat <<#EOF >> "$TMPFILE"
+				| sed -e '/^\*\*\$/d' -e 's/^\*\*\([^*]\)/\1/' -e 's/\([^*]\)\*\*\$/\1/' -e 's/\([^*]\)\*\*\([^*]\)/\1\2/g' \\
+		EOF
+	fi
 	# Apply filter if any
-	[[ -x "$l.filter" ]] && printf "\t| %s \\\n" "$l.filter" >> "$TMPFILE"
+	[[ -x "$l.filter" ]] && printf '\t| LC_ALL=C %s \\\n' "$l.filter" >> "$TMPFILE"
 	cat <<#EOF >> "$TMPFILE"
+			| LC_ALL=C tr '[:upper:]' '[:lower:]' \\
+			| sed -e 's|http://|https://|g' \
 			| tr ' ' '\\n' | fmt
 	EOF
 
@@ -108,11 +120,10 @@
 
 	diff -i <(. "$TMPFILE" < "$l") <(. "$TMPFILE" < "$F") > "$REDIRECT" || continue
 
+	matched[$license_id]="$l"
+
 	[[ -n "$L" ]] && L="$L OR "
-	l="${l##*/}"
-	l="${l#header.}"
-	l="${l#license.}"
-	L="$L$l"
+	L="$L$license_id"
 done
 
 rm -f "$TMPFILE"

--
Gitblit v1.9.3