File Modules_Setup.patch of Package python3.41795

---
 Modules/makesetup |   44 +++---
 2 files changed, 416 insertions(+), 20 deletions(-)

Index: Python-3.4.10/Modules/makesetup
===================================================================
--- Python-3.4.10.orig/Modules/makesetup	2019-03-18 17:51:26.000000000 +0100
+++ Python-3.4.10/Modules/makesetup	2025-12-09 10:05:00.056095124 +0100
@@ -67,7 +67,7 @@
 # (Not all systems have dirname)
 case $libdir in
 '')	case $0 in
-	*/*)	libdir=`echo $0 | sed 's,/[^/]*$,,'`;;
+	*/*)	libdir=${0%/*};;
 	*)	libdir=.;;
 	esac;;
 esac
@@ -84,8 +84,8 @@
 
 # Setup to link with extra libraries when makeing shared extensions.
 # Currently, only Cygwin needs this baggage.
-case `uname -s` in
-CYGWIN*) if test $libdir = .
+case $(uname -s) in
+CYGWIN*) if test "$libdir" = .
 	 then
 	 	ExtraLibDir=.
 	 else
@@ -95,8 +95,8 @@
 esac
 
 # Main loop
-for i in ${*-Setup}
-do
+for i in "$@"; do
+	[ "$i" = "-Setup" ] && i=Setup
 	case $i in
 	-n)	echo '*noobjects*';;
 	*)	echo '*doconfig*'; cat "$i";;
@@ -116,19 +116,23 @@
 	LIBS=
 	LOCALLIBS=
 	BASELIBS=
-	while read line
+	while read -r line
 	do
 		# to handle backslashes for sh's that don't automatically
 		# continue a read when the last char is a backslash
-		while echo $line | grep '\\$' > /dev/null
+		while echo "$line" | grep '\\$' > /dev/null
 		do
-			read extraline
-			line=`echo $line| sed s/.$//`$extraline
+			read -r extraline
+			line=${line%?}"$extraline"
 		done
 
 		# Output DEFS in reverse order so first definition overrides
 		case $line in
-		*=*)	DEFS="$line$NL$DEFS"; continue;;
+		*=*)    if [ $(sed -e 's$::=\|:=\|+=\|?=$=$' -e 's$\s*=.*$$' <<< "$line" | wc -w) == 1 ]
+			then
+				DEFS="$line$NL$DEFS"; continue;
+			fi
+			;;
 		'include '*)	DEFS="$line$NL$DEFS"; continue;;
 		'*noobjects*')
 			case $noobjects in
@@ -169,7 +173,7 @@
 			*.sl)		libs="$libs $arg";;
 			/*.o)		libs="$libs $arg";;
 			*.def)		libs="$libs $arg";;
-			*.o)		srcs="$srcs `basename $arg .o`.c";;
+			*.o)		srcs="$srcs $(basename "$arg" .o).c";;
 			*.[cC])		srcs="$srcs $arg";;
 			*.m)		srcs="$srcs $arg";; # Objective-C src
 			*.cc)		srcs="$srcs $arg";;
@@ -199,13 +203,13 @@
 		for src in $srcs
 		do
 			case $src in
-			*.c)   obj=`basename $src .c`.o; cc='$(CC)';;
-			*.cc)  obj=`basename $src .cc`.o; cc='$(CXX)';;
-			*.c++) obj=`basename $src .c++`.o; cc='$(CXX)';;
-			*.C)   obj=`basename $src .C`.o; cc='$(CXX)';;
-			*.cxx) obj=`basename $src .cxx`.o; cc='$(CXX)';;
-			*.cpp) obj=`basename $src .cpp`.o; cc='$(CXX)';;
-			*.m)   obj=`basename $src .m`.o; cc='$(CC)';; # Obj-C
+			*.c)   obj=$(basename "$src" .c).o; cc='$(CC)';;
+			*.cc)  obj=$(basename "$src" .cc).o; cc='$(CXX)';;
+			*.c++) obj=$(basename "$src" .c++).o; cc='$(CXX)';;
+			*.C)   obj=$(basename "$src" .C).o; cc='$(CXX)';;
+			*.cxx) obj=$(basename "$src" .cxx).o; cc='$(CXX)';;
+			*.cpp) obj=$(basename "$src" .cpp).o; cc='$(CXX)';;
+			*.m)   obj=$(basename "$src" .m).o; cc='$(CC)';; # Obj-C
 			*)     continue;;
 			esac
 			obj="$srcdir/$obj"
@@ -269,7 +273,7 @@
  
 		/MARKER 2/i$NL$INITBITS
 
-		" $config >config.c
+		" "$config" >config.c
 	    ;;
 	esac
 
@@ -283,7 +287,7 @@
 		echo "s%_MODOBJS_%$OBJS%" >>$sedf
 		echo "s%_MODLIBS_%$LIBS%" >>$sedf
 		echo "/Definitions added by makesetup/a$NL$NL$DEFS" >>$sedf
-		sed -f $sedf $makepre >Makefile
+		sed -f $sedf "$makepre" >Makefile
 		cat $rulesf >>Makefile
 		rm -f $sedf
 	    ;;
openSUSE Build Service is sponsored by