# # 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: 1.9 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 * Mon Aug 16 2021 Dirk Müller - update to 0.6.1: * fstrm_capture: ignore SIGPIPE, which will cause the interrupted connections to generate an EPIPE instead. * Fix truncation in snprintf calls in argument processing. * fstrm_capture: Fix output printf format. * Sun Apr 5 2020 Marcus Rueckert - Update to 0.6.0 It adds a new feature for fstrm_capture. It can perform output file rotation when a SIGUSR1 signal is received by fstrm_capture. (See the --gmtime or --localtime options.) This allows fstrm_capture's output file to be rotated by logrotate or a similar external utility. (Output rotation is suppressed if fstrm_capture is writing to stdout.) - Changes from 0.5.0 - Change license to modern MIT license for compatibility with GPLv2 software. Contact software@farsightsecurity.com for alternate licensing. - src/fstrm_replay.c: For OpenBSD and Posix portability include netinet/in.h and sys/socket.h to get struct sockaddr_in and the AF_* defines respectively. - Fix various compiler warnings. - Changes from 0.4.0 The C implementation of the Frame Streams data transport protocol, fstrm version 0.4.0, was released. It adds TCP support, a new tool, new documentation, and several improvements. - Added manual pages for fstrm_capture and fstrm_dump. - Added new tool, fstrm_replay, for replaying saved Frame Streams data to a socket connection. - Adds TCP support. Add tcp_writer to the core library which implements a bi-directional Frame Streams writer as a TCP socket client. Introduces new developer API: fstrm_tcp_writer_init, fstrm_tcp_writer_options_init, fstrm_tcp_writer_options_destroy, fstrm_tcp_writer_options_set_socket_address, and fstrm_tcp_writer_options_set_socket_port. - fstrm_capture: new options for reading from TCP socket. - fstrm_capture: add "-c" / "--connections" option to limit the number of concurrent connections it will accept. - fstrm_capture: add "-b / --buffer-size" option to set the read buffer size (effectively the maximum frame size) to a value other than the default 256 KiB. - fstrm_capture: skip oversize messages to fix stalled connections caused by messages larger than the read highwater mark of the input buffer. Discarded messages are logged for the purposes of tuning the input buffer size. - fstrm_capture: complete sending of FINISH frame before closing connection. - Various test additions and improvements. * Tue Jan 2 2018 jengelh@inai.de - Compact description. Fix RPM groups. * Mon Jan 1 2018 avindra@opensuse.org - update to 0.3.2 * Accommodate systems without pthread_condattr_setclock - 0.3.1 * Add support for '-' as a filename for stdin/stdout * Destroy condition variable and mutexes in fstrm_iothr_destroy() - 0.3.0 * Output file rotation * Change state properly in fstrm_writer_close() * force output flush on sighup * Build on OS X - cleanup with spec-cleaner - use dist tarball instead of github archive * Thu Sep 3 2015 mrueckert@suse.de - require the correct version of libevent to make it fail early * Wed Jun 17 2015 thehejik@suse.com - fixed group of shared library- * Tue Jun 16 2015 mvetter@suse.com - cleanup spec file, remove .la * Thu Apr 9 2015 mrueckert@suse.de - initial package