From dda5b2492d89fdba1465ecbb8057a5d39081d345 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 15 Feb 2025 12:03:47 +0000 Subject: [PATCH] packager: Compress source archives less There is no reason to try to compress the compressed tarballs again. Signed-off-by: Michael Tremer --- src/pakfire/archive_writer.c | 17 +++++++++++++++-- src/pakfire/archive_writer.h | 1 + src/pakfire/packager.c | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/pakfire/archive_writer.c b/src/pakfire/archive_writer.c index b98a0ce8..f48f16b6 100644 --- a/src/pakfire/archive_writer.c +++ b/src/pakfire/archive_writer.c @@ -88,14 +88,27 @@ static int pakfire_archive_writer_setup_format( switch (format) { // The Pakfire Archive Format case PAKFIRE_FORMAT_ARCHIVE: + case PAKFIRE_FORMAT_SOURCE_ARCHIVE: // We use the PAX tar format self->container = PAKFIRE_CONTAINER_PAX; // We use Zstandard compression self->compression = PAKFIRE_COMPRESSION_ZSTD; - // Use some good compression - self->compression_level = 20; + // Use good compression for binary archives, + // but don't try to compress source archives much. + switch (format) { + case PAKFIRE_FORMAT_ARCHIVE: + self->compression_level = 20; + break; + + case PAKFIRE_FORMAT_SOURCE_ARCHIVE: + self->compression_level = 1; + break; + + default: + break; + } // Hash the files self->checksums = PAKFIRE_HASH_SHA3_512|PAKFIRE_HASH_BLAKE2B512; diff --git a/src/pakfire/archive_writer.h b/src/pakfire/archive_writer.h index 619a5a32..8e9faa0d 100644 --- a/src/pakfire/archive_writer.h +++ b/src/pakfire/archive_writer.h @@ -33,6 +33,7 @@ struct pakfire_archive_writer; typedef enum pakfire_archive_writer_formats { PAKFIRE_FORMAT_ARCHIVE, + PAKFIRE_FORMAT_SOURCE_ARCHIVE, // OCI Images PAKFIRE_FORMAT_OCI, diff --git a/src/pakfire/packager.c b/src/pakfire/packager.c index 3c9e9237..372a2b92 100644 --- a/src/pakfire/packager.c +++ b/src/pakfire/packager.c @@ -343,7 +343,7 @@ int pakfire_packager_finish(struct pakfire_packager* packager, FILE* f) { // Create a new archive writer r = pakfire_archive_writer_create(&writer, packager->pakfire, - PAKFIRE_FORMAT_ARCHIVE, f); + PAKFIRE_FORMAT_SOURCE_ARCHIVE, f); if (r < 0) goto ERROR; -- 2.39.5