From e86f9def03b4330363ac0604e660ff4f0a980a39 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Sat, 30 Nov 2013 08:04:37 +0100 Subject: [PATCH] xbps-rindex: fix #25 (--sign unnecessarily regenerates -repodata). --- NEWS | 2 ++ bin/xbps-rindex/sign.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/NEWS b/NEWS index c79a8786..bc3b0e73 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ xbps-0.28 (2014-??-??): + * Fixed issue #25: https://github.com/voidlinux/xbps/issues/25 + * Fixed issue #24: https://github.com/voidlinux/xbps/issues/24 xbps-0.27 (2013-11-29): diff --git a/bin/xbps-rindex/sign.c b/bin/xbps-rindex/sign.c index 1f791e19..510b3265 100644 --- a/bin/xbps-rindex/sign.c +++ b/bin/xbps-rindex/sign.c @@ -188,7 +188,16 @@ sign_repo(struct xbps_handle *xhp, const char *repodir, meta = xbps_dictionary_create(); xbps_dictionary_set_cstring_nocopy(meta, "signature-by", signedby); xbps_dictionary_set_cstring_nocopy(meta, "signature-type", "rsa"); + /* + * If the signature in repo has not changed do not generate the + * repodata file again. + */ data = xbps_data_create_data_nocopy(sig, siglen); + if (xbps_data_equals_data(data, sig, siglen)) { + fprintf(stderr, "Not signing again, matched signature found.\n"); + rv = 0; + goto out; + } xbps_dictionary_set(meta, "signature", data); buf = pubkey_from_privkey(rsa);