From 3be2f53e54cd67c6300162c8d3f08a07d08bfd54 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Tue, 1 Dec 2020 01:54:10 +0300 Subject: [PATCH] Add RPM spec --- rpm/jerasure.spec | 120 ++++++++++++++++++++++++++++++++++++++++++++ rpm/make-tarball.sh | 6 +++ 2 files changed, 126 insertions(+) create mode 100644 rpm/jerasure.spec create mode 100755 rpm/make-tarball.sh diff --git a/rpm/jerasure.spec b/rpm/jerasure.spec new file mode 100644 index 0000000..82b9669 --- /dev/null +++ b/rpm/jerasure.spec @@ -0,0 +1,120 @@ +# +# spec file for package jerasure +# +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# (c) 2020 Vitaliy Filippov +# +# 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. + + +%define libname libJerasure2 +Name: jerasure +Version: 2.0.20170410gitde1739c +Release: 0 +Summary: Forward error correction erasure channel library +License: BSD-3-Clause +Group: Development/Libraries/C and C++ +Url: http://jerasure.org/jerasure/jerasure +Source0: %{name}-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gf-complete-devel +BuildRequires: libtool + +%description +In information theory, an erasure code is a forward error correction (FEC) +code for the binary erasure channel, which transforms a message of symbols +into a longer message (code word) with symbols such that the original +message can be recovered from a subset of the symbols. +Jerasure is a shared library that been designed to be modular, fast and +flexible. It is used in storage systems such as Swift and Ceph to add fault +tolerance. + +%package -n %{libname} +Summary: Forward error correction erasure channel library +Group: Development/Libraries/C and C++ + +%description -n %{libname} +In information theory, an erasure code is a forward error correction (FEC) +code for the binary erasure channel, which transforms a message of symbols +into a longer message (code word) with symbols such that the original +message can be recovered from a subset of the symbols. +Jerasure is a shared library that been designed to be modular, fast and +flexible. It is used in storage systems such as Swift and Ceph to add fault +tolerance. + +%package devel +Summary: Forward error correction erasure channel library +Group: Development/Libraries/C and C++ +Requires: %{libname} = %{version} + +%description devel +In information theory, an erasure code is a forward error correction (FEC) +code for the binary erasure channel, which transforms a message of symbols +into a longer message (code word) with symbols such that the original +message can be recovered from a subset of the symbols. +Jerasure is a shared library that been designed to be modular, fast and +flexible. It is used in storage systems such as Swift and Ceph to add fault +tolerance. + +%package examples +Summary: Examples for %{name} +Group: Development/Libraries/C and C++ +Requires: %{libname} = %{version} + +%description examples +Examples for %{name} + +%prep +%setup -q -n %{name}-%{version} + +%build +autoreconf --force --install -I m4 +%configure \ + --disable-static \ + --disable-silent-rules \ + --disable-rpath +make %{?_smp_mflags} + +%install +make DESTDIR=%{buildroot} install %{?_smp_mflags} +mv %{buildroot}%{_bindir}/decoder %{buildroot}%{_bindir}/jerasure-decoder +mv %{buildroot}%{_bindir}/encoder %{buildroot}%{_bindir}/jerasure-encoder + +%post -n %{libname} -p /sbin/ldconfig + +%postun -n %{libname} -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%doc COPYING README ChangeLog + +%files -n %{libname} +%defattr(-,root,root,-) +%{_libdir}/*.so.* + +%files devel +%defattr(-,root,root) +%{_includedir}/*.h +%{_includedir}/jerasure/*.h +%{_libdir}/libJerasure.la +%{_libdir}/libJerasure.so + +%files examples +%defattr(-,root,root) +%{_bindir}/jerasure-encoder +%{_bindir}/jerasure-decoder +%{_bindir}/jerasure_* +%{_bindir}/cauchy_* +%{_bindir}/reed_sol_* +%{_bindir}/liberation_* + +%changelog diff --git a/rpm/make-tarball.sh b/rpm/make-tarball.sh new file mode 100755 index 0000000..72fb665 --- /dev/null +++ b/rpm/make-tarball.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# prerequisites: yum -y install rpm-build autoconf automake libtool make + +cd `dirname $0`/.. +tar --transform='s#^#jerasure-2.0.20170410gitde1739c/#' -cjf ~/rpmbuild/SOURCES/jerasure-2.0.20170410gitde1739c.tar.bz2 \ + AUTHORS ChangeLog configure.ac COPYING Examples include License.txt m4 Makefile.am Manual.pdf NEWS PERF.txt README src