%bcond_without lua # Lua (5.1) bindings
%bcond_without perl # Perl bindings
%bcond_without python # Python bindings (required by prewikka)
-%bcond_with ruby # Ruby bindings (not ready for 1.9 yet)
+%bcond_without ruby # Ruby bindings
#
%include /usr/lib/rpm/macros.perl
Summary: The Prelude library
Summary(pl.UTF-8): Biblioteka Prelude
Name: libprelude
-Version: 1.0.0
-Release: 1
+Version: 1.0.1
+Release: 6
License: GPL v2 or commercial
Group: Libraries
-#Source0Download: http://www.prelude-ids.com/developpement/telechargement/index.html
-Source0: http://www.prelude-ids.com/download/releases/libprelude/%{name}-%{version}.tar.gz
-# Source0-md5: a5bb76538d240e5fac5f6ab0b7fabfe5
+# https://www.prelude-ids.org/projects/prelude/files
+Source0: https://www.prelude-ids.org/attachments/download/241/%{name}-%{version}.tar.gz
+# Source0-md5: dce1ea9f82cf436830567894e7ee622f
Patch0: %{name}-libtool.patch
Patch1: %{name}-ruby.patch
+Patch2: %{name}-gnutls.patch
+Patch3: %{name}-gets.patch
+Patch4: %{name}-python.patch
+Patch5: format-security.patch
URL: http://www.prelude-ids.com/
BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: gtk-doc >= 1.0
BuildRequires: libgcrypt-devel >= 1.1.94
BuildRequires: libltdl-devel >= 2:2.0
+BuildRequires: libstdc++-devel
BuildRequires: libtool >= 2:2.0
%{?with_lua:BuildRequires: lua51-devel >= 5.1}
%{?with_perl:BuildRequires: perl-devel}
BuildRequires: rpm-perlprov
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.219
-%{?with_ruby:BuildRequires: ruby-devel >= 1.8, ruby-devel < 1.9}
+%{?with_ruby:BuildRequires: ruby-devel >= 1.9}
BuildRequires: sed >= 4.0
%{?with_perl:BuildRequires: swig-perl}
%{?with_python:BuildRequires: swig-python}
%description static -l pl.UTF-8
Statyczna biblioteka libprelude.
+%package c++
+Summary: libpreludecpp - C++ binding for libprelude
+Summary(pl.UTF-8): libpreludecpp - wiązanie C++ do libprelude
+Group: Libraries
+Requires: %{name}-libs = %{version}-%{release}
+
+%description c++
+libpreludecpp - C++ binding for libprelude.
+
+%description c++ -l pl.UTF-8
+libpreludecpp - wiązanie C++ do libprelude.
+
+%package c++-devel
+Summary: Header file for libpreludecpp library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libpreludecpp
+Group: Development/Libraries
+Requires: %{name}-c++ = %{version}-%{release}
+Requires: %{name}-devel = %{version}-%{release}
+Requires: libstdc++-devel
+
+%description c++-devel
+Header file for libpreludecpp library - C++ binding for libprelude.
+
+%description c++-devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki libpreludecpp - wiązań C++ do libprelude.
+
+%package c++-static
+Summary: Static libpreludecpp library
+Summary(pl.UTF-8): Statyczna biblioteka libpreludecpp
+Group: Development/Libraries
+Requires: %{name}-c++-devel = %{version}-%{release}
+
+%description c++-static
+Static libpreludecpp library.
+
+%description c++-static -l pl.UTF-8
+Statyczna biblioteka libpreludecpp.
+
%package -n lua-prelude
-Summary: libprelude Lua bindings
-Summary(pl.UTF-8): Dowiązania języka Lua do libprelude
+Summary: PreludeEasy - libprelude Lua bindings
+Summary(pl.UTF-8): PreludeEasy - dowiązania języka Lua do libprelude
Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}-c++ = %{version}-%{release}
%description -n lua-prelude
-libprelude Lua bindings.
+PreludeEasy - libprelude Lua bindings.
%description -n lua-prelude -l pl.UTF-8
-Dowiązania języka Lua do libprelude.
+PreludeEasy - dowiązania języka Lua do libprelude.
%package -n perl-libprelude
-Summary: libprelude Perl bindings
-Summary(pl.UTF-8): Dowiązania Perla do libprelude
+Summary: Prelude Perl module - low-level Perl binding for libprelude
+Summary(pl.UTF-8): Moduł Perla Prelude - niskopoziomowe wiązanie Perla do libprelude
Group: Development/Languages/Perl
Requires: %{name}-libs = %{version}-%{release}
%description -n perl-libprelude
-libprelude Perl bindings.
+Prelude Perl module - low-level Perl binding for libprelude.
%description -n perl-libprelude -l pl.UTF-8
-Dowiązania Perla dla libprelude.
+Moduł Perla Prelude - niskopoziomowe wiązanie Perla do libprelude.
+
+%package -n perl-PreludeEasy
+Summary: PreludeEasy - high-level Perl binding for libprelude
+Summary(pl.UTF-8): PreludeEasy - wysokopoziomowe wiązanie Perla do libprelude
+Group: Development/Languages/Perl
+Requires: %{name}-c++ = %{version}-%{release}
+
+%description -n perl-PreludeEasy
+PreludeEasy - high-level Perl binding for libprelude.
+
+%description -n perl-PreludeEasy -l pl.UTF-8
+PreludeEasy - wysokopoziomowe wiązanie Perla do libprelude.
%package -n python-libprelude
-Summary: libprelude Python bindings
-Summary(pl.UTF-8): Dowiązania Pythona dla libprelude
+Summary: Low-level Python binding for libprelude
+Summary(pl.UTF-8): Niskopoziomowe wiązanie Pythona do libprelude
Group: Development/Languages/Python
Requires: %{name}-libs = %{version}-%{release}
%description -n python-libprelude
-libprelude Python bindings.
+Low-level Python binding for libprelude.
%description -n python-libprelude -l pl.UTF-8
-Dowiązania Pythona dla libprelude.
+Niskopoziomowe wiązanie Pythona do libprelude.
+
+%package -n python-PreludeEasy
+Summary: PreludeEasy - high-level Python binding for libprelude
+Summary(pl.UTF-8): PreludeEasy - wysokopoziomowe wiązanie Pythona do libprelude
+Group: Development/Languages/Python
+Requires: %{name}-c++ = %{version}-%{release}
+
+%description -n python-PreludeEasy
+PreludeEasy - high-level Python binding for libprelude.
+
+%description -n python-PreludeEasy -l pl.UTF-8
+PreludeEasy - wysokopoziomowe wiązanie Pythona do libprelude.
+
+%package -n ruby-prelude
+Summary: PreludeEasy - libprelude Ruby bindings
+Summary(pl.UTF-8): PreludeEasy - dowiązania języka Ruby do libprelude
+Group: Development/Languages
+Requires: %{name}-c++ = %{version}-%{release}
+
+%description -n ruby-prelude
+PreludeEasy - libprelude Ruby bindings.
+
+%description -n ruby-prelude -l pl.UTF-8
+PreludeEasy - dowiązania języka Ruby do libprelude.
%prep
%setup -q
%patch0 -p1
-%{?with_ruby:%patch1 -p1}
%if %{with python}
# regenerate with fresh swig for gcc 4.6+
%endif
%if %{with ruby}
# same for ruby 1.9
-sed -i -e 's,"rubyio.h","ruby/io.h",' bindings/ruby/libpreludecpp-ruby.i
%{__rm} bindings/ruby/PreludeEasy.cxx
-# TODO: more
+%patch1 -p1
%endif
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+
sed -i -e 's/lua >= 5.1/lua51 >= 5.1/' configure.in
%build
%{__autoheader}
%{__automake}
%configure \
+ am_cv_ruby_rbexecdir=%{ruby_vendorarchdir} \
--enable-gtk-doc \
--enable-static \
--with%{!?with_lua:out}-lua \
%{__make}
+cd bindings/perl
+%{__make} clean
+%{__perl} Makefile.PL \
+ INSTALLDIRS=vendor \
+%{__make}
+
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
+%{__make} -C bindings/perl install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+%if %{with lua}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/PreludeEasy.{la,a}
+%endif
%if %{with python}
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%py_postclean
%endif
-%if %{with lua}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/PreludeEasy.{la,a}
+%if %{with ruby}
+%{__rm} $RPM_BUILD_ROOT%{ruby_vendorarchdir}/PreludeEasy.{la,a}
%endif
%clean
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
+%post c++ -p /sbin/ldconfig
+%postun c++ -p /sbin/ldconfig
+
%files
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog LICENSE.README NEWS README
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libprelude.so.*.*.*
-%attr(755,root,root) %{_libdir}/libpreludecpp.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libprelude.so.2
-%attr(755,root,root) %ghost %{_libdir}/libpreludecpp.so.0
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/libprelude-config
%attr(755,root,root) %{_libdir}/libprelude.so
-%attr(755,root,root) %{_libdir}/libpreludecpp.so
%{_libdir}/libprelude.la
-%{_libdir}/libpreludecpp.la
-%{_includedir}/libprelude
+%dir %{_includedir}/libprelude
+%{_includedir}/libprelude/*.h
%{_aclocaldir}/libprelude.m4
%{_gtkdocdir}/libprelude
%{_pkgconfigdir}/libprelude.pc
%files static
%defattr(644,root,root,755)
%{_libdir}/libprelude.a
+
+%files c++
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libpreludecpp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libpreludecpp.so.0
+
+%files c++-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libpreludecpp.so
+%{_libdir}/libpreludecpp.la
+%{_includedir}/libprelude/idmef*.hxx
+%{_includedir}/libprelude/prelude*.hxx
+
+%files c++-static
+%defattr(644,root,root,755)
%{_libdir}/libpreludecpp.a
%if %{with lua}
%defattr(644,root,root,755)
%{perl_vendorarch}/Prelude.pm
%dir %{perl_vendorarch}/auto/Prelude
-%{perl_vendorarch}/auto/Prelude/Prelude.bs
%attr(755,root,root) %{perl_vendorarch}/auto/Prelude/Prelude.so
+
+%files -n perl-PreludeEasy
+%defattr(644,root,root,755)
+%{perl_vendorarch}/PreludeEasy.pm
%dir %{perl_vendorarch}/auto/PreludeEasy
-%{perl_vendorarch}/auto/PreludeEasy/PreludeEasy.bs
%attr(755,root,root) %{perl_vendorarch}/auto/PreludeEasy/PreludeEasy.so
%endif
%files -n python-libprelude
%defattr(644,root,root,755)
%attr(755,root,root) %{py_sitedir}/_prelude.so
-%attr(755,root,root) %{py_sitedir}/_PreludeEasy.so
%{py_sitedir}/prelude.py[co]
+%{py_sitedir}/prelude-%{version}-py*.egg-info
+
+%files -n python-PreludeEasy
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/_PreludeEasy.so
%{py_sitedir}/PreludeEasy.py[co]
-%{py_sitedir}/prelude-*.egg-info
-%{py_sitedir}/PreludeEasy-*.egg-info
+%{py_sitedir}/PreludeEasy-%{version}-py*.egg-info
+%endif
+
+%if %{with ruby}
+%files -n ruby-prelude
+%defattr(644,root,root,755)
+%attr(755,root,root) %{ruby_vendorarchdir}/PreludeEasy.so
%endif