]> git.ipfire.org Git - pakfire.git/commitdiff
packager: Only compress binary packages
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 16 Apr 2021 10:39:53 +0000 (10:39 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 16 Apr 2021 10:39:53 +0000 (10:39 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c
src/libpakfire/include/pakfire/package.h
src/libpakfire/package.c
src/libpakfire/packager.c

index a8d2f50a2fe3fde833c4aead5cc5ea6e9ceed40a..bf00a58a15684971dadb125df74b6495e50a294b 100644 (file)
@@ -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);
index 6a37b7aefc89d2f3a2802835934d5dc4160251a7..9094bbedff1e428dd7ff3ce8f5fa9212ab29585a 100644 (file)
@@ -162,6 +162,8 @@ enum pakfire_package_dump_flags {
 
 #include <solv/repo.h>
 
+int pakfire_package_is_source(PakfirePackage pkg);
+
 int pakfire_package_is_in_repo(PakfirePackage pkg, Repo* repo);
 
 #endif
index fbfd89585a94c12f11f763eeb336cedd040d0d2b..dcdab17e331f007d13e2c45489faf897b808f040 100644 (file)
@@ -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) {
index 61e3d9567267dc98cdb928fb12dd14aa63c4beea..e7aaad031d7412402a82af1d31348aa9bb8f704e 100644 (file)
@@ -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;