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;
// 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;