Py_RETURN_NONE;
break;
+ case PAKFIRE_E_SOLV_NOT_SOLV:
+ PyErr_Format(PyExc_ValueError, "File not in SOLV format: %s", filename);
+ break;
+
+ case PAKFIRE_E_SOLV_UNSUPPORTED:
+ PyErr_Format(PyExc_ValueError, "File in an unsupported version"
+ " of the SOLV format: %s", filename);
+ break;
+
+ case PAKFIRE_E_SOLV_CORRUPTED:
+ PyErr_Format(PyExc_ValueError, "SOLV file is corrupted: %s", filename);
+ break;
+
case PAKFIRE_E_IO:
- PyErr_Format(PyExc_IOError, "Could not read file %s", filename);
+ PyErr_Format(PyExc_IOError, "Could not read file %s: %s", filename, strerror(errno));
break;
default:
- PyErr_Format(PyExc_RuntimeError, "pakfire_repo_read() failed: %d", ret);
+ PyErr_Format(PyExc_RuntimeError, "pakfire_repo_read() failed: %s", ret);
break;
}
PAKFIRE_E_SELECTOR,
PAKFIRE_E_PKG_INVALID, // when a package is not in the pakfire format
PAKFIRE_E_EOF,
+ PAKFIRE_E_SOLV_NOT_SOLV, // SOLV file in not in SOLV format
+ PAKFIRE_E_SOLV_UNSUPPORTED, // SOLV file is in an unsupported format
+ PAKFIRE_E_SOLV_CORRUPTED, // SOLV file is corrupted
};
extern __thread int pakfire_errno;
int ret = repo_add_solv(repo->repo, f, flags);
+ switch (ret) {
+ // Everything OK
+ case 0:
+ break;
+
+ // Not SOLV format
+ case 1:
+ return PAKFIRE_E_SOLV_NOT_SOLV;
+
+ // Unsupported version
+ case 2:
+ return PAKFIRE_E_SOLV_UNSUPPORTED;
+
+ // End of file
+ case 3:
+ return PAKFIRE_E_EOF;
+
+ // Corrupted
+ case 4:
+ case 5:
+ case 6:
+ default:
+ return PAKFIRE_E_SOLV_CORRUPTED;
+ }
+
repo->pool->provides_ready = 0;
return ret;