diff --git a/build-infra.sh b/build-infra.sh new file mode 100755 index 0000000..b978ffe --- /dev/null +++ b/build-infra.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -e + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +NAME=libmodulemd1 +VERSION=$(rpm -q --specfile --qf='%{version}\n' $SCRIPT_DIR/libmodulemd.spec | head -n1) +RELEASE=$(rpm -q --define 'dist .el7.infra' --specfile --qf='%{release}\n' $SCRIPT_DIR/libmodulemd.spec | head -n1) + +rpmbuild --define "_sourcedir $SCRIPT_DIR" \ + --define "_specdir $SCRIPT_DIR" \ + --define "_builddir $SCRIPT_DIR" \ + --define "_srcrpmdir $SCRIPT_DIR" \ + --define "_rpmdir $SCRIPT_DIR" \ + --define 'dist .el7.infra' \ + --define 'rhel 7' \ + --eval '%undefine fedora' \ + --define 'el7 1' \ + --eval '%undefine fc30' \ + --nodeps \ + -bs \ + $SCRIPT_DIR/libmodulemd.spec + +if [ -f $SCRIPT_DIR/$NAME-$VERSION-$RELEASE.src.rpm ]; then + koji build epel7-infra $SCRIPT_DIR/$NAME-$VERSION-$RELEASE.src.rpm +else + echo "Missing $SCRIPT_DIR/$NAME-$VERSION-$RELEASE.src.rpm" +fi + diff --git a/libmodulemd.spec b/libmodulemd.spec index 5fe31b7..3b45bf8 100644 --- a/libmodulemd.spec +++ b/libmodulemd.spec @@ -1,23 +1,14 @@ %global libmodulemd_version 2.6.0 %global libmodulemd_v1_version 1.8.13 -# Python 2 is dead on F31+ -%if ( 0%{?fedora} && 0%{?fedora} <= 30 ) || ( 0%{?rhel} && 0%{?rhel} <= 7) - %global meson_override_flags -Dwith_py3_overrides=true -Dwith_py2_overrides=true - %global build_python2 1 -%else - %global meson_override_flags -Dwith_py3_overrides=true -Dwith_py2_overrides=false - %global build_python2 0 -%endif - -Name: libmodulemd -Version: %{libmodulemd_version} +Name: libmodulemd1 +Version: %{libmodulemd_v1_version} Release: 1%{?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 +Source0: %{url}/releases/download/libmodulemd-%{libmodulemd_version}/modulemd-%{libmodulemd_version}.tar.xz BuildRequires: meson >= 0.47 BuildRequires: pkgconfig @@ -27,19 +18,17 @@ BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(yaml-0.1) BuildRequires: pkgconfig(gtk-doc) -%if %{build_python2} BuildRequires: python2-devel BuildRequires: python-gobject-base -%endif -BuildRequires: python3-devel -BuildRequires: python3-gobject-base +BuildRequires: python36-devel +BuildRequires: python36-gobject-base %ifarch %{valgrind_arches} BuildRequires: valgrind %endif -# Make sure we upgrade libmodulemd1 to match -Conflicts: libmodulemd1 < %{libmodulemd_v1_version}-%{release} - +Obsoletes: libmodulemd < 2 +Provides: libmodulemd = %{version}-%{release} +Provides: libmodulemd%{?_isa} = %{version}-%{release} # Patches @@ -50,99 +39,41 @@ See https://github.com/fedora-modularity/libmodulemd/blob/master/README.md for more details. -%if %{build_python2} %package -n python2-%{name} Summary: Python 2 bindings for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: python-gobject-base -Requires: python-six Obsoletes: python2-modulemd < 1.3.4 %description -n python2-%{name} Python 2 bindings for %{name} -%endif -%package -n python3-%{name} -Summary: Python 3 bindings for %{name} +%package -n python36-%{name} +Summary: Python 3.6 bindings for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: python3-gobject-base -Requires: %{py3_dist six} +Requires: python36-gobject-base Obsoletes: python3-modulemd < 1.3.4 -%description -n python3-%{name} -Python 3 bindings for %{name} +%description -n python36-%{name} +Python 3.6 bindings for %{name} %package devel Summary: Development files for libmodulemd Requires: %{name}%{?_isa} = %{version}-%{release} - +Conflicts: libmodulemd-devel %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 - - -%if %{build_python2} -%package -n python2-libmodulemd1 -Summary: Python 2 bindings for %{name}1 -Version: %{libmodulemd_v1_version} -Requires: libmodulemd1 = %{libmodulemd_v1_version}-%{release} -Requires: python-gobject-base - -Obsoletes: python2-libmodulemd < 2 -Provides: python2-libmodulemd = %{libmodulemd_v1_version}-%{release} - - -%description -n python2-libmodulemd1 -Python 2 bindings for libmodulemd1 -%endif - - -%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 -%meson -Ddeveloper_build=false -Dbuild_api_v1=true -Dbuild_api_v2=true %{meson_override_flags} +%meson -Ddeveloper_build=false -Dbuild_api_v1=true -Dbuild_api_v2=false -Dwith_py2_overrides=false -Dwith_py3_overrides=false %meson_build @@ -169,59 +100,18 @@ export MMD_SKIP_VALGRIND=1 %install %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/ - - -%if %{build_python2} -%files -n python2-%{name} -%{python2_sitearch}/gi/overrides/ -%endif - - -%files -n python3-%{name} -%{python3_sitearch}/gi/overrides/ - - -%if %{build_python2} -%files -n python2-libmodulemd1 -%endif - - -%files -n python3-libmodulemd1 - - -%files -n libmodulemd1 -%license COPYING -%doc README.md %{_bindir}/modulemd-validator-v1 -%{_libdir}/%{name}.so.1* +%{_libdir}/libmodulemd.so.1* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/Modulemd-1.0.typelib -%files -n libmodulemd1-devel -%{_libdir}/%{name}.so.compat +%files devel +%{_libdir}/libmodulemd.so %{_libdir}/pkgconfig/modulemd.pc %{_includedir}/modulemd/ %dir %{_datadir}/gir-1.0 @@ -230,6 +120,12 @@ ln -s libmodulemd.so.%{libmodulemd_v1_version} \ %dir %{_datadir}/gtk-doc/html %{_datadir}/gtk-doc/html/modulemd-1.0/ +%files -n python36-%{name} + + +%files -n python2-%{name} + + %changelog * Wed Jul 03 2019 Stephen Gallagher - 2.6.0-1 - Update to 2.6.0 @@ -261,320 +157,9 @@ ln -s libmodulemd.so.%{libmodulemd_v1_version} \ - Fix incompatibility in python2-libmodulemd GObject overrides - Fix assorted documentation issues -* Mon Apr 22 2019 Stephen Gallagher - 2.3.0-1 -- Add ModuleIndex.update_from_custom() -- Add ModuleIndex.dump_to_custom() -- Add Component.equals() -- Add Module.remove_streams_by_NSVCA() -- Fix bug with emitting lists of scalars in XMD -- Fix bug with deduplication in the ModuleIndexMerger -- Fix serious memory leak +* Wed Mar 27 2019 Stephen Gallagher - 1.8.5-1 +- Update to libmodulemd 1.8.5 with proper python 2 support -* Tue Apr 16 2019 Adam Williamson - 2.2.3-3 -- Rebuild with Meson fix for #1699099 - -* Wed Apr 03 2019 Stephen Gallagher - 2.2.3-2 -- Fix accidental ABI break - -* Mon Apr 01 2019 Stephen Gallagher - 2.2.3-1 -- Update to 2.2.3 and 1.8.6 -- Fix header issue with ModulemdRpmMapEntry - -* Wed Mar 27 2019 Stephen Gallagher - 2.2.2-2 -- Don't run tests on armv7hl/aarch64 since they have timeout problems - -* Wed Mar 27 2019 Stephen Gallagher - 2.2.2-1 -- Update to libmodulemd 2.2.2 -- Add support for python2 on RHEL and Fedora < 31 -- Make python subpackages archful for GObject overrides - -* Tue Mar 26 2019 Stephen Gallagher - 2.2.1-1 -- Update to libmodulemd 2.2.1 -- Fixes builds on i686 -- Fixes an accidental API error - -* Tue Mar 26 2019 Stephen Gallagher - 2.2.0-1 -- Update to libmodulemd 2.2.0 -- Support for RPM checksums -- Adds a new directive: "buildafter" for specifying build dependencies -- Adds a new directive: "buildonly" to indicate that a component's built - artifacts should be listed in the "filter" field. -- Deprecate lookup functions by NSVC in favor of NSVCA (including the - architecture. - -* Fri Mar 01 2019 Stephen Gallagher - 2.1.0-4 -- Don't run tests on 32-bit ARM due to performance issues causing timeouts - -* Fri Mar 01 2019 Stephen Gallagher - 2.1.0-3 -- Have python3-libmodulemd1 properly Obsolete libmodulemd and - python3-libmodulemd < 2. - -* Fri Feb 01 2019 Fedora Release Engineering - 2.1.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jan 26 2019 Stephen Gallagher - 2.1.0-1 -- Update to libmodulemd 2.1.0 and 1.8.2 -- Drop upstreamed patches -- Add new API ModuleStream.depends_on_stream() and - ModuleStream.build_depends_on_stream() to help support auto-detection of - when a module stream may need to be rebuilt when its dependencies change. -- Don't fail merges when default streams differ, treat it as "no default for - this module" -- Fix error message -- Copy modified value when copying Modulemd.Defaults objects -- Fixes discovered by clang and coverity static analysis tools -- Test improvements - -* Fri Jan 11 2019 Stephen Gallagher - 2.0.0-3 -- Fix ordering issue with dependencies -- Use glib2 suppression file when running valgrind tests - -* Fri Jan 11 2019 Stephen Gallagher - 2.0.0-2 -- Fix issue reading modified value for defaults from YAML streams - -* Thu Dec 13 2018 Stephen Gallagher - 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 - -* Tue Dec 11 2018 Stephen Gallagher - 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 - 2.0.0-0.beta1 -- Update to 2.0.0beta1 -- Total rewrite to 2.0 API -- https://sgallagh.fedorapeople.org/docs/libmodulemd/2.0/ - -* Fri Oct 26 2018 Stephen Gallagher - 1.7.0-1 -- Update to 1.7.0 -- Enhance YAML parser for use with `fedmod lint` -- Support running unit tests against installed packages -- Include all NSVCs for ModuleStreams in ImprovedModule - -* Tue Sep 18 2018 Stephen Gallagher - 1.6.4-1 -- Update to 1.6.4. -- Add Buildopts to the documentation. -- Deduplicate module streams when merging. -- Drop upstreamed patches. - -* Thu Sep 06 2018 Stephen Gallagher - 1.6.3-2 -- Fix generation of module component YAML -- Output NSVC information using decimal version - -* Tue Sep 04 2018 Stephen Gallagher - 1.6.3-1 -- Update to 1.6.3 -- Drop upstreamed patch -- Don't return ModuleStream objects from modulemd_module_new_all_from_*_ext() -- Ensure that Component buildorder property is signed -- Work around optimization bug -- Don't crash dumping translation events without summary or desc - -* Thu Aug 09 2018 Stephen Gallagher - 1.6.2-2 -- Fix backwards-incompatible API change -- Resolves: rhbz#1607083 - -* Tue Aug 07 2018 Stephen Gallagher - 1.6.2-1 -- Update to 1.6.2 -- Make buildorder a signed integer to match modulemd specification - -* Mon Jul 23 2018 Stephen Gallagher - 1.6.1-2 -- Obsolete unsupported pythonX-modulemd packages - -* Fri Jul 20 2018 Stephen Gallagher - 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 - 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 - 1.5.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Sat Jun 23 2018 Stephen Gallagher - 1.5.2-1 -- Update to libdmodulemd 1.5.2 -- Don't free uninitialized memory - -* Fri Jun 22 2018 Stephen Gallagher - 1.5.1-2 -- Fix buildopts property not being initialized - -* Tue Jun 19 2018 Stephen Gallagher - 1.5.1-1 -- Update to version 1.5.1 -- Re-enable build-time tests - -* Mon Jun 18 2018 Stephen Gallagher - 1.5.0-2 -- Temporarily disable build-time tests - -* Mon Jun 18 2018 Stephen Gallagher - 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 - 1.4.1-1 -- Update to version 1.4.1 -- Improve output from modulemd-validator -- Drop upstreamed patches - -* Wed Apr 25 2018 Stephen Gallagher - 1.4.0-2 -- Fix pointer math error -- Fix compilation failure in Fedora build system - -* Wed Apr 25 2018 Stephen Gallagher - 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 - 1.3.0-2 -- Fix serious error in modulemd-defaults emitter - -* Fri Apr 13 2018 Stephen Gallagher - 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 - 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 - 1.1.3-2 -- Fix missing G_END_DECL from public headers - -* Mon Mar 19 2018 Stephen Gallagher - 1.1.3-1 -- Fix numerous memory leaks -- Drop upstreamed patch - -* Thu Mar 15 2018 Stephen Gallagher - 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 - 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 - 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 - 1.0.4-2 -- Obsolete unsupported pythonX-modulemd packages - -* Tue Feb 27 2018 Stephen Gallagher - 1.0.4-1 -- Update to 1.0.4 -- Rework version autodetection -- Avoid infinite loop on unparseable YAML - -* Sun Feb 25 2018 Stephen Gallagher - 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 - 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 - 1.0.1-2 -- Handle certain unlikely format violations - -* Thu Feb 15 2018 Stephen Gallagher - 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 - 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 - 0.2.1-3 -- Own appropriate directories - -* Fri Feb 02 2018 Igor Gnatenko - 0.2.1-2 -- Switch to %%ldconfig_scriptlets - -* Fri Jan 05 2018 Stephen Gallagher - 0.2.1-1 -- Update to libmodulemd 0.2.1 -- Add 'name' property for Profiles - -* Thu Oct 05 2017 Stephen Gallagher - 0.2.0-2 -- Add missing BuildRequires for gtk-doc - -* Thu Oct 05 2017 Stephen Gallagher - 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 - 0.1.0-5 -- Use %%_isa in Requires for main package from devel - -* Mon Sep 18 2017 Stephen Gallagher - 0.1.0-4 -- Correct the license to MIT - -* Mon Sep 18 2017 Stephen Gallagher - 0.1.0-3 -- Modifications requested during package review - -* Fri Sep 15 2017 Stephen Gallagher - 0.1.0-2 -- First public release +* Wed Mar 27 2019 Stephen Gallagher - 1.8.4-1 +- Release libmodulemd1 1.8.4 for COPR on EPEL 7 diff --git a/libmodulemd1.spec b/libmodulemd1.spec new file mode 120000 index 0000000..7f4a763 --- /dev/null +++ b/libmodulemd1.spec @@ -0,0 +1 @@ +libmodulemd.spec \ No newline at end of file