]> git.pld-linux.org Git - packages/ceph.git/blame_incremental - ceph.spec
- up to 0.94.2
[packages/ceph.git] / ceph.spec
... / ...
CommitLineData
1# TODO:
2# - accelio libxio (BR: accelio libibverbs-devel librdmacm-devel
3# - proper init scripts if non-systemd boot is too be supported
4# (upstream scripts seem overcomplicated and hardly useful)
5# - run as non-root user
6#
7#
8# Conditional build:
9%bcond_without java # Java binding
10%bcond_with kinetic # Kinetic storage support [needs update for internal API changes]
11%bcond_with rocksdb # RocksDB storage support [needs update for internal API changes]
12%bcond_with zfs # ZFS support
13%bcond_without lttng # LTTng tracing
14%bcond_without babeltrace # Babeltrace traces support
15%bcond_without tcmalloc # tcmalloc allocator
16
17%ifarch x32
18%undefine with_tcmalloc
19%endif
20#
21Summary: User space components of the Ceph file system
22Summary(pl.UTF-8): Działające w przestrzeni użytkownika elementy systemu plików Ceph
23Name: ceph
24Version: 0.94.2
25Release: 1
26License: LGPL v2.1 (libraries), GPL v2 (some programs)
27Group: Base
28Source0: http://ceph.com/download/%{name}-%{version}.tar.bz2
29# Source0-md5: 249648d35e634adaaeec727408ca6092
30Source1: ceph.sysconfig
31# based on files from https://github.com/ceph/ceph/tree/master/systemd
32Source10: cephctl
33Source11: ceph-mds@.service
34Source12: ceph-mon@.service
35Source13: ceph-osd@.service
36Source14: ceph.target
37Source15: ceph.tmpfiles
38Patch0: %{name}-init-fix.patch
39Patch1: %{name}.logrotate.patch
40Patch2: %{name}-link.patch
41Patch3: %{name}-ac.patch
42URL: http://ceph.com/
43BuildRequires: autoconf >= 2.59
44BuildRequires: automake
45%{?with_babeltrace:BuildRequires: babeltrace-devel}
46BuildRequires: boost-devel >= 1.34
47BuildRequires: curl-devel
48BuildRequires: expat-devel >= 1.95
49BuildRequires: fcgi-devel
50BuildRequires: gdbm-devel
51%if %{with java}
52BuildRequires: jdk
53%endif
54BuildRequires: keyutils-devel
55%{?with_kinetic:BuildRequires: kinetic-cpp-client}
56BuildRequires: leveldb-devel >= 1.2
57BuildRequires: libaio-devel
58BuildRequires: libatomic_ops
59BuildRequires: libblkid-devel >= 2.17
60BuildRequires: libedit-devel >= 2.11
61BuildRequires: libfuse-devel
62BuildRequires: libltdl-devel
63BuildRequires: libs3-devel
64BuildRequires: libstdc++-devel
65%{?with_tcmalloc:BuildRequires: libtcmalloc-devel}
66BuildRequires: libtool >= 2:1.5
67BuildRequires: libuuid-devel
68%{?with_lttng:BuildRequires: lttng-ust-devel}
69BuildRequires: nss-devel
70BuildRequires: perl-base
71BuildRequires: pkgconfig
72BuildRequires: python >= 1:2.4
73%{?with_rocksdb:BuildRequires: rocksdb-devel}
74BuildRequires: rpmbuild(macros) >= 1.671
75BuildRequires: snappy-devel
76BuildRequires: udev-devel
77BuildRequires: xfsprogs-devel
78%ifarch %{x8664}
79BuildRequires: yasm
80%endif
81%{?with_zfs:BuildRequires: zfs-devel}
82Requires(post,preun): /sbin/chkconfig
83Requires(preun): rc-scripts
84Requires: %{name}-libs = %{version}-%{release}
85Requires: python-%{name} = %{version}-%{release}
86Requires: systemd-units >= 38
87Obsoletes: gcephtool
88Obsoletes: hadoop-cephfs
89BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
90
91%define skip_post_check_so libcls_.*.so.* libec_.*.so.*
92
93%description
94Ceph is a distributed network file system designed to provide
95excellent performance, reliability, and scalability.
96
97%description -l pl.UTF-8
98Ceph to rozproszony sieciowy system plików zaprojektowany z myślą o
99dobrej wydajności, wiarygodności i skalowalności.
100
101%package libs
102Summary: Ceph shared libraries
103Summary(pl.UTF-8): Biblioteki współdzielone Cepha
104Group: Libraries
105
106%description libs
107Ceph shared libraries.
108
109%description libs -l pl.UTF-8
110Biblioteki współdzielone Cepha.
111
112%package devel
113Summary: Ceph header files
114Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Cepha
115License: LGPL v2.1
116Group: Development/Libraries
117Requires: %{name}-libs = %{version}-%{release}
118Requires: boost-devel >= 1.34
119Requires: nss-devel
120Requires: leveldb-devel
121Requires: libatomic_ops
122Requires: libuuid-devel
123
124%description devel
125This package contains the headers needed to develop programs that use
126Ceph.
127
128%description devel -l pl.UTF-8
129Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia programów
130wykorzystujących Cepha.
131
132%package static
133Summary: Ceph static libraries
134Summary(pl.UTF-8): Biblioteki statyczne Cepha
135License: LGPL v2.1
136Group: Development/Libraries
137Requires: %{name}-devel = %{version}-%{release}
138
139%description static
140This package contains static Ceph libraries.
141
142%description static -l pl.UTF-8
143Ten pakiet zawiera biblioteki statyczne Cepha.
144
145%package -n python-ceph
146Summary: Ceph Python bindings
147Summary(pl.UTF-8): Wiązania Pythona do bibliotek Cepha
148Group: Development/Languages/Python
149Requires: %{name}-libs = %{version}-%{release}
150
151%description -n python-ceph
152Ceph Python bindings.
153
154%description -n python-ceph -l pl.UTF-8
155Wiązania Pythona do bibliotek Cepha.
156
157%package -n java-cephfs
158Summary: CephFS Java bindings
159Summary(pl.UTF-8): Wiązania Javy do biblioteki CephFS
160Group: Libraries/Java
161Requires: %{name}-libs = %{version}-%{release}
162
163%description -n java-cephfs
164CephFS Java bindings.
165
166%description -n java-cephfs -l pl.UTF-8
167Wiązania Javy do biblioteki CephFS.
168
169%package fuse
170Summary: Ceph FUSE-based client
171Summary(pl.UTF-8): Klient Cepha oparty na FUSE
172Group: Base
173Requires: %{name} = %{version}-%{release}
174
175%description fuse
176FUSE based client for Ceph distributed network file system.
177
178%description fuse -l pl.UTF-8
179Oparty na FUSE klient rozproszonego sieciowego systemu plików Ceph.
180
181%package radosgw
182Summary: rados REST gateway
183Summary(pl.UTF-8): Bramka REST-owa rados
184Group: Applications/System
185#Requires: apache-mod_fcgid
186
187%description radosgw
188radosgw is an S3 HTTP REST gateway for the RADOS object store. It is
189implemented as a FastCGI module using libfcgi, and can be used in
190conjunction with any FastCGI capable web server.
191
192%description radosgw -l pl.UTF-8
193radosgw to REST-owa bramka HTTP S3 do przechowalni obiektów RADOS.
194Jest zaimplementowana jako moduł FastCGI wykorzystujący libfcgi i może
195być używana w połączeniu z dowolnym serwerem WWW obsługującym FastCGI.
196
197%package resource-agents
198Summary: OCF Resource Agents for Ceph processes
199Summary(pl.UTF-8): Agenci OCF do monitorowania procesów Cepha
200Group: Applications/System
201Requires: %{name} = %{version}-%{release}
202Requires: resource-agents
203
204%description resource-agents
205OCF Resource Agents for Ceph processes.
206
207%description resource-agents -l pl.UTF-8
208Agenci OCF do monitorowania procesów Cepha.
209
210%prep
211%setup -q
212%patch0 -p1
213%patch1 -p1
214%patch2 -p1
215%patch3 -p1
216
217%build
218%{__libtoolize}
219%{__aclocal} -I m4
220%{__autoconf}
221%{__autoheader}
222%{__automake}
223# ac_cv_prog_uudecode_base64=no is a hack to compile Test.class instead of
224# using included one which fails with Sun/Oracle JDK 1.6
225%configure \
226 %{?with_java:JAVAC=/usr/bin/javac} \
227 %{?with_zfs:LIBZFS_CFLAGS="-I/usr/include/libzfs -I/usr/include/libspl"} \
228 ac_cv_prog_uudecode_base64=no \
229 --sbindir=/sbin \
230 %{!?with_babeltrace:--without-babeltrace} \
231 --without-cryptopp \
232 --with-nss \
233 %{!?with_tcmalloc:--without-tcmalloc} \
234 %{?with_kinetic:--with-kinetic} \
235 %{?with_rocksdb:--with-librocksdb} \
236 %{?with_zfs:--with-libzfs} \
237 %{!?with_lttng:--without-lttng} \
238 --with-ocf \
239 --with-radosgw \
240 --with-system-leveldb \
241 --with-system-libs3 \
242 %{?with_java:--enable-cephfs-java --with-jdk-dir=%{_jvmdir}/java} \
243 --disable-silent-rules
244
245%{__make} -j1
246
247%install
248rm -rf $RPM_BUILD_ROOT
249install -d $RPM_BUILD_ROOT%{_localstatedir}/{lib/ceph/{tmp,mon,osd,mds},log/ceph/stat,run/ceph} \
250 $RPM_BUILD_ROOT%{_sysconfdir}/{ceph,bash_completion.d,logrotate.d,rc.d/init.d,sysconfig} \
251 $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdtmpfilesdir},/etc/systemd/system/ceph.target.wants}
252
253%{__make} install \
254 DESTDIR=$RPM_BUILD_ROOT \
255 javadir=%{_javadir}
256
257install -p src/init-ceph $RPM_BUILD_ROOT/etc/rc.d/init.d/ceph
258install -p src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph
259
260install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/ceph
261install %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}
262install %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} $RPM_BUILD_ROOT%{systemdunitdir}
263ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/ceph.service
264install %{SOURCE15} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ceph.conf
265
266# loadable modules
267%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/*.{a,la}
268%{__rm} $RPM_BUILD_ROOT%{_libdir}/rados-classes/*.{a,la}
269%if %{with java}
270%{__rm} $RPM_BUILD_ROOT%{_libdir}/libcephfs_jni.{la,a}
271%endif
272
273# packaged as %doc
274%{__rm} $RPM_BUILD_ROOT%{_docdir}/ceph/sample.{ceph.conf,fetch_config}
275
276%py_postclean
277
278%clean
279rm -rf $RPM_BUILD_ROOT
280
281%post
282/sbin/chkconfig --add ceph
283%service ceph restart
284
285# actual services are to be enabled on cluster deployment
286%systemd_post %{name}.target
287
288%preun
289if [ "$1" = "0" ] ; then
290 %service ceph stop
291 /sbin/chkconfig --del ceph
292fi
293%systemd_preun %{name}.target
294
295%postun
296%systemd_reload
297
298%post libs -p /sbin/ldconfig
299%postun libs -p /sbin/ldconfig
300
301%post -n java-cephfs -p /sbin/ldconfig
302%postun -n java-cephfs -p /sbin/ldconfig
303
304%files
305%defattr(644,root,root,755)
306# COPYING specifies licenses of individual parts
307%doc AUTHORS COPYING README src/sample.ceph.conf src/sample.fetch_config
308%attr(754,root,root) /etc/rc.d/init.d/ceph
309%config(noreplace) /etc/sysconfig/ceph
310%dir /etc/systemd/system/ceph.target.wants
311%{systemdunitdir}/ceph-mds@.service
312%{systemdunitdir}/ceph-mon@.service
313%{systemdunitdir}/ceph-osd@.service
314%{systemdunitdir}/ceph.service
315%{systemdunitdir}/ceph.target
316%{systemdtmpfilesdir}/ceph.conf
317%dir %{_sysconfdir}/ceph
318%attr(755,root,root) %{_bindir}/ceph
319%attr(755,root,root) %{_bindir}/ceph-authtool
320%attr(755,root,root) %{_bindir}/ceph-brag
321%attr(755,root,root) %{_bindir}/ceph-clsinfo
322%attr(755,root,root) %{_bindir}/ceph-conf
323%attr(755,root,root) %{_bindir}/ceph-coverage
324%attr(755,root,root) %{_bindir}/ceph-crush-location
325%attr(755,root,root) %{_bindir}/ceph-debugpack
326%attr(755,root,root) %{_bindir}/ceph-dencoder
327%attr(755,root,root) %{_bindir}/ceph-mds
328%attr(755,root,root) %{_bindir}/ceph-mon
329%attr(755,root,root) %{_bindir}/ceph-objectstore-tool
330%attr(755,root,root) %{_bindir}/ceph-osd
331%attr(755,root,root) %{_bindir}/ceph-post-file
332%attr(755,root,root) %{_bindir}/ceph-rbdnamer
333%attr(755,root,root) %{_bindir}/ceph-rest-api
334%attr(755,root,root) %{_bindir}/ceph-run
335%attr(755,root,root) %{_bindir}/ceph-syn
336%attr(755,root,root) %{_bindir}/cephctl
337%attr(755,root,root) %{_bindir}/cephfs
338%attr(755,root,root) %{_bindir}/cephfs-journal-tool
339%attr(755,root,root) %{_bindir}/cephfs-table-tool
340%attr(755,root,root) %{_bindir}/crushtool
341%attr(755,root,root) %{_bindir}/librados-config
342%attr(755,root,root) %{_bindir}/monmaptool
343%attr(755,root,root) %{_bindir}/osdmaptool
344%attr(755,root,root) %{_bindir}/rados
345%attr(755,root,root) %{_bindir}/rbd
346%attr(755,root,root) %{_bindir}/rbd-fuse
347%attr(755,root,root) %{_bindir}/rbd-replay
348%attr(755,root,root) %{_bindir}/rbd-replay-many
349%attr(755,root,root) %{_bindir}/rbd-replay-prep
350%attr(755,root,root) /sbin/ceph-create-keys
351%attr(755,root,root) /sbin/ceph-disk
352%attr(755,root,root) /sbin/ceph-disk-activate
353%attr(755,root,root) /sbin/ceph-disk-prepare
354%attr(755,root,root) /sbin/ceph-disk-udev
355%attr(755,root,root) /sbin/mount.ceph
356%attr(755,root,root) /sbin/mount.fuse.ceph
357%dir %{_libdir}/ceph
358%attr(755,root,root) %{_libdir}/ceph/ceph-osd-prestart.sh
359%{_libdir}/ceph/ceph_common.sh
360%dir %{_libdir}/ceph/erasure-code
361%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_example.so*
362%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so*
363%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_fail_to_register.so*
364%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_hangs.so*
365%ifarch %{x8664}
366%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_isa.so*
367%endif
368%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure.so*
369%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_generic.so*
370%ifarch arm
371%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_neon.so*
372%endif
373%ifarch %{ix86} %{x8664} x32
374%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_sse3.so*
375%endif
376%ifarch %{x8664} x32
377%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_sse4.so*
378%endif
379%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_lrc.so*
380%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_missing_entry_point.so*
381%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_missing_version.so*
382%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec.so*
383%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_generic.so*
384%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_neon.so*
385%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_sse3.so*
386%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_sse4.so*
387%dir %{_libdir}/rados-classes
388%attr(755,root,root) %{_libdir}/rados-classes/libcls_hello.so*
389%attr(755,root,root) %{_libdir}/rados-classes/libcls_kvs.so*
390%attr(755,root,root) %{_libdir}/rados-classes/libcls_lock.so*
391%attr(755,root,root) %{_libdir}/rados-classes/libcls_log.so*
392%attr(755,root,root) %{_libdir}/rados-classes/libcls_rbd.so*
393%attr(755,root,root) %{_libdir}/rados-classes/libcls_refcount.so*
394%attr(755,root,root) %{_libdir}/rados-classes/libcls_replica_log.so*
395%attr(755,root,root) %{_libdir}/rados-classes/libcls_rgw.so*
396%attr(755,root,root) %{_libdir}/rados-classes/libcls_statelog.so*
397%attr(755,root,root) %{_libdir}/rados-classes/libcls_user.so*
398%attr(755,root,root) %{_libdir}/rados-classes/libcls_version.so*
399%{_datadir}/ceph
400%config(noreplace) /etc/logrotate.d/ceph
401%config(noreplace) %{_sysconfdir}/bash_completion.d/rados
402%config(noreplace) %{_sysconfdir}/bash_completion.d/ceph
403%config(noreplace) %{_sysconfdir}/bash_completion.d/rbd
404%{_mandir}/man8/ceph.8*
405%{_mandir}/man8/ceph-authtool.8*
406%{_mandir}/man8/ceph-clsinfo.8*
407%{_mandir}/man8/ceph-conf.8*
408%{_mandir}/man8/ceph-debugpack.8*
409%{_mandir}/man8/ceph-dencoder.8*
410%{_mandir}/man8/ceph-deploy.8*
411%{_mandir}/man8/ceph-disk.8*
412%{_mandir}/man8/ceph-mds.8*
413%{_mandir}/man8/ceph-mon.8*
414%{_mandir}/man8/ceph-osd.8*
415%{_mandir}/man8/ceph-post-file.8*
416%{_mandir}/man8/ceph-rbdnamer.8*
417%{_mandir}/man8/ceph-rest-api.8*
418%{_mandir}/man8/ceph-run.8*
419%{_mandir}/man8/ceph-syn.8*
420%{_mandir}/man8/cephfs.8*
421%{_mandir}/man8/crushtool.8*
422%{_mandir}/man8/librados-config.8*
423%{_mandir}/man8/monmaptool.8*
424%{_mandir}/man8/mount.ceph.8*
425%{_mandir}/man8/osdmaptool.8*
426%{_mandir}/man8/rados.8*
427%{_mandir}/man8/radosgw.8*
428%{_mandir}/man8/radosgw-admin.8*
429%{_mandir}/man8/rbd.8*
430%{_mandir}/man8/rbd-fuse.8*
431%{_mandir}/man8/rbd-replay.8*
432%{_mandir}/man8/rbd-replay-many.8*
433%{_mandir}/man8/rbd-replay-prep.8*
434
435%dir %{_localstatedir}/lib/ceph
436%dir %{_localstatedir}/lib/ceph/mds
437%dir %{_localstatedir}/lib/ceph/mon
438%dir %{_localstatedir}/lib/ceph/osd
439%dir %{_localstatedir}/lib/ceph/tmp
440%dir %{_localstatedir}/log/ceph
441%dir %{_localstatedir}/run/ceph
442
443%files libs
444%defattr(644,root,root,755)
445%attr(755,root,root) %{_libdir}/libcephfs.so.*.*.*
446%attr(755,root,root) %ghost %{_libdir}/libcephfs.so.1
447%attr(755,root,root) %{_libdir}/librados.so.*.*.*
448%attr(755,root,root) %ghost %{_libdir}/librados.so.2
449%attr(755,root,root) %{_libdir}/libradosstriper.so.*.*.*
450%attr(755,root,root) %ghost %{_libdir}/libradosstriper.so.1
451%attr(755,root,root) %{_libdir}/librbd.so.*.*.*
452%attr(755,root,root) %ghost %{_libdir}/librbd.so.1
453
454%files devel
455%defattr(644,root,root,755)
456%attr(755,root,root) %{_libdir}/libcephfs.so
457%attr(755,root,root) %{_libdir}/librados.so
458%attr(755,root,root) %{_libdir}/libradosstriper.so
459%attr(755,root,root) %{_libdir}/librbd.so
460%{_libdir}/libcephfs.la
461%{_libdir}/librados.la
462%{_libdir}/libradosstriper.la
463%{_libdir}/librbd.la
464%{_includedir}/cephfs
465%{_includedir}/rados
466%{_includedir}/radosstriper
467%{_includedir}/rbd
468
469%files static
470%defattr(644,root,root,755)
471%{_libdir}/libcephfs.a
472%{_libdir}/librados.a
473%{_libdir}/libradosstriper.a
474%{_libdir}/librbd.a
475
476%files -n python-ceph
477%defattr(644,root,root,755)
478%{py_sitescriptdir}/ceph_argparse.py[co]
479%{py_sitescriptdir}/ceph_rest_api.py[co]
480%{py_sitescriptdir}/cephfs.py[co]
481%{py_sitescriptdir}/rados.py[co]
482%{py_sitescriptdir}/rbd.py[co]
483
484%if %{with java}
485%files -n java-cephfs
486%defattr(644,root,root,755)
487%attr(755,root,root) %{_libdir}/libcephfs_jni.so.*.*.*
488%attr(755,root,root) %ghost %{_libdir}/libcephfs_jni.so.1
489%attr(755,root,root) %{_libdir}/libcephfs_jni.so
490%{_javadir}/libcephfs.jar
491%endif
492
493%files fuse
494%defattr(644,root,root,755)
495%attr(755,root,root) %{_bindir}/ceph-fuse
496%{_mandir}/man8/ceph-fuse.8*
497
498%files radosgw
499%defattr(644,root,root,755)
500%attr(755,root,root) %{_bindir}/radosgw
501%attr(755,root,root) %{_bindir}/radosgw-admin
502%{_sysconfdir}/bash_completion.d/radosgw-admin
503
504%files resource-agents
505%defattr(644,root,root,755)
506%dir %{_prefix}/lib/ocf/resource.d/ceph
507%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/ceph
508%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/mds
509%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/mon
510%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/osd
511%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/rbd
This page took 0.099151 seconds and 4 git commands to generate.