From: Michael Tremer Date: Fri, 16 Apr 2021 10:39:53 +0000 (+0000) Subject: packager: Only compress binary packages X-Git-Tag: 0.9.28~1285^2~356 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=af14aefbe54ae3e670cb85a357de5f53127f3939;p=pakfire.git packager: Only compress binary packages Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index a8d2f50a2..bf00a58a1 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -763,11 +763,8 @@ PAKFIRE_EXPORT char* pakfire_archive_extraction_path(PakfireArchive archive, con return NULL; } - const char* arch = pakfire_package_get_arch(pkg); - int is_source = (strcmp(arch, "src") == 0); - // Use a good default for source packages - if (is_source && !target) + if (pakfire_package_is_source(pkg) && !target) target = "/usr/src/packages"; char* nevra = pakfire_package_get_nevra(pkg); diff --git a/src/libpakfire/include/pakfire/package.h b/src/libpakfire/include/pakfire/package.h index 6a37b7aef..9094bbedf 100644 --- a/src/libpakfire/include/pakfire/package.h +++ b/src/libpakfire/include/pakfire/package.h @@ -162,6 +162,8 @@ enum pakfire_package_dump_flags { #include +int pakfire_package_is_source(PakfirePackage pkg); + int pakfire_package_is_in_repo(PakfirePackage pkg, Repo* repo); #endif diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index fbfd89585..dcdab17e3 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -337,6 +337,14 @@ PAKFIRE_EXPORT void pakfire_package_set_arch(PakfirePackage pkg, const char* arc s->arch = pool_str2id(pool, arch, 1); } +int pakfire_package_is_source(PakfirePackage pkg) { + const char* arch = pakfire_package_get_arch(pkg); + if (!arch) + return 1; + + return (strcmp(arch, "src") == 0); +} + static void pakfire_package_internalize_repo(PakfirePackage pkg) { PakfireRepo repo = pakfire_package_get_repo(pkg); if (repo) { diff --git a/src/libpakfire/packager.c b/src/libpakfire/packager.c index 61e3d9567..e7aaad031 100644 --- a/src/libpakfire/packager.c +++ b/src/libpakfire/packager.c @@ -60,9 +60,12 @@ struct pakfire_packager { FILE* fpayload; }; -static int pakfire_packager_create_payload(struct pakfire_packager* p, int compress) { +static int pakfire_packager_create_payload(struct pakfire_packager* p) { char path[] = "/tmp/.pakfire-payload.XXXXXX"; + // Do not compress source packages + const int compress = !pakfire_package_is_source(p->pkg); + p->payload = archive_write_new(); if (!p->payload) { ERROR(p->pakfire, "archive_write_new() failed\n"); @@ -166,7 +169,7 @@ PAKFIRE_EXPORT int pakfire_packager_create(struct pakfire_packager** packager, goto ERROR; // Start payload - r = pakfire_packager_create_payload(p, 1); + r = pakfire_packager_create_payload(p); if (r) goto ERROR;