[pacman-dev] [PATCH] updpkgsums: Compute new checksum in temp directory
Sébastien Luttringer
seblu at seblu.net
Sat Apr 6 22:08:59 EDT 2013
To avoid unwanted files to stay in the PKGBUILD directory after calling
makepkg -g, we use a temporary build directory.
This also prevent modifications of the current user work.
Signed-off-by: Sébastien Luttringer <seblu at seblu.net>
---
contrib/updpkgsums.sh.in | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/contrib/updpkgsums.sh.in b/contrib/updpkgsums.sh.in
index ffea96b..401b8de 100644
--- a/contrib/updpkgsums.sh.in
+++ b/contrib/updpkgsums.sh.in
@@ -21,6 +21,7 @@ shopt -s extglob
declare -r myname='updpkgsums'
declare -r myver='@PACKAGE_VERSION@'
+declare -i ret=0
usage() {
printf 'usage: %s [buildfile]\n\n' "$myname"
@@ -71,12 +72,26 @@ if [[ ! -w . ]]; then
exit 1
fi
+# Generate the new sums
+# Use a temporary build directory to avoid unintented/unwanted side effects on
+# the current user work.
+# Ensure we clean the BUILDDIR before continue
+export BUILDDIR=$(mktemp --directory $myname.XXXXX)
+newsums=$(makepkg -g -p "$buildfile")
+ret=$?
+rm -r -f "$BUILDDIR"
+
+# Check we have generated new checksums before continue
+if (( $ret != 0 )); then
+ echo '==> ERROR: Unable to generate new checksums'
+ exit 1
+fi
+
{
- # Generate the new sums and try to unlink the file before writing stdin back
- # into it. This final precaution shouldn't fail based on the previous checks,
+ # Unlink the file before writing stdin back into it.
+ # This final precaution shouldn't fail based on the previous checks,
# but it's better to be extra careful before unlinking files.
- newsums=$(makepkg -g -p "$buildfile") && rm -f "$buildfile" &&
- exec awk -v newsums="$newsums" '
+ rm -f "$buildfile" && exec awk -v newsums="$newsums" '
/^[[:blank:]]*(md|sha)[[:digit:]]+sums=/,/\)[[:blank:]]*(#.*)?$/ {
if (!w) {
print newsums
--
1.8.2
More information about the pacman-dev
mailing list