Using the value of "SKIP" in the checksum array will cause that
integrity check to be skipped.  This makes building packages that
rely on user configurable sources less painful.

Based-on-patch-by: Dan McGee <[email protected]>
Based-on-patch-by: David Campbell <[email protected]>

Signed-off-by: Allan McRae <[email protected]>
---
 doc/PKGBUILD.5.txt    |    7 ++++---
 scripts/makepkg.sh.in |   18 +++++++++++-------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
index fad93e5..cd6b09f 100644
--- a/doc/PKGBUILD.5.txt
+++ b/doc/PKGBUILD.5.txt
@@ -120,9 +120,10 @@ of the corresponding source file.
 *md5sums (array)*::
        This array contains an MD5 hash for every source file specified in the
        source array (in the same order). makepkg will use this to verify source
-       file integrity during subsequent builds. To easily generate md5sums, run
-       `makepkg -g >> PKGBUILD`. If desired, move the md5sums line to an
-       appropriate location.
+       file integrity during subsequent builds. If 'SKIP' is put in the array
+       in place of a normal hash, the integrity check for that source file will
+       be skipped. To easily generate md5sums, run ``makepkg -g >> PKGBUILD''. 
If
+       desired, move the md5sums line to an appropriate location.
 
 *sha1sums, sha256sums, sha384sums, sha512sums (arrays)*::
        Alternative integrity checks that makepkg supports; these all behave
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index a4a3d13..64b33c6 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -663,14 +663,18 @@ check_checksums() {
                                fi
 
                                if (( $found )) ; then
-                                       local expectedsum=$(tr '[:upper:]' 
'[:lower:]' <<< "${integrity_sums[$idx]}")
-                                       local realsum="$(openssl dgst -${integ} 
"$file")"
-                                       realsum="${realsum##* }"
-                                       if [[ $expectedsum = $realsum ]]; then
-                                               echo "$(gettext "Passed")" >&2
+                                       if [[ ${integrity_sums[$idx]} = 'SKIP' 
]]; then
+                                               echo "$(gettext "Skipped")" >&2
                                        else
-                                               echo "$(gettext "FAILED")" >&2
-                                               errors=1
+                                               local expectedsum=$(tr 
'[:upper:]' '[:lower:]' <<< "${integrity_sums[$idx]}")
+                                               local realsum="$(openssl dgst 
-${integ} "$file")"
+                                               realsum="${realsum##* }"
+                                               if [[ $expectedsum = $realsum 
]]; then
+                                                       echo "$(gettext 
"Passed")" >&2
+                                               else
+                                                       echo "$(gettext 
"FAILED")" >&2
+                                                       errors=1
+                                               fi
                                        fi
                                fi
 
-- 
1.7.8.1


Reply via email to