From: Michael Tremer Date: Sat, 8 Feb 2025 15:54:52 +0000 (+0000) Subject: archive writer: Use gzip compression for OCI images X-Git-Tag: 0.9.30~62 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e40a74a93a41d7cf48ccd9334bf259a2bb7f01a1;p=pakfire.git archive writer: Use gzip compression for OCI images Signed-off-by: Michael Tremer --- 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);