SHA256
1
0
forked from pool/fstrm
fstrm/fstrm.spec

107 lines
3.7 KiB
RPMSpec
Raw Normal View History

#
# spec file for package fstrm
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define c_lib libfstrm0
Name: fstrm
Version: 0.2.0
Release: 0
Summary: Frame Streams implementation in C
License: Apache-2.0
Group: System/Libraries
Url: https://github.com/farsightsec/fstrm
Source: https://github.com/farsightsec/fstrm/releases/download/v%{version}/%{name}-%{version}.tar.gz
BuildRequires: libevent-devel
BuildRequires: pkg-config
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
This is fstrm, a C implementation of the Frame Streams data transport protocol.
Frame Streams is a light weight, binary clean protocol that allows for the
transport of arbitrarily encoded data payload sequences with minimal framing
overhead -- just four bytes per data frame. Frame Streams does not specify an
encoding format for data frames and can be used with any data serialization
format that produces byte sequences, such as Protocol Buffers, XML, JSON,
MessagePack, YAML, etc. Frame Streams can be used as both a streaming transport
over a reliable byte stream socket (TCP sockets, TLS connections, AF_UNIX
sockets, etc.) for data in motion as well as a file format for data at rest. A
"Content Type" header identifies the type of payload being carried over an
individual Frame Stream and allows cooperating programs to determine how to
interpret a given sequence of data payloads.
fstrm is an optimized C implementation of Frame Streams that includes a fast,
lockless circular queue implementation and exposes library interfaces for
setting up a dedicated Frame Streams I/O thread and asynchronously submitting
data frames for transport from worker threads. It was originally written to
facilitate the addition of high speed binary logging to DNS servers written in
C using the dnstap log format.
%package -n %{c_lib}
Summary: Frame Streams implementation in C - Shared libary file
Group: Development/Libraries/C and C++
%description -n %{c_lib}
This is fstrm, a C implementation of the Frame Streams data transport protocol.
This packages holds the shared library file.
%package devel
Summary: Frame Streams implementation in C - Development files
Group: Development/Libraries/C and C++
Requires: %{c_lib} = %{version}
Provides: libfstrm-devel = %{version}-%{release}
%description devel
This is fstrm, a C implementation of the Frame Streams data transport protocol.
This packages holds the development files.
%prep
%setup -q
%build
%configure --disable-silent-rules --disable-static
make %{?_smp_mflags}
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
rm %{buildroot}%{_libdir}/libfstrm.la
%post -n %{c_lib} -p /sbin/ldconfig
%postun -n %{c_lib} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc ChangeLog README* COPYRIGHT LICENSE
%{_bindir}/fstrm_capture
%{_bindir}/fstrm_dump
%files -n %{c_lib}
%defattr(-,root,root)
%{_libdir}/libfstrm.so.*
%files devel
%defattr(-,root,root)
%{_includedir}/fstrm.h
%{_includedir}/fstrm/
%{_libdir}/libfstrm.so
%{_libdir}/pkgconfig/libfstrm.pc
%changelog