Redo how the repository keys are stored.
- Repository keys are now stored in a new directory on metadir (/var/db/xbps): <metadir>/key> - Repository keys are stored with the hex fingerprint of its RSA public key in a plist dictionary: <metadir>/keys/xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.plist - Drop xbps-rkeys(8) and merge its functionality into xbps-install(8) and xbps-query(8). - xbps-query(8) -vL now shows some more details of remote repositories: 3134 http://localhost:8000 (RSA signed, verified) Signed-by: Void Linux 4096 60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d 16 http://localhost:8000/nonfree (RSA signed, verified) Signed-by: Void Linux 4096 60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d Bump XBPS_API_VERSION.
This commit is contained in:
@@ -76,6 +76,18 @@ unpack_progress_cb(struct xbps_unpack_cb_data *xpd, void *cbdata _unused)
|
||||
xpd->entry_size);
|
||||
}
|
||||
|
||||
static int
|
||||
repo_import_key_cb(struct xbps_repo *repo, void *arg _unused, bool *done _unused)
|
||||
{
|
||||
int rv;
|
||||
|
||||
if ((rv = xbps_repo_key_import(repo)) != 0)
|
||||
fprintf(stderr, "Failed to import pubkey from %s: %s\n",
|
||||
repo->uri, strerror(rv));
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
@@ -190,10 +202,13 @@ main(int argc, char **argv)
|
||||
|
||||
maxcols = get_maxcols();
|
||||
|
||||
/* Sync remote repository data by default */
|
||||
/* Sync remote repository data and import keys from remote repos */
|
||||
if (sync && !drun) {
|
||||
if ((rv = xbps_rpool_sync(&xh, NULL)) != 0)
|
||||
exit(rv);
|
||||
rv = xbps_rpool_foreach(&xh, repo_import_key_cb, NULL);
|
||||
if (rv != 0)
|
||||
exit(rv);
|
||||
}
|
||||
|
||||
if (sync && !update && (argc == optind))
|
||||
|
||||
Reference in New Issue
Block a user