blob: 770a39336dd72bb56370745fbd48a973f9d1d537 [file] [log] [blame]
name: @PACKAGE@@LIBYANG_MAJOR_SOVERSION@
Version: @LIBYANG_VERSION@
Release: 0
Summary: Libyang library
Url: https://github.com/CESNET/libyang
Source: %{url}/archive/master.tar.gz
Source1: @PACKAGE@.rpmlintrc
License: BSD-3-Clause
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
%if 0%{?scientificlinux_version} == 700 || ( 0%{?rhel} && 0%{?rhel} < 7 )
%define with_lang_bind 0
%else
%define with_lang_bind 1
%endif
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
%define with_ly_cache 0
%else
%define with_ly_cache 1
%endif
Requires: pcre
BuildRequires: cmake
BuildRequires: doxygen
BuildRequires: pcre-devel
BuildRequires: gcc
BuildRequires: libcmocka-devel
%if %{with_lang_bind}
BuildRequires: gcc-c++
%if 0%{?rhel} == 7
BuildRequires: swig3 >= 3.0.12
%else
BuildRequires: swig >= 3.0.12
%endif
%if 0%{?suse_version} + 0%{?fedora} + 0%{?centos_version} > 0
BuildRequires: python3-devel
%else
BuildRequires: python36-devel
%endif
%endif
%package -n @PACKAGE@-devel
Summary: Headers of libyang library
Requires: %{name} = %{version}-%{release}
Requires: pcre-devel
%package -n @TOOLS_PACKAGE@
Summary: Helper Tools
Requires: %{name} = %{version}-%{release}
%if %{with_lang_bind}
%package -n @CPP_PACKAGE@@LIBYANG_MAJOR_SOVERSION@
Summary: Bindings to c++ language
Requires: %{name} = %{version}-%{release}
%package -n @CPP_PACKAGE@-devel
Summary: Headers of bindings to c++ language
Requires: @CPP_PACKAGE@@LIBYANG_MAJOR_SOVERSION@ = %{version}-%{release}
Requires: pcre-devel
%package -n @PYTHON_PACKAGE@@LIBYANG_MAJOR_SOVERSION@
Summary: Binding to python
Requires: @CPP_PACKAGE@@LIBYANG_MAJOR_SOVERSION@ = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
%description -n @CPP_PACKAGE@@LIBYANG_MAJOR_SOVERSION@
Bindings of libyang library to C++ language.
%description -n @CPP_PACKAGE@-devel
Headers of bindings to c++ language.
%description -n @PYTHON_PACKAGE@@LIBYANG_MAJOR_SOVERSION@
Bindings of libyang library to python language.
%endif
%description -n @PACKAGE@-devel
Headers of libyang library.
%description -n @TOOLS_PACKAGE@
Helper Tools and examples for libyang library.
%description
@LIBYANG_DESCRIPTION@
%prep
%setup -n @PACKAGE@-master
mkdir build
%build
cd build
%if %{with_lang_bind}
%define cmake_lang_bind "-DGEN_LANGUAGE_BINDINGS=ON"
%else
%define cmake_lang_bind "-DGEN_LANGUAGE_BINDINGS=OFF"
%endif
%if %{with_ly_cache}
%define cmake_ly_cache "-DENABLE_CACHE=ON"
%else
%define cmake_ly_cache "-DENABLE_CACHE=OFF"
%endif
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:String="Package" \
-DENABLE_LYD_PRIV=ON \
-DGEN_JAVA_BINDINGS=OFF \
-DGEN_JAVASCRIPT_BINDINGS=OFF \
%{cmake_lang_bind} \
%{cmake_ly_cache} ..
make
%check
cd build
ctest --output-on-failure
%install
cd build
make DESTDIR=%{buildroot} install
%post -p /sbin/ldconfig
%if %{with_lang_bind}
%post -n @CPP_PACKAGE@@LIBYANG_MAJOR_SOVERSION@ -p /sbin/ldconfig
%endif
%postun -p /sbin/ldconfig
%if %{with_lang_bind}
%postun -n @CPP_PACKAGE@@LIBYANG_MAJOR_SOVERSION@ -p /sbin/ldconfig
%endif
%files
%defattr(-,root,root)
%{_libdir}/libyang.so.*
%{_libdir}/libyang@LIBYANG_MAJOR_SOVERSION@/*
%dir %{_libdir}/libyang@LIBYANG_MAJOR_SOVERSION@/
%files -n @PACKAGE@-devel
%defattr(-,root,root)
%{_libdir}/libyang.so
%{_libdir}/pkgconfig/libyang.pc
%{_includedir}/libyang/*.h
%dir %{_includedir}/libyang/
%files -n @TOOLS_PACKAGE@
%{_bindir}/yanglint
%{_bindir}/yangre
%{_datadir}/man/man1/yanglint.1.gz
%{_datadir}/man/man1/yangre.1.gz
%if %{with_lang_bind}
%files -n @CPP_PACKAGE@@LIBYANG_MAJOR_SOVERSION@
%defattr(-,root,root)
%{_libdir}/libyang-cpp.so.*
%files -n @CPP_PACKAGE@-devel
%defattr(-,root,root)
%{_libdir}/libyang-cpp.so
%{_includedir}/libyang/*.hpp
%{_libdir}/pkgconfig/libyang-cpp.pc
%dir %{_includedir}/libyang/
%files -n @PYTHON_PACKAGE@@LIBYANG_MAJOR_SOVERSION@
%defattr(-,root,root)
%{_libdir}/python*
%endif
%changelog