--- ./libdnf/transaction/Transformer.cpp_orig	2021-04-06 07:34:43 +0000
+++ ./libdnf/transaction/Transformer.cpp	2021-04-06 07:11:51 +0000
@@ -182,6 +182,7 @@
             tb.tid
     )**";
 
+#if 0
     const char *releasever_sql = R"**(
         SELECT DISTINCT
             trans_data_pkgs.tid as tid,
@@ -201,6 +202,7 @@
         std::string releaseVerStr = releasever_query.get< std::string >("releasever");
         releasever[releasever_query.get< int64_t >("tid")] = releaseVerStr;
     }
+#endif
 
     // iterate over history transactions
     SQLite3::Query query(*history.get(), trans_sql);
@@ -213,10 +215,12 @@
         trans->setRpmdbVersionEnd(query.get< std::string >("rpmdb_version_end"));
 
         // set release version if available
+        #if 0
         auto it = releasever.find(trans->getId());
         if (it != releasever.end()) {
             trans->setReleasever(it->second);
         }
+        #endif
 
         trans->setUserId(query.get< int >("user_id"));
         trans->setCmdline(query.get< std::string >("cmdline"));
@@ -459,7 +463,7 @@
 CompsGroupItemPtr
 Transformer::processGroup(SQLite3Ptr swdb, const char *groupId, struct json_object *group)
 {
-    struct json_object *value;
+    struct json_object *value, *pkg_list, *pkg_req;
 
     // create group
     auto compsGroup = std::make_shared< CompsGroupItem >(swdb);
@@ -475,11 +479,13 @@
     }
 
     // TODO parse pkg_types to CompsPackageType
-    if (json_object_object_get_ex(group, "full_list", &value)) {
-        int len = json_object_array_length(value);
-        for (int i = 0; i < len; ++i) {
-            const char *key = json_object_get_string(json_object_array_get_idx(value, i));
-            compsGroup->addPackage(key, true, CompsPackageType::MANDATORY);
+    if (json_object_object_get_ex(group, "packagelist", &pkg_list)) {
+        if (json_object_object_get_ex(pkg_list, "packagereq", &pkg_req)) {
+            int len = json_object_array_length(pkg_req);
+            for (int i = 0; i < len; ++i) {
+                const char *key = json_object_get_string(json_object_array_get_idx(pkg_req, i));
+                compsGroup->addPackage(key, true, CompsPackageType::MANDATORY);
+           }
         }
     }
 
@@ -556,16 +562,32 @@
     auto trans = swdb_private::Transaction(swdb);
 
     // load sequences
-    struct json_object *groups;
+    struct json_object *comps, *groups, *groups_obj, *group_name;
     struct json_object *envs;
+    int array_len = 0, i;
 
     // add groups
-    if (json_object_object_get_ex(root, "GROUPS", &groups)) {
-        json_object_object_foreach(groups, key, val) {
-            trans.addItem(processGroup (swdb, key, val),
-                          {}, // repoid
-                          TransactionItemAction::INSTALL,
-                          TransactionItemReason::USER);
+    // add groups
+    if (json_object_object_get_ex(root, "comps", &comps)) {
+        if (json_object_object_get_ex(comps, "group", &groups)) {
+            array_len = json_object_array_length(groups);
+            for (i = 0; i < array_len; i ++) {
+                groups_obj = json_object_array_get_idx(groups, i);
+                group_name = json_object_object_get(groups_obj, "id");
+                trans.addItem(processGroup (swdb, json_object_get_string(group_name), groups_obj),
+                                        {}, // repoid
+                                        TransactionItemAction::INSTALL,
+                                        TransactionItemReason::USER);
+            }
+            #if 0
+            json_object_object_foreach(groups, key, val) {
+                printf ("In group for each key:%s val:%s\n", key, val);
+                trans.addItem(processGroup (swdb, key, val),
+                              {}, // repoid
+                              TransactionItemAction::INSTALL,
+                              TransactionItemReason::USER);
+           }
+           #endif
         }
     }
 
