summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-03-23 06:10:36 +0100
committerDan McGee <dan@archlinux.org>2011-03-23 08:18:48 +0100
commita31d091fb3bd250416d419b30e99c900b1608efc (patch)
treea789832d022fc484627253c5ab012c2a9469d9a4
parent93591d428fa553a03fee1f63228311f92e85d1ed (diff)
downloadpacman-a31d091fb3bd250416d419b30e99c900b1608efc.tar.gz
pacman-a31d091fb3bd250416d419b30e99c900b1608efc.tar.xz
repo-add: add sha256sum values to repo database
Implements FS#23103. Also modify libalpm so it ignores this value without any warning as we know it is likely to exist. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/be_sync.c3
-rw-r--r--scripts/repo-add.sh.in14
2 files changed, 12 insertions, 5 deletions
diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c
index 4966ce6f..9ca52de3 100644
--- a/lib/libalpm/be_sync.c
+++ b/lib/libalpm/be_sync.c
@@ -418,6 +418,9 @@ static int sync_db_read(pmdb_t *db, struct archive *archive,
pkg->isize = atol(line);
} else if(strcmp(line, "%MD5SUM%") == 0) {
READ_AND_STORE(pkg->md5sum);
+ } else if(strcmp(line, "%SHA256SUM%") == 0) {
+ /* we don't do anything with this value right now */
+ READ_NEXT(line);
} else if(strcmp(line, "%REPLACES%") == 0) {
READ_AND_STORE_ALL(pkg->replaces);
} else if(strcmp(line, "%DEPENDS%") == 0) {
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index 76005757..59e98cfe 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -263,9 +263,6 @@ db_write_entry()
IFS=$OLDIFS
- # get md5sum and compressed size of package
- md5sum="$(openssl dgst -md5 "$pkgfile")"
- md5sum="${md5sum##* }"
csize=$(@SIZECMD@ "$pkgfile")
# ensure $pkgname and $pkgver variables were found
@@ -287,6 +284,13 @@ db_write_entry()
fi
fi
+ # compute checksums
+ msg2 "$(gettext "Computing checksums...")"
+ md5sum="$(openssl dgst -md5 "$pkgfile")"
+ md5sum="${md5sum##* }"
+ sha256sum="$(openssl dgst -sha256 "$pkgfile")"
+ sha256sum="${sha256sum##* }"
+
# remove an existing entry if it exists, ignore failures
db_remove_entry "$pkgname"
@@ -308,9 +312,9 @@ db_write_entry()
[[ -n $csize ]] && echo -e "%CSIZE%\n$csize\n" >>desc
[[ -n $size ]] && echo -e "%ISIZE%\n$size\n" >>desc
- # compute checksums
- msg2 "$(gettext "Computing md5 checksums...")"
+ # add checksums
echo -e "%MD5SUM%\n$md5sum\n" >>desc
+ echo -e "%SHA256SUM%\n$sha256sum\n" >>desc
# add base64'd PGP signature
if [[ -f $startdir/$pkgfile.sig ]]; then