Blame SPECS/libcomps.spec

e6c655
# Do not build python3 bindings for RHEL <= 7
321283
%if 0%{?rhel} && 0%{?rhel} <= 7
321283
%bcond_with python3
321283
%else
321283
%bcond_without python3
321283
%endif
321283
e6c655
# Do not build python2 bindings for RHEL > 7 and Fedora > 29
e6c655
%if 0%{?rhel} > 7 || 0%{?fedora} > 29
321283
%bcond_with python2
321283
%else
321283
%bcond_without python2
321283
%endif
321283
321283
Name:           libcomps
e6c655
Version:        0.1.11
719066
Release:        5%{?dist}
321283
Summary:        Comps XML file manipulation library
321283
321283
License:        GPLv2+
321283
URL:            https://github.com/rpm-software-management/libcomps
321283
Source0:        %{url}/archive/%{name}-%{version}/%{name}-%{version}.tar.gz
e6c655
Patch0:         0001-Fix-order-of-asserts-in-unit-test-RhBug1713220.patch
41a0e7
Patch1:         0002-Empty-dict-created-by-_by_lang-in-python-api-causes-segfault.patch
41a0e7
Patch2:         0003-Do-not-skip-type-mandatory-in-xml-output-and-test-it-RhBu1771224.patch
719066
Patch3:         0004-Use-already-implemented-clear-for-COMPS-HSList-RhBug-1888343.patch
321283
e6c655
BuildRequires:  gcc-c++
321283
BuildRequires:  cmake
321283
BuildRequires:  gcc
321283
BuildRequires:  libxml2-devel
321283
BuildRequires:  check-devel
321283
BuildRequires:  expat-devel
e6c655
BuildRequires:  zlib-devel
321283
321283
%description
321283
Libcomps is library for structure-like manipulation with content of
321283
comps XML files. Supports read/write XML file, structure(s) modification.
321283
321283
%package devel
321283
Summary:        Development files for libcomps library
321283
Requires:       %{name}%{?_isa} = %{version}-%{release}
321283
321283
%description devel
321283
Development files for libcomps library.
321283
321283
%package doc
321283
Summary:        Documentation files for libcomps library
321283
Requires:       %{name} = %{version}-%{release}
321283
BuildArch:      noarch
321283
BuildRequires:  doxygen
321283
321283
%description doc
321283
Documentation files for libcomps library.
321283
321283
%package -n python-%{name}-doc
321283
Summary:        Documentation files for python bindings libcomps library
321283
Requires:       %{name} = %{version}-%{release}
321283
BuildArch:      noarch
e6c655
%if %{with python3}
e6c655
BuildRequires:  python3-sphinx
e6c655
%endif
e6c655
%if %{with python2}
e6c655
%if 0%{?rhel} && 0%{?rhel} <= 7
321283
BuildRequires:  python-sphinx
e6c655
%else
e6c655
BuildRequires:  python2-sphinx
e6c655
%endif
e6c655
%endif
321283
321283
%description -n python-%{name}-doc
321283
Documentation files for python bindings libcomps library.
321283
e6c655
%if %{with python2}
321283
%package -n python2-%{name}
321283
Summary:        Python 2 bindings for libcomps library
321283
%{?python_provide:%python_provide python2-%{name}}
321283
BuildRequires:  python2-devel
321283
Requires:       %{name}%{?_isa} = %{version}-%{release}
321283
321283
%description -n python2-%{name}
321283
Python 2 bindings for libcomps library.
321283
%endif
321283
321283
%if %{with python3}
321283
%package -n python3-%{name}
321283
Summary:        Python 3 bindings for libcomps library
321283
BuildRequires:  python3-devel
321283
%{?python_provide:%python_provide python3-%{name}}
321283
Requires:       %{name}%{?_isa} = %{version}-%{release}
321283
Obsoletes:      platform-python-%{name} < %{version}-%{release}
321283
321283
%description -n python3-%{name}
321283
Python3 bindings for libcomps library.
321283
%endif
321283
321283
%prep
321283
%autosetup -n %{name}-%{name}-%{version} -p1
321283
e6c655
%if %{with python2}
e6c655
mkdir build-py2
e6c655
%endif
321283
%if %{with python3}
321283
mkdir build-py3
321283
%endif
e6c655
mkdir build-doc
321283
321283
%build
321283
%if %{with python2}
e6c655
pushd build-py2
321283
  %cmake ../libcomps/ -DPYTHON_DESIRED:STRING=2
321283
  %make_build
321283
popd
321283
%endif
321283
321283
%if %{with python3}
321283
pushd build-py3
321283
  %cmake ../libcomps/ -DPYTHON_DESIRED:STRING=3
321283
  %make_build
321283
popd
321283
%endif
321283
e6c655
pushd build-doc
e6c655
%if %{with python2}
e6c655
  %cmake ../libcomps/ -DPYTHON_DESIRED:STRING=2
e6c655
%else
e6c655
%if %{with python3}
e6c655
  %cmake ../libcomps/ -DPYTHON_DESIRED:STRING=3
e6c655
%endif
e6c655
%endif
e6c655
  make %{?_smp_mflags} docs
e6c655
  make %{?_smp_mflags} pydocs
e6c655
popd
e6c655
321283
%install
321283
%if %{with python2}
e6c655
pushd build-py2
321283
  %make_install
321283
popd
321283
%endif
321283
321283
%if %{with python3}
321283
pushd build-py3
321283
  %make_install
321283
popd
321283
%endif
321283
321283
%check
321283
%if %{with python2}
e6c655
pushd build-py2
321283
  make test
e6c655
  make pytest
321283
popd
321283
%endif
e6c655
321283
%if %{with python3}
321283
pushd build-py3
e6c655
  make test
321283
  make pytest
321283
popd
321283
%endif
321283
e6c655
%if %{undefined ldconfig_scriptlets}
e6c655
%post -p /sbin/ldconfig
e6c655
%postun -p /sbin/ldconfig
e6c655
%else
321283
%ldconfig_scriptlets
e6c655
%endif
321283
321283
%files
321283
%license COPYING
321283
%doc README.md
321283
%{_libdir}/%{name}.so.*
321283
321283
%files devel
321283
%{_libdir}/%{name}.so
321283
%{_includedir}/%{name}/
321283
321283
%files doc
e6c655
%doc build-doc/docs/libcomps-doc/html
321283
321283
%files -n python-%{name}-doc
e6c655
%doc build-doc/src/python/docs/html
321283
e6c655
%if %{with python2}
321283
%files -n python2-%{name}
321283
%{python2_sitearch}/%{name}/
321283
%endif
321283
321283
%if %{with python3}
321283
%files -n python3-%{name}
321283
%{python3_sitearch}/%{name}/
321283
%endif
321283
321283
%changelog
719066
* Thu Jan 14 2021 Nicola Sella <nsella@redhat.com> - 0.1.11-5
719066
- Use already implemented clear for COMPS_HSList (RhBug:1888343)
719066
41a0e7
* Mon Jan 13 2020 Ales Matej <amatej@redhat.com> - 0.1.11-4
41a0e7
- Do not skip type=mandatory in xml output (RhBug:1771224)
41a0e7
41a0e7
* Wed Nov 13 2019 Ales Matej <amatej@redhat.com> - 0.1.11-3
41a0e7
- Fix segfault caused by empty dict created by *_by_lang in python api (RhBug:1757959)
41a0e7
e6c655
* Thu Aug 01 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.1.11-2
e6c655
- Backport patch: Fix order of asserts in unit test (RhBug:1713220)
e6c655
e6c655
* Mon May 13 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.1.11-1
e6c655
- Update to 0.1.11
e6c655
321283
* Thu Dec 13 2018 Daniel Mach <dmach@redhat.com> - 0.1.8-13
321283
- Fix resource leaks, double free, unused code, optimize
321283
- Resolves: rhbz#1606974
321283
321283
* Mon Jun 25 2018 Lumír Balhar <lbalhar@redhat.com> - 0.1.8-12
321283
- Disable Python 2 subpackage (and dependent) by default
321283
321283
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.8-11
321283
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
321283
321283
* Wed Jan 31 2018 Igor Gnatenko <ignatenko@redhat.com> - 0.1.8-10
321283
- Switch to %%ldconfig_scriptlets
321283
321283
* Tue Nov 07 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.1.8-9
321283
- Use better Obsoletes for platform-python
321283
321283
* Fri Nov 03 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.1.8-8
321283
- Remove platform-python subpackage
321283
321283
* Fri Sep 01 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.1.8-7
321283
- Disable platform python on old releases
321283
321283
* Thu Aug 10 2017 Lumír Balhar <lbalhar@redhat.com> - 0.1.8-6
321283
- Add Platform Python subpackage (https://fedoraproject.org/wiki/Changes/Platform_Python_Stack)
321283
321283
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.8-5
321283
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
321283
321283
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.8-4
321283
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
321283
321283
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.8-3
321283
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
321283
321283
* Tue Dec 13 2016 Stratakis Charalampos <cstratak@redhat.com> - 0.1.8-2
321283
- Rebuild for Python 3.6
321283
321283
* Thu Sep 22 2016 Igor Gnatenko <ignatenko@redhat.com> - 0.1.8-1
321283
- Update to 0.1.8
321283
321283
* Tue Aug 09 2016 Igor Gnatenko <ignatenko@redhat.com> - 0.1.7-6
321283
- Add %%{?system_python_abi}
321283
321283
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.7-5
321283
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
321283
321283
* Tue Apr 12 2016 Igor Gnatenko <ignatenko@redhat.com> - 0.1.7-4
321283
- Adopt to new packaging guidelines
321283
- Use %%license macro
321283
- Fix file ownerships
321283
321283
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.7-3
321283
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
321283
321283
* Wed Oct 14 2015 Robert Kuska <rkuska@redhat.com> - 0.1.7-2
321283
- Rebuilt for Python3.5 rebuild
321283
321283
* Thu Jul 02 2015 Jindrich Luza <jluza@redhat.com> 0.1.7
321283
- added langpacks to union process
321283
- comps DOCTYPE read-write-read fix
321283
- support biarchonly attribute
321283
- fixed rhbz#1073885 rhbz#1073890 rhbz#1073907 rhbz#1073979
321283
- fix rhbz#1073079
321283
- comps_*_match() now support fnmatching
321283
- added libpycomps.MATCH_IGNORECASE as matching flag
321283
- added group.packages_match
321283
- added comps.groups_match, comps.categories_match, comps.entironments_match
321283
- PyCOMPS_Package hash
321283
- cmake-2.6, python-2.6, RHEL-6 compatible
321283
- '_arch' attribute change to 'arch'
321283
- empty 'arch' attribute will be ommited from output from now
321283
321283
* Wed Jan 29 2014 Jindrich Luza <jluza@redhat.com> 0.1.6
321283
- version bumped
321283
- added libcomps.MDict.keys()
321283
-         libcomps.MDict.values()
321283
-         libcomps.MDict.items()
321283
-         libcomps.MDict.clear()
321283
-         libcomps.MDict.update()
321283
-         libcomps.MDict.copy()
321283
- COMPS_List replaced with COMPS_HSList
321283
- added missing basearchonly to DocGroupPackage
321283
- python3/CMakeLists.txt fixed
321283
- added explicit attributes support for xml options
321283
- added arch_filter test for python
321283
- insert method in libcomps.Sequence
321283
- Unioning is now accomplished with replace x append policy
321283
- Weaker package equality check (comparing only name now)
321283
- Fixed leeks in unioning
321283
- modified test_merge_comps test_libcomps
321283
- dictionaries are now storing keys in alphabetical order
321283
- comps parser redesigned
321283
- change python/tests directory composition
321283
- added elem attributes check in parser
321283
- xml output '_arch' attribute support
321283
- parser and xml output defaults options for specify defaults values
321283
- comps object validation in python
321283
- added validity checker before append/set object to list (python only)
321283
- .validate() method
321283
- added libcomps.Dict.keys
321283
-         libcomps.Dict.values
321283
-         libcomps.Dict.items
321283
-         libcomps.Dict.clear
321283
-         libcomps.Dict.update
321283
-         libcomps.Dict.copy
321283
- added xml output options (comps.xml_str([options = {}]), comps.xml_f(options = {}))
321283
321283
* Wed Oct 23 2013 Jindrich Luza <jluza@redhat.com> 0.1.4-4
321283
- group.uservisible is true by default now.
321283
- fixed comps_mobjradix parent node problem
321283
- implemented bindings for blacklist, whiteout and langpacks
321283
- COMPS_Logger redesigned
321283
321283
* Tue Oct 08 2013 Jindrich Luza <jluza@redhat.com> 0.1.5
321283
- version bump
321283
- PyCOMPS_Sequence.__getitem__["objectid"] implemented for libcomps.GroupList, libcomps.CategoryList, libcomps.EnvList
321283
- added missing files
321283
- missing display_order fix for libcomps.Environment
321283
321283
* Tue Oct 01 2013 Jindrich Luza <jluza@redhat.com> 0.1.4
321283
- added missing files
321283
- architectural redesign finished
321283
- fixed #1003986 by Gustavo Luiz Duarte guidelines (but not tested on ppc)
321283
- fixed bug #1000449
321283
- fixed bug #1000442
321283
- added GroupId.default test
321283
- some minor unreported bugs discovered during testing fixed
321283
- finished default attribute support in groupid object
321283
- Comps.get_last_parse_errors and Comps.get_last_parse_log has been renamed
321283
-   as Comps.get_last_errors and Comps.get_last_log
321283
- version bumped. Python bindings is now easier.
321283
- added missing files
321283
321283
* Tue Aug 20 2013 Jindrich Luza <jluza@redhat.com> 0.1.3
321283
- finished default attribute support in groupid object
321283
- Comps.get_last_parse_errors and Comps.get_last_parse_log has been renamed
321283
-   as Comps.get_last_errors and Comps.get_last_log
321283
- finished default attribute support in groupid object
321283
- Comps.get_last_parse_errors and Comps.get_last_parse_log has been renamed
321283
-   as Comps.get_last_errors and Comps.get_last_log
321283
321283
* Thu Jul 18 2013 Jindrich Luza <jluza@redhat.com> 0.1.2
321283
- automatic changelog system
321283
- fixed issue #14
321283
- libcomps.Dict is now behave more like python dict. Implemented iter(libcomps.Dict)
321283
- libcomps.iteritems() and libcomps.itervalues()
321283
- remaked error reporting system.
321283
-     libcomps.Comps.fromxml_f and libcomps.Comps.fromxml_str now return
321283
-     -1, 0 or 1. 0 means parse procedure completed without any problem,
321283
-     1 means there's some errors or warnings but not fatal. -1 indicates
321283
-     fatal error problem (some results maybe given, but probably incomplete
321283
-     and invalid)
321283
- errors catched during parsing can be obtained by calling
321283
-     libcomps.Comps.get_last_parse_errors
321283
- all log is given by
321283
-     libcomps.Comps.get_last_parse_log
321283
- prop system complete
321283
- fixed issue 1
321283
- fixed issue 3
321283
- added <packagereq requires=...> support
321283
- new prop system in progress....
321283
- separated doc package
321283
- some minor fixes in CMakeFiles
321283
- improved integrated tests
321283
321283
* Tue Jun 25 2013 Jindrich Luza <jluza@redhat.com> 0.1.1-1
321283
- Automatic commit of package [libcomps] release [0.1.1-1].
321283