ceph/ceph.spec.in

117 lines
3.2 KiB
RPMSpec

%define pkg_version @VERSION@
# Build against the running kernel - this can be changed to whatever kernel version you want to build against.
%define kernel %(uname -r)
# Get the kernel version that is running, but chop off the architecture part (e.g. 2.6.25.10-86.fc9.x86_64 goes to 2.6.25.10-86.fc9)
%define knoarch %(uname -r | sed s/\.[^.]*$//g)
%define mybuildroot %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define optflags "-O2"
Name: ceph
Version: %{pkg_version}
Release: 1%{?dist}
Packager: Brock Erwin <brock.erwin@pnl.gov>
Summary: ceph mon, mds, osd, fuse-client, and kernel-client
License: LGPL
Group: Utilities/System
URL: http://ceph.newdream.net/
Source: %{name}-%{pkg_version}.tar.gz
BuildRequires: fuse-devel, gcc-c++, libtool, libtool-ltdl-devel, boost-devel, git, perl, perl-devel, gdbm, kernel-devel == %{knoarch}
BuildRoot: %{mybuildroot}
Requires: ceph-mon, ceph-mds, ceph-osd, kmod-ceph-%{kernel}
%description
Ceph is a distributed network file system designed to provide excellent
performance, reliability, and scalability.
%package mon
Summary: ceph monitor and admin binaries
Group: Utilities/System
Requires: libstdc++, glibc-devel, glibc, libgcc
%description mon
monitor and admin binaries
%package mds
Summary: ceph mds binaries
Group: Utilities/System
Requires: libstdc++, glibc-devel, glibc, libgcc
%description mds
mds binaries
%package osd
Summary: ceph osd binaries
Group: Utilities/System
Requires: libstdc++, glibc-devel, glibc, libgcc
%description osd
osd binaries
%package fuse-client
Summary: ceph fuse-based client
Group: Utilities/System
Requires: libstdc++, glibc-devel, glibc, libgcc, fuse-devel
%description fuse-client
fuse-based client
%package -n kmod-ceph-%{kernel}
Summary: kernel-client tools for mounting the ceph file system.
Group: Utilities/System
Requires: libstdc++, glibc-devel, glibc, libgcc
%description -n kmod-ceph-%{kernel}
kernel-client module
%package testing
Summary: kernel-client tools for mounting the ceph file system.
Group: Utilities/System
Requires: libstdc++, glibc-devel, glibc, libgcc
%description testing
Used as a placeholder for binaries that are installed but unused by the user (testing purposes only)
%prep
%setup -q -n %{name}-%{pkg_version}
%build
./autogen.sh
%{configure}
make %{_smp_mflags}
make -C src/kernel KERNELDIR=/lib/modules/%{kernel}/build # Build the kernel module
%install
%{makeinstall}
mkdir -p $RPM_BUILD_ROOT/lib/modules/%{kernel}/extra
install src/kernel/ceph.ko $RPM_BUILD_ROOT/lib/modules/%{kernel}/extra
# Install the kernel module
mkdir -p $RPM_BUILD_ROOT/usr/share/ceph
install README $RPM_BUILD_ROOT/usr/share/ceph
%clean
rm -rf $RPM_BUILD_ROOT
%files
/usr/share/ceph/README
%files mon
%{_bindir}/cmon
%{_bindir}/ceph
%{_bindir}/crushtool
%{_bindir}/mkmonfs
%{_bindir}/monmaptool
%{_bindir}/osdmaptool
%{_bindir}/csyn
%{_bindir}/crun
%files mds
%{_bindir}/cmds
%files osd
%{_bindir}/cosd
%{_bindir}/dupstore
%files fuse-client
%{_bindir}/cfuse
%files -n kmod-ceph-%{kernel}
/lib/modules/%{kernel}/extra/ceph.ko
%files testing
%{_bindir}/dumpjournal
%{_bindir}/streamtest