Py_RETURN_NONE;
}
-static PyObject* Repo_read_solv(RepoObject* self, PyObject* args) {
- const char* filename = NULL;
-
- if (!PyArg_ParseTuple(args, "s", &filename))
- return NULL;
-
- int r = pakfire_repo_read_solv(self->repo, filename, 0);
- if (r) {
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-static PyObject* Repo_write_solv(RepoObject* self, PyObject* args) {
- const char* filename = NULL;
-
- if (!PyArg_ParseTuple(args, "s", &filename))
- return NULL;
-
- int r = pakfire_repo_write_solv(self->repo, filename, 0);
- if (r) {
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
-
- Py_RETURN_NONE;
-}
-
static PyObject* Repo__add_package(RepoObject* self, PyObject* args) {
const char* name;
const char* evr;
METH_NOARGS,
NULL,
},
- {
- "read_solv",
- (PyCFunction)Repo_read_solv,
- METH_VARARGS,
- NULL
- },
{
"refresh",
(PyCFunction)Repo_refresh,
METH_VARARGS,
NULL
},
- {
- "write_solv",
- (PyCFunction)Repo_write_solv,
- METH_VARARGS,
- NULL
- },
{
"_add_package",
(PyCFunction)Repo__add_package,
int pakfire_repo_is_installed_repo(struct pakfire_repo* repo);
-int pakfire_repo_read_solv(struct pakfire_repo* repo, const char* filename, int flags);
-int pakfire_repo_read_solv_fp(struct pakfire_repo* repo, FILE *f, int flags);
-
-int pakfire_repo_write_solv(struct pakfire_repo* repo, const char* filename, int flags);
-int pakfire_repo_write_solv_fp(struct pakfire_repo* repo, FILE *f, int flags);
+int pakfire_repo_read_solv(struct pakfire_repo* repo, FILE *f, int flags);
+int pakfire_repo_write_solv(struct pakfire_repo* repo, FILE *f, int flags);
struct pakfire_package* pakfire_repo_add_archive(struct pakfire_repo* repo, struct pakfire_archive* archive);
pakfire_repo_identical;
pakfire_repo_is_installed_repo;
pakfire_repo_read_solv;
- pakfire_repo_read_solv_fp;
pakfire_repo_ref;
pakfire_repo_refresh;
pakfire_repo_scan;
pakfire_repo_set_mirrorlist_url;
pakfire_repo_set_priority;
pakfire_repo_write_solv;
- pakfire_repo_write_solv_fp;
pakfire_repo_unref;
# repolist
if (r)
goto ERROR;
+ // Open database file
+ FILE* f = fopen(database_cache_path, "r");
+ if (!f)
+ goto ERROR;
+
// Read database
- r = pakfire_repo_read_solv(repo, database_cache_path, 0);
+ r = pakfire_repo_read_solv(repo, f, 0);
+ fclose(f);
if (r) {
if (!refresh && errno == ENOENT)
goto NOERROR;
return r;
}
-PAKFIRE_EXPORT int pakfire_repo_read_solv(struct pakfire_repo* repo, const char* filename, int flags) {
- FILE* f = fopen(filename, "rb");
- if (!f)
- return 1;
-
- int ret = pakfire_repo_read_solv_fp(repo, f, flags);
- fclose(f);
-
- return ret;
-}
-
-PAKFIRE_EXPORT int pakfire_repo_read_solv_fp(struct pakfire_repo* repo, FILE *f, int flags) {
+PAKFIRE_EXPORT int pakfire_repo_read_solv(struct pakfire_repo* repo, FILE *f, int flags) {
f = pakfire_xfopen(f, "r");
if (!f)
return 1;
return 0;
}
-PAKFIRE_EXPORT int pakfire_repo_write_solv(struct pakfire_repo* repo, const char* filename, int flags) {
- FILE* f = fopen(filename, "wb");
- if (!f)
- return 1;
-
- int ret = pakfire_repo_write_solv_fp(repo, f, flags);
- fclose(f);
-
- return ret;
-}
-
-PAKFIRE_EXPORT int pakfire_repo_write_solv_fp(struct pakfire_repo* repo, FILE *f, int flags) {
+PAKFIRE_EXPORT int pakfire_repo_write_solv(struct pakfire_repo* repo, FILE *f, int flags) {
pakfire_repo_internalize(repo);
return repo_write(repo->repo, f);
}
// Write the SOLV database to the temporary file
- r = pakfire_repo_write_solv_fp(repo, f, 0);
+ r = pakfire_repo_write_solv(repo, f, 0);
if (r) {
ERROR(repo->pakfire, "Could not write SOLV data: %m\n");
goto ERROR;