PAKFIRE_ARCHIVE_VERIFY_BEST,
};
+static const char* pakfire_archive_files_without_chksums[] = {
+ "pakfire-format",
+ "chksums",
+ NULL,
+};
+
struct pakfire_archive_chksum {
STAILQ_ENTRY(pakfire_archive_chksum) nodes;
struct archive* a, struct archive_entry* entry, int flags, void* data) {
const char* path = archive_entry_pathname(entry);
+ // Signatures do not have checksums
+ if (pakfire_string_startswith(path, "signatures/"))
+ return 0;
+
+ // Some files do not have checksums
+ for (const char** file = pakfire_archive_files_without_chksums; *file; file++) {
+ if (strcmp(*file, path) == 0)
+ return 0;
+ }
+
// Fetch the checksum
struct pakfire_archive_chksum* chksum = pakfire_archive_find_chksum(archive, path);
if (!chksum) {
- DEBUG(archive->pakfire, "No checksum found for %s\n", path);
- return 0;
+ ERROR(archive->pakfire, "No checksum found for %s\n", path);
+ return 1;
}
struct pakfire_archive_validator** validators = NULL;