]> git.ipfire.org Git - pakfire.git/commitdiff
parser: Set default architecture when creating a package
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 21 Apr 2021 15:56:11 +0000 (15:56 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 21 Apr 2021 15:56:11 +0000 (15:56 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/dist.c
src/libpakfire/include/pakfire/parser.h
src/libpakfire/parser.c
tests/libpakfire/makefile.c

index c4bd2b4c2c541def150a5b83e09f84914bb11917..62eaf412ce91c31b806e8475b2e24ab181da8395 100644 (file)
@@ -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)
index b4083f935b3d2b855285e3c4bbde7866a45afdc2..e6f7d171fd63ad683bf74ab6b32828b3acc4dcff 100644 (file)
@@ -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,
index ce4375d083dd02f793b02daa708acc3398809795..d82a81209359ea272c4a67a0d5aee5cebbf9cc9c 100644 (file)
@@ -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
index 18d4582705a235c221637137714af41a1943ec60..730b61aead02b29d2e5bbb877b705e158ae29f05 100644 (file)
@@ -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);