mikedep333 / rpms / libcomps

Forked from rpms/libcomps 4 years ago
Clone
a833758
%global commit a756363ce4a0dc7cb9395d2f57315428c22a4efb
3302b0a
3302b0a
%if 0%{?rhel} && 0%{?rhel} <= 6
3302b0a
%define python3_build 0
8c13e75
#%{!?__python2: %global __python2 /usr/bin/python2}
8c13e75
#%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
8c13e75
#%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
3302b0a
%else
3302b0a
%define python3_build 1
3302b0a
%endif
3302b0a
c8ac328
c8ac328
Name:           libcomps
3302b0a
Version:        0.1.6
a833758
Release:        4%{?dist}
c8ac328
Summary:        Comps XML file manipulation library
c8ac328
c8ac328
Group:          Development/Libraries
c8ac328
License:        GPLv2+
c8ac328
URL:            https://github.com/midnightercz/libcomps/
c8ac328
Source0:        https://github.com/midnightercz/libcomps/archive/%{commit}/libcomps-%{commit}.tar.gz
c8ac328
BuildRequires:  libxml2-devel
c8ac328
BuildRequires:  check-devel
c8ac328
BuildRequires:  expat-devel
8c13e75
#%if 0%{?rhel} == 6
8c13e75
#BuildRequires:  cmake28
8c13e75
#%else
c8ac328
BuildRequires:  cmake
8c13e75
#%endif
c8ac328
c8ac328
%description
c8ac328
Libcomps is library for structure-like manipulation with content of
c8ac328
comps XML files. Supports read/write XML file, structure(s) modification.
c8ac328
c8ac328
%package doc
c8ac328
Summary:        Documentation files for libcomps library
3302b0a
Group:          Documentation
c8ac328
Requires:       %{name} = %{version}-%{release}
c8ac328
BuildArch:      noarch
c8ac328
BuildRequires:  doxygen
c8ac328
c8ac328
%description doc
c8ac328
Documentation files for libcomps library
c8ac328
3302b0a
%package -n python-libcomps-doc
3302b0a
Summary:        Documentation files for python bindings libcomps library
3302b0a
Group:          Documentation
3302b0a
Requires:       %{name} = %{version}-%{release}
3302b0a
BuildArch:      noarch
3302b0a
BuildRequires:  python-sphinx
3302b0a
3302b0a
%description -n python-libcomps-doc
3302b0a
Documentation files for python bindings libcomps library
3302b0a
c8ac328
%package devel
c8ac328
Summary:        Development files for libcomps library
c8ac328
Group:          Development/Libraries
c8ac328
Requires:       %{name}%{?_isa} = %{version}-%{release}
c8ac328
c8ac328
%description devel
c8ac328
Development files for libcomps library
c8ac328
c8ac328
%package -n python-libcomps
c8ac328
Summary:        Python2 bindings for libcomps library
c8ac328
Group:          Development/Libraries
c8ac328
BuildRequires:  python-devel
c8ac328
Requires:       %{name}%{?_isa} = %{version}-%{release}
c8ac328
c8ac328
%description -n python-libcomps
c8ac328
Python2 bindings for libcomps library
c8ac328
3302b0a
%if %python3_build
c8ac328
%package -n python3-libcomps
c8ac328
Summary:        Python3 bindings for libcomps library
c8ac328
Group:          Development/Libraries
c8ac328
BuildRequires:  python3-devel
c8ac328
Requires:       %{name}%{?_isa} = %{version}-%{release}
c8ac328
c8ac328
%description -n python3-libcomps
c8ac328
Python3 bindings for libcomps library
3302b0a
%endif
c8ac328
c8ac328
%prep
c8ac328
%setup -qn %{name}-%{commit}
c8ac328
3302b0a
%if %python3_build == 1
c8ac328
rm -rf py3
c8ac328
mkdir ../py3
c8ac328
cp -a . ../py3/
c8ac328
mv ../py3 ./
3302b0a
%endif
c8ac328
c8ac328
%build
c8ac328
%cmake -DPYTHON_DESIRED:STRING=2 libcomps/
c8ac328
make %{?_smp_mflags}
c8ac328
make %{?_smp_mflags} docs
3302b0a
make %{?_smp_mflags} pydocs
c8ac328
3302b0a
%if %python3_build == 1
c8ac328
pushd py3
c8ac328
%cmake -DPYTHON_DESIRED:STRING=3 libcomps/
c8ac328
make %{?_smp_mflags}
c8ac328
popd
3302b0a
%endif
c8ac328
c8ac328
3302b0a
%check
3302b0a
make test
3302b0a
%if %{python3_build}
3302b0a
pushd py3
3302b0a
make pytest
3302b0a
popd
3302b0a
%endif
c8ac328
c8ac328
%install
c8ac328
make install DESTDIR=%{buildroot}
3302b0a
3302b0a
%if %{python3_build}
c8ac328
pushd py3
c8ac328
make install DESTDIR=%{buildroot}
c8ac328
popd
3302b0a
%endif
c8ac328
c8ac328
%clean
c8ac328
rm -rf $buildroot
c8ac328
c8ac328
%post -p /sbin/ldconfig
c8ac328
c8ac328
%postun -p /sbin/ldconfig
c8ac328
c8ac328
%files
c8ac328
%{_libdir}/libcomps.so.*
c8ac328
%doc README.md COPYING
c8ac328
c8ac328
%files devel
c8ac328
%{_libdir}/libcomps.so
c8ac328
%{_includedir}/*
c8ac328
c8ac328
%files doc
c8ac328
%doc docs/libcomps-doc/html
c8ac328
3302b0a
%files -n python-libcomps-doc
3302b0a
%doc src/python/docs/html
3302b0a
c8ac328
%files -n python-libcomps
c8ac328
%{_libdir}/python2*
a833758
#%exclude %{_libdir}/python2/libcomps/__pycache__
c8ac328
3302b0a
%if %{python3_build}
c8ac328
%files -n python3-libcomps
c8ac328
%{_libdir}/python3*
a833758
#%exclude %{_libdir}/python3/libcomps/__pycache__
3302b0a
%endif
c8ac328
c8ac328
%changelog
3302b0a
* Wed Jan 29 2014 Jindrich Luza <jluza@redhat.com> 0.1.6
3302b0a
- version bumped
3302b0a
- added libcomps.MDict.keys()
3302b0a
-         libcomps.MDict.values()
3302b0a
-         libcomps.MDict.items()
3302b0a
-         libcomps.MDict.clear()
3302b0a
-         libcomps.MDict.update()
3302b0a
-         libcomps.MDict.copy()
3302b0a
- COMPS_List replaced with COMPS_HSList
3302b0a
- added missing basearchonly to DocGroupPackage
3302b0a
- python3/CMakeLists.txt fixed
3302b0a
- added explicit attributes support for xml options
3302b0a
- added arch_filter test for python
3302b0a
- insert method in libcomps.Sequence
3302b0a
- Unioning is now accomplished with replace x append policy
3302b0a
- Weaker package equality check (comparing only name now)
3302b0a
- Fixed leeks in unioning
3302b0a
- modified test_merge_comps test_libcomps
3302b0a
- dictionaries are now storing keys in alphabetical order
3302b0a
- comps parser redesigned
3302b0a
- change python/tests directory composition
3302b0a
- added elem attributes check in parser
3302b0a
- xml output '_arch' attribute support
3302b0a
- parser and xml output defaults options for specify defaults values
3302b0a
- comps object validation in python
3302b0a
- added validity checker before append/set object to list (python only)
3302b0a
- .validate() method
3302b0a
- added libcomps.Dict.keys
3302b0a
-         libcomps.Dict.values
3302b0a
-         libcomps.Dict.items
3302b0a
-         libcomps.Dict.clear
3302b0a
-         libcomps.Dict.update
3302b0a
-         libcomps.Dict.copy
3302b0a
- added xml output options (comps.xml_str([options = {}]), comps.xml_f(options = {}))
3302b0a
3302b0a
* Wed Oct 23 2013 Jindrich Luza <jluza@redhat.com> 0.1.4-4
3302b0a
- group.uservisible is true by default now.
3302b0a
- fixed comps_mobjradix parent node problem
3302b0a
- implemented bindings for blacklist, whiteout and langpacks
3302b0a
- COMPS_Logger redesigned
3302b0a
3302b0a
* Tue Oct 08 2013 Jindrich Luza <jluza@redhat.com> 0.1.5
3302b0a
- version bump
3302b0a
- PyCOMPS_Sequence.__getitem__["objectid"] implemented for libcomps.GroupList, libcomps.CategoryList, libcomps.EnvList
3302b0a
- added missing files
3302b0a
- missing display_order fix for libcomps.Environment
3302b0a
3302b0a
* Tue Oct 01 2013 Jindrich Luza <jluza@redhat.com> 0.1.4
3302b0a
- added missing files
3302b0a
- architectural redesign finished
49f9679
- fixed #1003986 by Gustavo Luiz Duarte guidelines (but not tested on ppc)
49f9679
- fixed bug #1000449
49f9679
- fixed bug #1000442
49f9679
- added GroupId.default test
49f9679
- some minor unreported bugs discovered during testing fixed
3302b0a
- finished default attribute support in groupid object
3302b0a
- Comps.get_last_parse_errors and Comps.get_last_parse_log has been renamed
3302b0a
-   as Comps.get_last_errors and Comps.get_last_log
3302b0a
- version bumped. Python bindings is now easier.
3302b0a
- added missing files
7b2d114
7b2d114
* Tue Aug 20 2013 Jindrich Luza <jluza@redhat.com> 0.1.3
7b2d114
- finished default attribute support in groupid object
7b2d114
- Comps.get_last_parse_errors and Comps.get_last_parse_log has been renamed
7b2d114
-   as Comps.get_last_errors and Comps.get_last_log
49f9679
- finished default attribute support in groupid object
49f9679
- Comps.get_last_parse_errors and Comps.get_last_parse_log has been renamed
49f9679
-   as Comps.get_last_errors and Comps.get_last_log
c8ac328
c8ac328
* Thu Jul 18 2013 Jindrich Luza <jluza@redhat.com> 0.1.2
c8ac328
- automatic changelog system
c8ac328
- fixed issue #14
c8ac328
- libcomps.Dict is now behave more like python dict. Implemented iter(libcomps.Dict)
c8ac328
- libcomps.iteritems() and libcomps.itervalues()
c8ac328
- remaked error reporting system.
c8ac328
-     libcomps.Comps.fromxml_f and libcomps.Comps.fromxml_str now return
c8ac328
-     -1, 0 or 1. 0 means parse procedure completed without any problem,
c8ac328
-     1 means there's some errors or warnings but not fatal. -1 indicates
c8ac328
-     fatal error problem (some results maybe given, but probably incomplete
c8ac328
-     and invalid)
c8ac328
- errors catched during parsing can be obtained by calling
c8ac328
-     libcomps.Comps.get_last_parse_errors
c8ac328
- all log is given by
c8ac328
-     libcomps.Comps.get_last_parse_log
c8ac328
- prop system complete
c8ac328
- fixed issue 1
c8ac328
- fixed issue 3
3302b0a
- added <packagereq requires=...> support
c8ac328
- new prop system in progress....
c8ac328
- separated doc package
c8ac328
- some minor fixes in CMakeFiles
3302b0a
- improved integrated tests
c8ac328
c8ac328
* Tue Jun 25 2013 Jindrich Luza <jluza@redhat.com> 0.1.1-1
c8ac328
- Automatic commit of package [libcomps] release [0.1.1-1].
c8ac328