import libmodulemd-2.5.0-2.el8

This commit is contained in:
CentOS Sources 2019-08-01 10:41:09 -04:00 committed by Stepan Oksanichenko
commit 948fdb30d2
6 changed files with 760 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/modulemd-2.5.0.tar.xz

1
.libmodulemd.metadata Normal file
View File

@ -0,0 +1 @@
2b6c3443a36ec821fd289ae6605e9dea4c5dbcda SOURCES/modulemd-2.5.0.tar.xz

View File

@ -0,0 +1,29 @@
From 1a7bf143761ff8e3f4f6585b82c0be4dbd511fca Mon Sep 17 00:00:00 2001
From: Stephen Gallagher <sgallagh@redhat.com>
Date: Thu, 23 May 2019 14:00:36 -0400
Subject: [PATCH 1/3] Double valgrind timeout
On some architectures under heavy load, the valgrind check on v2
is taking a long time.
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
---
modulemd/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modulemd/meson.build b/modulemd/meson.build
index 47bd1f58e6401d2634d8ff737c2b347f5ebc6bf5..e49c7a9df76dcf37a18ddeba3150d6c914aa4e25 100644
--- a/modulemd/meson.build
+++ b/modulemd/meson.build
@@ -313,7 +313,7 @@ endif
if valgrind.found()
modulemd_valgrind_scripts = files('common/tests/test-valgrind.py')
test ('valgrind', python3,
env : test_env,
args : modulemd_valgrind_scripts,
- timeout : 600)
+ timeout : 1200)
endif
--
2.21.0

View File

@ -0,0 +1,136 @@
From d9b41f72d4b2d545b2600aff7bd8a27ed0093750 Mon Sep 17 00:00:00 2001
From: Stephen Gallagher <sgallagh@redhat.com>
Date: Wed, 29 May 2019 11:33:57 -0400
Subject: [PATCH 2/3] Parallelize the valgrind tests
This considerably reduces the time needed to perform the valgrind
memory tests on systems with multiple available processors. In the
case of my laptop, the duration was reduced from ~200s to 90s.
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
---
modulemd/common/tests/test-valgrind.py | 74 ++++++++++++++------------
1 file changed, 41 insertions(+), 33 deletions(-)
diff --git a/modulemd/common/tests/test-valgrind.py b/modulemd/common/tests/test-valgrind.py
index 9be72c705fde79aa305d831eaa4f31f7e2cc663f..9349749658ccca0529776f3d534664d614c1cb4d 100644
--- a/modulemd/common/tests/test-valgrind.py
+++ b/modulemd/common/tests/test-valgrind.py
@@ -16,13 +16,16 @@ import os
import sys
import subprocess
import tempfile
import xml.etree.ElementTree as ET
+from multiprocessing import Pool, TimeoutError
+
if os.getenv('MMD_SKIP_VALGRIND'):
sys.exit(77)
+
failed = False
# Get the list of tests to run
proc_result = subprocess.run(['meson', 'test', '--list'],
stdout=subprocess.PIPE,
@@ -47,13 +50,13 @@ for test in unfiltered_tests:
test == 'test_dirty_repo' or
test == 'valgrind'):
continue
tests.append(test)
+
with tempfile.TemporaryDirectory(prefix="libmodulemd_valgrind_") as tmpdirname:
- for test in tests:
- # TODO: auto-detect the location of the suppression file
+ def exec_valgrind(test):
valgrind_command = "/usr/bin/valgrind " \
"--leak-check=full " \
"--suppressions=/usr/share/glib-2.0/valgrind/glib.supp " \
"--xml=yes " \
"--xml-file=%s/%s.xml " % (tmpdirname, test)
@@ -64,45 +67,50 @@ with tempfile.TemporaryDirectory(prefix="libmodulemd_valgrind_") as tmpdirname:
'-t', '10',
'--logbase=%s' % test,
'--wrap=%s' % valgrind_command,
test])
- if proc_result.returncode != 0:
- print("Valgrind exited with an error on %s" % test,
- file=sys.stderr)
- failed = True
- continue
+ return proc_result.returncode, test
- # Process the XML for leaks
- tree = ET.parse('%s/%s.xml' % (tmpdirname, test))
- root = tree.getroot()
+ with Pool() as pool:
+ for returncode, test in pool.map(exec_valgrind, tests):
+ if returncode != 0:
+ print("Valgrind exited with an error on %s" % test,
+ file=sys.stderr)
+ failed = True
+ continue
- for root_child in root:
- if (root_child.tag == "error"):
- for error_child in root_child:
- if error_child.tag == 'kind':
- if error_child.text == 'Leak_DefinitelyLost':
- print("Memory leak detected in %s" % test,
- file=sys.stderr)
- failed = True
+ # Process the XML for leaks
+ tree = ET.parse('%s/%s.xml' % (tmpdirname, test))
+ root = tree.getroot()
- elif error_child.text == 'InvalidFree':
- print("Invalid free() detected in %s" % test,
- file=sys.stderr)
- failed = True
+ for root_child in root:
+ if (root_child.tag == "error"):
+ for error_child in root_child:
+ if error_child.tag == 'kind':
+ if error_child.text == 'Leak_DefinitelyLost':
+ print("Memory leak detected in %s" % test,
+ file=sys.stderr)
+ failed = True
- elif error_child.text == 'InvalidRead':
- print("Invalid read detected in %s" % test,
- file=sys.stderr)
- failed = True
+ elif error_child.text == 'InvalidFree':
+ print("Invalid free() detected in %s" % test,
+ file=sys.stderr)
+ failed = True
- elif error_child.text == 'UninitCondition':
- print("Uninitialized usage detected in %s" % test,
- file=sys.stderr)
- failed = True
- if failed:
- with open('%s/%s.xml' % (tmpdirname, test), 'r') as xml:
- print(xml.read())
+ elif error_child.text == 'InvalidRead':
+ print("Invalid read detected in %s" % test,
+ file=sys.stderr)
+ failed = True
+
+ elif error_child.text == 'UninitCondition':
+ print(
+ "Uninitialized usage detected in %s" %
+ test, file=sys.stderr)
+ failed = True
+ if failed:
+ with open('%s/%s.xml' % (tmpdirname, test), 'r') as xml:
+ print(xml.read())
if failed:
sys.exit(1)
--
2.21.0

View File

@ -0,0 +1,150 @@
From 340e316bd6384562086b4e381c8cd42b1ccd0781 Mon Sep 17 00:00:00 2001
From: Stephen Gallagher <sgallagh@redhat.com>
Date: Tue, 28 May 2019 14:28:30 -0400
Subject: [PATCH 3/3] Fix transfer type for Module.search_streams()
Technically this is an API-breaking change, but no one is using it
yet and it was always expected to be managed this way.
Fixes: https://github.com/fedora-modularity/libmodulemd/issues/308
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
---
modulemd/meson.build | 1 +
.../v2/include/modulemd-2.0/modulemd-module.h | 4 +-
modulemd/v2/meson.build | 17 ++++++-
modulemd/v2/tests/ModulemdTests/module.py | 46 +++++++++++++++++++
4 files changed, 65 insertions(+), 3 deletions(-)
create mode 100644 modulemd/v2/tests/ModulemdTests/module.py
diff --git a/modulemd/meson.build b/modulemd/meson.build
index e49c7a9df76dcf37a18ddeba3150d6c914aa4e25..e5912d4041ba3e427d13b98c0eeca5217d48244b 100644
--- a/modulemd/meson.build
+++ b/modulemd/meson.build
@@ -229,10 +229,11 @@ test_v2_python_scripts = files(
'v2/tests/ModulemdTests/componentrpm.py',
'v2/tests/ModulemdTests/defaults.py',
'v2/tests/ModulemdTests/defaultsv1.py',
'v2/tests/ModulemdTests/dependencies.py',
'v2/tests/ModulemdTests/merger.py',
+ 'v2/tests/ModulemdTests/module.py',
'v2/tests/ModulemdTests/moduleindex.py',
'v2/tests/ModulemdTests/modulestream.py',
'v2/tests/ModulemdTests/profile.py',
'v2/tests/ModulemdTests/rpmmap.py',
'v2/tests/ModulemdTests/servicelevel.py',
diff --git a/modulemd/v2/include/modulemd-2.0/modulemd-module.h b/modulemd/v2/include/modulemd-2.0/modulemd-module.h
index 45be9c0ae96e203707da61d84f18c71c4a826035..0219cfe227652813d20bdf736f9033782084c5ad 100644
--- a/modulemd/v2/include/modulemd-2.0/modulemd-module.h
+++ b/modulemd/v2/include/modulemd-2.0/modulemd-module.h
@@ -129,12 +129,12 @@ modulemd_module_get_stream_by_NSVC (ModulemdModule *self,
* @context: (nullable): The context of the stream to retrieve. If NULL, the
* context is not included in the search.
* @arch: (nullable): The processor architecture of the stream to retrieve. If
* NULL, the architecture is not included in the search.
*
- * Returns: (transfer full) (element-type ModulemdModuleStream): The list of
- * stream objects matching the requested parameters. This function cannot
+ * Returns: (transfer container) (element-type ModulemdModuleStream): The list
+ * of stream objects matching the requested parameters. This function cannot
* fail, but it may return a zero-length list if no matches were found. The
* returned streams will be in a predictable order, sorted first by stream
* name, then by version (highest to lowest), then by context and finally by
* architecture.
*
diff --git a/modulemd/v2/meson.build b/modulemd/v2/meson.build
index 3f45db2c4e0e9a8996c74dffd949d5276082dc6f..e8a5a38f0528c4f860f0b84ef63609ff5fd89caa 100644
--- a/modulemd/v2/meson.build
+++ b/modulemd/v2/meson.build
@@ -390,20 +390,35 @@ test ('dependencies_python2_debug', python2,
args : dependencies_python_script)
test ('dependencies_python2_release', python2,
env : py_test_release_env,
args : dependencies_python_script)
+# -- Test Modulemd.Module (Python) -- #
+module_python_script = files('tests/ModulemdTests/module.py')
+test ('module_python3_debug', python3,
+ env : py_test_env,
+ args : module_python_script)
+test ('module_python3_release', python3,
+ env : py_test_release_env,
+ args : module_python_script)
+
+test ('module_python2_debug', python2,
+ env : py_test_env,
+ args : module_python_script)
+test ('module_python2_release', python2,
+ env : py_test_release_env,
+ args : module_python_script)
+
# -- Test Modulemd.ModuleIndex (Python) -- #
moduleindex_python_script = files('tests/ModulemdTests/moduleindex.py')
test ('moduleindex_python3_debug', python3,
env : py_test_env,
args : moduleindex_python_script)
test ('moduleindex_python3_release', python3,
env : py_test_release_env,
args : moduleindex_python_script)
-moduleindex_python_script = files('tests/ModulemdTests/moduleindex.py')
test ('moduleindex_python2_debug', python2,
env : py_test_env,
args : moduleindex_python_script)
test ('moduleindex_python2_release', python2,
env : py_test_release_env,
diff --git a/modulemd/v2/tests/ModulemdTests/module.py b/modulemd/v2/tests/ModulemdTests/module.py
new file mode 100644
index 0000000000000000000000000000000000000000..b604d9c9b357c4a5211d3ba5b4d0aba08c3a42bd
--- /dev/null
+++ b/modulemd/v2/tests/ModulemdTests/module.py
@@ -0,0 +1,46 @@
+#!/usr/bin/python3
+
+# This file is part of libmodulemd
+# Copyright (C) 2017-2018 Stephen Gallagher
+#
+# Fedora-License-Identifier: MIT
+# SPDX-2.0-License-Identifier: MIT
+# SPDX-3.0-License-Identifier: MIT
+#
+# This program is free software.
+# For more information on the license, see COPYING.
+# For more information on free software, see
+# <https://www.gnu.org/philosophy/free-sw.en.html>.
+
+from os import path
+import sys
+try:
+ import unittest
+ import gi
+ gi.require_version('Modulemd', '2.0')
+ from gi.repository import Modulemd
+ from gi.repository.Modulemd import ModuleIndex
+ from gi.repository import GLib
+except ImportError:
+ # Return error 77 to skip this test on platforms without the necessary
+ # python modules
+ sys.exit(77)
+
+from base import TestBase
+
+
+class TestModule(TestBase):
+
+ def test_search_streams(self):
+ idx = Modulemd.ModuleIndex.new()
+ idx.update_from_file(path.join(self.source_root,
+ "modulemd/v2/tests/test_data/f29.yaml"),
+ True)
+ module = idx.get_module('nodejs')
+
+ self.assertEquals(len(module.search_streams('8', 0)), 1)
+ self.assertEquals(len(module.search_streams('10', 0)), 1)
+
+
+if __name__ == '__main__':
+ unittest.main()
--
2.21.0

443
SPECS/libmodulemd.spec Normal file
View File

@ -0,0 +1,443 @@
%global libmodulemd_version 2.5.0
%global libmodulemd_v1_version 1.8.11
Name: libmodulemd
Version: %{libmodulemd_version}
Release: 2%{?dist}
Summary: Module metadata manipulation library
License: MIT
URL: https://github.com/fedora-modularity/libmodulemd
Source0: %{url}/releases/download/%{name}-%{version}/modulemd-%{version}.tar.xz
BuildRequires: meson >= 0.47
BuildRequires: pkgconfig
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(yaml-0.1)
BuildRequires: pkgconfig(gtk-doc)
BuildRequires: python3-devel
BuildRequires: python3-gobject-base
%ifarch %{valgrind_arches}
BuildRequires: valgrind
%endif
# Make sure we upgrade libmodulemd1 to match
Conflicts: libmodulemd1 < %{libmodulemd_v1_version}-%{release}
# Patches
Patch0001: 0001-Double-valgrind-timeout.patch
Patch0002: 0002-Parallelize-the-valgrind-tests.patch
Patch0003: 0003-Fix-transfer-type-for-Module.search_streams.patch
%description
C Library for manipulating module metadata files.
See https://github.com/fedora-modularity/libmodulemd/blob/master/README.md for
more details.
%package -n python3-%{name}
Summary: Python 3 bindings for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python3-gobject-base
Requires: %{py3_dist six}
Obsoletes: python3-modulemd < 1.3.4
%description -n python3-%{name}
Python 3 bindings for %{name}
%package devel
Summary: Development files for libmodulemd
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
Development files for libmodulemd.
%package -n libmodulemd1
Summary: Compatibility package for libmodulemd 1.x
Version: %{libmodulemd_v1_version}
Obsoletes: libmodulemd < 2
Provides: libmodulemd = %{libmodulemd_v1_version}-%{release}
Provides: libmodulemd%{?_isa} = %{libmodulemd_v1_version}-%{release}
%description -n libmodulemd1
Compatibility library for libmodulemd 1.x
%package -n libmodulemd1-devel
Summary: Compatibility development package for libmodulemd 1.x
Version: %{libmodulemd_v1_version}
Requires: libmodulemd1%{?_isa} = %{libmodulemd_v1_version}-%{release}
Conflicts: %{name}-devel
Obsoletes: libmodulemd-devel < 2
Provides: libmodulemd-devel = %{libmodulemd_v1_version}-%{release}
RemovePathPostfixes: .compat
%description -n libmodulemd1-devel
Development files for libmodulemd 1.x
%package -n python3-libmodulemd1
Summary: Python 3 bindings for %{name}1
Version: %{libmodulemd_v1_version}
Requires: libmodulemd1 = %{libmodulemd_v1_version}-%{release}
Requires: python3-gobject-base
Obsoletes: python3-libmodulemd < 2
Provides: python3-libmodulemd = %{libmodulemd_v1_version}-%{release}
%description -n python3-libmodulemd1
Python 3 bindings for libmodulemd1
%prep
%autosetup -p1 -n modulemd-%{libmodulemd_version}
%build
%define _vpath_builddir api1
%meson -Ddeveloper_build=false -Dbuild_api_v1=true -Dbuild_api_v2=false
%meson_build
%define _vpath_builddir api2
%meson -Ddeveloper_build=false -Dbuild_api_v1=false -Dbuild_api_v2=true -Dwith_py3_overrides=true -Dwith_py2_overrides=false
%meson_build
%check
export LC_CTYPE=C.utf8
%ifarch %{power64} s390x
# Valgrind is broken on ppc64[le] with GCC7:
# https://bugs.kde.org/show_bug.cgi?id=386945
export MMD_SKIP_VALGRIND=1
%endif
%ifnarch %{valgrind_arches}
export MMD_SKIP_VALGRIND=1
%endif
%define _vpath_builddir api1
%meson_test
%define _vpath_builddir api2
%meson_test
%install
%define _vpath_builddir api1
%meson_install
%define _vpath_builddir api2
%meson_install
ln -s libmodulemd.so.%{libmodulemd_v1_version} \
%{buildroot}%{_libdir}/%{name}.so.compat
%files
%license COPYING
%doc README.md
%{_bindir}/modulemd-validator
%{_libdir}/%{name}.so.2*
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/Modulemd-2.0.typelib
%files devel
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/modulemd-2.0.pc
%{_includedir}/modulemd-2.0/
%dir %{_datadir}/gir-1.0
%{_datadir}/gir-1.0/Modulemd-2.0.gir
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%{_datadir}/gtk-doc/html/modulemd-2.0/
%files -n python3-%{name}
%{python3_sitearch}/gi/overrides/
%files -n python3-libmodulemd1
%files -n libmodulemd1
%license COPYING
%doc README.md
%{_bindir}/modulemd-validator-v1
%{_libdir}/%{name}.so.1*
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/Modulemd-1.0.typelib
%files -n libmodulemd1-devel
%{_libdir}/%{name}.so.compat
%{_libdir}/pkgconfig/modulemd.pc
%{_includedir}/modulemd/
%dir %{_datadir}/gir-1.0
%{_datadir}/gir-1.0/Modulemd-1.0.gir
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%{_datadir}/gtk-doc/html/modulemd-1.0/
%changelog
* Wed May 29 2019 Stephen Gallagher <sgallagh@redhat.com> - 2.5.0-2
- Fix memory corruption error using Module.search_rpms() from python
- Speed up valgrind tests
- Resolves: rhbz#1714766
* Wed May 22 2019 Stephen Gallagher <sgallagh@redhat.com> - 2.5.0-1
- Rebase to 2.5.0 and 1.8.11
- Related: rhbz#1693680
* Mon May 13 2019 Stephen Gallagher <sgallagh@redhat.com> - 2.4.0-1
- Rebase to 2.4.0 and 1.8.10
- Resolves: rhbz#1693680
* Fri Jan 18 2019 Stephen Gallagher <sgallagh@redhat.com> - 2.0.0-5
- Don't fail merges when default streams differ
- Resolves: rhbz#1666871
* Wed Jan 16 2019 Stephen Gallagher <sgallagh@redhat.com> - 2.0.0-4
- Include modified value when copying Defaults objects
- Resolves: rhbz#1665465
* Thu Dec 13 2018 Stephen Gallagher <sgallagh@redhat.com> - 2.0.0-3
- Keep libmodulemd1 in sync with libmodulemd
* Thu Dec 13 2018 Stephen Gallagher <sgallagh@redhat.com> - 2.0.0-2
- Fix package location of modulemd-validator
* Thu Dec 13 2018 Stephen Gallagher <sgallagh@redhat.com> - 2.0.0-1
- Update to 2.0.0 final
- Assorted fixes for validation
- Add modulemd-validator tool based on v2 code
- Fix a crash when merging defaults
- Add missing BuildRequires
* Tue Dec 11 2018 Stephen Gallagher <sgallagh@redhat.com> - 2.0.0-0.beta2
- Update to 2.0.0beta2
- Better validation of stored content during read and write operations
- ModuleIndex now returns FALSE if any subdocument fails
- Fix tests on 32-bit platforms
- Make unknown keys in YAML maps non-fatal for libmodulemd1
- Make unknown keys in YAML maps optionally fatal for libmodulemd 2.x
- Fix RPM version requirements for libmodulemd1
* Mon Dec 10 2018 Stephen Gallagher <sgallagh@redhat.com> - 2.0.0-0.beta1
- Total rewrite to 2.0 API
- Resolves: rhbz#1646436
* Thu Aug 09 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.6.2-2
- Fix backwards-incompatible API change
- Resolves: rhbz#1607083
* Tue Aug 07 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.6.2-1
- Update to 1.6.2
- Make buildorder a signed integer to match modulemd specification
- Obsolete unsupported pythonX-modulemd packages
* Fri Aug 3 2018 Florian Weimer <fweimer@redhat.com> - 1.6.1-2
- Honor %%{valgrind_arches}
* Fri Jul 20 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.6.1-1
- Update to 1.6.1
- Fix header include ordering
- Suppress empty sections from .dump() ordering
* Wed Jul 18 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.6.0-1
- Update to 1.6.0
- Adds Modulemd.ModuleStream object, deprecating Modulemd.Module
- Adds Modulemd.Translation and Modulemd.TranslationEntry objects
- Adds Modulemd.ImprovedModule object that collects streams, defaults and
translations together
- Adds new Modulemd.index_from_*() funtions to get a hash table of
Modulemd.ImprovedModule objects for easier searching
- Moves function documentation to the public headers
- Corrects the license headers to MIT (they were incorrectly listed as MITNFA
in previous releases)
- Makes the "eol" field optional for Modulemd.ServiceLevel
- Clean up HTML documentation
- Fixes a type error on 32-bit systems
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sat Jun 23 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.5.2-1
- Update to libdmodulemd 1.5.2
- Don't free uninitialized memory
* Fri Jun 22 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.5.1-2
- Fix buildopts property not being initialized
* Tue Jun 19 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.5.1-1
- Update to version 1.5.1
- Re-enable build-time tests
* Mon Jun 18 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.5.0-2
- Temporarily disable build-time tests
* Mon Jun 18 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.5.0-1
- Update to version 1.5.0
- Adds support for "intents" in Modulemd.Defaults
- Adds `Modulemd.get_version()`
- Adds support for RPM whitelists in the buildopts
- Adds a new object: Modulemd.Buildopts
- Deprecates Modulemd.Module.get_rpm_buildopts()
- Deprecates Modulemd.Module.set_rpm_buildopts()
- Fixes some missing license blurbs
* Tue May 08 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.4.1-1
- Update to version 1.4.1
- Improve output from modulemd-validator
- Drop upstreamed patches
* Wed Apr 25 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.4.0-2
- Fix pointer math error
- Fix compilation failure in Fedora build system
* Wed Apr 25 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.4.0-1
- Update to version 1.4.0
- Adds new API for returning failed YAML subdocuments
- Stop emitting log messages by default (polluting consumer logs)
- Validate RPM artifacts for proper NEVRA format
- Improve the validator tool
- Drop upstreamed patch
* Mon Apr 16 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.3.0-2
- Fix serious error in modulemd-defaults emitter
* Fri Apr 13 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.3.0-1
- Update to version 1.3.0
- New Public Objects:
* Modulemd.Prioritizer - tool to merge module defaults
- New Public Functions:
* Modulemd.SimpleSet.is_equal()
* Modulemd.Defaults.copy()
* Modulemd.Defaults.merge()
* Wed Apr 04 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.2.0-1
- Update to version 1.2.0
- New Functions:
* Modulemd.objects_from_file()
* Modulemd.objects_from_string()
* Modulemd.dump()
* Modulemd.dumps()
* Modulemd.Defaults.new_from_file()
* Modulemd.Defaults.new_from_string()
- Deprecated Functions:
* Modulemd.Module.new_all_from_file()
* Modulemd.Module.new_all_from_file_ext()
* Modulemd.Module.new_all_from_string()
* Modulemd.Module.new_all_from_string_ext()
* Modulemd.Module.dump_all()
* Modulemd.Module.dumps_all()
- Bugfixes
* Properly use G_BEGIN_DECLS and G_END_DECLS in headers
* Assorted fixes for memory ownership in GObject Introspection
* Fri Mar 23 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.1.3-2
- Fix missing G_END_DECL from public headers
* Mon Mar 19 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.1.3-1
- Fix numerous memory leaks
- Drop upstreamed patch
* Thu Mar 15 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.1.2-1
- Update to version 1.1.2
- Revert backwards-incompatible API change
- Fix version string in pkgconfig file
* Thu Mar 15 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.1.1-1
- Update to version 1.1.1
- Make default stream and profiles optional
- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/25
- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/26
- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/27
* Wed Mar 14 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.1.0-1
- Update to version 1.1.0
- Adds support for handling modulemd-defaults YAML documents
- Adds peek()/dup() routines to all object properties
- Adds Modulemd.Module.dup_nsvc() to retrieve the canonical form of the unique module identifier.
- Adds support for boolean types in the XMD section
- Revert obsoletion of pythonX-modulemd packages for now
* Tue Mar 13 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.0.4-2
- Obsolete unsupported pythonX-modulemd packages
* Tue Feb 27 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.0.4-1
- Update to 1.0.4
- Rework version autodetection
- Avoid infinite loop on unparseable YAML
* Sun Feb 25 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.0.3-1
- RPM components are properly emitted when no module components exist
- Parser works around late determination of modulemd version
* Fri Feb 16 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.0.2-1
- Be more strict with certain parser edge-cases
- Replace popt argument processing with glib
- Drop upstreamed patches
* Thu Feb 15 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.0.1-2
- Handle certain unlikely format violations
* Thu Feb 15 2018 Stephen Gallagher <sgallagh@redhat.com> - 1.0.1-1
- Support modulemd v2
- Add tool to do quick validation of modulemd
- Fix memory management
- Warn and ignore unparseable sub-documents in the YAML
- Fix several memory issues detected by Coverity scan
* Tue Feb 06 2018 Stephen Gallagher <sgallagh@redhat.com> - 0.2.2-1
- Update to libmodulemd 0.2.2
- Fix numerous minor memory leaks
- Fix issues with EOL/SL dates
* Tue Feb 06 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.2.1-3
- Own appropriate directories
* Fri Feb 02 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.2.1-2
- Switch to %%ldconfig_scriptlets
* Fri Jan 05 2018 Stephen Gallagher <sgallagh@redhat.com> - 0.2.1-1
- Update to libmodulemd 0.2.1
- Add 'name' property for Profiles
* Thu Oct 05 2017 Stephen Gallagher <sgallagh@redhat.com> - 0.2.0-2
- Add missing BuildRequires for gtk-doc
* Thu Oct 05 2017 Stephen Gallagher <sgallagh@redhat.com> - 0.2.0-1
- Update to libmodulemd 0.2.0
- Adds gtk-doc generated documentation
- (ABI-break) Makes all optional properties accept NULL as a value to clear
them
- (ABI-break) Modulemd.SimpleSet takes a STRV (char **) instead of a
GLib.PtrArray
- Fixes a bug where the name was not always set for components
- Adds support for dumping YAML from the introspected API
- Includes add/remove routines for profiles
* Sat Sep 30 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.1.0-5
- Use %%_isa in Requires for main package from devel
* Mon Sep 18 2017 Stephen Gallagher <sgallagh@redhat.com> - 0.1.0-4
- Correct the license to MIT
* Mon Sep 18 2017 Stephen Gallagher <sgallagh@redhat.com> - 0.1.0-3
- Modifications requested during package review
* Fri Sep 15 2017 Stephen Gallagher <sgallagh@redhat.com> - 0.1.0-2
- First public release