]> git.ipfire.org Git - pakfire.git/commitdiff
packager: Compress source archives less
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 15 Feb 2025 12:03:47 +0000 (12:03 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 15 Feb 2025 12:03:47 +0000 (12:03 +0000)
There is no reason to try to compress the compressed tarballs again.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/archive_writer.c
src/pakfire/archive_writer.h
src/pakfire/packager.c

index b98a0ce87524b56f49e0d2a2723d83b46fe3c779..f48f16b619400530f88b5a3257677eaaeb1b1700 100644 (file)
@@ -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;
index 619a5a32f9a65f882d2319757ebf351716b1074b..8e9faa0d78c85223063fc6ad78c63badd01f8175 100644 (file)
@@ -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,
index 3c9e923752bb4332e751105210587cd0d18ec308..372a2b9291ea52f1b8e03943c5ec34c1a27c9171 100644 (file)
@@ -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;