]> git.pld-linux.org Git - packages/ceph.git/blobdiff - ceph.spec
- rel 2; fix build with new boost
[packages/ceph.git] / ceph.spec
index cfa6cc3c534aecdb4a25d746f82462b581db20d3..1c329653c1fc42efe0aace596fb8af4b9bc4655a 100644 (file)
--- a/ceph.spec
+++ b/ceph.spec
@@ -1,24 +1,50 @@
+# TODO:
+#      - accelio libxio (BR: accelio libibverbs-devel librdmacm-devel
+#      - proper init scripts if non-systemd boot is too be supported
+#         (upstream scripts seem overcomplicated and hardly useful)
+#      - run as non-root user
+#
 #
 # Conditional build:
-%bcond_without java    # Java binding
-%bcond_with    zfs     # ZFS support [needs zfs.pc, not provided yet(?)]
+%bcond_without java            # Java binding
+%bcond_with    kinetic         # Kinetic storage support [needs update for internal API changes]
+%bcond_with    rocksdb         # RocksDB storage support [needs update for internal API changes]
+%bcond_with    zfs             # ZFS support
+%bcond_without lttng           # LTTng tracing
+%bcond_without babeltrace      # Babeltrace traces support
+%bcond_without tcmalloc        # tcmalloc allocator
+
+%ifarch x32
+%undefine      with_tcmalloc
+%endif
 #
 Summary:       User space components of the Ceph file system
 Summary(pl.UTF-8):     Działające w przestrzeni użytkownika elementy systemu plików Ceph
 Name:          ceph
-Version:       0.71
-Release:       1
+Version:       0.94.2
+Release:       2
 License:       LGPL v2.1 (libraries), GPL v2 (some programs)
 Group:         Base
-Source0:       http://ceph.newdream.net/download/%{name}-%{version}.tar.bz2
-# Source0-md5: dad716bed4ecbf7fe31d4dbeec98d654
+Source0:       http://ceph.com/download/%{name}-%{version}.tar.bz2
+# Source0-md5: 249648d35e634adaaeec727408ca6092
+Source1:       ceph.sysconfig
+# based on files from https://github.com/ceph/ceph/tree/master/systemd
+Source10:      cephctl
+Source11:      ceph-mds@.service
+Source12:      ceph-mon@.service
+Source13:      ceph-osd@.service
+Source14:      ceph.target
+Source15:      ceph.tmpfiles
 Patch0:                %{name}-init-fix.patch
 Patch1:                %{name}.logrotate.patch
-URL:           http://ceph.newdream.net/
+Patch2:                %{name}-link.patch
+Patch3:                %{name}-ac.patch
+Patch4:                %{name}-boost.patch
+URL:           http://ceph.com/
 BuildRequires: autoconf >= 2.59
 BuildRequires: automake
+%{?with_babeltrace:BuildRequires:      babeltrace-devel}
 BuildRequires: boost-devel >= 1.34
-BuildRequires: cryptopp-devel
 BuildRequires: curl-devel
 BuildRequires: expat-devel >= 1.95
 BuildRequires: fcgi-devel
@@ -27,22 +53,29 @@ BuildRequires:      gdbm-devel
 BuildRequires: jdk
 %endif
 BuildRequires: keyutils-devel
-BuildRequires: leveldb-devel
+%{?with_kinetic:BuildRequires: kinetic-cpp-client}
+BuildRequires: leveldb-devel >= 1.2
 BuildRequires: libaio-devel
 BuildRequires: libatomic_ops
+BuildRequires: libblkid-devel >= 2.17
 BuildRequires: libedit-devel >= 2.11
 BuildRequires: libfuse-devel
 BuildRequires: libltdl-devel
 BuildRequires: libs3-devel
 BuildRequires: libstdc++-devel
-BuildRequires: libtcmalloc-devel
+%{?with_tcmalloc:BuildRequires:        libtcmalloc-devel}
 BuildRequires: libtool >= 2:1.5
 BuildRequires: libuuid-devel
+%{?with_lttng:BuildRequires:   lttng-ust-devel}
+BuildRequires: nss-devel
 BuildRequires: perl-base
 BuildRequires: pkgconfig
 BuildRequires: python >= 1:2.4
-BuildRequires: rpmbuild(macros) >= 1.228
+%{?with_rocksdb:BuildRequires: rocksdb-devel}
+BuildRequires: rpmbuild(macros) >= 1.671
 BuildRequires: snappy-devel
+BuildRequires: udev-devel
+BuildRequires: xfsprogs-devel
 %ifarch %{x8664}
 BuildRequires: yasm
 %endif
@@ -50,6 +83,8 @@ BuildRequires:        yasm
 Requires(post,preun):  /sbin/chkconfig
 Requires(preun):       rc-scripts
 Requires:      %{name}-libs = %{version}-%{release}
+Requires:      python-%{name} = %{version}-%{release}
+Requires:      systemd-units >= 38
 Obsoletes:     gcephtool
 Obsoletes:     hadoop-cephfs
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -82,7 +117,7 @@ License:     LGPL v2.1
 Group:         Development/Libraries
 Requires:      %{name}-libs = %{version}-%{release}
 Requires:      boost-devel >= 1.34
-Requires:      cryptopp-devel
+Requires:      nss-devel
 Requires:      leveldb-devel
 Requires:      libatomic_ops
 Requires:      libuuid-devel
@@ -177,6 +212,9 @@ Agenci OCF do monitorowania procesów Cepha.
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 %build
 %{__libtoolize}
@@ -188,10 +226,17 @@ Agenci OCF do monitorowania procesów Cepha.
 # using included one which fails with Sun/Oracle JDK 1.6
 %configure \
        %{?with_java:JAVAC=/usr/bin/javac} \
+       %{?with_zfs:LIBZFS_CFLAGS="-I/usr/include/libzfs -I/usr/include/libspl"} \
        ac_cv_prog_uudecode_base64=no \
        --sbindir=/sbin \
-       --with-cryptopp \
+       %{!?with_babeltrace:--without-babeltrace} \
+       --without-cryptopp \
+       --with-nss \
+       %{!?with_tcmalloc:--without-tcmalloc} \
+       %{?with_kinetic:--with-kinetic} \
+       %{?with_rocksdb:--with-librocksdb} \
        %{?with_zfs:--with-libzfs} \
+       %{!?with_lttng:--without-lttng} \
        --with-ocf \
        --with-radosgw \
        --with-system-leveldb \
@@ -199,12 +244,13 @@ Agenci OCF do monitorowania procesów Cepha.
        %{?with_java:--enable-cephfs-java --with-jdk-dir=%{_jvmdir}/java} \
        --disable-silent-rules
 
-%{__make}
+%{__make} -j1
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_localstatedir}/{lib/ceph/tmp,log/ceph/stat} \
-       $RPM_BUILD_ROOT%{_sysconfdir}/{ceph,bash_completion.d,logrotate.d,rc.d/init.d}
+install -d $RPM_BUILD_ROOT%{_localstatedir}/{lib/ceph/{tmp,mon,osd,mds},log/ceph/stat,run/ceph} \
+       $RPM_BUILD_ROOT%{_sysconfdir}/{ceph,bash_completion.d,logrotate.d,rc.d/init.d,sysconfig} \
+       $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdtmpfilesdir},/etc/systemd/system/ceph.target.wants}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT \
@@ -213,8 +259,15 @@ install -d $RPM_BUILD_ROOT%{_localstatedir}/{lib/ceph/tmp,log/ceph/stat} \
 install -p src/init-ceph $RPM_BUILD_ROOT/etc/rc.d/init.d/ceph
 install -p src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph
 
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/ceph
+install %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}
+install %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} $RPM_BUILD_ROOT%{systemdunitdir}
+ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/ceph.service
+install %{SOURCE15} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ceph.conf
+
 # loadable modules
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/{erasure-code,rados-classes}/*.{a,la}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/*.{a,la}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/rados-classes/*.{a,la}
 %if %{with java}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcephfs_jni.{la,a}
 %endif
@@ -231,11 +284,18 @@ rm -rf $RPM_BUILD_ROOT
 /sbin/chkconfig --add ceph
 %service ceph restart
 
+# actual services are to be enabled on cluster deployment
+%systemd_post %{name}.target
+
 %preun
 if [ "$1" = "0" ] ; then
        %service ceph stop
        /sbin/chkconfig --del ceph
 fi
+%systemd_preun %{name}.target
+
+%postun
+%systemd_reload
 
 %post  libs -p /sbin/ldconfig
 %postun        libs -p /sbin/ldconfig
@@ -248,25 +308,37 @@ fi
 # COPYING specifies licenses of individual parts
 %doc AUTHORS COPYING README src/sample.ceph.conf src/sample.fetch_config
 %attr(754,root,root) /etc/rc.d/init.d/ceph
+%config(noreplace) /etc/sysconfig/ceph
+%dir /etc/systemd/system/ceph.target.wants
+%{systemdunitdir}/ceph-mds@.service
+%{systemdunitdir}/ceph-mon@.service
+%{systemdunitdir}/ceph-osd@.service
+%{systemdunitdir}/ceph.service
+%{systemdunitdir}/ceph.target
+%{systemdtmpfilesdir}/ceph.conf
 %dir %{_sysconfdir}/ceph
 %attr(755,root,root) %{_bindir}/ceph
 %attr(755,root,root) %{_bindir}/ceph-authtool
+%attr(755,root,root) %{_bindir}/ceph-brag
 %attr(755,root,root) %{_bindir}/ceph-clsinfo
 %attr(755,root,root) %{_bindir}/ceph-conf
 %attr(755,root,root) %{_bindir}/ceph-coverage
+%attr(755,root,root) %{_bindir}/ceph-crush-location
 %attr(755,root,root) %{_bindir}/ceph-debugpack
 %attr(755,root,root) %{_bindir}/ceph-dencoder
 %attr(755,root,root) %{_bindir}/ceph-mds
 %attr(755,root,root) %{_bindir}/ceph-mon
+%attr(755,root,root) %{_bindir}/ceph-objectstore-tool
 %attr(755,root,root) %{_bindir}/ceph-osd
 %attr(755,root,root) %{_bindir}/ceph-post-file
 %attr(755,root,root) %{_bindir}/ceph-rbdnamer
 %attr(755,root,root) %{_bindir}/ceph-rest-api
 %attr(755,root,root) %{_bindir}/ceph-run
 %attr(755,root,root) %{_bindir}/ceph-syn
-%attr(755,root,root) %{_bindir}/ceph_filestore_dump
-%attr(755,root,root) %{_bindir}/ceph_mon_store_converter
+%attr(755,root,root) %{_bindir}/cephctl
 %attr(755,root,root) %{_bindir}/cephfs
+%attr(755,root,root) %{_bindir}/cephfs-journal-tool
+%attr(755,root,root) %{_bindir}/cephfs-table-tool
 %attr(755,root,root) %{_bindir}/crushtool
 %attr(755,root,root) %{_bindir}/librados-config
 %attr(755,root,root) %{_bindir}/monmaptool
@@ -274,21 +346,46 @@ fi
 %attr(755,root,root) %{_bindir}/rados
 %attr(755,root,root) %{_bindir}/rbd
 %attr(755,root,root) %{_bindir}/rbd-fuse
-%attr(755,root,root) %{_sbindir}/ceph-create-keys
-%attr(755,root,root) %{_sbindir}/ceph-disk
-%attr(755,root,root) %{_sbindir}/ceph-disk-activate
-%attr(755,root,root) %{_sbindir}/ceph-disk-prepare
-%attr(755,root,root) %{_sbindir}/ceph-disk-udev
-%attr(755,root,root) /sbin/mkcephfs
+%attr(755,root,root) %{_bindir}/rbd-replay
+%attr(755,root,root) %{_bindir}/rbd-replay-many
+%attr(755,root,root) %{_bindir}/rbd-replay-prep
+%attr(755,root,root) /sbin/ceph-create-keys
+%attr(755,root,root) /sbin/ceph-disk
+%attr(755,root,root) /sbin/ceph-disk-activate
+%attr(755,root,root) /sbin/ceph-disk-prepare
+%attr(755,root,root) /sbin/ceph-disk-udev
 %attr(755,root,root) /sbin/mount.ceph
 %attr(755,root,root) /sbin/mount.fuse.ceph
-%dir %{_libdir}/erasure-code
-%attr(755,root,root) %{_libdir}/erasure-code/libec_example.so*
-%attr(755,root,root) %{_libdir}/erasure-code/libec_fail_to_initialize.so*
-%attr(755,root,root) %{_libdir}/erasure-code/libec_fail_to_register.so*
-%attr(755,root,root) %{_libdir}/erasure-code/libec_hangs.so*
-%attr(755,root,root) %{_libdir}/erasure-code/libec_jerasure.so*
-%attr(755,root,root) %{_libdir}/erasure-code/libec_missing_entry_point.so*
+%dir %{_libdir}/ceph
+%attr(755,root,root) %{_libdir}/ceph/ceph-osd-prestart.sh
+%{_libdir}/ceph/ceph_common.sh
+%dir %{_libdir}/ceph/erasure-code
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_example.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_fail_to_register.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_hangs.so*
+%ifarch %{x8664}
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_isa.so*
+%endif
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_generic.so*
+%ifarch arm
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_neon.so*
+%endif
+%ifarch %{ix86} %{x8664} x32
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_sse3.so*
+%endif
+%ifarch %{x8664} x32
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_sse4.so*
+%endif
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_lrc.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_missing_entry_point.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_missing_version.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_generic.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_neon.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_sse3.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_sse4.so*
 %dir %{_libdir}/rados-classes
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_hello.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_kvs.so*
@@ -299,9 +396,8 @@ fi
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_replica_log.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_rgw.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_statelog.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_user.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_version.so*
-%dir %{_libdir}/ceph
-%attr(755,root,root) %{_libdir}/ceph/ceph_common.sh
 %{_datadir}/ceph
 %config(noreplace) /etc/logrotate.d/ceph
 %config(noreplace) %{_sysconfdir}/bash_completion.d/rados
@@ -313,6 +409,8 @@ fi
 %{_mandir}/man8/ceph-conf.8*
 %{_mandir}/man8/ceph-debugpack.8*
 %{_mandir}/man8/ceph-dencoder.8*
+%{_mandir}/man8/ceph-deploy.8*
+%{_mandir}/man8/ceph-disk.8*
 %{_mandir}/man8/ceph-mds.8*
 %{_mandir}/man8/ceph-mon.8*
 %{_mandir}/man8/ceph-osd.8*
@@ -324,7 +422,6 @@ fi
 %{_mandir}/man8/cephfs.8*
 %{_mandir}/man8/crushtool.8*
 %{_mandir}/man8/librados-config.8*
-%{_mandir}/man8/mkcephfs.8*
 %{_mandir}/man8/monmaptool.8*
 %{_mandir}/man8/mount.ceph.8*
 %{_mandir}/man8/osdmaptool.8*
@@ -333,10 +430,17 @@ fi
 %{_mandir}/man8/radosgw-admin.8*
 %{_mandir}/man8/rbd.8*
 %{_mandir}/man8/rbd-fuse.8*
+%{_mandir}/man8/rbd-replay.8*
+%{_mandir}/man8/rbd-replay-many.8*
+%{_mandir}/man8/rbd-replay-prep.8*
 
 %dir %{_localstatedir}/lib/ceph
+%dir %{_localstatedir}/lib/ceph/mds
+%dir %{_localstatedir}/lib/ceph/mon
+%dir %{_localstatedir}/lib/ceph/osd
 %dir %{_localstatedir}/lib/ceph/tmp
 %dir %{_localstatedir}/log/ceph
+%dir %{_localstatedir}/run/ceph
 
 %files libs
 %defattr(644,root,root,755)
@@ -344,6 +448,8 @@ fi
 %attr(755,root,root) %ghost %{_libdir}/libcephfs.so.1
 %attr(755,root,root) %{_libdir}/librados.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/librados.so.2
+%attr(755,root,root) %{_libdir}/libradosstriper.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libradosstriper.so.1
 %attr(755,root,root) %{_libdir}/librbd.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/librbd.so.1
 
@@ -351,18 +457,22 @@ fi
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libcephfs.so
 %attr(755,root,root) %{_libdir}/librados.so
+%attr(755,root,root) %{_libdir}/libradosstriper.so
 %attr(755,root,root) %{_libdir}/librbd.so
 %{_libdir}/libcephfs.la
 %{_libdir}/librados.la
+%{_libdir}/libradosstriper.la
 %{_libdir}/librbd.la
 %{_includedir}/cephfs
 %{_includedir}/rados
+%{_includedir}/radosstriper
 %{_includedir}/rbd
 
 %files static
 %defattr(644,root,root,755)
 %{_libdir}/libcephfs.a
 %{_libdir}/librados.a
+%{_libdir}/libradosstriper.a
 %{_libdir}/librbd.a
 
 %files -n python-ceph
This page took 0.301901 seconds and 4 git commands to generate.