From: Michael Tremer Date: Sat, 15 Feb 2025 12:03:47 +0000 (+0000) Subject: packager: Compress source archives less X-Git-Tag: 0.9.30~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dda5b2492d89fdba1465ecbb8057a5d39081d345;p=pakfire.git packager: Compress source archives less There is no reason to try to compress the compressed tarballs again. Signed-off-by: Michael Tremer --- 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;