Subject: change to makepatchsum
To: None <tech-pkg@netbsd.org>
From: Simon Burge <simonb@netbsd.org>
List: tech-pkg
Date: 10/06/1999 14:58:19
Anyone not happy with the following change to makepatchsum, so that it
doesn't update the patchsum file if none of the sums change?

Simon.
--
Index: bsd.pkg.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bsd.pkg.mk,v
retrieving revision 1.339
diff -p -u -r1.339 bsd.pkg.mk
--- bsd.pkg.mk	1999/09/15 05:39:38	1.339
+++ bsd.pkg.mk	1999/10/06 04:56:27
@@ -1801,23 +1798,28 @@ makesum: fetch
 .if !target(makepatchsum)
 makepatchsum:
 	${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${FILESDIR}
-	${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${PATCH_SUM_FILE}
 	${_PKG_SILENT}(${_PKG_DEBUG}					\
 	if [ -d ${PATCHDIR} ]; then					\
 		cd ${PATCHDIR};						\
-		${ECHO} -n "$$" > ${PATCH_SUM_FILE};			\
-		${ECHO} -n "NetBSD" >> ${PATCH_SUM_FILE}; 		\
-		${ECHO} "$$" >> ${PATCH_SUM_FILE};			\
-		${ECHO} "" >> ${PATCH_SUM_FILE};			\
+		${ECHO} -n "$$" > ${PATCH_SUM_FILE}.new;		\
+		${ECHO} -n "NetBSD" >> ${PATCH_SUM_FILE}.new; 		\
+		${ECHO} "$$" >> ${PATCH_SUM_FILE}.new;			\
+		${ECHO} "" >> ${PATCH_SUM_FILE}.new;			\
 		for sumfile in "" patch-*; do				\
 			if [ "X$$sumfile" = X"" ]; then continue; fi;	\
 			case $$sumfile in				\
 			patch-local-*) ;;				\
 			*.orig) continue ;;				\
 			*)						\
-				${ECHO} "MD5 ($$sumfile) = `${SED} -e '/\$$NetBSD.*/d' $$sumfile | ${MD5}`" >> ${PATCH_SUM_FILE}; \
+				${ECHO} "MD5 ($$sumfile) = `${SED} -e '/\$$NetBSD.*/d' $$sumfile | ${MD5}`" >> ${PATCH_SUM_FILE}.new; \
 			esac;						\
 		done;							\
+		tail +2 ${PATCH_SUM_FILE} > .patchsumold ;		\
+		tail +2 ${PATCH_SUM_FILE}.new > .patchsumnew ;		\
+		cmp -s .patchsumold .patchsumnew || mv ${PATCH_SUM_FILE}.new ${PATCH_SUM_FILE} ; \
+		rm -f .patchsumold .patchsumnew ${PATCH_SUM_FILE}.new ;	\
+	else								\
+		${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${PATCH_SUM_FILE} ;	\
 	fi)
 .endif