CONFIGURE_FILE(mdparser_list.txt.in mdparser_list.txt @ONLY)
CONFIGURE_FILE(category_parser_list.txt.in category_parser_list.txt @ONLY)
CONFIGURE_FILE(tag_parser_list.txt.in tag_parser_list.txt @ONLY)
+CONFIGURE_FILE(pkg_db_version.txt.in pkg_db_version.txt @ONLY)
INSTALL(TARGETS pkgmgr-info DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-info.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mdparser_list.txt DESTINATION ${SYSCONFDIR}/package-manager/parserlib/metadata)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/category_parser_list.txt DESTINATION ${SYSCONFDIR}/package-manager/parserlib/category)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tag_parser_list.txt DESTINATION ${SYSCONFDIR}/package-manager/parserlib)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkg_db_version.txt DESTINATION ${SYSCONFDIR}/package-manager/)
%config %{_sysconfdir}/package-manager/parserlib/metadata/mdparser_list.txt
%config %{_sysconfdir}/package-manager/parserlib/category/category_parser_list.txt
%config %{_sysconfdir}/package-manager/parserlib/tag_parser_list.txt
+%config %{_sysconfdir}/package-manager/pkg_db_version.txt
%files parser-devel
%manifest %{name}.manifest
return tzplatform_mkpath(TZ_SYS_DB, ".pkgmgr_cert.db");
}
+#define DB_VERSION_PATH SYSCONFDIR "/package-manager/pkg_db_version.txt"
static int __set_db_version(sqlite3 *db)
{
- static const char query_raw[] = "PRAGMA user_version=";
- char query[BUFSIZE];
int ret;
+ FILE *fp = NULL;
+ char version[PKG_STRING_LEN_MAX] = { 0 };
+ char *query = NULL;
- snprintf(query, sizeof(query), "%s%d", query_raw, PKG_DB_VERSION);
+ fp = fopen(DB_VERSION_PATH, "r");
+ retvm_if(fp == NULL, -1, "Failed to open db version file");
+ if (fgets(version, sizeof(version), fp) == NULL) {
+ _LOGE("Failed to get version information");
+ fclose(fp);
+ return -1;
+ }
+ fclose(fp);
+
+ query = sqlite3_mprintf("PRAGMA user_version=%Q", version);
+ if (!query) {
+ _LOGE("Out of memory");
+ return -1;
+ }
ret = sqlite3_exec(db, query, NULL, NULL, NULL);
if (ret != SQLITE_OK) {
_LOGE("exec failed: %s", sqlite3_errmsg(db));
+ sqlite3_free(query);
return -1;
}
+ sqlite3_free(query);
return 0;
}
#ifndef __PKGMGR_PARSER_DB_QUERIES_H__
#define __PKGMGR_PARSER_DB_QUERIES_H__
-#define PKG_DB_VERSION 30001
-
#define QUERY_CREATE_TABLE_PACKAGE_INFO \
"CREATE TABLE IF NOT EXISTS package_info (\n" \
" package TEXT PRIMARY KEY NOT NULL,\n" \