summaryrefslogtreecommitdiff
path: root/source/ap/slackpkg/0002-Use-CHECKSUMS.md5.asc-to-determine-ChangeLog-newness.patch
blob: 267967737471f1b7cc05a80dc2e4ed399082553c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
From e1fc7d99876aaba621fb353d8c484756e20ad0e8 Mon Sep 17 00:00:00 2001
From: "Patrick J. Volkerding" <volkerdi@slackware.com>
Date: Thu, 7 Jun 2018 19:03:40 -0500
Subject: [PATCH 1/3] Use CHECKSUMS.md5.asc to determine ChangeLog newness

Thanks to drgibbon on LQ for the suggestion.

Signed-off-by: Robby Workman <rworkman@slackware.com>
---
 files/core-functions.sh | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/files/core-functions.sh b/files/core-functions.sh
index 667667c..ec753c7 100644
--- a/files/core-functions.sh
+++ b/files/core-functions.sh
@@ -970,10 +970,37 @@ function getpkg() {
 #
 function checkchangelog()
 {
+	if ! [ -e ${ROOT}/${WORKDIR}/CHECKSUMS.md5.asc ]; then
+		touch ${ROOT}/${WORKDIR}/CHECKSUMS.md5.asc
+	fi
+
 	if ! [ -e ${ROOT}/${WORKDIR}/ChangeLog.txt ]; then
 		touch ${ROOT}/${WORKDIR}/ChangeLog.txt
 	fi
 
+	# First we will download CHECKSUMS.md5.asc since it is a very small
+	# file and if it has not changed, we can know that the ChangeLog
+	# has not changed either. If it _has_ changed, we'll need to pull
+	# the ChangeLog to check that as well.
+	echo -e "\tDownloading..."
+	getfile ${SOURCE}CHECKSUMS.md5.asc $TMPDIR/CHECKSUMS.md5.asc
+	if ! grep -q "PGP" $TMPDIR/CHECKSUMS.md5.asc ; then
+		echo -e "\
+\nError downloading from $SOURCE.\n\
+Please check your mirror and try again."
+		cleanup
+	fi
+	if diff --brief ${ROOT}/${WORKDIR}/CHECKSUMS.md5.asc $TMPDIR/CHECKSUMS.md5.asc ; then
+		# Before returning with the result that these signatures (and
+		# therefore the ChangeLog) are the same, we need to copy the
+		# ChangeLog into ${TMPDIR} in case the user decides to
+		# "download all other files":
+		cp ${ROOT}/${WORKDIR}/ChangeLog.txt $TMPDIR/ChangeLog.txt
+		return 0
+	fi
+	# CHECKSUMS.md5.asc was different, so we'll go on to download and test
+	# the full ChangeLog.txt.
+
 	echo -e "\tDownloading..."
 	#
 	# Download ChangeLog.txt first of all and test if it's equal
-- 
2.17.1