From: Michael Tremer Date: Tue, 25 Oct 2022 17:21:55 +0000 (+0000) Subject: packages: Move pakfire_package_{g,s}et_source_* functions X-Git-Tag: 0.9.28~211 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=988ce1bc0d88d21fc50c62d419016d743d69caed;p=pakfire.git packages: Move pakfire_package_{g,s}et_source_* functions Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/package.c b/src/_pakfire/package.c index 0811d3ee0..760170179 100644 --- a/src/_pakfire/package.c +++ b/src/_pakfire/package.c @@ -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; } diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index 2ddaa1589..a37cf54e4 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -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 { diff --git a/src/libpakfire/build.c b/src/libpakfire/build.c index 51b82b8d9..15ceae51a 100644 --- a/src/libpakfire/build.c +++ b/src/libpakfire/build.c @@ -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); diff --git a/src/libpakfire/db.c b/src/libpakfire/db.c index 2d366d4e5..defcc5417 100644 --- a/src/libpakfire/db.c +++ b/src/libpakfire/db.c @@ -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); diff --git a/src/libpakfire/include/pakfire/package.h b/src/libpakfire/include/pakfire/package.h index fb218ff7e..6a3a3dc38 100644 --- a/src/libpakfire/include/pakfire/package.h +++ b/src/libpakfire/include/pakfire/package.h @@ -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); diff --git a/src/libpakfire/libpakfire.sym b/src/libpakfire/libpakfire.sym index 41a27cafc..8154a84f3 100644 --- a/src/libpakfire/libpakfire.sym +++ b/src/libpakfire/libpakfire.sym @@ -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; diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index 9b13874dc..b52b74a11 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -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)