#include <rpmts.h>
#include <rpmdb.h>
#include <rpmlog.h>
-#include "librpminternals.h"
-
-/* This is backend lib's filter string for dlogutil*/
-#define LOCAL_LOG_TAG "librpm"
-int logging = 0x0004;
-#ifdef LOG_IN_FILE
-#define RPM_INSTALLER_LIBRPM_LOG_FILE "/tmp/librpm"
-FILE *logfile = NULL;
-#endif
-
-void _librpm_print_msg(int type, int exetype, char *format, ...)
-{
- char buffer[FILENAME_MAX] = { 0 };
- char tbuffer[FILENAME_MAX] = { 0 };
-
- int nbuffer;
- va_list args;
- va_start(args, format);
- nbuffer = vsnprintf(tbuffer, FILENAME_MAX, format, args);
- va_end(args);
-
- switch (type) {
- case DEBUG_ERR:
- LOG(LOG_ERROR, LOCAL_LOG_TAG, "%s", tbuffer);
- break;
- case DEBUG_RESULT:
- LOG(LOG_WARN, LOCAL_LOG_TAG, "%s", tbuffer);
- break;
- case DEBUG_INFO:
- LOG(LOG_DEBUG, LOCAL_LOG_TAG, "%s", tbuffer);
- default:
- break;
- }
-
- if (logging == 0)
- return;
-
- if (DEBUG_ERR == (logging & type)) {
- nbuffer = snprintf(buffer, FILENAME_MAX, "ERROR:%s", tbuffer);
- vfprintf(stderr, format, args);
- } else if (DEBUG_INFO == (logging & type)) {
- nbuffer = snprintf(buffer, FILENAME_MAX, "INFO:%s", tbuffer);
- vfprintf(stdout, format, args);
- } else if (DEBUG_RESULT == (logging & type)) {
- nbuffer = snprintf(buffer, FILENAME_MAX, "RESULT:%s", tbuffer);
- vfprintf(stdout, format, args);
- } else {
- return;
- }
-#ifdef LOG_IN_FILE
- if (logfile != NULL)
- fwrite(buffer, sizeof(char), strlen(buffer), logfile);
-#endif /*LOG_IN_FILE */
-}
+#include "librpminternals.h"
+#include "rpm-installer-util.h"
-int _librpm_app_is_installed(char *pkgid)
+int _librpm_app_is_installed(const char *pkgid)
{
rpmts ts = NULL;
int ret = 0;
- Header hdr = NULL;
int found = 0;
rpmdbMatchIterator mi;
- rpmtd tn = NULL;
- rpmRC rc;
- tn = rpmtdNew();
ts = rpmtsCreate();
-/*
- hdr = headerNew();
-*/
-
- mi = rpmtsInitIterator(ts, RPMDBI_PACKAGES, NULL, 0);
- while (NULL != (hdr = rpmdbNextIterator(mi))) {
-
- hdr = headerLink(hdr);
- rc = headerGet(hdr, RPMTAG_NAME, tn, HEADERGET_MINMEM);
- if (strcmp(pkgid, rpmtdGetString(tn) ) == 0) {
- found = 1;
- break;
- } else {
- rpmtdReset(tn);
- headerFree(hdr);
- }
+ mi = rpmtsInitIterator(ts, RPMTAG_NAME, pkgid, 0);
+ while (NULL != rpmdbNextIterator(mi)) {
+ found = 1;
+ }
- }
if (found == 0) {
- _librpm_print(DEBUG_INFO, "Package not found in DB\n");
+ _LOGD("Package not found in DB\n");
ret = 0;
goto err;
}
else {
- _librpm_print(DEBUG_INFO, "Package found in DB\n");
+ _LOGD("Package found in DB\n");
ret = 1;
goto err;
}
err:
- rpmtdFreeData(tn);
- rpmtdFree(tn);
- headerFree(hdr);
rpmtsFree(ts);
rpmdbFreeIterator(mi);
return ret;
-
}
-int _librpm_get_installed_package_info(char *pkgid,
+int _librpm_get_installed_package_info(const char *pkgid,
package_manager_pkg_detail_info_t *pkg_detail_info)
{
rpmts ts = NULL;
int ret = 0;
rpmdbMatchIterator mi;
rpmtd td, tn, tv, ta;
- rpmRC rc;
td = rpmtdNew();
tn = rpmtdNew();
tv = rpmtdNew();
ta = rpmtdNew();
ts = rpmtsCreate();
-/*
- hdr = headerNew();
-*/
- mi = rpmtsInitIterator(ts, RPMDBI_PACKAGES, NULL, 0);
- while (NULL != (hdr = rpmdbNextIterator(mi))) {
+ mi = rpmtsInitIterator(ts, RPMTAG_NAME, pkgid, 0);
+ while (NULL != (hdr = rpmdbNextIterator(mi))) {
hdr = headerLink(hdr);
- rc = headerGet(hdr, RPMTAG_NAME, tn, HEADERGET_MINMEM);
- if (strcmp(pkgid, rpmtdGetString(tn) ) == 0) {
- found = 1;
- break;
- } else {
- rpmtdReset(tn);
- headerFree(hdr);
- }
-
+ found = 1;
+ break;
}
/*Print the header info */
if (found == 0) {
- _librpm_print(DEBUG_ERR, "Package not found in DB\n");
+ _LOGE("Package not found in DB\n");
ret = LIBRPM_ERROR;
goto err;
}
}
-int _librpm_get_package_header_info(char *pkg_path,
+int _librpm_get_package_header_info(const char *pkg_path,
package_manager_pkg_detail_info_t *pkg_detail_info)
{
- int i;
int ret = 0;
rpmts ts = NULL;
rpmtd td = NULL;
fd = Fopen(pkg_path, "r.ufdio");
if ((!fd) || Ferror(fd)) {
- _librpm_print(DEBUG_ERR, "Failed to open package file (%s)\n", Fstrerror(fd));
+ _LOGE("Failed to open package file (%s)\n", Fstrerror(fd));
ret = LIBRPM_ERROR;
goto err;
}
rc = rpmReadPackageFile(ts, fd, pkg_path, &hdr);
if (rc != RPMRC_OK) {
- _librpm_print(DEBUG_ERR, "Could not read package file\n");
+ _LOGE("Could not read package file\n");
ret = LIBRPM_ERROR;
goto err;
}
}
-long long _librpm_calculate_dir_size(char *dirname)
+long long _librpm_calculate_dir_size(const char *dirname)
{
long long total = 0;
long long ret = 0;
struct stat fileinfo;
char abs_filename[FILENAME_MAX] = { 0, };
if (dirname == NULL) {
- _librpm_print(DEBUG_ERR,
+ _LOGE(
"dirname is NULL");
return LIBRPM_ERROR;
}
}
(void)closedir(dp);
} else {
- _librpm_print(DEBUG_ERR,
+ _LOGE(
"Couldn't open the directory\n");
return -1;
}