static int pakfire_archive_make_package_from_json(struct pakfire_archive* archive,
struct pakfire_repo* repo, struct pakfire_package** package) {
- struct pakfire_digests digests;
int r;
// Calculate digest
- r = pakfire_digests_compute_from_file(archive->pakfire, &digests,
- PAKFIRE_ARCHIVE_CHECKSUM, archive->f);
- if (r) {
- ERROR(archive->pakfire, "Could not calculate digest of %s: %m\n", archive->path);
+ r = pakfire_archive_compute_digests(archive);
+ if (r)
return r;
- }
// Fetch the most basic package information
const char* name = pakfire_archive_metadata_get(archive, "name", NULL);
// Set digest
switch (PAKFIRE_ARCHIVE_CHECKSUM) {
case PAKFIRE_DIGEST_SHA2_512:
- pakfire_package_set_digest(pkg, PAKFIRE_ARCHIVE_CHECKSUM, digests.sha2_512);
+ pakfire_package_set_digest(pkg, PAKFIRE_ARCHIVE_CHECKSUM, archive->digests.sha2_512);
break;
case PAKFIRE_DIGEST_SHA2_256:
- pakfire_package_set_digest(pkg, PAKFIRE_ARCHIVE_CHECKSUM, digests.sha2_256);
+ pakfire_package_set_digest(pkg, PAKFIRE_ARCHIVE_CHECKSUM, archive->digests.sha2_256);
break;
case PAKFIRE_DIGEST_UNDEFINED:
static int pakfire_archive_make_legacy_package(struct pakfire_archive* archive,
struct pakfire_repo* repo, struct pakfire_package** package) {
- struct pakfire_digests digests;
int r;
// Calculate digest
- r = pakfire_digests_compute_from_file(archive->pakfire, &digests,
- PAKFIRE_ARCHIVE_CHECKSUM, archive->f);
- if (r) {
- ERROR(archive->pakfire, "Could not calculate digest of %s: %m\n", archive->path);
+ r = pakfire_archive_compute_digests(archive);
+ if (r)
return r;
- }
char* name = pakfire_archive_get(archive, "package", "name");
char* arch = pakfire_archive_get(archive, "package", "arch");
// Set digest
switch (PAKFIRE_ARCHIVE_CHECKSUM) {
case PAKFIRE_DIGEST_SHA2_512:
- pakfire_package_set_digest(pkg, PAKFIRE_ARCHIVE_CHECKSUM, digests.sha2_512);
+ pakfire_package_set_digest(pkg, PAKFIRE_ARCHIVE_CHECKSUM, archive->digests.sha2_512);
break;
case PAKFIRE_DIGEST_SHA2_256:
- pakfire_package_set_digest(pkg, PAKFIRE_ARCHIVE_CHECKSUM, digests.sha2_256);
+ pakfire_package_set_digest(pkg, PAKFIRE_ARCHIVE_CHECKSUM, archive->digests.sha2_256);
break;
case PAKFIRE_DIGEST_UNDEFINED: