diff --git a/README.md b/README.md index 968bb84..925caa1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # libprelude +Prelude is an Hybrid IDS framework, that is, it is a product that enable all available security application, be it opensource or proprietary, to report to a centralized system. In order to achieve this task, Prelude relies on the IDMEF (Intrusion Detection Message Exchange Format) IETF standard, that enables different kinds of sensors to generate events using an unified language. + diff --git a/libprelude-1.0.0-gcc-4.6.patch b/libprelude-1.0.0-gcc-4.6.patch new file mode 100644 index 0000000..58caadb --- /dev/null +++ b/libprelude-1.0.0-gcc-4.6.patch @@ -0,0 +1,12 @@ +diff -urp libprelude-1.0.0.orig/bindings/c++/include/prelude.hxx libprelude-1.0.0/bindings/c++/include/prelude.hxx +--- libprelude-1.0.0.orig/bindings/c++/include/prelude.hxx 2011-06-24 12:58:29.000000000 -0400 ++++ libprelude-1.0.0/bindings/c++/include/prelude.hxx 2011-06-24 12:59:01.000000000 -0400 +@@ -26,6 +26,8 @@ + #ifndef _LIBPRELUDE_PRELUDE_HXX + #define _LIBPRELUDE_PRELUDE_HXX + ++#include ++ + #include "prelude-client.hxx" + #include "prelude-client-easy.hxx" + #include "prelude-connection.hxx" diff --git a/libprelude-1.0.0-libgnutls-3.0.5.patch b/libprelude-1.0.0-libgnutls-3.0.5.patch new file mode 100644 index 0000000..b072ff1 --- /dev/null +++ b/libprelude-1.0.0-libgnutls-3.0.5.patch @@ -0,0 +1,24 @@ +--- libprelude-1.0.1-old/prelude-admin/prelude-admin.c 2012-06-01 12:12:22.000000000 -0300 ++++ libprelude-1.0.1/prelude-admin/prelude-admin.c 2012-08-03 19:23:29.998711311 -0300 +@@ -57,7 +57,9 @@ + #include + #include + #include ++#if GNUTLS_VERSION_NUMBER < 0x030005 + #include ++#endif + + #include "common.h" + #include "config-engine.h" +--- libprelude-1.0.1-old/prelude-admin/server.c 2012-06-01 12:12:22.000000000 -0300 ++++ libprelude-1.0.1/prelude-admin/server.c 2012-08-03 19:23:02.195712002 -0300 +@@ -39,7 +39,9 @@ + + #include + #include ++#if GNUTLS_VERSION_NUMBER < 0x030005 + #include ++#endif + + #include "prelude-client.h" + #include "prelude-error.h" diff --git a/libprelude-1.0.0-libtool-2.4.patch b/libprelude-1.0.0-libtool-2.4.patch new file mode 100644 index 0000000..c6f147f --- /dev/null +++ b/libprelude-1.0.0-libtool-2.4.patch @@ -0,0 +1,21 @@ +libtool 2.4 changed lt__PROGRAM__LTX_preloaded_symbols definition to + +extern LT_DLSYM_CONST lt_dlsymlist lt__PROGRAM__LTX_preloaded_symbols[]; + +but there is no easy way to find its version to fix it properly, so it's a +temporary hack to make at least libprelude compile. +Index: libprelude-1.0.0/src/include/prelude-plugin.h +=================================================================== +--- libprelude-1.0.0.orig/src/include/prelude-plugin.h 2010-11-06 21:30:18.000000000 +0300 ++++ libprelude-1.0.0/src/include/prelude-plugin.h 2010-11-06 21:30:47.000000000 +0300 +@@ -61,9 +61,8 @@ + */ + #ifdef PRELUDE_APPLICATION_USE_LIBTOOL2 + # define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols +-#endif +- + extern const void *lt_preloaded_symbols[]; ++#endif + + #define PRELUDE_PLUGIN_SET_PRELOADED_SYMBOLS() \ + prelude_plugin_set_preloaded_symbols(lt_preloaded_symbols) diff --git a/libprelude-1.0.1-gcc-4.7.patch b/libprelude-1.0.1-gcc-4.7.patch new file mode 100644 index 0000000..fe9ed81 --- /dev/null +++ b/libprelude-1.0.1-gcc-4.7.patch @@ -0,0 +1,49 @@ +@@ -, +, @@ + libmissing/m4/stdio_h.m4 | 4 ++-- + libmissing/m4/warn-on-use.m4 | 4 ++-- + libmissing/stdio.in.h | 6 ++++-- + 3 files changed, 8 insertions(+), 6 deletions(-) +--- a/libmissing/m4/stdio_h.m4 ++++ a/libmissing/m4/stdio_h.m4 +@@ -34,9 +34,9 @@ AC_DEFUN([gl_STDIO_H], + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, and which is not +- dnl guaranteed by C89. ++ dnl guaranteed by both C89 and C11. + gl_WARN_ON_USE_PREPARE([[#include +- ]], [dprintf fpurge fseeko ftello getdelim getline popen renameat ++ ]], [dprintf fpurge fseeko ftello getdelim getline gets popen renameat + snprintf vdprintf vsnprintf]) + ]) + +--- a/libmissing/m4/warn-on-use.m4 ++++ a/libmissing/m4/warn-on-use.m4 +@@ -18,8 +18,8 @@ dnl with or without modifications, as long as this notice is preserved. + # some systems declare functions in the wrong header, then INCLUDES + # should do likewise. + # +-# If you assume C89, then it is generally safe to assume declarations +-# for functions declared in that standard (such as gets) without ++# It is generally safe to assume declarations for functions declared ++# in the intersection of C89 and C11 (such as printf) without + # needing gl_WARN_ON_USE_PREPARE. + AC_DEFUN([gl_WARN_ON_USE_PREPARE], + [ +--- a/libmissing/stdio.in.h ++++ a/libmissing/stdio.in.h +@@ -114,10 +114,12 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " + #endif + + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning; besides, C11 ++ removed it. */ + #undef gets ++#if HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); ++#endif + + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ diff --git a/libprelude.spec b/libprelude.spec new file mode 100644 index 0000000..18dcc65 --- /dev/null +++ b/libprelude.spec @@ -0,0 +1,146 @@ +Name: libprelude +Version: 1.0.1 +Release: 1mamba +Summary: A hybrid Intrusion Detection framework implementing an open communication layer +Group: System/Libraries +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.prelude-technologies.com +Source: https://www.prelude-ids.org/attachments/download/241/libprelude-%{version}.tar.gz +Patch0: %{name}-1.0.0-libtool-2.4.patch +Patch1: libprelude-1.0.0-gcc-4.6.patch +Patch2: libprelude-1.0.0-libgnutls-3.0.5.patch +Patch3: libprelude-1.0.1-gcc-4.7.patch +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libgcc +BuildRequires: libgcrypt-devel +BuildRequires: libgmp-devel +BuildRequires: libgnutls-devel +BuildRequires: libgpg-error-devel +BuildRequires: libltdl-devel +BuildRequires: libnettle-devel +BuildRequires: libpython-devel +BuildRequires: libstdc++6-devel +BuildRequires: libtasn1-devel +BuildRequires: libz-devel +BuildRequires: p11-kit-devel +BuildRequires: perl-devel +BuildRequires: ruby-devel +## AUTOBUILDREQ-END +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +Prelude is an Hybrid IDS framework, that is, it is a product that enable all available security application, be it opensource or proprietary, to report to a centralized system. In order to achieve this task, Prelude relies on the IDMEF (Intrusion Detection Message Exchange Format) IETF standard, that enables different kinds of sensors to generate events using an unified language. + +%package devel +Summary: Devel package for %{name} +Group: Development/Libraries +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description devel +Prelude is an Hybrid IDS framework, that is, it is a product that enable all available security application, be it opensource or proprietary, to report to a centralized system. In order to achieve this task, Prelude relies on the IDMEF (Intrusion Detection Message Exchange Format) IETF standard, that enables different kinds of sensors to generate events using an unified language. +This package contains static libraries and header files need for development. + +%package -n perl-Prelude +Summary: Perl interface to the Prelude Intrution Detection Framework +Group: System/Libraries +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description -n perl-Prelude +Prelude is an Hybrid IDS framework, that is, it is a product that enable all available security application, be it opensource or proprietary, to report to a centralized system. In order to achieve this task, Prelude relies on the IDMEF (Intrusion Detection Message Exchange Format) IETF standard, that enables different kinds of sensors to generate events using an unified language. +This package contains the perl library interface. + +%package -n python-Prelude +Summary: Python interface to the Prelude Intrution Detection Framework +Group: System/Libraries +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +BuildRequires: libtasn1-devel + +%description -n python-Prelude +Prelude is an Hybrid IDS framework, that is, it is a product that enable all available security application, be it opensource or proprietary, to report to a centralized system. In order to achieve this task, Prelude relies on the IDMEF (Intrusion Detection Message Exchange Format) IETF standard, that enables different kinds of sensors to generate events using an unified language. +This package contains the python library interface. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +%build +export CFLAGS="-Wno-deprecated-declarations" +%configure --without-lua +%make + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall + +packlist=`find %{buildroot} -name .packlist` +[ -z "$packlist" ] && exit 1 || cat $packlist | \ + sed "s,%buildroot,,g;s,.*/man/.*,&.gz,g" | \ + sort -u > .packlist && rm $packlist + +strid=`echo $packlist | sed 's,.*auto\(.*\)/.packlist,\1,'` +for dir in `find %{buildroot} -type d | grep $strid`; do + echo "%dir ${dir#%buildroot}" >> .packlist +done + +find %{buildroot}/usr/lib/perl5 -name perllocal.pod -exec rm -f {} \; + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%files +%defattr(-,root,root) +%dir %{_sysconfdir}/prelude +%{_sysconfdir}/prelude/default/*.conf +%{_bindir}/prelude-adduser +%{_bindir}/prelude-admin +%{_libdir}/libprelude.so.* +%{_libdir}/libpreludecpp.so.* +%{_libdir}/ruby/site_ruby +%{_mandir}/man1/prelude-admin.1.gz +%doc AUTHORS COPYING ChangeLog NEWS README + +%files devel +%defattr(-,root,root) +%{_bindir}/libprelude-config +%dir %{_includedir}/libprelude +%{_includedir}/libprelude/*.h +%{_includedir}/libprelude/*.hxx +%{_datadir}/aclocal/libprelude.m4 +%{_datadir}/gtk-doc/html/libprelude/* +%{_libdir}/libprelude.la +%{_libdir}/libprelude.so +%{_libdir}/libpreludecpp.la +%{_libdir}/libpreludecpp.so +#%{_libdir}/PreludeEasy.la +#%{_libdir}/PreludeEasy.so +%{_libdir}/pkgconfig/libprelude.pc + +%files -n perl-Prelude -f .packlist +%defattr(-,root,root) + +%files -n python-Prelude +%defattr(-,root,root) +%{python_sitearch}/* + +%changelog +* Fri Nov 16 2012 Silvan Calarco 1.0.1-1mamba +- update to 1.0.1 + +* Wed Sep 26 2012 Silvan Calarco 1.0.0-2mamba +- rebuilt (gcc 4.6 and gnutls patches added; disabled lua support) + +* Thu Nov 11 2010 Silvan Calarco 1.0.0-1mamba +- update to 1.0.0 + +* Mon Jun 02 2008 gil 0.9.17.2-1mamba +- update to 0.9.17.2 + +* Sun Jun 24 2007 Silvan Calarco 0.9.14-1mamba +- package created by autospec