summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick J. Volkerding <volkerdi@slackware.com>2018-06-07 19:03:40 -0500
committerRobby Workman <rworkman@slackware.com>2018-06-07 19:03:40 -0500
commite1fc7d99876aaba621fb353d8c484756e20ad0e8 (patch)
tree6ae1686ebc085e5ee98f83052ca9a55f726e7ee1
parent406a3cbed392c3803906f351226187ec5a537916 (diff)
downloadslackpkg-e1fc7d99876aaba621fb353d8c484756e20ad0e8.tar.xz
Use CHECKSUMS.md5.asc to determine ChangeLog newness
Thanks to drgibbon on LQ for the suggestion. Signed-off-by: Robby Workman <rworkman@slackware.com>
-rw-r--r--files/core-functions.sh27
1 files changed, 27 insertions, 0 deletions
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