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);
#include <solv/repo.h>
+int pakfire_package_is_source(PakfirePackage pkg);
+
int pakfire_package_is_in_repo(PakfirePackage pkg, Repo* repo);
#endif
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) {
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");
goto ERROR;
// Start payload
- r = pakfire_packager_create_payload(p, 1);
+ r = pakfire_packager_create_payload(p);
if (r)
goto ERROR;