[PATCH cygport] autotools: gnuconfigize: prevent downgrade of config.{guess,sub}

Christian Franke Christian.Franke@t-online.de
Mon Sep 1 10:15:00 GMT 2025


Addresses: https://sourceware.org/pipermail/cygwin/2025-August/258736.html

-- 
Regards,
Christian

-------------- next part --------------
From f1f39b5f61c2560151f8b6594eee20c957481e83 Mon Sep 17 00:00:00 2001
From: Christian Franke <christian.franke@t-online.de>
Date: Mon, 1 Sep 2025 12:12:26 +0200
Subject: [PATCH] autotools: gnuconfigize: prevent downgrade of
 config.{guess,sub}

---
 cygclass/autotools.cygclass | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/cygclass/autotools.cygclass b/cygclass/autotools.cygclass
index 55be6709..69cced56 100644
--- a/cygclass/autotools.cygclass
+++ b/cygclass/autotools.cygclass
@@ -191,12 +191,25 @@ __parse_aclocal_amflags() {
 #****
 
 gnuconfigize() {
+	local d f ts_old ts_new
+
 	(( $# >= 1 )) || error "gnuconfigize: no destinations specified"
 
 	for d in $@
 	do
-		[ -f $d/config.guess ] || error "gnuconfigize: $d: not a gnuconfig directory"
-		cp -f ${_privgnuconfigdir}/config.{guess,sub} $d/
+		for f in config.{guess,sub}
+		do
+			[ -f ${d}/${f} ] || error "gnuconfigize: $d: not a gnuconfig directory"
+			ts_old=$(sed -n "s/^timestamp='\([-0-9]*\)'.*$/\1/p" ${d}/${f})
+			ts_new=$(sed -n "s/^timestamp='\([-0-9]*\)'.*$/\1/p" ${_privgnuconfigdir}/${f})
+			if ! [ "${ts_old}" '<' "${ts_new}" ]
+			then
+				inform "${f}: not downgraded from '${ts_old}' to '${ts_new}'"
+				continue
+			fi
+			cp -f ${_privgnuconfigdir}/${f} ${d}/
+			inform "${f}: updated from '${ts_old}' to '${ts_new}'"
+		done
 	done
 }
 
-- 
2.45.4



More information about the Cygwin-apps mailing list