From e40a74a93a41d7cf48ccd9334bf259a2bb7f01a1 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 8 Feb 2025 15:54:52 +0000 Subject: [PATCH] archive writer: Use gzip compression for OCI images Signed-off-by: Michael Tremer --- src/pakfire/archive_writer.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/pakfire/archive_writer.c b/src/pakfire/archive_writer.c index a8635a80..4b5d4f51 100644 --- a/src/pakfire/archive_writer.c +++ b/src/pakfire/archive_writer.c @@ -59,6 +59,7 @@ struct pakfire_archive_writer { // Compression enum pakfire_archive_writer_compression { PAKFIRE_COMPRESSION_NONE = 0, + PAKFIRE_COMPRESSION_GZIP, PAKFIRE_COMPRESSION_ZSTD, } compression; unsigned int compression_level; @@ -114,11 +115,11 @@ static int pakfire_archive_writer_setup_format( // Use the GNU tar format self->container = PAKFIRE_CONTAINER_GNU; - // We use Zstandard compression - self->compression = PAKFIRE_COMPRESSION_ZSTD; + // We use gzip compression + self->compression = PAKFIRE_COMPRESSION_GZIP; // Use some good compression - self->compression_level = 20; + self->compression_level = 9; break; // Fail on invalid inputs @@ -177,6 +178,16 @@ static int pakfire_archive_writer_setup_archive(struct pakfire_archive_writer* s case PAKFIRE_COMPRESSION_NONE: break; + // gzip + case PAKFIRE_COMPRESSION_GZIP: + r = archive_write_add_filter_gzip(self->archive); + if (r) { + ERROR(self->ctx, "Could not enable gzip compression: %s\n", + archive_error_string(self->archive)); + return -ENOTSUP; + } + break; + // Zstandard case PAKFIRE_COMPRESSION_ZSTD: r = archive_write_add_filter_zstd(self->archive); -- 2.39.5