From: Michael Tremer Date: Fri, 26 Aug 2022 10:44:08 +0000 (+0000) Subject: packager: Only package selected digests X-Git-Tag: 0.9.28~359 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=045fa5041ff8d0dbd4c0965a8cca7385e0248c56;p=pakfire.git packager: Only package selected digests Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/file.c b/src/libpakfire/file.c index 23d1ddc07..9470af704 100644 --- a/src/libpakfire/file.c +++ b/src/libpakfire/file.c @@ -298,32 +298,38 @@ struct archive_entry* pakfire_file_archive_entry(struct pakfire_file* file) { // Copy digests // SHA-3-512 - if (pakfire_digest_set(file->digests.sha3_512)) + if ((digest_types && PAKFIRE_DIGEST_SHA3_512) + && pakfire_digest_set(file->digests.sha3_512)) archive_entry_xattr_add_entry(entry, "PAKFIRE.digests.sha3_512", file->digests.sha3_512, sizeof(file->digests.sha3_512)); // SHA-3-256 - if (pakfire_digest_set(file->digests.sha3_256)) + if ((digest_types && PAKFIRE_DIGEST_SHA3_256) && + pakfire_digest_set(file->digests.sha3_256)) archive_entry_xattr_add_entry(entry, "PAKFIRE.digests.sha3_256", file->digests.sha3_256, sizeof(file->digests.sha3_256)); // BLAKE2b512 - if (pakfire_digest_set(file->digests.blake2b512)) + if ((digest_types && PAKFIRE_DIGEST_BLAKE2B512) && + pakfire_digest_set(file->digests.blake2b512)) archive_entry_xattr_add_entry(entry, "PAKFIRE.digests.blake2b512", file->digests.blake2b512, sizeof(file->digests.blake2b512)); // BLAKE2s256 - if (pakfire_digest_set(file->digests.blake2s256)) + if ((digest_types && PAKFIRE_DIGEST_BLAKE2S256) && + pakfire_digest_set(file->digests.blake2s256)) archive_entry_xattr_add_entry(entry, "PAKFIRE.digests.blake2s256", file->digests.blake2s256, sizeof(file->digests.blake2s256)); // SHA-2-512 - if (pakfire_digest_set(file->digests.sha2_512)) + if ((digest_types && PAKFIRE_DIGEST_SHA2_512) && + pakfire_digest_set(file->digests.sha2_512)) archive_entry_xattr_add_entry(entry, "PAKFIRE.digests.sha2_512", file->digests.sha2_512, sizeof(file->digests.sha2_512)); // SHA-2-256 - if (pakfire_digest_set(file->digests.sha2_256)) + if ((digest_types && PAKFIRE_DIGEST_SHA2_512) && + pakfire_digest_set(file->digests.sha2_256)) archive_entry_xattr_add_entry(entry, "PAKFIRE.digests.sha2_256", file->digests.sha2_256, sizeof(file->digests.sha2_256)); diff --git a/src/libpakfire/include/pakfire/file.h b/src/libpakfire/include/pakfire/file.h index 5b41bebfa..8ce073812 100644 --- a/src/libpakfire/include/pakfire/file.h +++ b/src/libpakfire/include/pakfire/file.h @@ -87,7 +87,7 @@ int pakfire_file_create_from_path(struct pakfire_file** file, struct pakfire* pakfire, const char* path); int pakfire_file_create_from_archive_entry(struct pakfire_file** file, struct pakfire* pakfire, struct archive_entry* entry); -struct archive_entry* pakfire_file_archive_entry(struct pakfire_file* file); +struct archive_entry* pakfire_file_archive_entry(struct pakfire_file* file, int digest_types); const char* pakfire_file_get_abspath(struct pakfire_file* file); int pakfire_file_set_abspath(struct pakfire_file* file, const char* path); diff --git a/src/libpakfire/include/pakfire/packager.h b/src/libpakfire/include/pakfire/packager.h index f54dc217d..3209d2a8f 100644 --- a/src/libpakfire/include/pakfire/packager.h +++ b/src/libpakfire/include/pakfire/packager.h @@ -23,11 +23,14 @@ #ifdef PAKFIRE_PRIVATE +#include #include #include #include #include +#define PAKFIRE_PACKAGER_DIGESTS (PAKFIRE_DIGEST_SHA3_512|PAKFIRE_DIGEST_BLAKE2B512) + struct pakfire_packager; int pakfire_packager_create(struct pakfire_packager** packager, diff --git a/src/libpakfire/packager.c b/src/libpakfire/packager.c index 029769359..cbcb515ec 100644 --- a/src/libpakfire/packager.c +++ b/src/libpakfire/packager.c @@ -695,14 +695,14 @@ int pakfire_packager_add_file(struct pakfire_packager* packager, struct pakfire_ goto ERROR; // Add digests for regular files - r = pakfire_file_compute_digests(file, PAKFIRE_DIGESTS_ALL); + r = pakfire_file_compute_digests(file, PAKFIRE_PACKAGER_DIGESTS); if (r) { ERROR(packager->pakfire, "Could not compute digests: %m\n"); goto ERROR; } // Generate file metadata into an archive entry - entry = pakfire_file_archive_entry(file); + entry = pakfire_file_archive_entry(file, PAKFIRE_PACKAGER_DIGESTS); if (!entry) goto ERROR; diff --git a/src/libpakfire/snapshot.c b/src/libpakfire/snapshot.c index 7da82d5da..0b1d03194 100644 --- a/src/libpakfire/snapshot.c +++ b/src/libpakfire/snapshot.c @@ -133,7 +133,7 @@ int pakfire_snapshot_create(struct pakfire* pakfire, const char* path) { FILE* f = NULL; // Make archive entry - struct archive_entry* entry = pakfire_file_archive_entry(file); + struct archive_entry* entry = pakfire_file_archive_entry(file, PAKFIRE_DIGEST_UNDEFINED); if (!entry) { ERROR(pakfire, "Could not make archive entry from file: %m\n"); r = 1;