Update source from tizen 2.3
[platform/core/base/rpm-installer.git] / backend-lib / src / librpminternals.c
index 1da7caf..c4ec86d 100755 (executable)
 #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;
@@ -151,34 +78,23 @@ int _librpm_get_installed_package_info(char *pkgid,
        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;
         }
@@ -213,10 +129,9 @@ 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;
@@ -227,7 +142,7 @@ int _librpm_get_package_header_info(char *pkg_path,
 
        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;
        }
@@ -243,7 +158,7 @@ int _librpm_get_package_header_info(char *pkg_path,
 
        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;
        }
@@ -274,7 +189,7 @@ 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;
@@ -285,7 +200,7 @@ long long _librpm_calculate_dir_size(char *dirname)
        struct stat fileinfo;
        char abs_filename[FILENAME_MAX] = { 0, };
        if (dirname == NULL) {
-               _librpm_print(DEBUG_ERR,
+               _LOGE(
                                "dirname is NULL");
                return LIBRPM_ERROR;
        }
@@ -323,7 +238,7 @@ long long _librpm_calculate_dir_size(char *dirname)
                }
                (void)closedir(dp);
        } else {
-               _librpm_print(DEBUG_ERR,
+               _LOGE(
                             "Couldn't open the directory\n");
                return -1;
        }