From: Michael Tremer Date: Wed, 21 Apr 2021 15:56:11 +0000 (+0000) Subject: parser: Set default architecture when creating a package X-Git-Tag: 0.9.28~1285^2~280 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=08bcb46abc7f15aedadad11b4762633df583116d;p=pakfire.git parser: Set default architecture when creating a package Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/dist.c b/src/libpakfire/dist.c index c4bd2b4c2..62eaf412c 100644 --- a/src/libpakfire/dist.c +++ b/src/libpakfire/dist.c @@ -312,13 +312,10 @@ PAKFIRE_EXPORT int pakfire_dist(Pakfire pakfire, const char* path, const char* t goto ERROR; // Get the package object - r = pakfire_parser_create_package(makefile, &pkg, repo, NULL); + r = pakfire_parser_create_package(makefile, &pkg, repo, NULL, "src"); if (r) goto ERROR; - // Set architecture to source - pakfire_package_set_arch(pkg, "src"); - // Create a packager r = pakfire_packager_create(&packager, pkg); if (r) diff --git a/src/libpakfire/include/pakfire/parser.h b/src/libpakfire/include/pakfire/parser.h index b4083f935..e6f7d171f 100644 --- a/src/libpakfire/include/pakfire/parser.h +++ b/src/libpakfire/include/pakfire/parser.h @@ -63,7 +63,7 @@ const char* pakfire_parser_get_namespace(PakfireParser parser); int pakfire_parser_set_namespace(PakfireParser parser, const char* namespace); int pakfire_parser_create_package(PakfireParser parser, - PakfirePackage* pkg, PakfireRepo repo, const char* namespace); + PakfirePackage* pkg, PakfireRepo repo, const char* namespace, const char* default_arch); // Errors int pakfire_parser_error_create(struct pakfire_parser_error** error, diff --git a/src/libpakfire/parser.c b/src/libpakfire/parser.c index ce4375d08..d82a81209 100644 --- a/src/libpakfire/parser.c +++ b/src/libpakfire/parser.c @@ -731,7 +731,7 @@ PAKFIRE_EXPORT int pakfire_parser_set_namespace(PakfireParser parser, const char } PAKFIRE_EXPORT int pakfire_parser_create_package(PakfireParser parser, - PakfirePackage* pkg, PakfireRepo repo, const char* namespace) { + PakfirePackage* pkg, PakfireRepo repo, const char* namespace, const char* default_arch) { int r = 1; char* name = NULL; @@ -772,8 +772,14 @@ PAKFIRE_EXPORT int pakfire_parser_create_package(PakfireParser parser, // Fetch arch arch = pakfire_parser_get(parser, namespace, "arch"); if (!arch || !*arch) { - ERROR(parser->pakfire, "Arch is empty\n"); - goto CLEANUP; + if (default_arch) { + arch = strdup(default_arch); + if (!arch) + goto CLEANUP; + } else { + ERROR(parser->pakfire, "Arch is empty\n"); + goto CLEANUP; + } } // Compile EVR diff --git a/tests/libpakfire/makefile.c b/tests/libpakfire/makefile.c index 18d458270..730b61aea 100644 --- a/tests/libpakfire/makefile.c +++ b/tests/libpakfire/makefile.c @@ -114,7 +114,7 @@ static int test_packages(const struct test* t) { ASSERT(r == 0); // Create package - r = pakfire_parser_create_package(parser, &pkg, repo, NULL); + r = pakfire_parser_create_package(parser, &pkg, repo, NULL, NULL); ASSERT(r == 0); ASSERT(pkg);