File fstrm.spec of Package fstrm

#
# spec file for package fstrm
#
# Copyright (c) 2022 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#


%define c_lib   libfstrm0
Name:           fstrm
Version:        0.6.1
Release:        0
Summary:        Frame Streams implementation in C
License:        MIT
Group:          Development/Libraries/C and C++
URL:            https://github.com/farsightsec/fstrm
Source:         https://dl.farsightsecurity.com/dist/%{name}/%{name}-%{version}.tar.gz
BuildRequires:  libevent-devel >= 2
BuildRequires:  pkgconfig

%description
fstrm is a C implementation of Frame Streams that includes a 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.

Frame Streams is a protocol that allows for the transport of
arbitrarily encoded data payload sequences with just 4 bytes per data
frame. Frame Streams does not specify an encoding format for frames
and can be used with data serialization formats that produces byte
sequences, such as Protocol Buffers, XML, JSON, MessagePack, YAML,
etc. Frame Streams can be used both as a streaming transport over a
reliable byte stream socket (TCP, AF_UNIX, TLS, 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.

%package -n %{c_lib}
Summary:        Frame Streams implementation in C
Group:          System/Libraries

%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:        Development files for fstrm, a Frame Streams implementation in C
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_build

%install
%make_install
rm %{buildroot}%{_libdir}/libfstrm.la

%post   -n %{c_lib} -p /sbin/ldconfig
%postun -n %{c_lib} -p /sbin/ldconfig

%files
%doc ChangeLog README*
%license COPYRIGHT LICENSE
%{_bindir}/fstrm_capture
%{_bindir}/fstrm_dump
%{_bindir}/fstrm_replay
%{_mandir}/man1/fstrm_capture.1%{?ext_man}
%{_mandir}/man1/fstrm_dump.1%{?ext_man}
%{_mandir}/man1/fstrm_replay.1%{?ext_man}

%files -n %{c_lib}
%license COPYRIGHT LICENSE
%{_libdir}/libfstrm.so.*

%files devel
%{_includedir}/fstrm.h
%{_includedir}/fstrm/
%{_libdir}/libfstrm.so
%{_libdir}/pkgconfig/libfstrm.pc

%changelog
openSUSE Build Service is sponsored by