Blame SOURCES/0003-Revert-added-API-for-parsing-main-metadata-together-RhBug2062299.patch

a1f7ac
From 9f0762b90cc1d85900064c24fad8f7d5a8b73afe Mon Sep 17 00:00:00 2001
a1f7ac
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
a1f7ac
Date: Wed, 9 Mar 2022 15:23:29 +0100
a1f7ac
Subject: [PATCH 1/5] Revert "Add xml_parse_main_metadata_together to python
a1f7ac
 parser examples"
a1f7ac
a1f7ac
This reverts commit 0633e31e491179f0153ef8267874812b4691957b.
a1f7ac
---
a1f7ac
 examples/python/repodata_parsing.py | 46 -----------------------------
a1f7ac
 1 file changed, 46 deletions(-)
a1f7ac
a1f7ac
diff --git a/examples/python/repodata_parsing.py b/examples/python/repodata_parsing.py
a1f7ac
index 4519518..ea517a1 100755
a1f7ac
--- a/examples/python/repodata_parsing.py
a1f7ac
+++ b/examples/python/repodata_parsing.py
a1f7ac
@@ -211,48 +211,6 @@ def second_method():
a1f7ac
     for pkg in packages.values():
a1f7ac
         print_package_info(pkg)
a1f7ac
 
a1f7ac
-def third_method():
a1f7ac
-    """Parsing main metadata types (primary, filelists, other) at the same time.
a1f7ac
-    This approach significantly reduces memory footprint because we don't need
a1f7ac
-    to keep all the packages in memory, user can handle them one by one.
a1f7ac
-
a1f7ac
-    The API reflects xml_parse_primary/filelists/other except that it handles
a1f7ac
-    all of them at the same time.
a1f7ac
-
a1f7ac
-    """
a1f7ac
-    def warningcb(warning_type, message):
a1f7ac
-        print("PARSER WARNING: %s" % message)
a1f7ac
-        return True
a1f7ac
-
a1f7ac
-    repomd = cr.Repomd()
a1f7ac
-    cr.xml_parse_repomd(os.path.join(REPO_PATH, "repodata/repomd.xml"), repomd, warningcb)
a1f7ac
-
a1f7ac
-    primary_xml_path   = None
a1f7ac
-    filelists_xml_path = None
a1f7ac
-    other_xml_path     = None
a1f7ac
-    for record in repomd.records:
a1f7ac
-        if record.type == "primary":
a1f7ac
-            primary_xml_path = os.path.join(REPO_PATH, record.location_href)
a1f7ac
-        elif record.type == "filelists":
a1f7ac
-            filelists_xml_path = os.path.join(REPO_PATH, record.location_href)
a1f7ac
-        elif record.type == "other":
a1f7ac
-            other_xml_path = os.path.join(REPO_PATH, record.location_href)
a1f7ac
-
a1f7ac
-    #
a1f7ac
-    # Main XML metadata parsing (primary, filelists, other)
a1f7ac
-    #
a1f7ac
-
a1f7ac
-    def pkgcb(pkg):
a1f7ac
-        # Called when whole package entry from all 3 metadata xml files is parsed
a1f7ac
-        print_package_info(pkg)
a1f7ac
-
a1f7ac
-    cr.xml_parse_main_metadata_together(primary_xml_path,
a1f7ac
-                                        filelists_xml_path,
a1f7ac
-                                        other_xml_path,
a1f7ac
-                                        None,
a1f7ac
-                                        pkgcb,
a1f7ac
-                                        warningcb,
a1f7ac
-                                        False)
a1f7ac
 
a1f7ac
 if __name__ == "__main__":
a1f7ac
     print('"All in one shot" method:')
a1f7ac
@@ -263,7 +221,3 @@ if __name__ == "__main__":
a1f7ac
     print("Callback based method:")
a1f7ac
     second_method()
a1f7ac
 
a1f7ac
-    print()
a1f7ac
-
a1f7ac
-    print("Streaming callback based method:")
a1f7ac
-    third_method()
a1f7ac
-- 
a1f7ac
2.35.1
a1f7ac
a1f7ac
a1f7ac
From 01493aea9bc53e46a0e1020656e60ecb6c543bca Mon Sep 17 00:00:00 2001
a1f7ac
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
a1f7ac
Date: Wed, 9 Mar 2022 15:23:40 +0100
a1f7ac
Subject: [PATCH 2/5] Revert "Add python tests for parsing metadata together"
a1f7ac
a1f7ac
This reverts commit 0c050128f7e24222011cdfcc67ba58da744affa9.
a1f7ac
---
a1f7ac
 tests/python/tests/test_xml_parser.py | 206 --------------------------
a1f7ac
 1 file changed, 206 deletions(-)
a1f7ac
a1f7ac
diff --git a/tests/python/tests/test_xml_parser.py b/tests/python/tests/test_xml_parser.py
a1f7ac
index ed13cac..ddc089f 100644
a1f7ac
--- a/tests/python/tests/test_xml_parser.py
a1f7ac
+++ b/tests/python/tests/test_xml_parser.py
a1f7ac
@@ -950,209 +950,3 @@ class TestCaseXmlParserRepomd(unittest.TestCase):
a1f7ac
         self.assertEqual(repomd.content_tags, [])
a1f7ac
         self.assertEqual(len(repomd.records), 3)
a1f7ac
 
a1f7ac
-class TestCaseXmlParserMainMetadataTogether(unittest.TestCase):
a1f7ac
-    def test_xml_parser_main_metadata_together_repo01(self):
a1f7ac
-        userdata = {
a1f7ac
-                "pkgs": [],
a1f7ac
-                "pkgcb_calls": 0,
a1f7ac
-                "warnings": []
a1f7ac
-            }
a1f7ac
-
a1f7ac
-        def newpkgcb(pkgId, name, arch):
a1f7ac
-            pkg = cr.Package()
a1f7ac
-            userdata["pkgs"].append(pkg)
a1f7ac
-            return pkg
a1f7ac
-
a1f7ac
-        def pkgcb(pkg):
a1f7ac
-            userdata["pkgcb_calls"] += 1
a1f7ac
-
a1f7ac
-        def warningcb(warn_type, msg):
a1f7ac
-            userdata["warnings"].append((warn_type, msg))
a1f7ac
-
a1f7ac
-        cr.xml_parse_main_metadata_together(primary=REPO_01_PRIXML, filelists=REPO_01_FILXML, other=REPO_01_OTHXML,
a1f7ac
-                                            newpkgcb=newpkgcb, pkgcb=pkgcb, warningcb=warningcb)
a1f7ac
-
a1f7ac
-        self.assertEqual([pkg.name for pkg in userdata["pkgs"]], ['super_kernel'])
a1f7ac
-        self.assertEqual(userdata["pkgcb_calls"], 1)
a1f7ac
-        self.assertEqual(userdata["warnings"], [])
a1f7ac
-
a1f7ac
-        pkg = userdata["pkgs"][0]
a1f7ac
-        self.assertEqual(pkg.pkgId, "152824bff2aa6d54f429d43e87a3ff3a0286505c6d93ec87692b5e3a9e3b97bf")
a1f7ac
-        self.assertEqual(pkg.name, "super_kernel")
a1f7ac
-        self.assertEqual(pkg.arch, "x86_64")
a1f7ac
-        self.assertEqual(pkg.version, "6.0.1")
a1f7ac
-        self.assertEqual(pkg.epoch, "0")
a1f7ac
-        self.assertEqual(pkg.release, "2")
a1f7ac
-        self.assertEqual(pkg.summary, "Test package")
a1f7ac
-        self.assertEqual(pkg.description, "This package has provides, requires, obsoletes, conflicts options.")
a1f7ac
-        self.assertEqual(pkg.url, "http://so_super_kernel.com/it_is_awesome/yep_it_really_is")
a1f7ac
-        self.assertEqual(pkg.time_file, 1334667003)
a1f7ac
-        self.assertEqual(pkg.time_build, 1334667003)
a1f7ac
-        self.assertEqual(pkg.rpm_license, "LGPLv2")
a1f7ac
-        self.assertEqual(pkg.rpm_vendor, None)
a1f7ac
-        self.assertEqual(pkg.rpm_group, "Applications/System")
a1f7ac
-        self.assertEqual(pkg.rpm_buildhost, "localhost.localdomain")
a1f7ac
-        self.assertEqual(pkg.rpm_sourcerpm, "super_kernel-6.0.1-2.src.rpm")
a1f7ac
-        self.assertEqual(pkg.rpm_header_start, 280)
a1f7ac
-        self.assertEqual(pkg.rpm_header_end, 2637)
a1f7ac
-        self.assertEqual(pkg.rpm_packager, None)
a1f7ac
-        self.assertEqual(pkg.size_package, 2845)
a1f7ac
-        self.assertEqual(pkg.size_installed, 0)
a1f7ac
-        self.assertEqual(pkg.size_archive, 404)
a1f7ac
-        self.assertEqual(pkg.location_href, "super_kernel-6.0.1-2.x86_64.rpm")
a1f7ac
-        self.assertEqual(pkg.location_base, None)
a1f7ac
-        self.assertEqual(pkg.checksum_type, "sha256")
a1f7ac
-        self.assertEqual(pkg.requires,
a1f7ac
-                [('bzip2', 'GE', '0', '1.0.0', None, True),
a1f7ac
-                 ('expat', None, None, None, None, True),
a1f7ac
-                 ('glib', 'GE', '0', '2.26.0', None, False),
a1f7ac
-                 ('zlib', None, None, None, None, False)])
a1f7ac
-        self.assertEqual(pkg.provides,
a1f7ac
-                [('not_so_super_kernel', 'LT', '0', '5.8.0', None, False),
a1f7ac
-                 ('super_kernel', 'EQ', '0', '6.0.0', None, False),
a1f7ac
-                 ('super_kernel', 'EQ', '0', '6.0.1', '2', False),
a1f7ac
-                 ('super_kernel(x86-64)', 'EQ', '0', '6.0.1', '2', False)])
a1f7ac
-        self.assertEqual(pkg.conflicts,
a1f7ac
-                [('kernel', None, None, None, None, False),
a1f7ac
-                 ('super_kernel', 'EQ', '0', '5.0.0', None, False),
a1f7ac
-                 ('super_kernel', 'LT', '0', '4.0.0', None, False)])
a1f7ac
-        self.assertEqual(pkg.obsoletes,
a1f7ac
-                [('kernel', None, None, None, None, False),
a1f7ac
-                 ('super_kernel', 'EQ', '0', '5.9.0', None, False)])
a1f7ac
-        self.assertEqual(pkg.files,
a1f7ac
-                [(None, '/usr/bin/', 'super_kernel'),
a1f7ac
-                 (None, '/usr/share/man/', 'super_kernel.8.gz')])
a1f7ac
-        self.assertEqual(pkg.changelogs,
a1f7ac
-                [('Tomas Mlcoch <tmlcoch@redhat.com> - 6.0.1-1',
a1f7ac
-                   1334664000,
a1f7ac
-                  '- First release'),
a1f7ac
-                 ('Tomas Mlcoch <tmlcoch@redhat.com> - 6.0.1-2',
a1f7ac
-                   1334664001,
a1f7ac
-                   '- Second release')])
a1f7ac
-
a1f7ac
-    def test_xml_parser_main_metadata_together_repo02(self):
a1f7ac
-
a1f7ac
-        userdata = {
a1f7ac
-                "pkgs": [],
a1f7ac
-                "pkgcb_calls": 0,
a1f7ac
-                "warnings": []
a1f7ac
-            }
a1f7ac
-
a1f7ac
-        def newpkgcb(pkgId, name, arch):
a1f7ac
-            pkg = cr.Package()
a1f7ac
-            userdata["pkgs"].append(pkg)
a1f7ac
-            return pkg
a1f7ac
-
a1f7ac
-        def pkgcb(pkg):
a1f7ac
-            userdata["pkgcb_calls"] += 1
a1f7ac
-
a1f7ac
-        def warningcb(warn_type, msg):
a1f7ac
-            userdata["warnings"].append((warn_type, msg))
a1f7ac
-
a1f7ac
-        cr.xml_parse_main_metadata_together(REPO_02_PRIXML, REPO_02_FILXML, REPO_02_OTHXML, newpkgcb, pkgcb, warningcb,
a1f7ac
-                                            allow_out_of_order=True)
a1f7ac
-
a1f7ac
-        self.assertEqual([pkg.name for pkg in userdata["pkgs"]],
a1f7ac
-            ['fake_bash', 'super_kernel'])
a1f7ac
-        self.assertEqual(userdata["pkgcb_calls"], 2)
a1f7ac
-        self.assertEqual(userdata["warnings"], [])
a1f7ac
-
a1f7ac
-    def test_xml_parser_main_metadata_together_repo02_only_pkgcb(self):
a1f7ac
-
a1f7ac
-        pkgs = []
a1f7ac
-
a1f7ac
-        def pkgcb(pkg):
a1f7ac
-            pkgs.append(pkg)
a1f7ac
-
a1f7ac
-        cr.xml_parse_main_metadata_together(REPO_02_PRIXML, REPO_02_FILXML, REPO_02_OTHXML,
a1f7ac
-                                            None, pkgcb, None)
a1f7ac
-
a1f7ac
-        self.assertEqual([pkg.name for pkg in pkgs],
a1f7ac
-            ['fake_bash', 'super_kernel'])
a1f7ac
-
a1f7ac
-    def test_xml_parser_main_metadata_together_repo02_no_cbs(self):
a1f7ac
-        self.assertRaises(ValueError,
a1f7ac
-                          cr.xml_parse_main_metadata_together,
a1f7ac
-                          REPO_02_PRIXML, REPO_02_FILXML, REPO_02_OTHXML,
a1f7ac
-                          None, None, None)
a1f7ac
-
a1f7ac
-    def test_xml_parser_main_metadata_together_warnings(self):
a1f7ac
-        userdata = {
a1f7ac
-                "pkgs": [],
a1f7ac
-                "warnings": []
a1f7ac
-            }
a1f7ac
-
a1f7ac
-        def newpkgcb(pkgId, name, arch):
a1f7ac
-            pkg = cr.Package()
a1f7ac
-            userdata["pkgs"].append(pkg)
a1f7ac
-            return pkg
a1f7ac
-
a1f7ac
-        def warningcb(warn_type, msg):
a1f7ac
-            userdata["warnings"].append((warn_type, msg))
a1f7ac
-
a1f7ac
-        cr.xml_parse_main_metadata_together(PRIMARY_MULTI_WARN_00_PATH,
a1f7ac
-                                            FILELISTS_MULTI_WARN_00_PATH,
a1f7ac
-                                            OTHER_MULTI_WARN_00_PATH,
a1f7ac
-                                            newpkgcb, None, warningcb)
a1f7ac
-
a1f7ac
-        self.assertEqual([pkg.name for pkg in userdata["pkgs"]],
a1f7ac
-            ['fake_bash', 'super_kernel'])
a1f7ac
-        self.assertEqual(userdata["warnings"],
a1f7ac
-            [(0, 'Unknown element "fooelement"'),
a1f7ac
-             (1, 'Missing attribute "type" of a package element'),
a1f7ac
-             (0, 'Unknown element "foo"'),
a1f7ac
-             (3, 'Conversion of "foobar" to integer failed'),
a1f7ac
-             (0, 'Unknown element "bar"'),
a1f7ac
-             (1, 'Missing attribute "arch" of a package element'),
a1f7ac
-             (2, 'Unknown file type "xxx"'),
a1f7ac
-             (0, 'Unknown element "bar"'),
a1f7ac
-             (1, 'Missing attribute "name" of a package element'),
a1f7ac
-             (0, 'Unknown element "bar"'),
a1f7ac
-             (3, 'Conversion of "xxx" to integer failed')])
a1f7ac
-
a1f7ac
-
a1f7ac
-    def test_xml_parser_main_metadata_together_error(self):
a1f7ac
-        userdata = { "pkgs": [] }
a1f7ac
-
a1f7ac
-        def newpkgcb(pkgId, name, arch):
a1f7ac
-            pkg = cr.Package()
a1f7ac
-            userdata["pkgs"].append(pkg)
a1f7ac
-            return pkg
a1f7ac
-
a1f7ac
-        self.assertRaises(cr.CreaterepoCError, cr.xml_parse_main_metadata_together,
a1f7ac
-                          PRIMARY_ERROR_00_PATH, FILELISTS_ERROR_00_PATH,
a1f7ac
-                          OTHER_ERROR_00_PATH, newpkgcb, None, None)
a1f7ac
-
a1f7ac
-        # unlike parsing just primary, filelists or other separately when parsing together primary is parsed first fully
a1f7ac
-        # before newpkgcb is called so the error is detected before any user package is created
a1f7ac
-        self.assertEqual(len(userdata["pkgs"]), 0)
a1f7ac
-
a1f7ac
-    def test_xml_parser_main_metadata_together_newpkgcb_abort(self):
a1f7ac
-        def newpkgcb(pkgId, name, arch):
a1f7ac
-            raise Error("Foo error")
a1f7ac
-        self.assertRaises(cr.CreaterepoCError,
a1f7ac
-                          cr.xml_parse_main_metadata_together,
a1f7ac
-                          REPO_02_PRIXML, REPO_02_FILXML, REPO_02_OTHXML,
a1f7ac
-                          newpkgcb, None, None)
a1f7ac
-
a1f7ac
-    def test_xml_parser_main_metadata_together_pkgcb_abort(self):
a1f7ac
-       def newpkgcb(pkgId, name, arch):
a1f7ac
-           return cr.Package()
a1f7ac
-       def pkgcb(pkg):
a1f7ac
-           raise Error("Foo error")
a1f7ac
-       self.assertRaises(cr.CreaterepoCError,
a1f7ac
-                         cr.xml_parse_main_metadata_together,
a1f7ac
-                         REPO_02_PRIXML, REPO_02_FILXML, REPO_02_OTHXML,
a1f7ac
-                         newpkgcb, pkgcb, None)
a1f7ac
-
a1f7ac
-    def test_xml_parser_main_metadata_together_warningcb_abort(self):
a1f7ac
-        def newpkgcb(pkgId, name, arch):
a1f7ac
-            return cr.Package()
a1f7ac
-        def warningcb(type, msg):
a1f7ac
-            raise Error("Foo error")
a1f7ac
-        self.assertRaises(cr.CreaterepoCError,
a1f7ac
-                          cr.xml_parse_main_metadata_together,
a1f7ac
-                          PRIMARY_MULTI_WARN_00_PATH,
a1f7ac
-                          FILELISTS_MULTI_WARN_00_PATH,
a1f7ac
-                          OTHER_MULTI_WARN_00_PATH,
a1f7ac
-                          newpkgcb, None, warningcb)
a1f7ac
-- 
a1f7ac
2.35.1
a1f7ac
a1f7ac
a1f7ac
From 9210f5d725a71f130bf5fb880f386c2e8e5f66fa Mon Sep 17 00:00:00 2001
a1f7ac
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
a1f7ac
Date: Wed, 9 Mar 2022 15:23:47 +0100
a1f7ac
Subject: [PATCH 3/5] Revert "Wrap c api to python for parsing metadata
a1f7ac
 together"
a1f7ac
a1f7ac
This reverts commit 670006b9f37d8298fe2ec1d6cfc5cdf175a3128b.
a1f7ac
---
a1f7ac
 src/python/createrepo_cmodule.c |   2 -
a1f7ac
 src/python/xml_parser-py.c      | 156 +++++++-------------------------
a1f7ac
 src/python/xml_parser-py.h      |   8 --
a1f7ac
 3 files changed, 32 insertions(+), 134 deletions(-)
a1f7ac
a1f7ac
diff --git a/src/python/createrepo_cmodule.c b/src/python/createrepo_cmodule.c
a1f7ac
index c0b9200..6937246 100644
a1f7ac
--- a/src/python/createrepo_cmodule.c
a1f7ac
+++ b/src/python/createrepo_cmodule.c
a1f7ac
@@ -79,8 +79,6 @@ static struct PyMethodDef createrepo_c_methods[] = {
a1f7ac
         METH_VARARGS, xml_parse_repomd__doc__},
a1f7ac
     {"xml_parse_updateinfo",    (PyCFunction)py_xml_parse_updateinfo,
a1f7ac
         METH_VARARGS, xml_parse_updateinfo__doc__},
a1f7ac
-    {"xml_parse_main_metadata_together",(PyCFunctionWithKeywords)py_xml_parse_main_metadata_together,
a1f7ac
-        METH_VARARGS | METH_KEYWORDS, xml_parse_main_metadata_together__doc__},
a1f7ac
     {"checksum_name_str",       (PyCFunction)py_checksum_name_str,
a1f7ac
         METH_VARARGS, checksum_name_str__doc__},
a1f7ac
     {"checksum_type",           (PyCFunction)py_checksum_type,
a1f7ac
diff --git a/src/python/xml_parser-py.c b/src/python/xml_parser-py.c
a1f7ac
index a1f92f8..0879128 100644
a1f7ac
--- a/src/python/xml_parser-py.c
a1f7ac
+++ b/src/python/xml_parser-py.c
a1f7ac
@@ -34,7 +34,7 @@ typedef struct {
a1f7ac
     PyObject *py_newpkgcb;
a1f7ac
     PyObject *py_pkgcb;
a1f7ac
     PyObject *py_warningcb;
a1f7ac
-    PyObject *py_pkgs;       /*!< Current processed package */
a1f7ac
+    PyObject *py_pkg;       /*!< Current processed package */
a1f7ac
 } CbData;
a1f7ac
 
a1f7ac
 static int
a1f7ac
@@ -48,6 +48,12 @@ c_newpkgcb(cr_Package **pkg,
a1f7ac
     PyObject *arglist, *result;
a1f7ac
     CbData *data = cbdata;
a1f7ac
 
a1f7ac
+    if (data->py_pkg) {
a1f7ac
+        // Decref ref count on previous processed package
a1f7ac
+        Py_DECREF(data->py_pkg);
a1f7ac
+        data->py_pkg = NULL;
a1f7ac
+    }
a1f7ac
+
a1f7ac
     arglist = Py_BuildValue("(sss)", pkgId, name, arch);
a1f7ac
     result = PyObject_CallObject(data->py_newpkgcb, arglist);
a1f7ac
     Py_DECREF(arglist);
a1f7ac
@@ -67,18 +73,13 @@ c_newpkgcb(cr_Package **pkg,
a1f7ac
 
a1f7ac
     if (result == Py_None) {
a1f7ac
         *pkg = NULL;
a1f7ac
+        data->py_pkg = NULL;
a1f7ac
+        Py_DECREF(result);
a1f7ac
     } else {
a1f7ac
         *pkg = Package_FromPyObject(result);
a1f7ac
-        if (data->py_pkgcb != Py_None) {
a1f7ac
-            // Store reference to the python pkg (result) only if we will need it later
a1f7ac
-            PyObject *keyFromPtr = PyLong_FromVoidPtr(*pkg);
a1f7ac
-            PyDict_SetItem(data->py_pkgs, keyFromPtr, result);
a1f7ac
-            Py_DECREF(keyFromPtr);
a1f7ac
-        }
a1f7ac
+        data->py_pkg = result; // Store reference to current package
a1f7ac
     }
a1f7ac
 
a1f7ac
-    Py_DECREF(result);
a1f7ac
-
a1f7ac
     return CR_CB_RET_OK;
a1f7ac
 }
a1f7ac
 
a1f7ac
@@ -90,23 +91,16 @@ c_pkgcb(cr_Package *pkg,
a1f7ac
     PyObject *arglist, *result, *py_pkg;
a1f7ac
     CbData *data = cbdata;
a1f7ac
 
a1f7ac
-    PyObject *keyFromPtr = PyLong_FromVoidPtr(pkg);
a1f7ac
-    py_pkg = PyDict_GetItem(data->py_pkgs, keyFromPtr);
a1f7ac
-    if (py_pkg) {
a1f7ac
-        arglist = Py_BuildValue("(O)", py_pkg);
a1f7ac
-        result = PyObject_CallObject(data->py_pkgcb, arglist);
a1f7ac
-        PyDict_DelItem(data->py_pkgs, keyFromPtr);
a1f7ac
-    } else {
a1f7ac
-        // The package was not provided by user in c_newpkgcb,
a1f7ac
-        // create new python package object
a1f7ac
-        PyObject *new_py_pkg = Object_FromPackage(pkg, 1);
a1f7ac
-        arglist = Py_BuildValue("(O)", new_py_pkg);
a1f7ac
-        result = PyObject_CallObject(data->py_pkgcb, arglist);
a1f7ac
-        Py_DECREF(new_py_pkg);
a1f7ac
-    }
a1f7ac
+    if (data->py_pkg)
a1f7ac
+        py_pkg = data->py_pkg;
a1f7ac
+    else
a1f7ac
+        py_pkg = Object_FromPackage(pkg, 1);
a1f7ac
 
a1f7ac
+    arglist = Py_BuildValue("(O)", py_pkg);
a1f7ac
+    result = PyObject_CallObject(data->py_pkgcb, arglist);
a1f7ac
     Py_DECREF(arglist);
a1f7ac
-    Py_DECREF(keyFromPtr);
a1f7ac
+    Py_DECREF(py_pkg);
a1f7ac
+    data->py_pkg = NULL;
a1f7ac
 
a1f7ac
     if (result == NULL) {
a1f7ac
         // Exception raised
a1f7ac
@@ -197,7 +191,7 @@ py_xml_parse_primary(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     cbdata.py_newpkgcb  = py_newpkgcb;
a1f7ac
     cbdata.py_pkgcb     = py_pkgcb;
a1f7ac
     cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = PyDict_New();
a1f7ac
+    cbdata.py_pkg       = NULL;
a1f7ac
 
a1f7ac
     cr_xml_parse_primary(filename,
a1f7ac
                          ptr_c_newpkgcb,
a1f7ac
@@ -212,8 +206,7 @@ py_xml_parse_primary(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     Py_XDECREF(py_newpkgcb);
a1f7ac
     Py_XDECREF(py_pkgcb);
a1f7ac
     Py_XDECREF(py_warningcb);
a1f7ac
-
a1f7ac
-    Py_XDECREF(cbdata.py_pkgs);
a1f7ac
+    Py_XDECREF(cbdata.py_pkg);
a1f7ac
 
a1f7ac
     if (tmp_err) {
a1f7ac
         nice_exception(&tmp_err, NULL);
a1f7ac
@@ -279,7 +272,7 @@ py_xml_parse_primary_snippet(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     cbdata.py_newpkgcb  = py_newpkgcb;
a1f7ac
     cbdata.py_pkgcb     = py_pkgcb;
a1f7ac
     cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = PyDict_New();
a1f7ac
+    cbdata.py_pkg       = NULL;
a1f7ac
 
a1f7ac
     cr_xml_parse_primary_snippet(target, ptr_c_newpkgcb, &cbdata, ptr_c_pkgcb, &cbdata,
a1f7ac
                                  ptr_c_warningcb, &cbdata, do_files, &tmp_err);
a1f7ac
@@ -287,7 +280,7 @@ py_xml_parse_primary_snippet(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     Py_XDECREF(py_newpkgcb);
a1f7ac
     Py_XDECREF(py_pkgcb);
a1f7ac
     Py_XDECREF(py_warningcb);
a1f7ac
-    Py_XDECREF(cbdata.py_pkgs);
a1f7ac
+    Py_XDECREF(cbdata.py_pkg);
a1f7ac
 
a1f7ac
     if (tmp_err) {
a1f7ac
         nice_exception(&tmp_err, NULL);
a1f7ac
@@ -351,7 +344,7 @@ py_xml_parse_filelists(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     cbdata.py_newpkgcb  = py_newpkgcb;
a1f7ac
     cbdata.py_pkgcb     = py_pkgcb;
a1f7ac
     cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = PyDict_New();
a1f7ac
+    cbdata.py_pkg       = NULL;
a1f7ac
 
a1f7ac
     cr_xml_parse_filelists(filename,
a1f7ac
                            ptr_c_newpkgcb,
a1f7ac
@@ -365,7 +358,7 @@ py_xml_parse_filelists(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     Py_XDECREF(py_newpkgcb);
a1f7ac
     Py_XDECREF(py_pkgcb);
a1f7ac
     Py_XDECREF(py_warningcb);
a1f7ac
-    Py_XDECREF(cbdata.py_pkgs);
a1f7ac
+    Py_XDECREF(cbdata.py_pkg);
a1f7ac
 
a1f7ac
     if (tmp_err) {
a1f7ac
         nice_exception(&tmp_err, NULL);
a1f7ac
@@ -429,7 +422,7 @@ py_xml_parse_filelists_snippet(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     cbdata.py_newpkgcb  = py_newpkgcb;
a1f7ac
     cbdata.py_pkgcb     = py_pkgcb;
a1f7ac
     cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = PyDict_New();
a1f7ac
+    cbdata.py_pkg       = NULL;
a1f7ac
 
a1f7ac
     cr_xml_parse_filelists_snippet(target, ptr_c_newpkgcb, &cbdata, ptr_c_pkgcb,
a1f7ac
                                    &cbdata, ptr_c_warningcb, &cbdata, &tmp_err);
a1f7ac
@@ -437,7 +430,7 @@ py_xml_parse_filelists_snippet(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     Py_XDECREF(py_newpkgcb);
a1f7ac
     Py_XDECREF(py_pkgcb);
a1f7ac
     Py_XDECREF(py_warningcb);
a1f7ac
-    Py_XDECREF(cbdata.py_pkgs);
a1f7ac
+    Py_XDECREF(cbdata.py_pkg);
a1f7ac
 
a1f7ac
     if (tmp_err) {
a1f7ac
         nice_exception(&tmp_err, NULL);
a1f7ac
@@ -501,7 +494,7 @@ py_xml_parse_other(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     cbdata.py_newpkgcb  = py_newpkgcb;
a1f7ac
     cbdata.py_pkgcb     = py_pkgcb;
a1f7ac
     cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = PyDict_New();
a1f7ac
+    cbdata.py_pkg       = NULL;
a1f7ac
 
a1f7ac
     cr_xml_parse_other(filename,
a1f7ac
                        ptr_c_newpkgcb,
a1f7ac
@@ -515,7 +508,7 @@ py_xml_parse_other(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     Py_XDECREF(py_newpkgcb);
a1f7ac
     Py_XDECREF(py_pkgcb);
a1f7ac
     Py_XDECREF(py_warningcb);
a1f7ac
-    Py_XDECREF(cbdata.py_pkgs);
a1f7ac
+    Py_XDECREF(cbdata.py_pkg);
a1f7ac
 
a1f7ac
     if (tmp_err) {
a1f7ac
         nice_exception(&tmp_err, NULL);
a1f7ac
@@ -579,7 +572,7 @@ py_xml_parse_other_snippet(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     cbdata.py_newpkgcb  = py_newpkgcb;
a1f7ac
     cbdata.py_pkgcb     = py_pkgcb;
a1f7ac
     cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = PyDict_New();
a1f7ac
+    cbdata.py_pkg       = NULL;
a1f7ac
 
a1f7ac
     cr_xml_parse_other_snippet(target, ptr_c_newpkgcb, &cbdata, ptr_c_pkgcb, &cbdata,
a1f7ac
                                ptr_c_warningcb, &cbdata, &tmp_err);
a1f7ac
@@ -587,7 +580,7 @@ py_xml_parse_other_snippet(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     Py_XDECREF(py_newpkgcb);
a1f7ac
     Py_XDECREF(py_pkgcb);
a1f7ac
     Py_XDECREF(py_warningcb);
a1f7ac
-    Py_XDECREF(cbdata.py_pkgs);
a1f7ac
+    Py_XDECREF(cbdata.py_pkg);
a1f7ac
 
a1f7ac
     if (tmp_err) {
a1f7ac
         nice_exception(&tmp_err, NULL);
a1f7ac
@@ -630,7 +623,7 @@ py_xml_parse_repomd(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     cbdata.py_newpkgcb  = NULL;
a1f7ac
     cbdata.py_pkgcb     = NULL;
a1f7ac
     cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = NULL;
a1f7ac
+    cbdata.py_pkg       = NULL;
a1f7ac
 
a1f7ac
     repomd = Repomd_FromPyObject(py_repomd);
a1f7ac
 
a1f7ac
@@ -684,7 +677,7 @@ py_xml_parse_updateinfo(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
     cbdata.py_newpkgcb  = NULL;
a1f7ac
     cbdata.py_pkgcb     = NULL;
a1f7ac
     cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = NULL;
a1f7ac
+    cbdata.py_pkg       = NULL;
a1f7ac
 
a1f7ac
     updateinfo = UpdateInfo_FromPyObject(py_updateinfo);
a1f7ac
 
a1f7ac
@@ -704,88 +697,3 @@ py_xml_parse_updateinfo(G_GNUC_UNUSED PyObject *self, PyObject *args)
a1f7ac
 
a1f7ac
     Py_RETURN_NONE;
a1f7ac
 }
a1f7ac
-
a1f7ac
-
a1f7ac
-PyObject *
a1f7ac
-py_xml_parse_main_metadata_together(G_GNUC_UNUSED PyObject *self, PyObject *args, PyObject *kwargs)
a1f7ac
-{
a1f7ac
-    char *primary_filename;
a1f7ac
-    char *filelists_filename;
a1f7ac
-    char *other_filename;
a1f7ac
-    int allow_out_of_order = 1;
a1f7ac
-    PyObject *py_newpkgcb, *py_pkgcb, *py_warningcb;
a1f7ac
-    CbData cbdata;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    static char *kwlist[] = { "primary", "filelists", "other", "newpkgcb", "pkgcb",
a1f7ac
-                              "warningcb", "allow_out_of_order", NULL };
a1f7ac
-
a1f7ac
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "sssOOO|p:py_xml_parse_main_metadata_together", kwlist,
a1f7ac
-                                     &primary_filename, &filelists_filename, &other_filename, &py_newpkgcb,
a1f7ac
-                                     &py_pkgcb, &py_warningcb, &allow_out_of_order)) {
a1f7ac
-        return NULL;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (!PyCallable_Check(py_newpkgcb) && py_newpkgcb != Py_None) {
a1f7ac
-        PyErr_SetString(PyExc_TypeError, "newpkgcb must be callable or None");
a1f7ac
-        return NULL;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (!PyCallable_Check(py_pkgcb) && py_pkgcb != Py_None) {
a1f7ac
-        PyErr_SetString(PyExc_TypeError, "pkgcb must be callable or None");
a1f7ac
-        return NULL;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (!PyCallable_Check(py_warningcb) && py_warningcb != Py_None) {
a1f7ac
-        PyErr_SetString(PyExc_TypeError, "warningcb must be callable or None");
a1f7ac
-        return NULL;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (py_newpkgcb == Py_None && py_pkgcb == Py_None) {
a1f7ac
-        PyErr_SetString(PyExc_ValueError, "both pkgcb and newpkgcb cannot be None");
a1f7ac
-        return NULL;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    Py_XINCREF(py_newpkgcb);
a1f7ac
-    Py_XINCREF(py_pkgcb);
a1f7ac
-    Py_XINCREF(py_warningcb);
a1f7ac
-
a1f7ac
-    cr_XmlParserNewPkgCb    ptr_c_newpkgcb  = NULL;
a1f7ac
-    cr_XmlParserPkgCb       ptr_c_pkgcb     = NULL;
a1f7ac
-    cr_XmlParserWarningCb   ptr_c_warningcb = NULL;
a1f7ac
-
a1f7ac
-    if (py_newpkgcb != Py_None)
a1f7ac
-        ptr_c_newpkgcb = c_newpkgcb;
a1f7ac
-    if (py_pkgcb != Py_None)
a1f7ac
-        ptr_c_pkgcb = c_pkgcb;
a1f7ac
-    if (py_warningcb != Py_None)
a1f7ac
-        ptr_c_warningcb = c_warningcb;
a1f7ac
-
a1f7ac
-    cbdata.py_newpkgcb  = py_newpkgcb;
a1f7ac
-    cbdata.py_pkgcb     = py_pkgcb;
a1f7ac
-    cbdata.py_warningcb = py_warningcb;
a1f7ac
-    cbdata.py_pkgs      = PyDict_New();
a1f7ac
-
a1f7ac
-    cr_xml_parse_main_metadata_together(primary_filename,
a1f7ac
-                                        filelists_filename,
a1f7ac
-                                        other_filename,
a1f7ac
-                                        ptr_c_newpkgcb,
a1f7ac
-                                        &cbdata,
a1f7ac
-                                        ptr_c_pkgcb,
a1f7ac
-                                        &cbdata,
a1f7ac
-                                        ptr_c_warningcb,
a1f7ac
-                                        &cbdata,
a1f7ac
-                                        allow_out_of_order,
a1f7ac
-                                        &tmp_err);
a1f7ac
-
a1f7ac
-    Py_XDECREF(py_newpkgcb);
a1f7ac
-    Py_XDECREF(py_pkgcb);
a1f7ac
-    Py_XDECREF(py_warningcb);
a1f7ac
-    Py_XDECREF(cbdata.py_pkgs);
a1f7ac
-
a1f7ac
-    if (tmp_err) {
a1f7ac
-        nice_exception(&tmp_err, NULL);
a1f7ac
-        return NULL;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    Py_RETURN_NONE;
a1f7ac
-}
a1f7ac
diff --git a/src/python/xml_parser-py.h b/src/python/xml_parser-py.h
a1f7ac
index 3260005..e5eea9f 100644
a1f7ac
--- a/src/python/xml_parser-py.h
a1f7ac
+++ b/src/python/xml_parser-py.h
a1f7ac
@@ -64,12 +64,4 @@ PyDoc_STRVAR(xml_parse_updateinfo__doc__,
a1f7ac
 
a1f7ac
 PyObject *py_xml_parse_updateinfo(PyObject *self, PyObject *args);
a1f7ac
 
a1f7ac
-PyDoc_STRVAR(xml_parse_main_metadata_together__doc__,
a1f7ac
-"xml_parse_main_metadata_together(primary_filename, filelists_filename, other_filename, newpkgcb, pkgcb, warningcb) -> None\n\n"
a1f7ac
-"Parse primary.xml, filelists.xml and other.xml together at the same time."
a1f7ac
-"- It can handle if packages are not in the same order in all 3 files but memory requirements grow."
a1f7ac
-"- It is not guaranteed that newpkgcb is always followed by pkgcb for the given package, it is possible newpkgcb will be called several times for different packages and only after that pkgcbs will be called.");
a1f7ac
-
a1f7ac
-PyObject *py_xml_parse_main_metadata_together(PyObject *self, PyObject *args, PyObject *kwargs);
a1f7ac
-
a1f7ac
 #endif
a1f7ac
-- 
a1f7ac
2.35.1
a1f7ac
a1f7ac
a1f7ac
From ac6f56e87f8a4b1f0a35d9dedc02a8846c9a6390 Mon Sep 17 00:00:00 2001
a1f7ac
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
a1f7ac
Date: Wed, 9 Mar 2022 15:23:58 +0100
a1f7ac
Subject: [PATCH 4/5] Revert "Add c tests for parsing metadata together"
a1f7ac
a1f7ac
This reverts commit 3ef3d4d77e283ee916fc7977cdc3855b912463e0.
a1f7ac
---
a1f7ac
 tests/CMakeLists.txt                          |    4 -
a1f7ac
 tests/fixtures.h                              |    2 -
a1f7ac
 .../test_xml_parser_main_metadata_together.c  |  298 -----
a1f7ac
 .../modified_repo_files/long_primary.xml      | 1060 -----------------
a1f7ac
 .../repo_02_different_order_filelists.xml     |   16 -
a1f7ac
 5 files changed, 1380 deletions(-)
a1f7ac
 delete mode 100644 tests/test_xml_parser_main_metadata_together.c
a1f7ac
 delete mode 100644 tests/testdata/modified_repo_files/long_primary.xml
a1f7ac
 delete mode 100644 tests/testdata/modified_repo_files/repo_02_different_order_filelists.xml
a1f7ac
a1f7ac
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
a1f7ac
index 4ffe837..3936176 100644
a1f7ac
--- a/tests/CMakeLists.txt
a1f7ac
+++ b/tests/CMakeLists.txt
a1f7ac
@@ -38,10 +38,6 @@ ADD_EXECUTABLE(test_xml_parser_updateinfo test_xml_parser_updateinfo.c)
a1f7ac
 TARGET_LINK_LIBRARIES(test_xml_parser_updateinfo libcreaterepo_c ${GLIB2_LIBRARIES})
a1f7ac
 ADD_DEPENDENCIES(tests test_xml_parser_updateinfo)
a1f7ac
 
a1f7ac
-ADD_EXECUTABLE(test_xml_parser_main_metadata_together test_xml_parser_main_metadata_together.c)
a1f7ac
-TARGET_LINK_LIBRARIES(test_xml_parser_main_metadata_together libcreaterepo_c ${GLIB2_LIBRARIES})
a1f7ac
-ADD_DEPENDENCIES(tests test_xml_parser_main_metadata_together)
a1f7ac
-
a1f7ac
 ADD_EXECUTABLE(test_xml_dump test_xml_dump.c)
a1f7ac
 TARGET_LINK_LIBRARIES(test_xml_dump libcreaterepo_c ${GLIB2_LIBRARIES})
a1f7ac
 ADD_DEPENDENCIES(tests test_xml_dump)
a1f7ac
diff --git a/tests/fixtures.h b/tests/fixtures.h
a1f7ac
index 676518c..a47dd66 100644
a1f7ac
--- a/tests/fixtures.h
a1f7ac
+++ b/tests/fixtures.h
a1f7ac
@@ -85,8 +85,6 @@
a1f7ac
 #define TEST_MRF_UE_OTH_00      TEST_MODIFIED_REPO_FILES_PATH"unknown_element_00-other.xml"
a1f7ac
 #define TEST_MRF_UE_OTH_01      TEST_MODIFIED_REPO_FILES_PATH"unknown_element_01-other.xml"
a1f7ac
 #define TEST_MRF_UE_OTH_02      TEST_MODIFIED_REPO_FILES_PATH"unknown_element_02-other.xml"
a1f7ac
-#define TEST_LONG_PRIMARY       TEST_MODIFIED_REPO_FILES_PATH"long_primary.xml"
a1f7ac
-#define TEST_DIFF_ORDER_FILELISTS TEST_MODIFIED_REPO_FILES_PATH"repo_02_different_order_filelists.xml"
a1f7ac
 
a1f7ac
 // Test files
a1f7ac
 
a1f7ac
diff --git a/tests/test_xml_parser_main_metadata_together.c b/tests/test_xml_parser_main_metadata_together.c
a1f7ac
deleted file mode 100644
a1f7ac
index a4e4ad7..0000000
a1f7ac
--- a/tests/test_xml_parser_main_metadata_together.c
a1f7ac
+++ /dev/null
a1f7ac
@@ -1,298 +0,0 @@
a1f7ac
-/*
a1f7ac
- * Copyright (C) 2021 Red Hat, Inc.
a1f7ac
- *
a1f7ac
- * Licensed under the GNU Lesser General Public License Version 2.1
a1f7ac
- *
a1f7ac
- * This library is free software; you can redistribute it and/or
a1f7ac
- * modify it under the terms of the GNU Lesser General Public
a1f7ac
- * License as published by the Free Software Foundation; either
a1f7ac
- * version 2.1 of the License, or (at your option) any later version.
a1f7ac
- *
a1f7ac
- * This library is distributed in the hope that it will be useful,
a1f7ac
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
a1f7ac
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
a1f7ac
- * Lesser General Public License for more details.
a1f7ac
- *
a1f7ac
- * You should have received a copy of the GNU Lesser General Public
a1f7ac
- * License along with this library; if not, write to the Free Software
a1f7ac
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
a1f7ac
- */
a1f7ac
-
a1f7ac
-#include <glib.h>
a1f7ac
-#include <stdlib.h>
a1f7ac
-#include <stdio.h>
a1f7ac
-#include "fixtures.h"
a1f7ac
-#include "createrepo/error.h"
a1f7ac
-#include "createrepo/package.h"
a1f7ac
-#include "createrepo/misc.h"
a1f7ac
-#include "createrepo/xml_parser.h"
a1f7ac
-#include "createrepo/xml_parser_internal.h"
a1f7ac
-
a1f7ac
-// Callbacks
a1f7ac
-
a1f7ac
-static int
a1f7ac
-pkgcb(cr_Package *pkg, void *cbdata, GError **err)
a1f7ac
-{
a1f7ac
-    g_assert(pkg);
a1f7ac
-    g_assert(!err || *err == NULL);
a1f7ac
-    if (cbdata) *((int *)cbdata) += 1;
a1f7ac
-    cr_package_free(pkg);
a1f7ac
-    return CR_CB_RET_OK;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-pkgcb_interrupt(cr_Package *pkg, void *cbdata, GError **err)
a1f7ac
-{
a1f7ac
-    g_assert(pkg);
a1f7ac
-    g_assert(!err || *err == NULL);
a1f7ac
-    if (cbdata) *((int *)cbdata) += 1;
a1f7ac
-    cr_package_free(pkg);
a1f7ac
-    return CR_CB_RET_ERR;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-newpkgcb_skip_fake_bash(cr_Package **pkg,
a1f7ac
-                        G_GNUC_UNUSED const char *pkgId,
a1f7ac
-                        const char *name,
a1f7ac
-                        G_GNUC_UNUSED const char *arch,
a1f7ac
-                        G_GNUC_UNUSED void *cbdata,
a1f7ac
-                        GError **err)
a1f7ac
-{
a1f7ac
-    g_assert(pkg != NULL);
a1f7ac
-    g_assert(*pkg == NULL);
a1f7ac
-    g_assert(pkgId != NULL);
a1f7ac
-    g_assert(!err || *err == NULL);
a1f7ac
-
a1f7ac
-
a1f7ac
-    if (!g_strcmp0(name, "fake_bash")) {
a1f7ac
-        return CRE_OK;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    *pkg = cr_package_new();
a1f7ac
-    return CR_CB_RET_OK;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-newpkgcb_interrupt(cr_Package **pkg,
a1f7ac
-                   G_GNUC_UNUSED const char *pkgId,
a1f7ac
-                   G_GNUC_UNUSED const char *name,
a1f7ac
-                   G_GNUC_UNUSED const char *arch,
a1f7ac
-                   G_GNUC_UNUSED void *cbdata,
a1f7ac
-                   GError **err)
a1f7ac
-{
a1f7ac
-    g_assert(pkg != NULL);
a1f7ac
-    g_assert(*pkg == NULL);
a1f7ac
-    g_assert(pkgId != NULL);
a1f7ac
-    g_assert(!err || *err == NULL);
a1f7ac
-
a1f7ac
-    if (cbdata) *((int *)cbdata) += 1;
a1f7ac
-
a1f7ac
-    return CR_CB_RET_ERR;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-warningcb(G_GNUC_UNUSED cr_XmlParserWarningType type,
a1f7ac
-          G_GNUC_UNUSED char *msg,
a1f7ac
-          void *cbdata,
a1f7ac
-          G_GNUC_UNUSED GError **err)
a1f7ac
-{
a1f7ac
-    g_assert(type < CR_XML_WARNING_SENTINEL);
a1f7ac
-    g_assert(!err || *err == NULL);
a1f7ac
-
a1f7ac
-    g_string_append((GString *) cbdata, msg);
a1f7ac
-    g_string_append((GString *) cbdata, ";");
a1f7ac
-
a1f7ac
-    return CR_CB_RET_OK;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-warningcb_interrupt(G_GNUC_UNUSED cr_XmlParserWarningType type,
a1f7ac
-                    G_GNUC_UNUSED char *msg,
a1f7ac
-                    G_GNUC_UNUSED void *cbdata,
a1f7ac
-                    G_GNUC_UNUSED GError **err)
a1f7ac
-{
a1f7ac
-    g_assert(type < CR_XML_WARNING_SENTINEL);
a1f7ac
-    g_assert(!err || *err == NULL);
a1f7ac
-
a1f7ac
-    if (cbdata) *((int *)cbdata) += 1;
a1f7ac
-
a1f7ac
-    return CR_CB_RET_ERR;
a1f7ac
-}
a1f7ac
-
a1f7ac
-// Tests
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_00(void)
a1f7ac
-{
a1f7ac
-    int parsed = 0;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                                  NULL, NULL, pkgcb, &parsed, NULL, NULL, TRUE, &tmp_err);
a1f7ac
-    g_assert(tmp_err == NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_OK);
a1f7ac
-    g_assert_cmpint(parsed, ==, 2);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_01_out_of_order_pkgs(void)
a1f7ac
-{
a1f7ac
-    int parsed = 0;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY,
a1f7ac
-                                                  TEST_DIFF_ORDER_FILELISTS,
a1f7ac
-                                                  TEST_REPO_02_OTHER,
a1f7ac
-                                                  NULL, NULL, pkgcb, &parsed, NULL, NULL, FALSE, &tmp_err);
a1f7ac
-    g_assert(tmp_err != NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_XMLPARSER);
a1f7ac
-
a1f7ac
-    g_clear_error(&tmp_err);
a1f7ac
-    ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_DIFF_ORDER_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                              NULL, NULL, pkgcb, &parsed, NULL, NULL, TRUE, &tmp_err);
a1f7ac
-    g_assert(tmp_err == NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_OK);
a1f7ac
-    g_assert_cmpint(parsed, ==, 2);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_02_invalid_path(void)
a1f7ac
-{
a1f7ac
-    int parsed = 0;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together("/non/existent/file", TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                                  NULL, NULL, pkgcb, &parsed, NULL, NULL, TRUE, &tmp_err);
a1f7ac
-    g_assert(tmp_err != NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_NOFILE);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_03_newpkgcb_returns_null(void)
a1f7ac
-{
a1f7ac
-    int parsed = 0;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                                  newpkgcb_skip_fake_bash, NULL, pkgcb, &parsed, NULL, NULL, TRUE,
a1f7ac
-                                                  &tmp_err);
a1f7ac
-    g_assert(tmp_err == NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_OK);
a1f7ac
-    g_assert_cmpint(parsed, ==, 1);
a1f7ac
-
a1f7ac
-    parsed = 0;
a1f7ac
-    ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_DIFF_ORDER_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                              newpkgcb_skip_fake_bash, NULL, pkgcb, &parsed, NULL, NULL, TRUE,
a1f7ac
-                                              &tmp_err);
a1f7ac
-    g_assert(tmp_err == NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_OK);
a1f7ac
-    g_assert_cmpint(parsed, ==, 1);
a1f7ac
-
a1f7ac
-    parsed = 0;
a1f7ac
-    ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_DIFF_ORDER_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                              newpkgcb_skip_fake_bash, NULL, pkgcb, &parsed, NULL, NULL, FALSE,
a1f7ac
-                                              &tmp_err);
a1f7ac
-    g_assert(tmp_err == NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_OK);
a1f7ac
-    g_assert_cmpint(parsed, ==, 1);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_04_newpkgcb_interrupt(void)
a1f7ac
-{
a1f7ac
-    int parsed = 0;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                                  newpkgcb_interrupt, &parsed, NULL, NULL, NULL, NULL, TRUE, &tmp_err);
a1f7ac
-    g_assert(tmp_err != NULL);
a1f7ac
-    g_error_free(tmp_err);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_CBINTERRUPTED);
a1f7ac
-    g_assert_cmpint(parsed, ==, 1);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_05_pkgcb_interrupt(void)
a1f7ac
-{
a1f7ac
-    int parsed = 0;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                                  NULL, NULL, pkgcb_interrupt, &parsed, NULL, NULL, TRUE, &tmp_err);
a1f7ac
-    g_assert(tmp_err != NULL);
a1f7ac
-    g_error_free(tmp_err);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_CBINTERRUPTED);
a1f7ac
-    g_assert_cmpint(parsed, ==, 1);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_06_warnings_bad_file_type(void)
a1f7ac
-{
a1f7ac
-    int parsed = 0;
a1f7ac
-    char *warnmsgs;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    GString *warn_strings = g_string_new(0);
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_MRF_BAD_TYPE_FIL, TEST_REPO_02_OTHER,
a1f7ac
-                                                  NULL, NULL, pkgcb, &parsed, warningcb, warn_strings, TRUE, &tmp_err);
a1f7ac
-    g_assert(tmp_err == NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_OK);
a1f7ac
-    g_assert_cmpint(parsed, ==, 2);
a1f7ac
-    warnmsgs = g_string_free(warn_strings, FALSE);
a1f7ac
-    g_assert_cmpstr(warnmsgs, ==, "Unknown file type \"foo\";");
a1f7ac
-    g_free(warnmsgs);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_07_warningcb_interrupt(void)
a1f7ac
-{
a1f7ac
-    int numofwarnings = 0;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together(TEST_REPO_02_PRIMARY, TEST_MRF_BAD_TYPE_FIL, TEST_REPO_02_OTHER,
a1f7ac
-                                                  NULL, NULL, pkgcb, NULL, warningcb_interrupt, &numofwarnings,
a1f7ac
-                                                  TRUE, &tmp_err);
a1f7ac
-    g_assert(tmp_err != NULL);
a1f7ac
-    g_error_free(tmp_err);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_CBINTERRUPTED);
a1f7ac
-    g_assert_cmpint(numofwarnings, ==, 1);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-test_cr_xml_parse_main_metadata_together_08_long_primary(void)
a1f7ac
-{
a1f7ac
-    int parsed = 0;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int ret = cr_xml_parse_main_metadata_together(TEST_LONG_PRIMARY, TEST_REPO_02_FILELISTS, TEST_REPO_02_OTHER,
a1f7ac
-                                                  NULL, NULL, pkgcb, &parsed, NULL, NULL, TRUE, &tmp_err);
a1f7ac
-    g_assert(tmp_err == NULL);
a1f7ac
-    g_assert_cmpint(ret, ==, CRE_OK);
a1f7ac
-    g_assert_cmpint(parsed, ==, 2);
a1f7ac
-}
a1f7ac
-
a1f7ac
-int
a1f7ac
-main(int argc, char *argv[])
a1f7ac
-{
a1f7ac
-    g_test_init(&argc, &argv, NULL);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_00",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_00);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_01_out_of_order_pkgs",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_01_out_of_order_pkgs);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_02_invalid_path",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_02_invalid_path);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_03_newpkgcb_returns_null",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_03_newpkgcb_returns_null);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_04_newpkgcb_interrupt",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_04_newpkgcb_interrupt);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_05_pkgcb_interrupt",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_05_pkgcb_interrupt);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_06_warnings_bad_file_type",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_06_warnings_bad_file_type);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_07_warningcb_interrupt",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_07_warningcb_interrupt);
a1f7ac
-
a1f7ac
-    g_test_add_func("/xml_parser_filelists/test_cr_xml_parse_main_metadata_together_08_long_primary",
a1f7ac
-                    test_cr_xml_parse_main_metadata_together_08_long_primary);
a1f7ac
-
a1f7ac
-    return g_test_run();
a1f7ac
-}
a1f7ac
diff --git a/tests/testdata/modified_repo_files/long_primary.xml b/tests/testdata/modified_repo_files/long_primary.xml
a1f7ac
deleted file mode 100644
a1f7ac
index 41d8a89..0000000
a1f7ac
--- a/tests/testdata/modified_repo_files/long_primary.xml
a1f7ac
+++ /dev/null
a1f7ac
@@ -1,1060 +0,0 @@
a1f7ac
-
a1f7ac
-<metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="2">
a1f7ac
-<package type="rpm">
a1f7ac
-  <name>fake_bash</name>
a1f7ac
-  <arch>x86_64</arch>
a1f7ac
-  <version epoch="0" ver="1.1.1" rel="1"/>
a1f7ac
-  <checksum type="sha256" pkgid="YES">90f61e546938a11449b710160ad294618a5bd3062e46f8cf851fd0088af184b7</checksum>
a1f7ac
-  <summary>Fake bash</summary>
a1f7ac
-  <description>Fake bash package</description>
a1f7ac
-  <packager></packager>
a1f7ac
-  <url>http://fake_bash_shell.com/</url>
a1f7ac
-  <time file="1334670842" build="1334670842"/>
a1f7ac
-  <size package="2237" installed="0" archive="256"/>
a1f7ac
-<location href="fake_bash-1.1.1-1.x86_64.rpm"/>
a1f7ac
-  <format>
a1f7ac
-    <rpm:license>GPL</rpm:license>
a1f7ac
-    <rpm:vendor/>
a1f7ac
-    <rpm:group>System Environment/Shells</rpm:group>
a1f7ac
-    <rpm:buildhost>localhost.localdomain</rpm:buildhost>
a1f7ac
-    <rpm:sourcerpm>fake_bash-1.1.1-1.src.rpm</rpm:sourcerpm>
a1f7ac
-    <rpm:header-range start="280" end="2057"/>
a1f7ac
-    <rpm:provides>
a1f7ac
-      <rpm:entry name="bash"/>
a1f7ac
-      <rpm:entry name="fake_bash" flags="EQ" epoch="0" ver="1.1.1" rel="1"/>
a1f7ac
-      <rpm:entry name="fake_bash(x86-64)" flags="EQ" epoch="0" ver="1.1.1" rel="1"/>
a1f7ac
-    </rpm:provides>
a1f7ac
-    <rpm:requires>
a1f7ac
-      <rpm:entry name="super_kernel"/>
a1f7ac
-    </rpm:requires>
a1f7ac
-    <file>/usr/bin/fake_bash</file>
a1f7ac
-  </format>
a1f7ac
-</package>
a1f7ac
-<package type="rpm">
a1f7ac
-  <name>super_kernel</name>
a1f7ac
-  <arch>x86_64</arch>
a1f7ac
-  <version epoch="0" ver="6.0.1" rel="2"/>
a1f7ac
-  <checksum type="sha256" pkgid="YES">6d43a638af70ef899933b1fd86a866f18f65b0e0e17dcbf2e42bfd0cdd7c63c3</checksum>
a1f7ac
-  <summary>Test package</summary>
a1f7ac
-  <description>This package has provides, requires, obsoletes, conflicts options.</description>
a1f7ac
-  <packager></packager>
a1f7ac
-  <url>http://so_super_kernel.com/it_is_awesome/yep_it_really_is</url>
a1f7ac
-  <time file="1334670843" build="1334670843"/>
a1f7ac
-  <size package="2845" installed="0" archive="404"/>
a1f7ac
-<location href="super_kernel-6.0.1-2.x86_64.rpm"/>
a1f7ac
-  <format>
a1f7ac
-    <rpm:license>LGPLv2</rpm:license>
a1f7ac
-    <rpm:vendor/>
a1f7ac
-    <rpm:group>Applications/System</rpm:group>
a1f7ac
-    <rpm:buildhost>localhost.localdomain</rpm:buildhost>
a1f7ac
-    <rpm:sourcerpm>super_kernel-6.0.1-2.src.rpm</rpm:sourcerpm>
a1f7ac
-    <rpm:header-range start="280" end="2637"/>
a1f7ac
-    <rpm:provides>
a1f7ac
-      <rpm:entry name="not_so_super_kernel" flags="LT" epoch="0" ver="5.8.0"/>
a1f7ac
-      <rpm:entry name="super_kernel" flags="EQ" epoch="0" ver="6.0.0"/>
a1f7ac
-      <rpm:entry name="super_kernel" flags="EQ" epoch="0" ver="6.0.1" rel="2"/>
a1f7ac
-      <rpm:entry name="super_kernel(x86-64)" flags="EQ" epoch="0" ver="6.0.1" rel="2"/>
a1f7ac
-    </rpm:provides>
a1f7ac
-    <rpm:requires>
a1f7ac
-      <rpm:entry name="bzip2" flags="GE" epoch="0" ver="1.0.0" pre="1"/>
a1f7ac
-      <rpm:entry name="expat" pre="1"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.26.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.27.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.28.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.29.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.30.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.31.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.32.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.33.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.34.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.35.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.36.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.37.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.38.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.39.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.40.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.41.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.42.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.43.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.44.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.45.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.46.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.47.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.48.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.49.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.50.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.51.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.52.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.53.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.54.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.55.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.56.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.57.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.58.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.59.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.60.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.61.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.62.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.63.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.64.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.65.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.66.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.67.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.68.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.69.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.70.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.71.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.72.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.73.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.74.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.75.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.76.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.77.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.78.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.79.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.80.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.81.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.82.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.83.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.84.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.85.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.86.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.87.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.88.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.89.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.90.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.91.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.92.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.93.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.94.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.95.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.96.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.97.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.98.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.99.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.100.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.101.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.102.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.103.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.104.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.105.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.106.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.107.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.108.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.109.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.110.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.111.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.112.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.113.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.114.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.115.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.116.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.117.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.118.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.119.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.120.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.121.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.122.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.123.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.124.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.125.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.126.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.127.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.128.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.129.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.130.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.131.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.132.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.133.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.134.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.135.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.136.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.137.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.138.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.139.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.140.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.141.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.142.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.143.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.144.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.145.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.146.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.147.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.148.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.149.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.150.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.151.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.152.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.153.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.154.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.155.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.156.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.157.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.158.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.159.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.160.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.161.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.162.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.163.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.164.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.165.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.166.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.167.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.168.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.169.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.170.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.171.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.172.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.173.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.174.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.175.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.176.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.177.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.178.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.179.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.180.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.181.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.182.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.183.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.184.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.185.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.186.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.187.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.188.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.189.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.190.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.191.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.192.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.193.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.194.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.195.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.196.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.197.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.198.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.199.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.200.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.201.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.202.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.203.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.204.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.205.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.206.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.207.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.208.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.209.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.210.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.211.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.212.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.213.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.214.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.215.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.216.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.217.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.218.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.219.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.220.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.221.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.222.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.223.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.224.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.225.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.226.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.227.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.228.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.229.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.230.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.231.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.232.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.233.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.234.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.235.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.236.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.237.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.238.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.239.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.240.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.241.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.242.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.243.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.244.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.245.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.246.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.247.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.248.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.249.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.250.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.251.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.252.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.253.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.254.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.255.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.256.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.257.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.258.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.259.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.260.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.261.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.262.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.263.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.264.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.265.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.266.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.267.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.268.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.269.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.270.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.271.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.272.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.273.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.274.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.275.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.276.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.277.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.278.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.279.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.280.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.281.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.282.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.283.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.284.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.285.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.286.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.287.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.288.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.289.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.290.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.291.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.292.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.293.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.294.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.295.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.296.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.297.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.298.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.299.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.300.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.301.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.302.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.303.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.304.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.305.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.306.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.307.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.308.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.309.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.310.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.311.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.312.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.313.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.314.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.315.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.316.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.317.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.318.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.319.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.320.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.321.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.322.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.323.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.324.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.325.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.326.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.327.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.328.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.329.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.330.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.331.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.332.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.333.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.334.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.335.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.336.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.337.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.338.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.339.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.340.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.341.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.342.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.343.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.344.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.345.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.346.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.347.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.348.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.349.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.350.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.351.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.352.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.353.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.354.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.355.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.356.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.357.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.358.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.359.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.360.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.361.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.362.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.363.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.364.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.365.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.366.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.367.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.368.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.369.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.370.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.371.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.372.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.373.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.374.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.375.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.376.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.377.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.378.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.379.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.380.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.381.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.382.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.383.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.384.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.385.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.386.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.387.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.388.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.389.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.390.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.391.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.392.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.393.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.394.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.395.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.396.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.397.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.398.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.399.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.400.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.401.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.402.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.403.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.404.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.405.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.406.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.407.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.408.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.409.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.410.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.411.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.412.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.413.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.414.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.415.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.416.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.417.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.418.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.419.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.420.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.421.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.422.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.423.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.424.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.425.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.426.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.427.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.428.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.429.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.430.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.431.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.432.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.433.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.434.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.435.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.436.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.437.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.438.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.439.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.440.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.441.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.442.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.443.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.444.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.445.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.446.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.447.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.448.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.449.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.450.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.451.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.452.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.453.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.454.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.455.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.456.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.457.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.458.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.459.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.460.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.461.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.462.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.463.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.464.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.465.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.466.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.467.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.468.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.469.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.470.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.471.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.472.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.473.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.474.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.475.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.476.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.477.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.478.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.479.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.480.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.481.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.482.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.483.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.484.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.485.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.486.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.487.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.488.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.489.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.490.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.491.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.492.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.493.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.494.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.495.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.496.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.497.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.498.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.499.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.500.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.501.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.502.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.503.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.504.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.505.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.506.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.507.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.508.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.509.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.510.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.511.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.512.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.513.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.514.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.515.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.516.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.517.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.518.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.519.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.520.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.521.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.522.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.523.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.524.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.525.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.526.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.527.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.528.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.529.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.530.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.531.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.532.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.533.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.534.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.535.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.536.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.537.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.538.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.539.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.540.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.541.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.542.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.543.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.544.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.545.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.546.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.547.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.548.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.549.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.550.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.551.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.552.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.553.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.554.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.555.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.556.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.557.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.558.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.559.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.560.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.561.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.562.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.563.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.564.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.565.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.566.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.567.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.568.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.569.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.570.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.571.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.572.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.573.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.574.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.575.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.576.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.577.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.578.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.579.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.580.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.581.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.582.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.583.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.584.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.585.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.586.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.587.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.588.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.589.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.590.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.591.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.592.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.593.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.594.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.595.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.596.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.597.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.598.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.599.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.600.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.601.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.602.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.603.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.604.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.605.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.606.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.607.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.608.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.609.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.610.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.611.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.612.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.613.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.614.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.615.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.616.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.617.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.618.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.619.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.620.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.621.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.622.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.623.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.624.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.625.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.626.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.627.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.628.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.629.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.630.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.631.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.632.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.633.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.634.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.635.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.636.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.637.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.638.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.639.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.640.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.641.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.642.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.643.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.644.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.645.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.646.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.647.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.648.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.649.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.650.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.651.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.652.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.653.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.654.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.655.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.656.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.657.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.658.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.659.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.660.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.661.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.662.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.663.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.664.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.665.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.666.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.667.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.668.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.669.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.670.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.671.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.672.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.673.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.674.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.675.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.676.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.677.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.678.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.679.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.680.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.681.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.682.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.683.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.684.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.685.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.686.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.687.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.688.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.689.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.690.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.691.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.692.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.693.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.694.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.695.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.696.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.697.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.698.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.699.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.700.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.701.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.702.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.703.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.704.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.705.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.706.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.707.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.708.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.709.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.710.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.711.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.712.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.713.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.714.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.715.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.716.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.717.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.718.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.719.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.720.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.721.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.722.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.723.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.724.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.725.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.726.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.727.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.728.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.729.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.730.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.731.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.732.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.733.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.734.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.735.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.736.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.737.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.738.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.739.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.740.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.741.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.742.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.743.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.744.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.745.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.746.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.747.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.748.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.749.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.750.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.751.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.752.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.753.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.754.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.755.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.756.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.757.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.758.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.759.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.760.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.761.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.762.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.763.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.764.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.765.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.766.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.767.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.768.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.769.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.770.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.771.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.772.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.773.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.774.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.775.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.776.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.777.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.778.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.779.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.780.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.781.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.782.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.783.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.784.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.785.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.786.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.787.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.788.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.789.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.790.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.791.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.792.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.793.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.794.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.795.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.796.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.797.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.798.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.799.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.800.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.801.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.802.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.803.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.804.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.805.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.806.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.807.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.808.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.809.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.810.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.811.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.812.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.813.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.814.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.815.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.816.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.817.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.818.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.819.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.820.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.821.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.822.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.823.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.824.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.825.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.826.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.827.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.828.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.829.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.830.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.831.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.832.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.833.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.834.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.835.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.836.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.837.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.838.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.839.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.840.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.841.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.842.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.843.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.844.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.845.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.846.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.847.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.848.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.849.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.850.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.851.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.852.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.853.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.854.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.855.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.856.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.857.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.858.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.859.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.860.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.861.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.862.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.863.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.864.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.865.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.866.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.867.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.868.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.869.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.870.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.871.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.872.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.873.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.874.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.875.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.876.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.877.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.878.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.879.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.880.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.881.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.882.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.883.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.884.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.885.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.886.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.887.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.888.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.889.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.890.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.891.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.892.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.893.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.894.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.895.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.896.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.897.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.898.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.899.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.900.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.901.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.902.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.903.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.904.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.905.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.906.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.907.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.908.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.909.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.910.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.911.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.912.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.913.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.914.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.915.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.916.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.917.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.918.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.919.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.920.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.921.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.922.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.923.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.924.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.925.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.926.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.927.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.928.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.929.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.930.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.931.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.932.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.933.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.934.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.935.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.936.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.937.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.938.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.939.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.940.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.941.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.942.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.943.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.944.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.945.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.946.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.947.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.948.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.949.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.950.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.951.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.952.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.953.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.954.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.955.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.956.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.957.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.958.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.959.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.960.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.961.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.962.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.963.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.964.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.965.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.966.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.967.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.968.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.969.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.970.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.971.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.972.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.973.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.974.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.975.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.976.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.977.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.978.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.979.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.980.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.981.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.982.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.983.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.984.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.985.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.986.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.987.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.988.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.989.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.990.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.991.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.992.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.993.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.994.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.995.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.996.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.997.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.998.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.999.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1000.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1001.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1002.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1003.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1004.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1005.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1006.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1007.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1008.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1009.0"/>
a1f7ac
-      <rpm:entry name="glib" flags="GE" epoch="0" ver="2.1010.0"/>
a1f7ac
-      <rpm:entry name="zlib"/>
a1f7ac
-    </rpm:requires>
a1f7ac
-    <rpm:conflicts>
a1f7ac
-      <rpm:entry name="kernel"/>
a1f7ac
-      <rpm:entry name="super_kernel" flags="EQ" epoch="0" ver="5.0.0"/>
a1f7ac
-      <rpm:entry name="super_kernel" flags="LT" epoch="0" ver="4.0.0"/>
a1f7ac
-    </rpm:conflicts>
a1f7ac
-    <rpm:obsoletes>
a1f7ac
-      <rpm:entry name="kernel"/>
a1f7ac
-      <rpm:entry name="super_kernel" flags="EQ" epoch="0" ver="5.9.0"/>
a1f7ac
-    </rpm:obsoletes>
a1f7ac
-    <file>/usr/bin/super_kernel</file>
a1f7ac
-  </format>
a1f7ac
-</package>
a1f7ac
-</metadata>
a1f7ac
diff --git a/tests/testdata/modified_repo_files/repo_02_different_order_filelists.xml b/tests/testdata/modified_repo_files/repo_02_different_order_filelists.xml
a1f7ac
deleted file mode 100644
a1f7ac
index 4953c95..0000000
a1f7ac
--- a/tests/testdata/modified_repo_files/repo_02_different_order_filelists.xml
a1f7ac
+++ /dev/null
a1f7ac
@@ -1,16 +0,0 @@
a1f7ac
-
a1f7ac
-<filelists xmlns="http://linux.duke.edu/metadata/filelists" packages="2">
a1f7ac
-<package pkgid="6d43a638af70ef899933b1fd86a866f18f65b0e0e17dcbf2e42bfd0cdd7c63c3" name="super_kernel" arch="x86_64">
a1f7ac
-    <version epoch="0" ver="6.0.1" rel="2"/>
a1f7ac
-
a1f7ac
-    <file>/usr/bin/super_kernel</file>
a1f7ac
-    <file>/usr/share/man/super_kernel.8.gz</file>
a1f7ac
-</package>
a1f7ac
-
a1f7ac
-<package pkgid="90f61e546938a11449b710160ad294618a5bd3062e46f8cf851fd0088af184b7" name="fake_bash" arch="x86_64">
a1f7ac
-    <version epoch="0" ver="1.1.1" rel="1"/>
a1f7ac
-
a1f7ac
-    <file>/usr/bin/fake_bash</file>
a1f7ac
-</package>
a1f7ac
-
a1f7ac
-</filelists>
a1f7ac
-- 
a1f7ac
2.35.1
a1f7ac
a1f7ac
a1f7ac
From 16f3c1f1abe995fc1c0023f9109b7f5d520ff4b4 Mon Sep 17 00:00:00 2001
a1f7ac
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
a1f7ac
Date: Wed, 9 Mar 2022 15:24:05 +0100
a1f7ac
Subject: [PATCH 5/5] Revert "Add c API for parsing metadata together"
a1f7ac
a1f7ac
This reverts commit ff0912d2a89722700f001ef462abd730dacaa8e7.
a1f7ac
---
a1f7ac
 src/CMakeLists.txt                      |   1 -
a1f7ac
 src/xml_parser.h                        |  39 --
a1f7ac
 src/xml_parser_main_metadata_together.c | 468 ------------------------
a1f7ac
 3 files changed, 508 deletions(-)
a1f7ac
 delete mode 100644 src/xml_parser_main_metadata_together.c
a1f7ac
a1f7ac
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
a1f7ac
index b3ca9e6..64de052 100644
a1f7ac
--- a/src/CMakeLists.txt
a1f7ac
+++ b/src/CMakeLists.txt
a1f7ac
@@ -31,7 +31,6 @@ SET (createrepo_c_SRCS
a1f7ac
      xml_parser_primary.c
a1f7ac
      xml_parser_repomd.c
a1f7ac
      xml_parser_updateinfo.c
a1f7ac
-     xml_parser_main_metadata_together.c
a1f7ac
      koji.c)
a1f7ac
 
a1f7ac
 SET(headers
a1f7ac
diff --git a/src/xml_parser.h b/src/xml_parser.h
a1f7ac
index 5ce7c0e..a31718d 100644
a1f7ac
--- a/src/xml_parser.h
a1f7ac
+++ b/src/xml_parser.h
a1f7ac
@@ -278,45 +278,6 @@ cr_xml_parse_updateinfo(const char *path,
a1f7ac
                         void *warningcb_data,
a1f7ac
                         GError **err);
a1f7ac
 
a1f7ac
-/** Parse all 3 main metadata types (primary, filelists and other) at the same time.
a1f7ac
- * Once a package is fully parsed pkgcb is called which transfers ownership of the package
a1f7ac
- * to the user, cr_xml_parse_main_metadata_together no longer needs it and it can be freed.
a1f7ac
- * This means we don't have store all the packages in memory at the same time, which
a1f7ac
- * significantly reduces the memory footprint.
a1f7ac
- * Input metadata files can be compressed.
a1f7ac
- * @param primary_path       Path to a primary xml file.
a1f7ac
- * @param filelists_path     Path to a filelists xml file.
a1f7ac
- * @param other_path         Path to an other xml file.
a1f7ac
- * @param newpkgcb           Callback for a new package. Called when the new package
a1f7ac
- *                           xml chunk is found and a package object to store
a1f7ac
- *                           the data is needed.
a1f7ac
- * @param newpkgcb_data      User data for the newpkgcb.
a1f7ac
- * @param pkgcb              Package callback. Called when a package is completely
a1f7ac
- *                           parsed containing information from all 3 main metadata
a1f7ac
- *                           files. Could be NULL if newpkgcb is not NULL.
a1f7ac
- * @param pkgcb_data         User data for the pkgcb.
a1f7ac
- * @param warningcb          Callback for warning messages.
a1f7ac
- * @param warningcb_data     User data for the warningcb.
a1f7ac
- * @param allow_out_of_order Whether we should allow different order of packages
a1f7ac
- *                           among the main metadata files. If allowed, the more
a1f7ac
- *                           the order varies the more memory we will need to
a1f7ac
- *                           store all the started but unfinished packages.
a1f7ac
- * @param err                GError **
a1f7ac
- * @return                   cr_Error code.
a1f7ac
- */
a1f7ac
-int
a1f7ac
-cr_xml_parse_main_metadata_together(const char *primary_path,
a1f7ac
-                                    const char *filelists_path,
a1f7ac
-                                    const char *other_path,
a1f7ac
-                                    cr_XmlParserNewPkgCb newpkgcb,
a1f7ac
-                                    void *newpkgcb_data,
a1f7ac
-                                    cr_XmlParserPkgCb pkgcb,
a1f7ac
-                                    void *pkgcb_data,
a1f7ac
-                                    cr_XmlParserWarningCb warningcb,
a1f7ac
-                                    void *warningcb_data,
a1f7ac
-                                    gboolean allow_out_of_order,
a1f7ac
-                                    GError **err);
a1f7ac
-
a1f7ac
 /** @} */
a1f7ac
 
a1f7ac
 #ifdef __cplusplus
a1f7ac
diff --git a/src/xml_parser_main_metadata_together.c b/src/xml_parser_main_metadata_together.c
a1f7ac
deleted file mode 100644
a1f7ac
index 9347c79..0000000
a1f7ac
--- a/src/xml_parser_main_metadata_together.c
a1f7ac
+++ /dev/null
a1f7ac
@@ -1,468 +0,0 @@
a1f7ac
-/*
a1f7ac
- * Copyright (C) 2021 Red Hat, Inc.
a1f7ac
- *
a1f7ac
- * Licensed under the GNU Lesser General Public License Version 2.1
a1f7ac
- *
a1f7ac
- * This library is free software; you can redistribute it and/or
a1f7ac
- * modify it under the terms of the GNU Lesser General Public
a1f7ac
- * License as published by the Free Software Foundation; either
a1f7ac
- * version 2.1 of the License, or (at your option) any later version.
a1f7ac
- *
a1f7ac
- * This library is distributed in the hope that it will be useful,
a1f7ac
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
a1f7ac
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
a1f7ac
- * Lesser General Public License for more details.
a1f7ac
- *
a1f7ac
- * You should have received a copy of the GNU Lesser General Public
a1f7ac
- * License along with this library; if not, write to the Free Software
a1f7ac
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
a1f7ac
- */
a1f7ac
-
a1f7ac
-#include <glib.h>
a1f7ac
-#include <glib/gprintf.h>
a1f7ac
-#include <assert.h>
a1f7ac
-#include <errno.h>
a1f7ac
-#include "error.h"
a1f7ac
-#include "xml_parser.h"
a1f7ac
-#include "xml_parser_internal.h"
a1f7ac
-#include "package_internal.h"
a1f7ac
-#include "misc.h"
a1f7ac
-
a1f7ac
-#define ERR_DOMAIN      CREATEREPO_C_ERROR
a1f7ac
-
a1f7ac
-typedef struct {
a1f7ac
-    GHashTable           *in_progress_pkgs_hash; //used only when allowing out of order pkgs
a1f7ac
-    GSList               *in_progress_pkgs_list; // used only when not allowing out of order pkgs
a1f7ac
-    int                  in_progress_count_primary;
a1f7ac
-    int                  in_progress_count_filelists;
a1f7ac
-    int                  in_progress_count_other;
a1f7ac
-    cr_XmlParserNewPkgCb newpkgcb;      // newpkgcb passed in from user
a1f7ac
-    void                 *newpkgcb_data;// newpkgcb data passed in from user
a1f7ac
-    cr_XmlParserPkgCb    pkgcb;         // pkgcb passed in from user
a1f7ac
-    void                 *pkgcb_data;   // pkgcb data passed in from user
a1f7ac
-} cr_CbData;
a1f7ac
-
a1f7ac
-static int
a1f7ac
-call_user_callback_if_package_finished(cr_Package *pkg, cr_CbData *cb_data, GError **err)
a1f7ac
-{
a1f7ac
-    if (pkg && (pkg->loadingflags & CR_PACKAGE_LOADED_PRI) && (pkg->loadingflags & CR_PACKAGE_LOADED_OTH) &&
a1f7ac
-        (pkg->loadingflags & CR_PACKAGE_LOADED_FIL))
a1f7ac
-    {
a1f7ac
-        if (cb_data->in_progress_pkgs_hash) {
a1f7ac
-            g_hash_table_remove(cb_data->in_progress_pkgs_hash, pkg->pkgId);
a1f7ac
-        } else {
a1f7ac
-            //remove first element in the list
a1f7ac
-            cb_data->in_progress_pkgs_list = cb_data->in_progress_pkgs_list->next;
a1f7ac
-        }
a1f7ac
-
a1f7ac
-        // One package was fully finished
a1f7ac
-        cb_data->in_progress_count_primary--;
a1f7ac
-        cb_data->in_progress_count_filelists--;
a1f7ac
-        cb_data->in_progress_count_other--;
a1f7ac
-
a1f7ac
-        // call user package callback
a1f7ac
-        GError *tmp_err = NULL;
a1f7ac
-        if (cb_data->pkgcb && cb_data->pkgcb(pkg, cb_data->pkgcb_data, &tmp_err)) {
a1f7ac
-            if (tmp_err)
a1f7ac
-                g_propagate_prefixed_error(err, tmp_err, "Parsing interrupted: ");
a1f7ac
-            else
a1f7ac
-                g_set_error(err, ERR_DOMAIN, CRE_CBINTERRUPTED, "Parsing interrupted");
a1f7ac
-            return CR_CB_RET_ERR;
a1f7ac
-        } else {
a1f7ac
-            // If callback return CRE_OK but it simultaneously set
a1f7ac
-            // the tmp_err then it's a programming error.
a1f7ac
-            assert(tmp_err == NULL);
a1f7ac
-        };
a1f7ac
-    }
a1f7ac
-    return CR_CB_RET_OK;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static cr_Package*
a1f7ac
-find_in_progress_pkg(cr_CbData *cb_data, const char *pkgId, int in_progress_pkg_index, GError **err)
a1f7ac
-{
a1f7ac
-    gpointer pval = NULL;
a1f7ac
-    if (cb_data->in_progress_pkgs_hash) {
a1f7ac
-        if (!g_hash_table_lookup_extended(cb_data->in_progress_pkgs_hash, pkgId, NULL, &pval)) {
a1f7ac
-            pval = NULL;
a1f7ac
-        }
a1f7ac
-    } else {
a1f7ac
-        // This is checking out of order pkgs because if we don't have in_progress_pkgs_hash -> we enforce
a1f7ac
-        // order by using a list
a1f7ac
-        pval = g_slist_nth_data(cb_data->in_progress_pkgs_list, in_progress_pkg_index);
a1f7ac
-        if (pval && g_strcmp0(((cr_Package *) pval)->pkgId, pkgId)) {
a1f7ac
-            g_set_error(err, ERR_DOMAIN, CRE_XMLPARSER,
a1f7ac
-                        "Out of order metadata: %s vs %s.", ((cr_Package *) pval)->pkgId, pkgId);
a1f7ac
-            pval = NULL;
a1f7ac
-        }
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    return pval;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static void
a1f7ac
-store_in_progress_pkg(cr_CbData *cb_data, cr_Package *pkg, const char *pkgId)
a1f7ac
-{
a1f7ac
-    if (!pkg) {
a1f7ac
-        return;
a1f7ac
-    }
a1f7ac
-    if (cb_data->in_progress_pkgs_hash) {
a1f7ac
-        g_hash_table_insert(cb_data->in_progress_pkgs_hash, g_strdup(pkgId), pkg);
a1f7ac
-    } else {
a1f7ac
-        cb_data->in_progress_pkgs_list = g_slist_append(cb_data->in_progress_pkgs_list, pkg);
a1f7ac
-    }
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-newpkgcb_primary(cr_Package **pkg,
a1f7ac
-                    G_GNUC_UNUSED const char *pkgId,
a1f7ac
-                    G_GNUC_UNUSED const char *name,
a1f7ac
-                    G_GNUC_UNUSED const char *arch,
a1f7ac
-                    G_GNUC_UNUSED void *cbdata,
a1f7ac
-                    GError **err)
a1f7ac
-{
a1f7ac
-    assert(pkg && *pkg == NULL);
a1f7ac
-    assert(!err || *err == NULL);
a1f7ac
-
a1f7ac
-    // This callback is called when parsing of the opening element of a package
a1f7ac
-    // is done. However because the opening element doesn't contain pkgId
a1f7ac
-    // (instead it looks like: <package type="rpm">) we cannot check if we
a1f7ac
-    // already have this package.
a1f7ac
-    // The only option is to create a new package and after its fully
a1f7ac
-    // parsed (in pkgcb_primary) either use this package or copy its data
a1f7ac
-    // into an already existing one.
a1f7ac
-    // Filelists and other have pkgId present in the opening element so we can
a1f7ac
-    // avoid this overhead.
a1f7ac
-    *pkg = cr_package_new();
a1f7ac
-
a1f7ac
-    return CR_CB_RET_OK;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-newpkg_general(cr_Package **pkg,
a1f7ac
-                 const char *pkgId,
a1f7ac
-                 const char *name,
a1f7ac
-                 const char *arch,
a1f7ac
-                 void *cbdata,
a1f7ac
-                 int in_progress_count,
a1f7ac
-                 GError **err)
a1f7ac
-{
a1f7ac
-    assert(pkg && *pkg == NULL);
a1f7ac
-    assert(!err || *err == NULL);
a1f7ac
-
a1f7ac
-    cr_CbData *cb_data = cbdata;
a1f7ac
-
a1f7ac
-    GError *out_of_order_err = NULL;
a1f7ac
-    *pkg = find_in_progress_pkg(cb_data, pkgId, in_progress_count, &out_of_order_err);
a1f7ac
-
a1f7ac
-    if (!*pkg) {
a1f7ac
-        // we are handling never before seen package
a1f7ac
-
a1f7ac
-        if (cb_data->newpkgcb) {
a1f7ac
-            // user specified their own new function: call it
a1f7ac
-            if (cb_data->newpkgcb(pkg, pkgId, name, arch, cb_data->newpkgcb_data, err)) {
a1f7ac
-                return CR_CB_RET_ERR;
a1f7ac
-            }
a1f7ac
-            if (!*pkg) {
a1f7ac
-                // when the user callback doesn't return a pkg we should skip it,
a1f7ac
-                // this means out of order error doesn't apply
a1f7ac
-                g_clear_error(&out_of_order_err);
a1f7ac
-            }
a1f7ac
-        } else {
a1f7ac
-            *pkg = cr_package_new();
a1f7ac
-        }
a1f7ac
-
a1f7ac
-        store_in_progress_pkg(cb_data, *pkg, pkgId);
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (*err) {
a1f7ac
-        return CR_CB_RET_ERR;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (out_of_order_err) {
a1f7ac
-        g_propagate_error(err, out_of_order_err);
a1f7ac
-        return CR_CB_RET_ERR;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    return CR_CB_RET_OK;
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-newpkgcb_filelists(cr_Package **pkg,
a1f7ac
-                   const char *pkgId,
a1f7ac
-                   G_GNUC_UNUSED const char *name,
a1f7ac
-                   G_GNUC_UNUSED const char *arch,
a1f7ac
-                   void *cbdata,
a1f7ac
-                   GError **err)
a1f7ac
-{
a1f7ac
-    cr_CbData *cb_data = cbdata;
a1f7ac
-    return newpkg_general(pkg, pkgId, name, arch, cbdata, cb_data->in_progress_count_filelists, err);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-newpkgcb_other(cr_Package **pkg,
a1f7ac
-               const char *pkgId,
a1f7ac
-               G_GNUC_UNUSED const char *name,
a1f7ac
-               G_GNUC_UNUSED const char *arch,
a1f7ac
-               void *cbdata,
a1f7ac
-               GError **err)
a1f7ac
-{
a1f7ac
-    cr_CbData *cb_data = cbdata;
a1f7ac
-    return newpkg_general(pkg, pkgId, name, arch, cbdata, cb_data->in_progress_count_other, err);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-pkgcb_filelists(cr_Package *pkg, void *cbdata, G_GNUC_UNUSED GError **err)
a1f7ac
-{
a1f7ac
-    cr_CbData *cb_data = cbdata;
a1f7ac
-    cb_data->in_progress_count_filelists++;
a1f7ac
-    pkg->loadingflags |= CR_PACKAGE_LOADED_FIL;
a1f7ac
-    return call_user_callback_if_package_finished(pkg, cb_data, err);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-pkgcb_other(cr_Package *pkg, void *cbdata, G_GNUC_UNUSED GError **err)
a1f7ac
-{
a1f7ac
-    cr_CbData *cb_data = cbdata;
a1f7ac
-    cb_data->in_progress_count_other++;
a1f7ac
-    pkg->loadingflags |= CR_PACKAGE_LOADED_OTH;
a1f7ac
-    return call_user_callback_if_package_finished(pkg, cb_data, err);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static int
a1f7ac
-pkgcb_primary(cr_Package *pkg, void *cbdata, G_GNUC_UNUSED GError **err)
a1f7ac
-{
a1f7ac
-    cr_CbData *cb_data = cbdata;
a1f7ac
-
a1f7ac
-    GError *out_of_order_err = NULL;
a1f7ac
-    cr_Package *in_progress_pkg = find_in_progress_pkg(cb_data, pkg->pkgId, cb_data->in_progress_count_primary,
a1f7ac
-                                                       &out_of_order_err);
a1f7ac
-    if (in_progress_pkg) {
a1f7ac
-        // package was already encountered in some other metadata type
a1f7ac
-
a1f7ac
-        cr_package_copy_into(pkg, in_progress_pkg);
a1f7ac
-        cr_package_free(pkg);
a1f7ac
-        pkg = in_progress_pkg;
a1f7ac
-    } else {
a1f7ac
-        // we are handling never before seen package
a1f7ac
-
a1f7ac
-        if (cb_data->newpkgcb) {
a1f7ac
-            // user specified their own new function: call it and copy package data into user_created_pkg
a1f7ac
-            cr_Package *user_created_pkg = NULL;
a1f7ac
-            if (cb_data->newpkgcb(&user_created_pkg, pkg->pkgId, pkg->name, pkg->arch, cb_data->newpkgcb_data, err)) {
a1f7ac
-                return CR_CB_RET_ERR;
a1f7ac
-            } else {
a1f7ac
-                if (user_created_pkg) {
a1f7ac
-                    cr_package_copy_into(pkg, user_created_pkg);
a1f7ac
-                }
a1f7ac
-                // user_created_pkg can be NULL if newpkgcb returns OK but
a1f7ac
-                // not an allocated pkg -> this means we should skip it
a1f7ac
-                store_in_progress_pkg(cb_data, user_created_pkg, pkg->pkgId);
a1f7ac
-                cr_package_free(pkg);
a1f7ac
-                pkg = user_created_pkg;
a1f7ac
-            }
a1f7ac
-            if (!pkg) {
a1f7ac
-                // when the user callback doesn't return a pkg we should skip it,
a1f7ac
-                // this means out of order error doesn't apply
a1f7ac
-                g_clear_error(&out_of_order_err);
a1f7ac
-            }
a1f7ac
-        } else {
a1f7ac
-            store_in_progress_pkg(cb_data, pkg, pkg->pkgId);
a1f7ac
-        }
a1f7ac
-
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (*err) {
a1f7ac
-        return CR_CB_RET_ERR;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (out_of_order_err) {
a1f7ac
-        g_propagate_error(err, out_of_order_err);
a1f7ac
-        return CR_CB_RET_ERR;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-
a1f7ac
-    if (pkg) {
a1f7ac
-        cb_data->in_progress_count_primary++;
a1f7ac
-        pkg->loadingflags |= CR_PACKAGE_LOADED_PRI;
a1f7ac
-        pkg->loadingflags |= CR_PACKAGE_FROM_XML;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    return call_user_callback_if_package_finished(pkg, cb_data, err);
a1f7ac
-}
a1f7ac
-
a1f7ac
-static gboolean
a1f7ac
-parse_next_section(CR_FILE *target_file, const char *path, cr_ParserData *pd, GError **err)
a1f7ac
-{
a1f7ac
-    char buf[XML_BUFFER_SIZE];
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-    int parsed_len = cr_read(target_file, buf, XML_BUFFER_SIZE, &tmp_err);
a1f7ac
-    if (tmp_err) {
a1f7ac
-        g_critical("%s: Error while reading xml '%s': %s", __func__, path, tmp_err->message);
a1f7ac
-        g_propagate_prefixed_error(err, tmp_err, "Read error: ");
a1f7ac
-        return FALSE;
a1f7ac
-    }
a1f7ac
-    int done = parsed_len == 0;
a1f7ac
-    if (xmlParseChunk(pd->parser, buf, parsed_len, done)) {
a1f7ac
-        xmlErrorPtr xml_err = xmlCtxtGetLastError(pd->parser);
a1f7ac
-        g_critical("%s: parsing error '%s': %s", __func__, path,
a1f7ac
-                   (xml_err) ? xml_err->message : "UNKNOWN_ERROR");
a1f7ac
-        g_set_error(err, ERR_DOMAIN, CRE_XMLPARSER,
a1f7ac
-                    "Parse error '%s' at line: %d (%s)",
a1f7ac
-                    path,
a1f7ac
-                    (xml_err) ? (int) xml_err->line : 0,
a1f7ac
-                    (xml_err) ? (char *) xml_err->message : "UNKNOWN_ERROR");
a1f7ac
-        return FALSE;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    if (pd->err) {
a1f7ac
-        g_propagate_error(err, pd->err);
a1f7ac
-        return FALSE;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    return done;
a1f7ac
-}
a1f7ac
-
a1f7ac
-//TODO(amatej): there is quite some overlap with this and cr_load_xml_files,
a1f7ac
-//              we could use this api and just wrap it in cr_loax_xml_files?
a1f7ac
-int cr_xml_parse_main_metadata_together(const char *primary_path,
a1f7ac
-                                        const char *filelists_path,
a1f7ac
-                                        const char *other_path,
a1f7ac
-                                        cr_XmlParserNewPkgCb newpkgcb,
a1f7ac
-                                        void *newpkgcb_data,
a1f7ac
-                                        cr_XmlParserPkgCb pkgcb,
a1f7ac
-                                        void *pkgcb_data,
a1f7ac
-                                        cr_XmlParserWarningCb warningcb,
a1f7ac
-                                        void *warningcb_data,
a1f7ac
-                                        gboolean allow_out_of_order,
a1f7ac
-                                        GError **err)
a1f7ac
-{
a1f7ac
-    int ret = CRE_OK;
a1f7ac
-    CR_FILE *primary_f = NULL;
a1f7ac
-    CR_FILE *filelists_f = NULL;
a1f7ac
-    CR_FILE *other_f = NULL;
a1f7ac
-    GError *tmp_err = NULL;
a1f7ac
-
a1f7ac
-    cr_CbData cbdata;
a1f7ac
-    cbdata.in_progress_pkgs_list = NULL;
a1f7ac
-    cbdata.in_progress_pkgs_hash = NULL;
a1f7ac
-    cbdata.newpkgcb = newpkgcb;
a1f7ac
-    cbdata.newpkgcb_data = newpkgcb_data;
a1f7ac
-    cbdata.pkgcb = pkgcb;
a1f7ac
-    cbdata.pkgcb_data = pkgcb_data;
a1f7ac
-
a1f7ac
-    if (allow_out_of_order) {
a1f7ac
-        cbdata.in_progress_pkgs_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    assert(primary_path);
a1f7ac
-    assert(filelists_path);
a1f7ac
-    assert(other_path);
a1f7ac
-    assert(newpkgcb || pkgcb);
a1f7ac
-    assert(!err || *err == NULL);
a1f7ac
-
a1f7ac
-    cr_ParserData *primary_pd = NULL;
a1f7ac
-    cr_ParserData *filelists_pd = NULL;
a1f7ac
-    cr_ParserData *other_pd = NULL;
a1f7ac
-
a1f7ac
-    primary_f = cr_open(primary_path, CR_CW_MODE_READ, CR_CW_AUTO_DETECT_COMPRESSION, &tmp_err);
a1f7ac
-    if (tmp_err) {
a1f7ac
-        ret = tmp_err->code;
a1f7ac
-        g_propagate_prefixed_error(err, tmp_err, "Cannot open %s: ", primary_path);
a1f7ac
-        g_clear_error(&tmp_err);
a1f7ac
-        goto out;
a1f7ac
-    }
a1f7ac
-    filelists_f = cr_open(filelists_path, CR_CW_MODE_READ, CR_CW_AUTO_DETECT_COMPRESSION, &tmp_err);
a1f7ac
-    if (tmp_err) {
a1f7ac
-        ret = tmp_err->code;
a1f7ac
-        g_propagate_prefixed_error(err, tmp_err, "Cannot open %s: ", filelists_path);
a1f7ac
-        g_clear_error(&tmp_err);
a1f7ac
-        goto out;
a1f7ac
-    }
a1f7ac
-    other_f = cr_open(other_path, CR_CW_MODE_READ, CR_CW_AUTO_DETECT_COMPRESSION, &tmp_err);
a1f7ac
-    if (tmp_err) {
a1f7ac
-        ret = tmp_err->code;
a1f7ac
-        g_propagate_prefixed_error(err, tmp_err, "Cannot open %s: ", other_path);
a1f7ac
-        g_clear_error(&tmp_err);
a1f7ac
-        goto out;
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    //TODO(amatej): In the future we could make filelists/other optional if there is a need for it. That would mean we
a1f7ac
-    //              should replace the last 0 in primary_parser_data_new depending on whether we have filelists or not.
a1f7ac
-    primary_pd = primary_parser_data_new(newpkgcb_primary, &cbdata, pkgcb_primary, &cbdata, warningcb, warningcb_data, 0);
a1f7ac
-    filelists_pd = filelists_parser_data_new(newpkgcb_filelists, &cbdata, pkgcb_filelists, &cbdata, warningcb, warningcb_data);
a1f7ac
-    other_pd = other_parser_data_new(newpkgcb_other, &cbdata, pkgcb_other, &cbdata, warningcb, warningcb_data);
a1f7ac
-
a1f7ac
-    gboolean primary_is_done = 0;
a1f7ac
-    gboolean filelists_is_done = 0;
a1f7ac
-    gboolean other_is_done = 0;
a1f7ac
-    cbdata.in_progress_count_primary = 0;
a1f7ac
-    cbdata.in_progress_count_filelists = 0;
a1f7ac
-    cbdata.in_progress_count_other = 0;
a1f7ac
-    while (!primary_is_done || !filelists_is_done || !other_is_done) {
a1f7ac
-        while ((cbdata.in_progress_count_primary <= cbdata.in_progress_count_filelists ||
a1f7ac
-                cbdata.in_progress_count_primary <= cbdata.in_progress_count_other) &&
a1f7ac
-               !primary_is_done)
a1f7ac
-        {
a1f7ac
-            primary_is_done = parse_next_section(primary_f, primary_path, primary_pd, err);
a1f7ac
-            if (*err) {
a1f7ac
-                ret = (*err)->code;
a1f7ac
-                goto out;
a1f7ac
-            }
a1f7ac
-
a1f7ac
-        }
a1f7ac
-
a1f7ac
-        while ((cbdata.in_progress_count_filelists <= cbdata.in_progress_count_primary ||
a1f7ac
-                cbdata.in_progress_count_filelists <= cbdata.in_progress_count_other) &&
a1f7ac
-               !filelists_is_done)
a1f7ac
-        {
a1f7ac
-            filelists_is_done = parse_next_section(filelists_f, filelists_path, filelists_pd, err);
a1f7ac
-            if (*err) {
a1f7ac
-                ret = (*err)->code;
a1f7ac
-                goto out;
a1f7ac
-            }
a1f7ac
-        }
a1f7ac
-
a1f7ac
-        while ((cbdata.in_progress_count_other <= cbdata.in_progress_count_filelists ||
a1f7ac
-                cbdata.in_progress_count_other <= cbdata.in_progress_count_primary) &&
a1f7ac
-               !other_is_done)
a1f7ac
-        {
a1f7ac
-            other_is_done = parse_next_section(other_f, other_path, other_pd, err);
a1f7ac
-            if (*err) {
a1f7ac
-                ret = (*err)->code;
a1f7ac
-                goto out;
a1f7ac
-            }
a1f7ac
-        }
a1f7ac
-    }
a1f7ac
-
a1f7ac
-out:
a1f7ac
-    if (ret != CRE_OK) {
a1f7ac
-        // An error already encountered
a1f7ac
-        // just close the file without error checking
a1f7ac
-        cr_close(primary_f, NULL);
a1f7ac
-        cr_close(filelists_f, NULL);
a1f7ac
-        cr_close(other_f, NULL);
a1f7ac
-    } else {
a1f7ac
-        // No error encountered yet
a1f7ac
-        cr_close(primary_f, &tmp_err);
a1f7ac
-        if (!tmp_err)
a1f7ac
-            cr_close(filelists_f, &tmp_err);
a1f7ac
-        if (!tmp_err)
a1f7ac
-            cr_close(other_f, &tmp_err);
a1f7ac
-        if (tmp_err) {
a1f7ac
-            ret = tmp_err->code;
a1f7ac
-            g_propagate_prefixed_error(err, tmp_err, "Error while closing: ");
a1f7ac
-        }
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    cr_xml_parser_data_free(primary_pd);
a1f7ac
-    cr_xml_parser_data_free(filelists_pd);
a1f7ac
-    cr_xml_parser_data_free(other_pd);
a1f7ac
-
a1f7ac
-    if (allow_out_of_order) {
a1f7ac
-        g_hash_table_destroy(cbdata.in_progress_pkgs_hash);
a1f7ac
-    } else {
a1f7ac
-        cr_slist_free_full(cbdata.in_progress_pkgs_list, (GDestroyNotify) cr_package_free);
a1f7ac
-    }
a1f7ac
-
a1f7ac
-    return ret;
a1f7ac
-}
a1f7ac
-- 
a1f7ac
2.35.1
a1f7ac