Blob Blame History Raw
Name:           libeatmydata
Version:        130
Release:        4%{?dist}
Group:          Development/Tools
License:        GPLv3
Summary:        Library and utilities designed to disable fsync and friends
BuildRequires:  gcc, make, libtool, strace, gnupg
Source0:        https://www.flamingspork.com/projects/libeatmydata/%{name}-%{version}.tar.gz
Source1:        https://www.flamingspork.com/projects/libeatmydata/%{name}-%{version}.tar.gz.asc
Source2:        https://flamingspork.com/stewart.gpg
# Man page to be included upstream soon...
Source3:        https://salsa.debian.org/debian/libeatmydata/-/raw/048c4ea3/debian/eatmydata.1
URL:            https://www.flamingspork.com/projects/libeatmydata/
%if !(0%{?rhel} && 0%{?rhel} < 8)
Recommends: eatmydata
%endif

%description
This package contains a small LD_PRELOAD library (libeatmydata) and a couple 
of helper utilities (eatmydata) designed to transparently disable fsync and
friends (like open(O_SYNC)). This has two side-effects: making software that
writes data safely to disk a lot quicker and making this software no longer 
crash safe.

%package -n eatmydata
Summary: Utility to disable fsync() and friends for the command specified 
# Explict requires as the main package is a shell script that does an LD_PRELOAD
# and thus we don't get automatic dependencies!
Requires: %{name}

%description -n eatmydata
The eatmydata script does the heavy lifting of LD_PRELOAD for the command
specified. You can also symlink a command to the eatmydata wrapper and the
wrapper will find the command in PATH and then execute it after setting up
the libeatmydata LD_PRELOAD

%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup

%build
%configure --enable-static=no
%make_build

%install

%make_install
mkdir -p %{buildroot}%{_mandir}/man1/
install -m444 -p %{SOURCE3} %{buildroot}%{_mandir}/man1/

%if !0%{?fedora} || 0%{?fedora} < 36
find %{buildroot} -name "*.la" -type f -delete
%endif

%check
%{__make} check

%files -n eatmydata
%{_bindir}/eatmydata
%{_libexecdir}/eatmydata.sh
%{_mandir}/man1/eatmydata.1*
%doc README.md AUTHORS
%license COPYING

%files
%{_libdir}/*.so

%changelog
* Sat Jun 11 2022 Stewart Smith <stewart@flamingspork.com> - 130-4
- Fix Summary
- Build eatmydata per-arch as script contains arch specific dirs
  See https://bugzilla.redhat.com/show_bug.cgi?id=2099313
* Tue May 31 2022 Stewart Smith <stewart@flamingspork.com> - 130-3
- Fixes for submitting packaging to Fedora
* Fri May 27 2022 Stewart Smith <stewart@flamingspork.com> - 130-2
- Package for Fedora
* Sun Oct 10 2021 Stewart Smith <stewart@flamingspork.com> - 130-1
- version 130, add syncfs() wrapper
* Sat Apr 10 2021 Stewart Smith <stewart@flamingspork.com> - 129-1
- Version 129, as always, bug fix release
* Fri Jul 26 2013 Jaroslav Kortus <jkortus@redhat.com> - 82-1
- Version 82, bug fix release
- spec file changed to meet fedora packaging guidelines
* Fri May 18 2013 Stewart Smith <stewart@flamingspork.com> - 79
- Version 79, bug fix release
* Fri Mar 08 2013 Alexey Bychko <alexey.bychko@percona.com> - 0.1
- Version 0.1, initial package for RPM-based systems