]> git.ipfire.org Git - pakfire.git/commitdiff
packages: Move pakfire_package_{g,s}et_source_* functions
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 25 Oct 2022 17:21:55 +0000 (17:21 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 25 Oct 2022 17:21:55 +0000 (17:21 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/_pakfire/package.c
src/libpakfire/archive.c
src/libpakfire/build.c
src/libpakfire/db.c
src/libpakfire/include/pakfire/package.h
src/libpakfire/libpakfire.sym
src/libpakfire/package.c

index 0811d3ee0a1e810ce5715719c337dd4921029070..760170179bcb84c9d39c3771665bc8c41dd14d15 100644 (file)
@@ -657,44 +657,53 @@ static PyObject* Package_get_source_package(PackageObject* self) {
 }
 
 static PyObject* Package_get_source_name(PackageObject* self) {
-       const char* source_name = pakfire_package_get_source_name(self->package);
+       const char* source_name = pakfire_package_get_string(self->package, PAKFIRE_PKG_SOURCE_NAME);
+       if (!source_name)
+               Py_RETURN_NONE;
 
        return PyUnicode_FromString(source_name);
 }
 
 static PyObject* Package_set_source_name(PackageObject* self, PyObject* value) {
        const char* source_name = PyUnicode_AsUTF8(value);
+       if (!source_name)
+               return NULL;
 
-       pakfire_package_set_source_name(self->package, source_name);
-
+       pakfire_package_set_string(self->package, PAKFIRE_PKG_SOURCE_NAME, source_name);
        Py_RETURN_NONE;
 }
 
 static PyObject* Package_get_source_evr(PackageObject* self) {
-       const char* source_evr = pakfire_package_get_source_evr(self->package);
+       const char* source_evr = pakfire_package_get_string(self->package, PAKFIRE_PKG_SOURCE_EVR);
+       if (!source_evr)
+               Py_RETURN_NONE;
 
        return PyUnicode_FromString(source_evr);
 }
 
 static PyObject* Package_set_source_evr(PackageObject* self, PyObject* value) {
        const char* source_evr = PyUnicode_AsUTF8(value);
+       if (!source_evr)
+               return NULL;
 
-       pakfire_package_set_source_evr(self->package, source_evr);
-
+       pakfire_package_set_string(self->package, PAKFIRE_PKG_SOURCE_EVR, source_evr);
        Py_RETURN_NONE;
 }
 
 static PyObject* Package_get_source_arch(PackageObject* self) {
-       const char* source_arch = pakfire_package_get_source_arch(self->package);
+       const char* source_arch = pakfire_package_get_string(self->package, PAKFIRE_PKG_SOURCE_ARCH);
+       if (!source_arch)
+               Py_RETURN_NONE;
 
        return PyUnicode_FromString(source_arch);
 }
 
 static PyObject* Package_set_source_arch(PackageObject* self, PyObject* value) {
        const char* source_arch = PyUnicode_AsUTF8(value);
+       if (!source_arch)
+               return NULL;
 
-       pakfire_package_set_source_arch(self->package, source_arch);
-
+       pakfire_package_set_string(self->package, PAKFIRE_PKG_SOURCE_ARCH, source_arch);
        Py_RETURN_NONE;
 }
 
index 2ddaa158981ffc41ecc269551dcfbd00badb6832..a37cf54e4dbc7355bf4431ff30041d8036215b93 100644 (file)
@@ -1192,18 +1192,27 @@ static int pakfire_archive_make_package_from_json(struct pakfire_archive* archiv
 
        // Source package
        const char* source_name = pakfire_archive_metadata_get(archive, "build", "source-name");
-       if (source_name)
-               pakfire_package_set_source_name(pkg, source_name);
+       if (source_name) {
+               r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_NAME, source_name);
+               if (r)
+                       goto ERROR;
+       }
 
        // Source EVR
        const char* source_evr = pakfire_archive_metadata_get(archive, "build", "source-evr");
-       if (source_evr)
-               pakfire_package_set_source_evr(pkg, source_evr);
+       if (source_evr) {
+               r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_EVR, source_evr);
+               if (r)
+                       goto ERROR;
+       }
 
        // Source arch
        const char* source_arch = pakfire_archive_metadata_get(archive, "build", "source-arch");
-       if (source_arch)
-               pakfire_package_set_source_arch(pkg, source_arch);
+       if (source_arch) {
+               r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_ARCH, source_arch);
+               if (r)
+                       goto ERROR;
+       }
 
        // Dependencies
        const struct dependencies {
index 51b82b8d9934a9a209061dd90917bb2162c8a77c..15ceae51acd1a88d27b1e53efed47511b11a438e 100644 (file)
@@ -547,16 +547,24 @@ static int pakfire_build_package(struct pakfire_build* build, struct pakfire_par
 
        // Set source package
        const char* source_name = pakfire_parser_get(makefile, NULL, "name");
-       if (source_name)
-               pakfire_package_set_source_name(pkg, source_name);
+       if (source_name) {
+               r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_NAME, source_name);
+               if (r)
+                       goto ERROR;
+       }
 
        // Set source EVR
        const char* source_evr = pakfire_parser_get(makefile, NULL, "evr");
-       if (source_evr)
-               pakfire_package_set_source_evr(pkg, source_evr);
+       if (source_evr) {
+               r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_EVR, source_evr);
+               if (r)
+                       goto ERROR;
+       }
 
        // Set source arch
-       pakfire_package_set_source_arch(pkg, "src");
+       r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_ARCH, "src");
+       if (r)
+               goto ERROR;
 
        // Create a packager
        r = pakfire_packager_create(&packager, build->pakfire, pkg);
index 2d366d4e5ca273aeeacbfbed0bcd4e5c7e87c712..defcc5417f4f5fd4e5d34036b3b6634fa199668d 100644 (file)
@@ -1505,7 +1505,7 @@ int pakfire_db_add_package(struct pakfire_db* db,
        }
 
        // Source package name
-       const char* source_name = pakfire_package_get_source_name(pkg);
+       const char* source_name = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_NAME);
        if (source_name) {
                r = sqlite3_bind_text(stmt, 19, source_name, -1, NULL);
                if (r)
@@ -1517,7 +1517,7 @@ int pakfire_db_add_package(struct pakfire_db* db,
        }
 
        // Source EVR
-       const char* source_evr = pakfire_package_get_source_evr(pkg);
+       const char* source_evr = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_EVR);
        if (source_evr) {
                r = sqlite3_bind_text(stmt, 20, source_evr, -1, NULL);
                if (r)
@@ -1529,7 +1529,7 @@ int pakfire_db_add_package(struct pakfire_db* db,
        }
 
        // Source arch
-       const char* source_arch = pakfire_package_get_source_arch(pkg);
+       const char* source_arch = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_ARCH);
        if (source_arch) {
                r = sqlite3_bind_text(stmt, 21, source_arch, -1, NULL);
                if (r)
@@ -1894,18 +1894,27 @@ static int pakfire_db_load_package(struct pakfire_db* db, struct pakfire_repo* r
 
        // Source package
        const char* source_name = (const char*)sqlite3_column_text(stmt, 29);
-       if (source_name)
-               pakfire_package_set_source_name(pkg, source_name);
+       if (source_name) {
+               r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_NAME, source_name);
+               if (r)
+                       goto ERROR;
+       }
 
        // Source EVR
        const char* source_evr = (const char*)sqlite3_column_text(stmt, 30);
-       if (source_evr)
-               pakfire_package_set_source_evr(pkg, source_evr);
+       if (source_evr) {
+               r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_EVR, source_evr);
+               if (r)
+                       goto ERROR;
+       }
 
        // Source arch
        const char* source_arch = (const char*)sqlite3_column_text(stmt, 31);
-       if (source_arch)
-               pakfire_package_set_source_arch(pkg, source_arch);
+       if (source_arch) {
+               r = pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_ARCH, source_arch);
+               if (r)
+                       goto ERROR;
+       }
 
        // Distribution
        const char* distribution = (const char*)sqlite3_column_text(stmt, 32);
index fb218ff7ee134a4417fee402224b03691f2202fb..6a3a3dc3875faf1ad0c7e1b0f20cf940ab3d306e 100644 (file)
@@ -51,6 +51,9 @@ enum pakfire_package_key {
        PAKFIRE_PKG_BUILD_HOST,
        PAKFIRE_PKG_BUILD_ID,
        PAKFIRE_PKG_SOURCE_PKG,
+       PAKFIRE_PKG_SOURCE_NAME,
+       PAKFIRE_PKG_SOURCE_EVR,
+       PAKFIRE_PKG_SOURCE_ARCH,
 };
 
 int pakfire_package_create(struct pakfire_package** package, struct pakfire* pakfire,
@@ -91,12 +94,6 @@ time_t pakfire_package_get_build_time(struct pakfire_package* pkg);
 void pakfire_package_set_build_time(struct pakfire_package* pkg, time_t build_time);
 time_t pakfire_package_get_install_time(struct pakfire_package* pkg);
 void pakfire_package_set_install_time(struct pakfire_package* pkg, time_t install_time);
-const char* pakfire_package_get_source_name(struct pakfire_package* pkg);
-void pakfire_package_set_source_name(struct pakfire_package* pkg, const char* name);
-const char* pakfire_package_get_source_evr(struct pakfire_package* pkg);
-void pakfire_package_set_source_evr(struct pakfire_package* pkg, const char* evr);
-const char* pakfire_package_get_source_arch(struct pakfire_package* pkg);
-void pakfire_package_set_source_arch(struct pakfire_package* pkg, const char* arch);
 
 char** pakfire_package_get_provides(struct pakfire_package* pkg);
 char** pakfire_package_get_prerequires(struct pakfire_package* pkg);
index 41a27cafc5809e45a028493f238ee868ed8b6a2c..8154a84f367c0835678e7da54dee6c19ef894001 100644 (file)
@@ -187,9 +187,6 @@ global:
        pakfire_package_get_requires;
        pakfire_package_get_reverse_requires;
        pakfire_package_get_size;
-       pakfire_package_get_source_arch;
-       pakfire_package_get_source_evr;
-       pakfire_package_get_source_name;
        pakfire_package_get_string;
        pakfire_package_get_suggests;
        pakfire_package_get_supplements;
@@ -202,9 +199,6 @@ global:
        pakfire_package_set_installsize;
        pakfire_package_set_install_time;
        pakfire_package_set_path;
-       pakfire_package_set_source_arch;
-       pakfire_package_set_source_evr;
-       pakfire_package_set_source_name;
        pakfire_package_set_string;
        pakfire_package_set_uuid;
        pakfire_package_unref;
index 9b13874dcd5d108c887c8408a6c45356342dc2d2..b52b74a11d39acf004db05abc0e0485c2f913b1f 100644 (file)
@@ -406,9 +406,9 @@ PAKFIRE_EXPORT const char* pakfire_package_get_string(
 
                case PAKFIRE_PKG_SOURCE_PKG:
                        if (!*pkg->source_nevra) {
-                               const char* name = pakfire_package_get_source_name(pkg);
-                               const char* evr  = pakfire_package_get_source_evr(pkg);
-                               const char* arch = pakfire_package_get_source_arch(pkg);
+                               const char* name = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_NAME);
+                               const char* evr  = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_EVR);
+                               const char* arch = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_ARCH);
 
                                // Return nothing if we don't have all information
                                if (!name || !evr || !arch)
@@ -421,6 +421,18 @@ PAKFIRE_EXPORT const char* pakfire_package_get_string(
                        }
 
                        return pkg->source_nevra;
+
+               case PAKFIRE_PKG_SOURCE_NAME:
+                       ret = solvable_lookup_str(s, SOLVABLE_SOURCENAME);
+                       break;
+
+               case PAKFIRE_PKG_SOURCE_EVR:
+                       ret = solvable_lookup_str(s, SOLVABLE_SOURCEEVR);
+                       break;
+
+               case PAKFIRE_PKG_SOURCE_ARCH:
+                       ret = solvable_lookup_str(s, SOLVABLE_SOURCEARCH);
+                       break;
        }
 
        return ret;
@@ -515,6 +527,22 @@ PAKFIRE_EXPORT int pakfire_package_set_string(
                case PAKFIRE_PKG_SOURCE_PKG:
                        // The source package name cannot be set
                        break;
+
+               case PAKFIRE_PKG_SOURCE_NAME:
+                       id = SOLVABLE_SOURCENAME;
+                       break;
+
+               case PAKFIRE_PKG_SOURCE_EVR:
+                       // Skip empty epoch
+                       if (pakfire_string_startswith(value, "0:"))
+                               value += 2;
+
+                       id = SOLVABLE_SOURCEEVR;
+                       break;
+
+               case PAKFIRE_PKG_SOURCE_ARCH:
+                       id = SOLVABLE_SOURCEARCH;
+                       break;
        }
 
        // Check if we have found a valid ID
@@ -779,34 +807,6 @@ PAKFIRE_EXPORT void pakfire_package_set_install_time(struct pakfire_package* pkg
        pakfire_package_set_num(pkg, SOLVABLE_INSTALLTIME, install_time);
 }
 
-PAKFIRE_EXPORT const char* pakfire_package_get_source_name(struct pakfire_package* pkg) {
-       return pakfire_package_get_string(pkg, SOLVABLE_SOURCENAME);
-}
-
-PAKFIRE_EXPORT void pakfire_package_set_source_name(struct pakfire_package* pkg, const char* name) {
-       pakfire_package_set_string(pkg, SOLVABLE_SOURCENAME, name);
-}
-
-PAKFIRE_EXPORT const char* pakfire_package_get_source_evr(struct pakfire_package* pkg) {
-       return pakfire_package_get_string(pkg, SOLVABLE_SOURCEEVR);
-}
-
-PAKFIRE_EXPORT void pakfire_package_set_source_evr(struct pakfire_package* pkg, const char* evr) {
-       // Skip empty epoch
-       if (pakfire_string_startswith(evr, "0:"))
-               evr += 2;
-
-       pakfire_package_set_string(pkg, SOLVABLE_SOURCEEVR, evr);
-}
-
-PAKFIRE_EXPORT const char* pakfire_package_get_source_arch(struct pakfire_package* pkg) {
-       return pakfire_package_get_string(pkg, SOLVABLE_SOURCEARCH);
-}
-
-PAKFIRE_EXPORT void pakfire_package_set_source_arch(struct pakfire_package* pkg, const char* arch) {
-       pakfire_package_set_string(pkg, SOLVABLE_SOURCEARCH, arch);
-}
-
 static char** pakfire_package_get_relationlist(
                struct pakfire_package* pkg, Id type, Id marker) {
        char** array = NULL;
@@ -1633,7 +1633,7 @@ static int pakfire_package_add_build_metadata(struct pakfire_package* pkg,
        }
 
        // Source package name
-       const char* name = pakfire_package_get_source_name(pkg);
+       const char* name = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_NAME);
        if (name) {
                r = pakfire_json_add_string(pkg->pakfire, object, "source-name", name);
                if (r)
@@ -1641,7 +1641,7 @@ static int pakfire_package_add_build_metadata(struct pakfire_package* pkg,
        }
 
        // Source package EVR
-       const char* evr = pakfire_package_get_source_evr(pkg);
+       const char* evr = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_EVR);
        if (evr) {
                r = pakfire_json_add_string(pkg->pakfire, object, "source-evr", evr);
                if (r)
@@ -1649,7 +1649,7 @@ static int pakfire_package_add_build_metadata(struct pakfire_package* pkg,
        }
 
        // Source package arch
-       const char* arch = pakfire_package_get_source_arch(pkg);
+       const char* arch = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_ARCH);
        if (arch) {
                r = pakfire_json_add_string(pkg->pakfire, object, "source-arch", arch);
                if (r)