diff --git a/ceph.spec b/ceph.spec index da99da9..36f2da5 100644 --- a/ceph.spec +++ b/ceph.spec @@ -1,209 +1,468 @@ +%bcond_with ocf -%global _hardened_build 1 - -Name: ceph -Version: 0.81.0 -Release: 2%{?dist} -Summary: User space components of the Ceph file system -License: LGPLv2 -Group: System Environment/Base -URL: https://ceph.com/ - -Source: https://ceph.com/download/%{name}-0.81.tar.bz2 -Patch0: ceph-init-fix.patch -# https://github.com/ceph/ceph/pull/1051 -Patch1: ceph-fix-sbin-target.patch - -BuildRequires: fuse-devel, libtool, libtool-ltdl-devel, boost-devel, -BuildRequires: libedit-devel, fuse-devel, git, perl, gdbm, libaio-devel, -# google-perftools is not available on these: -%if ( ! (0%{?rhel} && 0%{?rhel} <= 6 ) ) -%ifnarch ppc s390 s390x -BuildRequires: gperftools-devel -%endif -%else -%ifnarch ppc ppc64 s390 s390x -BuildRequires: gperftools-devel +%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5) +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %endif + +################################################################################# +# common +################################################################################# +Name: ceph +Version: 0.81.0 +Release: 3%{?dist} +Summary: User space components of the Ceph file system +License: GPL-2.0 +Group: System Environment/Base +URL: http://ceph.com/ +Source0: https://ceph.com/download/%{name}-0.81.tar.bz2 +Requires: librbd1 = %{version}-%{release} +Requires: librados2 = %{version}-%{release} +Requires: libcephfs1 = %{version}-%{release} +Requires: python +Requires: python-argparse +Requires: python-ceph +Requires: python-requests +Requires: xfsprogs +Requires: cryptsetup +Requires: parted +Requires: util-linux +Requires: hdparm +Requires: redhat-lsb-core +Requires(post): binutils +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: make +BuildRequires: gcc-c++ +BuildRequires: libtool +BuildRequires: boost-devel +BuildRequires: libedit-devel +BuildRequires: perl +BuildRequires: gdbm +BuildRequires: pkgconfig +BuildRequires: python +BuildRequires: python-nose +BuildRequires: python-argparse +BuildRequires: libaio-devel +BuildRequires: libcurl-devel +BuildRequires: libxml2-devel +BuildRequires: libuuid-devel +BuildRequires: libblkid-devel >= 2.17 +BuildRequires: libudev-devel +BuildRequires: leveldb-devel > 1.2 +BuildRequires: xfsprogs-devel +BuildRequires: yasm +%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora} +BuildRequires: snappy-devel %endif -BuildRequires: cryptopp-devel, libatomic_ops-static, gcc-c++ -BuildRequires: pkgconfig, libcurl-devel, keyutils-libs-devel -BuildRequires: gtkmm24-devel, gtk2-devel, libuuid, libuuid-devel -BuildRequires: leveldb-devel, snappy-devel, libblkid-devel -BuildRequires: libudev-devel -%if ( ! (0%{?rhel} && 0%{?rhel} <= 6 ) ) -BuildRequires: xfsprogs-devel + +################################################################################# +# specific +################################################################################# +%if ! 0%{?rhel} +BuildRequires: sharutils %endif -Requires(post): chkconfig, binutils, libedit -Requires(preun): chkconfig -Requires(preun): initscripts +%if 0%{defined suse_version} +%if 0%{?suse_version} > 1210 +Requires: gptfdisk +BuildRequires: gperftools-devel +%else +Requires: scsirastools +BuildRequires: google-perftools-devel +%endif +Recommends: logrotate +BuildRequires: %insserv_prereq +BuildRequires: mozilla-nss-devel +BuildRequires: keyutils-devel +BuildRequires: libatomic-ops-devel +BuildRequires: fdupes +%else +Requires: gdisk +BuildRequires: nss-devel +BuildRequires: keyutils-libs-devel +BuildRequires: libatomic_ops-devel +Requires: gdisk +Requires(post): chkconfig +Requires(preun):chkconfig +Requires(preun):initscripts +BuildRequires: gperftools-devel +%endif %description -Ceph is a distributed network file system designed to provide excellent -performance, reliability, and scalability. - -%package libs -Summary: Ceph libraries -Group: System Environment/Libraries -%description libs -Common libraries for Ceph distributed network file system - -%package libcephfs -Summary: Ceph libcephfs libraries -Group: System Environment/Libraries -%description libcephfs -libcephfs library for Ceph distributed network file system - -%package fuse -Summary: Ceph fuse-based client -Group: System Environment/Base -Requires: %{name}%{?_isa} = %{version}-%{release} -BuildRequires: fuse-devel -%description fuse +Ceph is a massively scalable, open-source, distributed +storage system that runs on commodity hardware and delivers object, +block and file system storage. + + +################################################################################# +# packages +################################################################################# +%package fuse +Summary: Ceph fuse-based client +Group: System Environment/Base +Requires: %{name} +BuildRequires: fuse-devel +%description fuse FUSE based client for Ceph distributed network file system -%package devel -Summary: Ceph headers -Group: Development/Libraries -License: LGPLv2 -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: %{name}-libcephfs%{?_isa} = %{version}-%{release} +%package -n rbd-fuse +Summary: Ceph fuse-based client +Group: System Environment/Base +Requires: %{name} +BuildRequires: fuse-devel +%description -n rbd-fuse +FUSE based client to map Ceph rbd images to files + +%package devel +Summary: Ceph headers +Group: Development/Libraries +License: LGPL-2.0 +Requires: %{name} = %{version}-%{release} +Requires: librados2 = %{version} +Requires: librbd1 = %{version} +Requires: libcephfs1 = %{version} %description devel -This package contains the headers needed to develop programs that use Ceph. +This package contains libraries and headers needed to develop programs +that use Ceph. %package radosgw -Summary: rados REST gateway -Group: Development/Libraries -Requires: mod_fcgid -BuildRequires: fcgi-devel -BuildRequires: expat-devel - +Summary: Rados REST gateway +Group: Development/Libraries +Requires: librados2 = %{version}-%{release} +%if 0%{defined suse_version} +BuildRequires: libexpat-devel +BuildRequires: FastCGI-devel +Requires: apache2-mod_fcgid +%else +BuildRequires: expat-devel +BuildRequires: fcgi-devel +%endif %description radosgw radosgw is an S3 HTTP REST gateway for the RADOS object store. It is implemented as a FastCGI module using libfcgi, and can be used in conjunction with any FastCGI capable web server. -%prep -%setup -q -n ceph-0.81 -%patch0 -p1 -b .init -%patch1 -p1 - -%build -./autogen.sh +%if %{with ocf} +%package resource-agents +Summary: OCF-compliant resource agents for Ceph daemons +Group: System Environment/Base +License: LGPL-2.0 +Requires: %{name} = %{version} +Requires: resource-agents +%description resource-agents +Resource agents for monitoring and managing Ceph daemons +under Open Cluster Framework (OCF) compliant resource +managers such as Pacemaker. +%endif -%ifarch armv5tel -# libatomic_ops does not have correct asm for ARMv5tel -EXTRA_CFLAGS="-DAO_USE_PTHREAD_DEFS" +%package -n librados2 +Summary: RADOS distributed object store client library +Group: System Environment/Libraries +License: LGPL-2.0 +%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora} +Obsoletes: ceph-libs %endif -%ifarch %{arm} -# libatomic_ops seems to fallback on some pthread implementation on ARM -EXTRA_LDFLAGS="-lpthread" +%description -n librados2 +RADOS is a reliable, autonomic distributed object storage cluster +developed as part of the Ceph distributed storage system. This is a +shared library allowing applications to access the distributed object +store using a simple file-like interface. + +%package -n librbd1 +Summary: RADOS block device client library +Group: System Environment/Libraries +License: LGPL-2.0 +%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora} +Obsoletes: ceph-libs %endif - -%{configure} --prefix=%{_prefix} --sbindir=%{_sbindir} \ ---localstatedir=%{_localstatedir} --sysconfdir=%{_sysconfdir} \ -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) ---without-libxfs \ +%description -n librbd1 +RBD is a block device striped across multiple distributed objects in +RADOS, a reliable, autonomic distributed object storage cluster +developed as part of the Ceph distributed storage system. This is a +shared library allowing applications to manage these block devices. + +%package -n libcephfs1 +Summary: Ceph distributed file system client library +Group: System Environment/Libraries +License: LGPL-2.0 +%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora} +Obsoletes: ceph-libs %endif -%if ( ! (0%{?rhel} && 0%{?rhel} <= 6 ) ) -%ifarch ppc s390 s390x ---without-tcmalloc \ +%description -n libcephfs1 +Ceph is a distributed network file system designed to provide excellent +performance, reliability, and scalability. This is a shared library +allowing applications to access a Ceph distributed file system via a +POSIX-like interface. + +%package -n python-ceph +Summary: Python libraries for the Ceph distributed filesystem +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librados2 = %{version}-%{release} +Requires: librbd1 = %{version}-%{release} +Requires: libcephfs1 = %{version}-%{release} +Requires: python-flask +%if 0%{defined suse_version} +%py_requires %endif -%else -%ifarch ppc ppc64 s390 s390x ---without-tcmalloc \ +%description -n python-ceph +This package contains Python libraries for interacting with Cephs RADOS +object storage. + +%package -n rest-bench +Summary: RESTful benchmark +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librados2 = %{version}-%{release} +Requires: librbd1 = %{version}-%{release} +Requires: libcephfs1 = %{version}-%{release} +%description -n rest-bench +RESTful bencher that can be used to benchmark radosgw performance. + +%package -n ceph-test +Summary: Ceph benchmarks and test tools +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librados2 = %{version}-%{release} +Requires: librbd1 = %{version}-%{release} +Requires: libcephfs1 = %{version}-%{release} +%description -n ceph-test +This package contains Ceph benchmarks and test tools. + +%package -n libcephfs_jni1 +Summary: Java Native Interface library for CephFS Java bindings. +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: java +Requires: libcephfs1 = %{version}-%{release} +BuildRequires: java-devel +%description -n libcephfs_jni1 +This package contains the Java Native Interface library for CephFS Java +bindings. + +%package -n cephfs-java +Summary: Java libraries for the Ceph File System. +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: java +Requires: libcephfs_jni1 = %{version}-%{release} +BuildRequires: java-devel +Requires: junit4 +BuildRequires: junit4 +%description -n cephfs-java +This package contains the Java libraries for the Ceph File System. + +%if 0%{?opensuse} || 0%{?suse_version} +%debug_package %endif + +################################################################################# +# common +################################################################################# +%prep +%setup -q -n ceph-0.81 + +%build +# Find jni.h +for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do + [ -d $i ] && java_inc="$java_inc -I$i" +done + +./autogen.sh +MY_CONF_OPT="" + +MY_CONF_OPT="$MY_CONF_OPT --with-radosgw" + +export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` + +%{configure} CPPFLAGS="$java_inc" \ + --prefix=/usr \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --docdir=%{_docdir}/ceph \ + --with-nss \ + --without-cryptopp \ + --with-rest-bench \ + --with-debug \ + --enable-cephfs-java \ + $MY_CONF_OPT \ + %{?_with_ocf} \ + CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" + +# fix bug in specific version of libedit-devel +%if 0%{defined suse_version} +sed -i -e "s/-lcurses/-lncurses/g" Makefile +sed -i -e "s/-lcurses/-lncurses/g" src/Makefile +sed -i -e "s/-lcurses/-lncurses/g" man/Makefile +sed -i -e "s/-lcurses/-lncurses/g" src/ocf/Makefile +sed -i -e "s/-lcurses/-lncurses/g" src/java/Makefile %endif ---with-system-leveldb --without-hadoop --with-radosgw --with-gtk2 \ -CFLAGS="$RPM_OPT_FLAGS $EXTRA_CFLAGS" \ -CXXFLAGS="$RPM_OPT_FLAGS $EXTRA_CFLAGS -fvisibility-inlines-hidden" \ -LDFLAGS="$EXTRA_LDFLAGS" -V=1 make %{?_smp_mflags} +make -j$(getconf _NPROCESSORS_ONLN) %install -make install DESTDIR=$RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT install find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';' install -D src/init-ceph $RPM_BUILD_ROOT%{_initrddir}/ceph -chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.ceph.conf -rm -rf __tmp_docs ; mkdir __tmp_docs -mv $RPM_BUILD_ROOT%{_docdir}/ceph/* __tmp_docs +install -D src/init-radosgw.sysv $RPM_BUILD_ROOT%{_initrddir}/ceph-radosgw +install -D src/init-rbdmap $RPM_BUILD_ROOT%{_initrddir}/rbdmap +install -D src/rbdmap $RPM_BUILD_ROOT%{_sysconfdir}/ceph/rbdmap +mkdir -p $RPM_BUILD_ROOT%{_sbindir} +ln -sf ../../etc/init.d/ceph %{buildroot}/%{_sbindir}/rcceph +ln -sf ../../etc/init.d/ceph-radosgw %{buildroot}/%{_sbindir}/rcceph-radosgw install -m 0644 -D src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/tmp/ -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/ceph/ -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/ceph/stat +install -m 0644 -D src/rgw/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/radosgw +chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.ceph.conf +chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.fetch_config + +# udev rules +install -m 0644 -D udev/50-rbd.rules $RPM_BUILD_ROOT/lib/udev/rules.d/50-rbd.rules +install -m 0644 -D udev/60-ceph-partuuid-workaround.rules $RPM_BUILD_ROOT/lib/udev/rules.d/60-ceph-partuuid-workaround.rules + +%if (0%{?rhel} || 0%{?rhel} < 7) +install -m 0644 -D udev/95-ceph-osd-alt.rules $RPM_BUILD_ROOT/lib/udev/rules.d/95-ceph-osd.rules +%else +install -m 0644 -D udev/95-ceph-osd.rules $RPM_BUILD_ROOT/lib/udev/rules.d/95-ceph-osd.rules +%endif + +#set up placeholder directories mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ceph -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/ceph +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/ceph +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/tmp +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/mon +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/osd +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/mds +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/bootstrap-osd +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/bootstrap-mds +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/radosgw + +%if %{defined suse_version} +# Fedora seems to have some problems with this macro, use it only on SUSE +%fdupes -s $RPM_BUILD_ROOT/%{python_sitelib} +%fdupes %buildroot +%endif + +%clean +rm -rf $RPM_BUILD_ROOT %post +/sbin/ldconfig /sbin/chkconfig --add ceph +mkdir -p %{_localstatedir}/run/ceph/ %preun +%if %{defined suse_version} +%stop_on_removal ceph +%endif if [ $1 = 0 ] ; then /sbin/service ceph stop >/dev/null 2>&1 /sbin/chkconfig --del ceph fi %postun +/sbin/ldconfig if [ "$1" -ge "1" ] ; then /sbin/service ceph condrestart >/dev/null 2>&1 || : fi +%if %{defined suse_version} +%restart_on_update ceph +%insserv_cleanup +%endif +# Package removal cleanup +if [ "$1" -eq "0" ] ; then + rm -rf /var/log/ceph + rm -rf /etc/ceph +fi -%post libs -p /sbin/ldconfig -%postun libs -p /sbin/ldconfig -%post libcephfs -p /sbin/ldconfig -%postun libcephfs -p /sbin/ldconfig - +################################################################################# +# files +################################################################################# %files -%doc README COPYING __tmp_docs/sample* -%dir %{_sysconfdir}/ceph +%docdir %{_docdir} +%dir %{_docdir}/ceph +%{_docdir}/ceph/sample.ceph.conf +%{_docdir}/ceph/sample.fetch_config +%{_datadir}/ceph/known_hosts_drop.ceph.com +%{_datadir}/ceph/id_dsa_drop.ceph.com +%{_datadir}/ceph/id_dsa_drop.ceph.com.pub %{_bindir}/ceph %{_bindir}/cephfs %{_bindir}/ceph-conf %{_bindir}/ceph-clsinfo -%{_bindir}/ceph_filestore_tool +%{_bindir}/ceph-rest-api %{_bindir}/crushtool %{_bindir}/monmaptool %{_bindir}/osdmaptool %{_bindir}/ceph-authtool +%{_bindir}/ceph-syn +%{_bindir}/ceph-post-file %{_bindir}/ceph-brag %{_bindir}/ceph-crush-location -%{_bindir}/ceph-syn %{_bindir}/ceph-run %{_bindir}/ceph-mon %{_bindir}/ceph-mds %{_bindir}/ceph-osd %{_bindir}/ceph-rbdnamer +%{_bindir}/ceph-dencoder +%{_bindir}/librados-config %{_bindir}/rados %{_bindir}/rbd +%{_bindir}/ceph-client-debug %{_bindir}/ceph-debugpack %{_bindir}/ceph-coverage -%{_bindir}/ceph-dencoder -%{_bindir}/ceph_filestore_dump %{_bindir}/ceph_mon_store_converter -%{_bindir}/ceph-post-file -%{_bindir}/ceph-rest-api %{_initrddir}/ceph -%{_sbindir}/mount.ceph +%{_sbindir}/ceph-disk %{_sbindir}/ceph-disk-activate %{_sbindir}/ceph-disk-prepare -%{_sbindir}/ceph-create-keys -%{_sbindir}/ceph-disk %{_sbindir}/ceph-disk-udev -%{_libdir}/ceph -%exclude %{_libdir}/ceph/erasure-code +%{_sbindir}/ceph-create-keys +%{_sbindir}/rcceph +/sbin/mount.ceph +%dir %{_libdir}/ceph +%{_libdir}/ceph/ceph_common.sh +%dir %{_libdir}/rados-classes +%{_libdir}/rados-classes/libcls_rbd.so* +%{_libdir}/rados-classes/libcls_hello.so* +%{_libdir}/rados-classes/libcls_rgw.so* +%{_libdir}/rados-classes/libcls_lock.so* +%{_libdir}/rados-classes/libcls_kvs.so* +%{_libdir}/rados-classes/libcls_refcount.so* +%{_libdir}/rados-classes/libcls_log.so* +%{_libdir}/rados-classes/libcls_replica_log.so* +%{_libdir}/rados-classes/libcls_statelog.so* +%{_libdir}/rados-classes/libcls_user.so* +%{_libdir}/rados-classes/libcls_version.so* +%dir %{_libdir}/ceph/erasure-code +%{_libdir}/ceph/erasure-code/libec_example.so* +%{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so* +%{_libdir}/ceph/erasure-code/libec_fail_to_register.so* +%{_libdir}/ceph/erasure-code/libec_hangs.so* +%{_libdir}/ceph/erasure-code/libec_jerasure*.so* +%{_libdir}/ceph/erasure-code/libec_test_jerasure*.so* +%{_libdir}/ceph/erasure-code/libec_missing_entry_point.so* +/lib/udev/rules.d/50-rbd.rules +/lib/udev/rules.d/60-ceph-partuuid-workaround.rules +/lib/udev/rules.d/95-ceph-osd.rules +%dir %{_sysconfdir}/ceph/ +%config %{_sysconfdir}/bash_completion.d/ceph +%config %{_sysconfdir}/bash_completion.d/rados +%config %{_sysconfdir}/bash_completion.d/radosgw-admin +%config %{_sysconfdir}/bash_completion.d/rbd +%{_initrddir}/rbdmap +%config(noreplace) %{_sysconfdir}/ceph/rbdmap %config(noreplace) %{_sysconfdir}/logrotate.d/ceph -%config(noreplace) %{_sysconfdir}/bash_completion.d/rados -%config(noreplace) %{_sysconfdir}/bash_completion.d/ceph -%config(noreplace) %{_sysconfdir}/bash_completion.d/rbd +%config(noreplace) %{_sysconfdir}/logrotate.d/radosgw %{_mandir}/man8/ceph-mon.8* %{_mandir}/man8/ceph-mds.8* %{_mandir}/man8/ceph-osd.8* %{_mandir}/man8/ceph-run.8* %{_mandir}/man8/ceph-syn.8* +%{_mandir}/man8/ceph-post-file.8* +%{_mandir}/man8/ceph-dencoder.8* +%{_mandir}/man8/ceph-rest-api.8* %{_mandir}/man8/crushtool.8* %{_mandir}/man8/osdmaptool.8* %{_mandir}/man8/monmaptool.8* @@ -211,102 +470,185 @@ fi %{_mandir}/man8/ceph.8* %{_mandir}/man8/cephfs.8* %{_mandir}/man8/mount.ceph.8* -%{_mandir}/man8/radosgw.8* -%{_mandir}/man8/radosgw-admin.8* %{_mandir}/man8/rados.8* %{_mandir}/man8/rbd.8* +%{_mandir}/man8/ceph-rbdnamer.8* %{_mandir}/man8/ceph-authtool.8* %{_mandir}/man8/ceph-debugpack.8* -%{_mandir}/man8/ceph-clsinfo.8* -%{_mandir}/man8/ceph-dencoder.8* -%{_mandir}/man8/ceph-rbdnamer.8* -%{_mandir}/man8/ceph-rest-api.8* -%{_mandir}/man8/ceph-post-file.8* -%{python_sitelib}/rados.py* -%{python_sitelib}/rbd.py* -%{python_sitelib}/cephfs.py* -%{python_sitelib}/ceph_argparse.py* -%{python_sitelib}/ceph_rest_api.py* +%{_mandir}/man8/ceph-clsinfo.8.gz +%{_mandir}/man8/librados-config.8.gz +#set up placeholder directories %dir %{_localstatedir}/lib/ceph/ -%dir %{_localstatedir}/lib/ceph/tmp/ +%dir %{_localstatedir}/lib/ceph/tmp +%dir %{_localstatedir}/lib/ceph/mon +%dir %{_localstatedir}/lib/ceph/osd +%dir %{_localstatedir}/lib/ceph/mds +%dir %{_localstatedir}/lib/ceph/bootstrap-osd +%dir %{_localstatedir}/lib/ceph/bootstrap-mds %dir %{_localstatedir}/log/ceph/ -%{_datadir}/ceph/id_dsa_drop.ceph.com* -%{_datadir}/ceph/known_hosts_drop.ceph.com - -%files libs -%doc COPYING -%{_libdir}/librados.so.* -%{_libdir}/librbd.so.* -%dir %{_libdir}/ceph/erasure-code -# Warning to future maintainers: Note that the libec_ and libcls_ unversioned -# shared objects are included here in the libs subpackage. These files are -# plugins that Ceph loads with dlopen(). They belong here in -libs, not -# -devel. -# N.B. in 0.80.1 the `make install` installs the erasure-code shared objects -# in usr/lib*/ceph/erasure-code/... -%{_libdir}/ceph/erasure-code/libec_example.so* -%{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so* -%{_libdir}/ceph/erasure-code/libec_fail_to_register.so* -%{_libdir}/ceph/erasure-code/libec_hangs.so* -%{_libdir}/ceph/erasure-code/libec_jerasure.so* -%{_libdir}/ceph/erasure-code/libec_missing_entry_point.so* -%dir %{_libdir}/rados-classes -# See warning note above about unversioned shared objects here. These belong -# here in -libs (not -devel). -%{_libdir}/rados-classes/libcls_hello.so* -%{_libdir}/rados-classes/libcls_rbd.so* -%{_libdir}/rados-classes/libcls_rgw.so* -%{_libdir}/rados-classes/libcls_lock.so* -%{_libdir}/rados-classes/libcls_kvs.so* -%{_libdir}/rados-classes/libcls_refcount.so* -%{_libdir}/rados-classes/libcls_log.so* -%{_libdir}/rados-classes/libcls_replica_log.so* -%{_libdir}/rados-classes/libcls_statelog.so* -%{_libdir}/rados-classes/libcls_version.so* -%{_libdir}/rados-classes/libcls_user.so* +%ghost %dir %{_localstatedir}/run/ceph/ -%files libcephfs -%doc COPYING -%{_libdir}/libcephfs.so.* +################################################################################# %files fuse -%doc COPYING %{_bindir}/ceph-fuse -%{_bindir}/rbd-fuse -%{_sbindir}/mount.fuse.ceph %{_mandir}/man8/ceph-fuse.8* +/sbin/mount.fuse.ceph + +################################################################################# +%files -n rbd-fuse +%{_bindir}/rbd-fuse %{_mandir}/man8/rbd-fuse.8* +################################################################################# %files devel -%doc COPYING %dir %{_includedir}/cephfs %{_includedir}/cephfs/libcephfs.h %dir %{_includedir}/rados -%{_includedir}/rados/memory.h %{_includedir}/rados/librados.h %{_includedir}/rados/librados.hpp -%{_includedir}/rados/rados_types.h -%{_includedir}/rados/rados_types.hpp %{_includedir}/rados/buffer.h %{_includedir}/rados/page.h %{_includedir}/rados/crc32c.h +%{_includedir}/rados/rados_types.h +%{_includedir}/rados/rados_types.hpp +%{_includedir}/rados/memory.h %dir %{_includedir}/rbd %{_includedir}/rbd/librbd.h %{_includedir}/rbd/librbd.hpp %{_includedir}/rbd/features.h %{_libdir}/libcephfs.so -%{_libdir}/librados.so %{_libdir}/librbd.so -%{_bindir}/librados-config -%{_mandir}/man8/librados-config.8* - +%{_libdir}/librados.so +%{_libdir}/libcephfs_jni.so +################################################################################# %files radosgw +%{_initrddir}/ceph-radosgw %{_bindir}/radosgw %{_bindir}/radosgw-admin -%{_sysconfdir}/bash_completion.d/radosgw-admin +%{_mandir}/man8/radosgw.8* +%{_mandir}/man8/radosgw-admin.8* +%{_sbindir}/rcceph-radosgw +%dir %{_localstatedir}/log/radosgw/ + +%post radosgw +/sbin/ldconfig +%if %{defined suse_version} +%fillup_and_insserv -f -y ceph-radosgw +%endif + +%preun radosgw +%if %{defined suse_version} +%stop_on_removal ceph-radosgw +%endif + +%postun radosgw +/sbin/ldconfig +%if %{defined suse_version} +%restart_on_update ceph-radosgw +%insserv_cleanup +%endif +# Package removal cleanup +if [ "$1" -eq "0" ] ; then + rm -rf /var/log/radosgw +fi + + +################################################################################# +%if %{with ocf} +%files resource-agents +%dir /usr/lib/ocf +%dir /usr/lib/ocf/resource.d +%dir /usr/lib/ocf/resource.d/ceph +/usr/lib/ocf/resource.d/%{name}/* +%endif + +################################################################################# +%files -n librados2 +%{_libdir}/librados.so.* + +%post -n librados2 +/sbin/ldconfig + +%postun -n librados2 +/sbin/ldconfig + +################################################################################# +%files -n librbd1 +%{_libdir}/librbd.so.* + +%post -n librbd1 +/sbin/ldconfig +mkdir -p /usr/lib64/qemu/ +ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 + +%postun -n librbd1 +/sbin/ldconfig + +################################################################################# +%files -n libcephfs1 +%{_libdir}/libcephfs.so.* + +%post -n libcephfs1 +/sbin/ldconfig + +%postun -n libcephfs1 +/sbin/ldconfig + +################################################################################# +%files -n python-ceph +%{python_sitelib}/rados.py* +%{python_sitelib}/rbd.py* +%{python_sitelib}/cephfs.py* +%{python_sitelib}/ceph_argparse.py* +%{python_sitelib}/ceph_rest_api.py* + +################################################################################# +%files -n rest-bench +%{_bindir}/rest-bench + +################################################################################# +%files -n ceph-test +%{_bindir}/ceph_bench_log +%{_bindir}/ceph_dupstore +%{_bindir}/ceph_kvstorebench +%{_bindir}/ceph_multi_stress_watch +%{_bindir}/ceph_erasure_code +%{_bindir}/ceph_erasure_code_benchmark +%{_bindir}/ceph_omapbench +%{_bindir}/ceph_psim +%{_bindir}/ceph_radosacl +%{_bindir}/ceph_rgw_jsonparser +%{_bindir}/ceph_rgw_multiparser +%{_bindir}/ceph_scratchtool +%{_bindir}/ceph_scratchtoolpp +%{_bindir}/ceph_smalliobench +%{_bindir}/ceph_smalliobenchdumb +%{_bindir}/ceph_smalliobenchfs +%{_bindir}/ceph_smalliobenchrbd +%{_bindir}/ceph_filestore_dump +%{_bindir}/ceph_filestore_tool +%{_bindir}/ceph_streamtest +%{_bindir}/ceph_test_* +%{_bindir}/ceph_tpbench +%{_bindir}/ceph_xattr_bench +%{_bindir}/ceph-monstore-tool +%{_bindir}/ceph-osdomap-tool +%{_bindir}/ceph-kvstore-tool + +%files -n libcephfs_jni1 +%{_libdir}/libcephfs_jni.so.* + +%files -n cephfs-java +%{_javadir}/libcephfs.jar +%{_javadir}/libcephfs-test.jar + %changelog +* Tue Jul 1 2014 Kaleb S. KEITHLEY - 0.81.0-3 +- upstream ceph.spec file + * Sat Jun 07 2014 Fedora Release Engineering - 0.81.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild