slackware-current/source/ap/slackpkg/0002-Use-CHECKSUMS.md5.asc-to-determine-ChangeLog-newness.patch

58 lines
1.9 KiB
Diff
Raw Normal View History

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