diff --git a/ceph-13.0.0-3535-g8b10d08c04.tar.bz2 b/ceph-13.0.0-3535-g8b10d08c04.tar.bz2 deleted file mode 100644 index ed66350..0000000 --- a/ceph-13.0.0-3535-g8b10d08c04.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13cf2325f95e99d5c187a7a39bb13be76410bcef4d829b1a46117db47d0a7e6c -size 64163067 diff --git a/ceph-13.0.0-5168-g80cf1407d9.tar.bz2 b/ceph-13.0.0-5168-g80cf1407d9.tar.bz2 new file mode 100644 index 0000000..504328c --- /dev/null +++ b/ceph-13.0.0-5168-g80cf1407d9.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cf48e6900eabcde136c82626aaedf7f2cefb0ccc964304bf7ac3f05afbcec35 +size 66005356 diff --git a/ceph-rpmlintrc b/ceph-rpmlintrc index 27174e0..3f28c7e 100644 --- a/ceph-rpmlintrc +++ b/ceph-rpmlintrc @@ -3,3 +3,7 @@ addFilter("shlib-fixed-dependency") addFilter("ceph-base.*devel-file-in-non-devel-package.*erasure-code") addFilter("ceph-base.*devel-file-in-non-devel-package.*compressor") addFilter("ceph-base.*devel-file-in-non-devel-package.*rados-classes") +addFilter("ceph-base.*devel-file-in-non-devel-package.*libceph_crypto") +addFilter("ceph-base.*devel-file-in-non-devel-package.*libos_tp") +addFilter("ceph-base.*devel-file-in-non-devel-package.*libosd_tp") +addFilter("librados2.*devel-file-in-non-devel-package.*libceph-common") diff --git a/ceph-test.changes b/ceph-test.changes index 2c84547..ecd1726 100644 --- a/ceph-test.changes +++ b/ceph-test.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Fri Jan 26 19:03:21 UTC 2018 - ncutler@suse.com + +- Update to version 13.0.0-5168-g80cf1407d9: + + rebase to latest upstream master + + eliminate Python 2 dependencies (bsc#1076403) + +------------------------------------------------------------------- +Mon Nov 27 13:49:47 UTC 2017 - ncutler@suse.com + +- ceph-rpmlintrc: add lines to quash RPMLINT warnings + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/crypto/libceph_crypto_isal.so + + librados2.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/libceph-common.so + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libos_tp.so + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libosd_tp.so + ------------------------------------------------------------------- Sat Nov 25 21:33:23 UTC 2017 - ncutler@suse.com diff --git a/ceph-test.spec b/ceph-test.spec index 83417d5..4c0b3f8 100644 --- a/ceph-test.spec +++ b/ceph-test.spec @@ -21,18 +21,16 @@ %bcond_without tcmalloc %endif %if 0%{?fedora} || 0%{?rhel} -%bcond_without lttng %bcond_without selinux %bcond_without ceph_test_package %bcond_without cephfs_java -%bcond_with lowmem_builder +%bcond_without lttng %global _remote_tarball_prefix https://download.ceph.com/tarballs/ %endif %if 0%{?suse_version} %bcond_with selinux %bcond_without ceph_test_package %bcond_with cephfs_java -%bcond_without lowmem_builder #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %global _fillupdir /var/adm/fillup-templates @@ -47,6 +45,12 @@ %endif %endif %endif +%if 0%{?suse_version} >= 1500 +%bcond_with python2 +%global _defined_if_python2_absent 1 +%else +%bcond_without python2 +%endif %if %{with selinux} # get selinux policy version @@ -56,6 +60,9 @@ %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} %{!?python3_pkgversion: %global python3_pkgversion 3} +# define _python_buildid macro which will expand to the empty string when +# building with python2 +%global _python_buildid %{?_defined_if_python2_absent:%{python3_pkgversion}} # unify libexec for all targets %global _libexecdir %{_exec_prefix}/lib @@ -68,7 +75,7 @@ ################################################################################# Name: ceph-test Version: 13.0.0 -Release: 3535.g8b10d08c04%{?dist} +Release: 5168.g80cf1407d9%{?dist}. %if 0%{?fedora} || 0%{?rhel} Epoch: 2 %endif @@ -83,7 +90,7 @@ License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and Group: System/Filesystems %endif URL: http://ceph.com/ -Source0: %{?_remote_tarball_prefix}ceph-13.0.0-3535-g8b10d08c04.tar.bz2 +Source0: %{?_remote_tarball_prefix}ceph-13.0.0-5168-g80cf1407d9.tar.bz2 %if 0%{?suse_version} Source96: checkin.sh Source97: README-checkin.txt @@ -103,7 +110,7 @@ ExclusiveArch: x86_64 aarch64 ppc64le -Requires: ceph-common +Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} Requires: xmlstarlet Requires: jq Requires: socat @@ -116,25 +123,18 @@ BuildRequires: sharutils BuildRequires: checkpolicy BuildRequires: selinux-policy-devel %endif -%if 0%{with make_check} -%if 0%{?fedora} || 0%{?rhel} -BuildRequires: python-cherrypy -BuildRequires: python-werkzeug -%endif -%if 0%{?suse_version} -BuildRequires: python-CherryPy -BuildRequires: python-Werkzeug -BuildRequires: python-numpy-devel -%endif -BuildRequires: python-pecan -BuildRequires: socat -%endif BuildRequires: bc BuildRequires: gperf BuildRequires: cmake BuildRequires: cryptsetup BuildRequires: fuse-devel +%if 0%{?rhel} == 7 +# devtoolset offers newer make and valgrind-devel, but the old ones are good +# enough. +BuildRequires: devtoolset-7-gcc-c++ +%else BuildRequires: gcc-c++ +%endif BuildRequires: gdbm %if 0%{with tcmalloc} BuildRequires: gperftools-devel >= 2.4 @@ -147,19 +147,21 @@ BuildRequires: libcurl-devel BuildRequires: libudev-devel BuildRequires: libtool BuildRequires: libxml2-devel +BuildRequires: libuuid-devel BuildRequires: make BuildRequires: parted BuildRequires: perl BuildRequires: pkgconfig -%if %{with lowmem_builder} BuildRequires: procps -%endif -BuildRequires: python -BuildRequires: python-devel -BuildRequires: python-nose -BuildRequires: python-requests -BuildRequires: python-virtualenv +BuildRequires: python%{_python_buildid} +BuildRequires: python%{_python_buildid}-devel +BuildRequires: python%{_python_buildid}-nose +BuildRequires: python%{_python_buildid}-requests +BuildRequires: python%{_python_buildid}-virtualenv BuildRequires: snappy-devel +%if 0%{with make_check} +BuildRequires: socat +%endif BuildRequires: udev BuildRequires: util-linux BuildRequires: valgrind-devel @@ -187,9 +189,10 @@ BuildRequires: libopenssl-devel BuildRequires: lsb-release BuildRequires: openldap2-devel BuildRequires: cunit-devel -BuildRequires: python-Cython -BuildRequires: python-PrettyTable -BuildRequires: python-Sphinx +BuildRequires: python%{_python_buildid}-base +BuildRequires: python%{_python_buildid}-Cython +BuildRequires: python%{_python_buildid}-PrettyTable +BuildRequires: python%{_python_buildid}-Sphinx BuildRequires: rdma-core-devel %endif %if 0%{?fedora} || 0%{?rhel} @@ -203,9 +206,9 @@ BuildRequires: openldap-devel BuildRequires: openssl-devel BuildRequires: CUnit-devel BuildRequires: redhat-lsb-core -BuildRequires: Cython -BuildRequires: python-prettytable -BuildRequires: python-sphinx +BuildRequires: Cython%{_python_buildid} +BuildRequires: python%{_python_buildid}-prettytable +BuildRequires: python%{_python_buildid}-sphinx %endif # python34-... for RHEL, python3-... for all other supported distros %if 0%{?rhel} @@ -217,6 +220,20 @@ BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-Cython %endif +# distro-conditional make check dependencies +%if 0%{with make_check} +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: python%{_python_buildid}-cherrypy +BuildRequires: python%{_python_buildid}-pecan +BuildRequires: python%{_python_buildid}-werkzeug +%endif +%if 0%{?suse_version} +BuildRequires: python%{_python_buildid}-CherryPy +BuildRequires: python%{_python_buildid}-Werkzeug +BuildRequires: python%{_python_buildid}-pecan +BuildRequires: python%{_python_buildid}-numpy-devel +%endif +%endif # lttng and babeltrace for rbd-replay-prep %if %{with lttng} %if 0%{?fedora} || 0%{?rhel} @@ -307,12 +324,16 @@ This package contains Ceph benchmarks and test tools. %endif %if 0%{?suse_version} %endif +%if 0%{with python2} %if 0%{?suse_version} %endif +%endif %if 0%{?suse_version} %endif +%if 0%{with python2} %if 0%{?suse_version} %endif +%endif %if 0%{?suse_version} %endif %if 0%{?suse_version} @@ -327,8 +348,10 @@ This package contains Ceph benchmarks and test tools. %endif %if 0%{?suse_version} %endif +%if 0%{with python2} %if 0%{?suse_version} %endif +%endif %if 0%{?suse_version} %endif %if 0%{?suse_version} @@ -337,14 +360,18 @@ This package contains Ceph benchmarks and test tools. %endif %if 0%{?suse_version} %endif +%if 0%{with python2} %if 0%{?suse_version} %endif %if 0%{?suse_version} %endif -%if 0%{?suse_version} %endif %if 0%{?suse_version} %endif +%if 0%{with python2} +%if 0%{?suse_version} +%endif +%endif %if 0%{with ceph_test_package} %if 0%{?suse_version} %endif @@ -357,16 +384,25 @@ This package contains Ceph benchmarks and test tools. %if 0%{?suse_version} %endif %endif +%if 0%{?suse_version} +%endif %if 0%{with selinux} %if 0%{?suse_version} %endif %endif +%if 0%{with python2} %if 0%{?suse_version} %endif +%endif %prep -%autosetup -p1 -n ceph-13.0.0-3535-g8b10d08c04 +%autosetup -p1 -n ceph-13.0.0-5168-g80cf1407d9 %build + +%if 0%{?rhel} == 7 +. /opt/rh/devtoolset-7/enable +%endif + %if 0%{with cephfs_java} # Find jni.h for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do @@ -374,7 +410,8 @@ for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do done %endif -%if %{with lowmem_builder} +%if 0%{?suse_version} +# the following setting fixed an OOM condition we once encountered in the OBS RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768" %endif export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` @@ -384,39 +421,26 @@ export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" # Parallel build settings ... -# unlimit _smp_mflags in system macro -%global _smp_ncpus_max 0 -CEPH_PARALLEL_BUILD="%{?_smp_mflags}" -%if %{with lowmem_builder} -lo_jobs="%{?jobs:%{jobs}}" -%if 0%{?suse_version} -%ifarch %arm - %if ! 0%{?qemu_user_space_build:1} - # native hardware is not that powerful - lo_jobs="1" - %endif -%endif +CEPH_MFLAGS_JOBS="%{?_smp_mflags}" +CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//') +%if 0%{?__isa_bits} == 32 +# 32-bit builds can use 3G memory max, which is not enough even for -j2 +CEPH_SMP_NCPUS="1" %endif # do not eat all memory echo "Available memory:" -free +free -h echo "System limits:" ulimit -a -lo_jobs_reduced= -if test -n "$lo_jobs" -a "$lo_jobs" -gt 1 ; then - mem_per_process=1600 - max_mem=$(LANG=C free -t -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") +if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then + mem_per_process=1800 + max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") max_jobs="$(($max_mem / $mem_per_process))" - test "$lo_jobs" -gt "$max_jobs" && lo_jobs="$max_jobs" && lo_jobs_reduced="yes" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits" - test "$lo_jobs" -le 0 && lo_jobs=1 && echo "Warning: Not using parallel build at all because of memory limits" + test "$CEPH_SMP_NCPUS" -gt "$max_jobs" && CEPH_SMP_NCPUS="$max_jobs" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits" + test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits" fi -# run make -if test -n "$lo_jobs" ; then - CEPH_PARALLEL_BUILD="-j$lo_jobs" -fi -%endif -export CEPH_PARALLEL_BUILD -export CEPH_SMP_NCPUS=$(echo "$CEPH_PARALLEL_BUILD" | sed 's/-j//') +export CEPH_SMP_NCPUS +export CEPH_MFLAGS_JOBS="-j$CEPH_SMP_NCPUS" env | sort @@ -434,6 +458,12 @@ cmake .. \ -DWITH_EMBEDDED=OFF \ -DWITH_MANPAGE=ON \ -DWITH_PYTHON3=ON \ +%if %{with python2} + -DWITH_PYTHON2=ON \ +%else + -DWITH_PYTHON2=OFF \ + -DMGR_PYTHON_VERSION=3 \ +%endif -DWITH_SYSTEMD=ON \ %if 0%{?rhel} && ! 0%{?centos} -DWITH_SUBMAN=ON \ @@ -459,25 +489,23 @@ cmake .. \ -DWITH_OCF=ON \ %endif %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le %{ix86} x86_64 - -DWITH_RADOSGW_BEAST_FRONTEND=ON \ + -DWITH_BOOST_CONTEXT=ON \ %else - -DWITH_RADOSGW_BEAST_FRONTEND=OFF \ + -DWITH_BOOST_CONTEXT=OFF \ %endif -DBOOST_J=$CEPH_SMP_NCPUS -make "$CEPH_PARALLEL_BUILD" +make "$CEPH_MFLAGS_JOBS" %if 0%{with make_check} %check # run in-tree unittests cd build -ctest %{?_smp_mflags} - +ctest "$CEPH_MFLAGS_JOBS" %endif - %install pushd build make DESTDIR=%{buildroot} install @@ -492,7 +520,6 @@ install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_fillupdir}/sysconfig.%{name} %endif install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf -install -m 0755 -D systemd/ceph %{buildroot}%{_sbindir}/rcceph install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_libexecdir}/systemd/system-preset/50-ceph.preset mkdir -p %{buildroot}%{_sbindir} install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph @@ -547,9 +574,6 @@ rm -rf %{buildroot}%{_bindir}/cephfs-table-tool rm -rf %{buildroot}%{_libexecdir}/systemd/system-preset/50-ceph.preset rm -rf %{buildroot}%{_sbindir}/ceph-create-keys rm -rf %{buildroot}%{_sbindir}/ceph-disk -rm -rf %{buildroot}%{_sbindir}/ceph-volume -rm -rf %{buildroot}%{_sbindir}/ceph-volume-systemd -rm -rf %{buildroot}%{_sbindir}/rcceph rm -rf %{buildroot}%{_libexecdir}/ceph/ceph_common.sh rm -rf %{buildroot}%{_libdir}/rados-classes/* rm -rf %{buildroot}%{_libdir}/ceph/erasure-code/libec_*.so* @@ -563,18 +587,19 @@ rm -rf %{buildroot}%{_fillupdir}/sysconfig.* rm -rf %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon rm -rf %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds rm -rf %{buildroot}%{_unitdir}/ceph-disk@.service -rm -rf %{buildroot}%{_unitdir}/ceph-volume@.service rm -rf %{buildroot}%{_unitdir}/ceph.target rm -rf %{buildroot}%{python_sitelib}/ceph_detect_init* rm -rf %{buildroot}%{python_sitelib}/ceph_disk* +rm -rf %{buildroot}%{python3_sitelib}/ceph_detect_init* +rm -rf %{buildroot}%{python3_sitelib}/ceph_disk* rm -rf %{buildroot}%{python_sitelib}/ceph_volume/* rm -rf %{buildroot}%{python_sitelib}/ceph_volume-* +rm -rf %{buildroot}%{python3_sitelib}/ceph_volume/* +rm -rf %{buildroot}%{python3_sitelib}/ceph_volume-* rm -rf %{buildroot}%{_mandir}/man8/ceph-deploy.8* rm -rf %{buildroot}%{_mandir}/man8/ceph-detect-init.8* rm -rf %{buildroot}%{_mandir}/man8/ceph-create-keys.8* rm -rf %{buildroot}%{_mandir}/man8/ceph-disk.8* -rm -rf %{buildroot}%{_mandir}/man8/ceph-volume.8* -rm -rf %{buildroot}%{_mandir}/man8/ceph-volume-systemd.8* rm -rf %{buildroot}%{_mandir}/man8/ceph-run.8* rm -rf %{buildroot}%{_mandir}/man8/crushtool.8* rm -rf %{buildroot}%{_mandir}/man8/osdmaptool.8* @@ -589,7 +614,6 @@ rm -rf %{buildroot}%{_bindir}/ceph-authtool rm -rf %{buildroot}%{_bindir}/ceph-conf rm -rf %{buildroot}%{_bindir}/ceph-rbdnamer rm -rf %{buildroot}%{_bindir}/ceph-syn -rm -rf %{buildroot}%{_bindir}/ceph-crush-location rm -rf %{buildroot}%{_bindir}/rados rm -rf %{buildroot}%{_bindir}/radosgw-admin rm -rf %{buildroot}%{_bindir}/rbd @@ -628,6 +652,10 @@ rm -rf %{buildroot}%{_sysconfdir}/ceph/rbdmap rm -rf %{buildroot}%{_unitdir}/rbdmap.service rm -rf %{buildroot}%{python_sitelib}/ceph_argparse.py* rm -rf %{buildroot}%{python_sitelib}/ceph_daemon.py* +rm -rf %{buildroot}%{python3_sitelib}/ceph_argparse.py +rm -rf %{buildroot}%{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py* +rm -rf %{buildroot}%{python3_sitelib}/ceph_daemon.py +rm -rf %{buildroot}%{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py* rm -rf %{buildroot}%{_udevrulesdir}/50-rbd.rules rm -rf %{buildroot}%{_bindir}/ceph-mds rm -rf %{buildroot}%{_mandir}/man8/ceph-mds.8* @@ -643,6 +671,8 @@ rm -rf %{buildroot}%{_bindir}/ceph-monstore-tool rm -rf %{buildroot}%{_mandir}/man8/ceph-mon.8* rm -rf %{buildroot}%{_mandir}/man8/ceph-rest-api.8* rm -rf %{buildroot}%{python_sitelib}/ceph_rest_api.py* +rm -rf %{buildroot}%{python3_sitelib}/ceph_rest_api.py +rm -rf %{buildroot}%{python3_sitelib}/__pycache__/ceph_rest_api.cpython*.py* rm -rf %{buildroot}%{_unitdir}/ceph-mon@.service rm -rf %{buildroot}%{_unitdir}/ceph-mon.target rm -rf %{buildroot}%{_bindir}/ceph-fuse @@ -671,14 +701,19 @@ rm -rf %{buildroot}%{_bindir}/ceph-objectstore-tool rm -rf %{buildroot}%{_bindir}/ceph-osdomap-tool rm -rf %{buildroot}%{_bindir}/ceph-osd rm -rf %{buildroot}%{_libexecdir}/ceph/ceph-osd-prestart.sh +rm -rf %{buildroot}%{_sbindir}/ceph-volume +rm -rf %{buildroot}%{_sbindir}/ceph-volume-systemd rm -rf %{buildroot}%{_udevrulesdir}/60-ceph-by-parttypeuuid.rules rm -rf %{buildroot}%{_udevrulesdir}/95-ceph-osd.rules rm -rf %{buildroot}%{_mandir}/man8/ceph-clsinfo.8* rm -rf %{buildroot}%{_mandir}/man8/ceph-osd.8* rm -rf %{buildroot}%{_mandir}/man8/ceph-bluestore-tool.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-volume.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-volume-systemd.8* rm -rf %{buildroot}%{_sysconfdir}/cron.hourly/subman rm -rf %{buildroot}%{_unitdir}/ceph-osd@.service rm -rf %{buildroot}%{_unitdir}/ceph-osd.target +rm -rf %{buildroot}%{_unitdir}/ceph-volume@.service rm -rf %{buildroot}%{_sysctldir}/90-ceph-osd.conf rm -rf %{buildroot}%{_prefix}/lib/ocf/resource.d/ceph/rbd rm -rf %{buildroot}%{_libdir}/librados.so.* @@ -773,6 +808,10 @@ rm -rf %{buildroot} %endif %if 0%{?suse_version} %endif +%if 0%{with python2} +%endif +%if 0%{with python2} +%endif %if 0%{?suse_version} %endif %if 0%{?fedora} || 0%{?rhel} @@ -789,6 +828,8 @@ rm -rf %{buildroot} %endif %if %{with lttng} %endif +%if 0%{with python2} +%endif %if 0%{?rhel} || 0%{?fedora} %endif %if 0%{?suse_version} @@ -817,6 +858,8 @@ rm -rf %{buildroot} %endif %if 0%{?fedora} || 0%{?rhel} %endif +%if 0%{with python2} +%endif %if 0%{?suse_version} %endif %if 0%{?fedora} || 0%{?rhel} @@ -875,10 +918,20 @@ rm -rf %{buildroot} %endif %if %{with lttng} %endif +%if 0%{with python2} +%endif %if %{with lttng} %endif %if %{with lttng} %endif +%if 0%{with python2} +%endif +%if 0%{with python2} +%endif +%if 0%{with python2} +%endif +%if 0%{with python2} +%endif %if 0%{with ceph_test_package} %files -n ceph-test %{_bindir}/ceph-client-debug @@ -917,5 +970,7 @@ rm -rf %{buildroot} %endif %if 0%{with selinux} %endif # with selinux +%if 0%{with python2} +%endif %changelog # nospeccleaner diff --git a/ceph.changes b/ceph.changes index 2c84547..ecd1726 100644 --- a/ceph.changes +++ b/ceph.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Fri Jan 26 19:03:21 UTC 2018 - ncutler@suse.com + +- Update to version 13.0.0-5168-g80cf1407d9: + + rebase to latest upstream master + + eliminate Python 2 dependencies (bsc#1076403) + +------------------------------------------------------------------- +Mon Nov 27 13:49:47 UTC 2017 - ncutler@suse.com + +- ceph-rpmlintrc: add lines to quash RPMLINT warnings + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/crypto/libceph_crypto_isal.so + + librados2.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/libceph-common.so + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libos_tp.so + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libosd_tp.so + ------------------------------------------------------------------- Sat Nov 25 21:33:23 UTC 2017 - ncutler@suse.com diff --git a/ceph.spec b/ceph.spec index 4ba7242..12c31b7 100644 --- a/ceph.spec +++ b/ceph.spec @@ -21,18 +21,16 @@ %bcond_without tcmalloc %endif %if 0%{?fedora} || 0%{?rhel} -%bcond_without lttng %bcond_without selinux %bcond_without ceph_test_package %bcond_without cephfs_java -%bcond_with lowmem_builder +%bcond_without lttng %global _remote_tarball_prefix https://download.ceph.com/tarballs/ %endif %if 0%{?suse_version} %bcond_with selinux %bcond_with ceph_test_package %bcond_with cephfs_java -%bcond_without lowmem_builder #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %global _fillupdir /var/adm/fillup-templates @@ -47,6 +45,12 @@ %endif %endif %endif +%if 0%{?suse_version} >= 1500 +%bcond_with python2 +%global _defined_if_python2_absent 1 +%else +%bcond_without python2 +%endif %if %{with selinux} # get selinux policy version @@ -56,6 +60,9 @@ %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} %{!?python3_pkgversion: %global python3_pkgversion 3} +# define _python_buildid macro which will expand to the empty string when +# building with python2 +%global _python_buildid %{?_defined_if_python2_absent:%{python3_pkgversion}} # unify libexec for all targets %global _libexecdir %{_exec_prefix}/lib @@ -68,7 +75,7 @@ ################################################################################# Name: ceph Version: 13.0.0 -Release: 3535.g8b10d08c04%{?dist} +Release: 5168.g80cf1407d9%{?dist}. %if 0%{?fedora} || 0%{?rhel} Epoch: 2 %endif @@ -83,7 +90,7 @@ License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and Group: System/Filesystems %endif URL: http://ceph.com/ -Source0: %{?_remote_tarball_prefix}ceph-13.0.0-3535-g8b10d08c04.tar.bz2 +Source0: %{?_remote_tarball_prefix}ceph-13.0.0-5168-g80cf1407d9.tar.bz2 %if 0%{?suse_version} # _insert_obs_source_lines_here %if 0%{?is_opensuse} @@ -108,25 +115,18 @@ BuildRequires: sharutils BuildRequires: checkpolicy BuildRequires: selinux-policy-devel %endif -%if 0%{with make_check} -%if 0%{?fedora} || 0%{?rhel} -BuildRequires: python-cherrypy -BuildRequires: python-werkzeug -%endif -%if 0%{?suse_version} -BuildRequires: python-CherryPy -BuildRequires: python-Werkzeug -BuildRequires: python-numpy-devel -%endif -BuildRequires: python-pecan -BuildRequires: socat -%endif BuildRequires: bc BuildRequires: gperf BuildRequires: cmake BuildRequires: cryptsetup BuildRequires: fuse-devel +%if 0%{?rhel} == 7 +# devtoolset offers newer make and valgrind-devel, but the old ones are good +# enough. +BuildRequires: devtoolset-7-gcc-c++ +%else BuildRequires: gcc-c++ +%endif BuildRequires: gdbm %if 0%{with tcmalloc} BuildRequires: gperftools-devel >= 2.4 @@ -139,19 +139,21 @@ BuildRequires: libcurl-devel BuildRequires: libudev-devel BuildRequires: libtool BuildRequires: libxml2-devel +BuildRequires: libuuid-devel BuildRequires: make BuildRequires: parted BuildRequires: perl BuildRequires: pkgconfig -%if %{with lowmem_builder} BuildRequires: procps -%endif -BuildRequires: python -BuildRequires: python-devel -BuildRequires: python-nose -BuildRequires: python-requests -BuildRequires: python-virtualenv +BuildRequires: python%{_python_buildid} +BuildRequires: python%{_python_buildid}-devel +BuildRequires: python%{_python_buildid}-nose +BuildRequires: python%{_python_buildid}-requests +BuildRequires: python%{_python_buildid}-virtualenv BuildRequires: snappy-devel +%if 0%{with make_check} +BuildRequires: socat +%endif BuildRequires: udev BuildRequires: util-linux BuildRequires: valgrind-devel @@ -179,9 +181,10 @@ BuildRequires: libopenssl-devel BuildRequires: lsb-release BuildRequires: openldap2-devel BuildRequires: cunit-devel -BuildRequires: python-Cython -BuildRequires: python-PrettyTable -BuildRequires: python-Sphinx +BuildRequires: python%{_python_buildid}-base +BuildRequires: python%{_python_buildid}-Cython +BuildRequires: python%{_python_buildid}-PrettyTable +BuildRequires: python%{_python_buildid}-Sphinx BuildRequires: rdma-core-devel %endif %if 0%{?fedora} || 0%{?rhel} @@ -195,9 +198,9 @@ BuildRequires: openldap-devel BuildRequires: openssl-devel BuildRequires: CUnit-devel BuildRequires: redhat-lsb-core -BuildRequires: Cython -BuildRequires: python-prettytable -BuildRequires: python-sphinx +BuildRequires: Cython%{_python_buildid} +BuildRequires: python%{_python_buildid}-prettytable +BuildRequires: python%{_python_buildid}-sphinx %endif # python34-... for RHEL, python3-... for all other supported distros %if 0%{?rhel} @@ -209,6 +212,20 @@ BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-Cython %endif +# distro-conditional make check dependencies +%if 0%{with make_check} +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: python%{_python_buildid}-cherrypy +BuildRequires: python%{_python_buildid}-pecan +BuildRequires: python%{_python_buildid}-werkzeug +%endif +%if 0%{?suse_version} +BuildRequires: python%{_python_buildid}-CherryPy +BuildRequires: python%{_python_buildid}-Werkzeug +BuildRequires: python%{_python_buildid}-pecan +BuildRequires: python%{_python_buildid}-numpy-devel +%endif +%endif # lttng and babeltrace for rbd-replay-prep %if %{with lttng} %if 0%{?fedora} || 0%{?rhel} @@ -252,16 +269,15 @@ Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} %endif -Requires: python -Requires: python-requests -Requires: python-setuptools -Requires: grep -Requires: xfsprogs -Requires: logrotate -Requires: util-linux Requires: cryptsetup Requires: findutils +Requires: grep +Requires: logrotate Requires: psmisc +Requires: python%{_python_buildid}-requests +Requires: python%{_python_buildid}-setuptools +Requires: util-linux +Requires: xfsprogs Requires: which %if 0%{?suse_version} Recommends: ntp-daemon @@ -279,19 +295,20 @@ Group: System/Filesystems Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} -Requires: python-rados = %{_epoch_prefix}%{version}-%{release} -Requires: python-rbd = %{_epoch_prefix}%{version}-%{release} -Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release} -Requires: python-rgw = %{_epoch_prefix}%{version}-%{release} +Requires: python%{_python_buildid}-rados = %{_epoch_prefix}%{version}-%{release} +Requires: python%{_python_buildid}-rbd = %{_epoch_prefix}%{version}-%{release} +Requires: python%{_python_buildid}-cephfs = %{_epoch_prefix}%{version}-%{release} +Requires: python%{_python_buildid}-rgw = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} -Requires: python-prettytable +Requires: python%{_python_buildid}-prettytable +Requires: python%{_python_buildid}-requests %endif %if 0%{?suse_version} -Requires: python-PrettyTable +Requires: python%{_python_buildid}-PrettyTable +Requires: python%{_python_buildid}-requests Provides: libxio = 1.7 Obsoletes: libxio <= 1.7 %endif -Requires: python-requests %{?systemd_requires} %if 0%{?suse_version} PreReq: permissions @@ -320,10 +337,10 @@ Group: System/Filesystems Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} # For ceph-rest-api %if 0%{?fedora} || 0%{?rhel} -Requires: python-flask +Requires: python%{_python_buildid}-flask %endif %if 0%{?suse_version} -Requires: python-Flask +Requires: python%{_python_buildid}-Flask %endif %description mon ceph-mon is the cluster monitor daemon for the Ceph distributed file @@ -338,17 +355,20 @@ Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} -Requires: python-cherrypy -Requires: python-werkzeug -Requires: pyOpenSSL +Requires: python%{_python_buildid}-cherrypy +Requires: python%{_python_buildid}-jinja2 +Requires: python%{_python_buildid}-pecan +Requires: python%{_python_buildid}-werkzeug +Requires: pyOpenSSL%{_python_buildid} %endif %if 0%{?suse_version} -Requires: python-CherryPy -Requires: python-Werkzeug -Requires: python-pyOpenSSL -Recommends: python-influxdb +Requires: python%{_python_buildid}-CherryPy +Requires: python%{_python_buildid}-Jinja2 +Requires: python%{_python_buildid}-Werkzeug +Requires: python%{_python_buildid}-pecan +Requires: python%{_python_buildid}-pyOpenSSL +Recommends: python%{_python_buildid}-influxdb %endif -Requires: python-pecan %description mgr ceph-mgr enables python modules that provide services (such as the REST module derived from Calamari) and expose CLI hooks. ceph-mgr gathers @@ -442,7 +462,8 @@ Requires: gdisk %if 0%{?suse_version} Requires: gptfdisk %endif -Requires: parted +Requires: parted +Requires: lvm2 %description osd ceph-osd is the object storage daemon for the Ceph distributed file system. It is responsible for storing objects on a local file system @@ -498,10 +519,11 @@ Obsoletes: librgw2-devel < %{_epoch_prefix}%{version}-%{release} This package contains libraries and headers needed to develop programs that use RADOS gateway client library. +%if 0%{with python2} %package -n python-rgw Summary: Python 2 libraries for the RADOS gateway %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Requires: python-rados = %{_epoch_prefix}%{version}-%{release} @@ -509,11 +531,12 @@ Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rgw This package contains Python 2 libraries for interacting with Cephs RADOS gateway. +%endif %package -n python%{python3_pkgversion}-rgw Summary: Python 3 libraries for the RADOS gateway %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} @@ -521,21 +544,23 @@ Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{relea This package contains Python 3 libraries for interacting with Cephs RADOS gateway. +%if 0%{with python2} %package -n python-rados Summary: Python 2 libraries for the RADOS object store %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rados This package contains Python 2 libraries for interacting with Cephs RADOS object store. +%endif %package -n python%{python3_pkgversion}-rados Summary: Python 3 libraries for the RADOS object store %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Requires: python%{python3_pkgversion} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} @@ -600,10 +625,11 @@ Obsoletes: librbd1-devel < %{_epoch_prefix}%{version}-%{release} This package contains libraries and headers needed to develop programs that use RADOS block device. +%if 0%{with python2} %package -n python-rbd Summary: Python 2 libraries for the RADOS block device %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: python-rados = %{_epoch_prefix}%{version}-%{release} @@ -611,11 +637,12 @@ Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rbd This package contains Python 2 libraries for interacting with Cephs RADOS block device. +%endif %package -n python%{python3_pkgversion}-rbd Summary: Python 3 libraries for the RADOS block device %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} @@ -653,10 +680,11 @@ Obsoletes: libcephfs2-devel < %{_epoch_prefix}%{version}-%{release} This package contains libraries and headers needed to develop programs that use Cephs distributed file system. +%if 0%{with python2} %package -n python-cephfs Summary: Python 2 libraries for Ceph distributed file system %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?suse_version} @@ -666,11 +694,12 @@ Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-cephfs This package contains Python 2 libraries for interacting with Cephs distributed file system. +%endif %package -n python%{python3_pkgversion}-cephfs Summary: Python 3 libraries for Ceph distributed file system %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} @@ -678,16 +707,18 @@ Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{relea This package contains Python 3 libraries for interacting with Cephs distributed file system. +%if 0%{with python2} %package -n python%{python3_pkgversion}-ceph-argparse Summary: Python 3 utility libraries for Ceph CLI %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif %description -n python%{python3_pkgversion}-ceph-argparse This package contains types and routines for Python 3 used by the Ceph CLI as well as the RESTful interface. These have to do with querying the daemons for command-description information, validating user command input against those descriptions, and submitting the command to the appropriate daemon. +%endif %if 0%{with ceph_test_package} %package -n ceph-test @@ -695,7 +726,7 @@ Summary: Ceph benchmarks and test tools %if 0%{?suse_version} Group: System/Benchmark %endif -Requires: ceph-common +Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} Requires: xmlstarlet Requires: jq Requires: socat @@ -746,7 +777,9 @@ This package contains the Java libraries for the Ceph File System. %package -n rados-objclass-devel Summary: RADOS object class development kit -Group: Development/Libraries +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif Requires: librados2-devel = %{_epoch_prefix}%{version}-%{release} %description -n rados-objclass-devel This package contains libraries and headers needed to develop RADOS object @@ -771,10 +804,11 @@ populated file-systems. %endif +%if 0%{with python2} %package -n python-ceph-compat Summary: Compatibility package for Cephs python libraries %if 0%{?suse_version} -Group: Development/Languages/Python +Group: Development/Libraries/Python %endif Obsoletes: python-ceph Requires: python-rados = %{_epoch_prefix}%{version}-%{release} @@ -787,14 +821,20 @@ This is a compatibility package to accommodate python-ceph split into python-rados, python-rbd, python-rgw and python-cephfs. Packages still depending on python-ceph should be fixed to depend on python-rados, python-rbd, python-rgw or python-cephfs instead. +%endif ################################################################################# # common ################################################################################# %prep -%autosetup -p1 -n ceph-13.0.0-3535-g8b10d08c04 +%autosetup -p1 -n ceph-13.0.0-5168-g80cf1407d9 %build + +%if 0%{?rhel} == 7 +. /opt/rh/devtoolset-7/enable +%endif + %if 0%{with cephfs_java} # Find jni.h for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do @@ -802,7 +842,8 @@ for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do done %endif -%if %{with lowmem_builder} +%if 0%{?suse_version} +# the following setting fixed an OOM condition we once encountered in the OBS RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768" %endif export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` @@ -812,39 +853,26 @@ export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" # Parallel build settings ... -# unlimit _smp_mflags in system macro -%global _smp_ncpus_max 0 -CEPH_PARALLEL_BUILD="%{?_smp_mflags}" -%if %{with lowmem_builder} -lo_jobs="%{?jobs:%{jobs}}" -%if 0%{?suse_version} -%ifarch %arm - %if ! 0%{?qemu_user_space_build:1} - # native hardware is not that powerful - lo_jobs="1" - %endif -%endif +CEPH_MFLAGS_JOBS="%{?_smp_mflags}" +CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//') +%if 0%{?__isa_bits} == 32 +# 32-bit builds can use 3G memory max, which is not enough even for -j2 +CEPH_SMP_NCPUS="1" %endif # do not eat all memory echo "Available memory:" -free +free -h echo "System limits:" ulimit -a -lo_jobs_reduced= -if test -n "$lo_jobs" -a "$lo_jobs" -gt 1 ; then - mem_per_process=1600 - max_mem=$(LANG=C free -t -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") +if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then + mem_per_process=1800 + max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") max_jobs="$(($max_mem / $mem_per_process))" - test "$lo_jobs" -gt "$max_jobs" && lo_jobs="$max_jobs" && lo_jobs_reduced="yes" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits" - test "$lo_jobs" -le 0 && lo_jobs=1 && echo "Warning: Not using parallel build at all because of memory limits" + test "$CEPH_SMP_NCPUS" -gt "$max_jobs" && CEPH_SMP_NCPUS="$max_jobs" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits" + test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits" fi -# run make -if test -n "$lo_jobs" ; then - CEPH_PARALLEL_BUILD="-j$lo_jobs" -fi -%endif -export CEPH_PARALLEL_BUILD -export CEPH_SMP_NCPUS=$(echo "$CEPH_PARALLEL_BUILD" | sed 's/-j//') +export CEPH_SMP_NCPUS +export CEPH_MFLAGS_JOBS="-j$CEPH_SMP_NCPUS" env | sort @@ -862,6 +890,12 @@ cmake .. \ -DWITH_EMBEDDED=OFF \ -DWITH_MANPAGE=ON \ -DWITH_PYTHON3=ON \ +%if %{with python2} + -DWITH_PYTHON2=ON \ +%else + -DWITH_PYTHON2=OFF \ + -DMGR_PYTHON_VERSION=3 \ +%endif -DWITH_SYSTEMD=ON \ %if 0%{?rhel} && ! 0%{?centos} -DWITH_SUBMAN=ON \ @@ -887,25 +921,23 @@ cmake .. \ -DWITH_OCF=ON \ %endif %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le %{ix86} x86_64 - -DWITH_RADOSGW_BEAST_FRONTEND=ON \ + -DWITH_BOOST_CONTEXT=ON \ %else - -DWITH_RADOSGW_BEAST_FRONTEND=OFF \ + -DWITH_BOOST_CONTEXT=OFF \ %endif -DBOOST_J=$CEPH_SMP_NCPUS -make "$CEPH_PARALLEL_BUILD" +make "$CEPH_MFLAGS_JOBS" %if 0%{with make_check} %check # run in-tree unittests cd build -ctest %{?_smp_mflags} - +ctest "$CEPH_MFLAGS_JOBS" %endif - %install pushd build make DESTDIR=%{buildroot} install @@ -920,7 +952,6 @@ install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_fillupdir}/sysconfig.%{name} %endif install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf -install -m 0755 -D systemd/ceph %{buildroot}%{_sbindir}/rcceph install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_libexecdir}/systemd/system-preset/50-ceph.preset mkdir -p %{buildroot}%{_sbindir} install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph @@ -984,9 +1015,6 @@ rm -rf %{buildroot} %{_libexecdir}/systemd/system-preset/50-ceph.preset %{_sbindir}/ceph-create-keys %{_sbindir}/ceph-disk -%{_sbindir}/ceph-volume -%{_sbindir}/ceph-volume-systemd -%{_sbindir}/rcceph %dir %{_libexecdir}/ceph %{_libexecdir}/ceph/ceph_common.sh %dir %{_libdir}/rados-classes @@ -1014,19 +1042,27 @@ rm -rf %{buildroot} %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds %endif %{_unitdir}/ceph-disk@.service -%{_unitdir}/ceph-volume@.service %{_unitdir}/ceph.target +%if 0%{with python2} %{python_sitelib}/ceph_detect_init* %{python_sitelib}/ceph_disk* +%else +%{python3_sitelib}/ceph_detect_init* +%{python3_sitelib}/ceph_disk* +%endif +%if 0%{with python2} %dir %{python_sitelib}/ceph_volume %{python_sitelib}/ceph_volume/* %{python_sitelib}/ceph_volume-* +%else +%dir %{python3_sitelib}/ceph_volume +%{python3_sitelib}/ceph_volume/* +%{python3_sitelib}/ceph_volume-* +%endif %{_mandir}/man8/ceph-deploy.8* %{_mandir}/man8/ceph-detect-init.8* %{_mandir}/man8/ceph-create-keys.8* %{_mandir}/man8/ceph-disk.8* -%{_mandir}/man8/ceph-volume.8* -%{_mandir}/man8/ceph-volume-systemd.8* %{_mandir}/man8/ceph-run.8* %{_mandir}/man8/crushtool.8* %{_mandir}/man8/osdmaptool.8* @@ -1045,11 +1081,11 @@ rm -rf %{buildroot} %if 0%{?suse_version} %fillup_only if [ $1 -eq 1 ] ; then -/usr/bin/systemctl preset ceph-disk@\*.service ceph-volume@\*.service ceph.target >/dev/null 2>&1 || : +/usr/bin/systemctl preset ceph-disk@\*.service ceph.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} -%systemd_post ceph-disk@\*.service ceph-volume@\*.service ceph.target +%systemd_post ceph-disk@\*.service ceph.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph.target >/dev/null 2>&1 || : @@ -1057,10 +1093,10 @@ fi %preun base %if 0%{?suse_version} -%service_del_preun ceph-disk@\*.service ceph-volume@\*.service ceph.target +%service_del_preun ceph-disk@\*.service ceph.target %endif %if 0%{?fedora} || 0%{?rhel} -%systemd_preun ceph-disk@\*.service ceph-volume@\*.service ceph.target +%systemd_preun ceph-disk@\*.service ceph.target %endif %postun base @@ -1068,10 +1104,10 @@ fi test -n "$FIRST_ARG" || FIRST_ARG=$1 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" -%service_del_postun ceph-disk@\*.service ceph-volume@\*.service ceph.target +%service_del_postun ceph-disk@\*.service ceph.target %endif %if 0%{?fedora} || 0%{?rhel} -%systemd_postun ceph-disk@\*.service ceph-volume@\*.service ceph.target +%systemd_postun ceph-disk@\*.service ceph.target %endif if [ $FIRST_ARG -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to @@ -1081,7 +1117,7 @@ if [ $FIRST_ARG -ge 1 ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then - /usr/bin/systemctl try-restart ceph-disk@\*.service ceph-volume@\*.service > /dev/null 2>&1 || : + /usr/bin/systemctl try-restart ceph-disk@\*.service > /dev/null 2>&1 || : fi fi @@ -1094,7 +1130,6 @@ fi %{_bindir}/ceph-conf %{_bindir}/ceph-rbdnamer %{_bindir}/ceph-syn -%{_bindir}/ceph-crush-location %{_bindir}/rados %{_bindir}/radosgw-admin %{_bindir}/rbd @@ -1137,8 +1172,15 @@ fi %config %{_sysconfdir}/bash_completion.d/radosgw-admin %config(noreplace) %{_sysconfdir}/ceph/rbdmap %{_unitdir}/rbdmap.service +%if 0%{with python2} %{python_sitelib}/ceph_argparse.py* %{python_sitelib}/ceph_daemon.py* +%else +%{python3_sitelib}/ceph_argparse.py +%{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py* +%{python3_sitelib}/ceph_daemon.py +%{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py* +%endif %dir %{_udevrulesdir} %{_udevrulesdir}/50-rbd.rules %attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/ @@ -1284,7 +1326,12 @@ fi %{_bindir}/ceph-monstore-tool %{_mandir}/man8/ceph-mon.8* %{_mandir}/man8/ceph-rest-api.8* +%if 0%{with python2} %{python_sitelib}/ceph_rest_api.py* +%else +%{python3_sitelib}/ceph_rest_api.py +%{python3_sitelib}/__pycache__/ceph_rest_api.cpython*.py* +%endif %{_unitdir}/ceph-mon@.service %{_unitdir}/ceph-mon.target %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon @@ -1453,28 +1500,33 @@ fi %{_bindir}/ceph-osdomap-tool %{_bindir}/ceph-osd %{_libexecdir}/ceph/ceph-osd-prestart.sh +%{_sbindir}/ceph-volume +%{_sbindir}/ceph-volume-systemd %dir %{_udevrulesdir} %{_udevrulesdir}/60-ceph-by-parttypeuuid.rules %{_udevrulesdir}/95-ceph-osd.rules %{_mandir}/man8/ceph-clsinfo.8* %{_mandir}/man8/ceph-osd.8* %{_mandir}/man8/ceph-bluestore-tool.8* +%{_mandir}/man8/ceph-volume.8* +%{_mandir}/man8/ceph-volume-systemd.8* %if 0%{?rhel} && ! 0%{?centos} %attr(0755,-,-) %{_sysconfdir}/cron.hourly/subman %endif %{_unitdir}/ceph-osd@.service %{_unitdir}/ceph-osd.target +%{_unitdir}/ceph-volume@.service %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd %config(noreplace) %{_sysctldir}/90-ceph-osd.conf %post osd %if 0%{?suse_version} if [ $1 -eq 1 ] ; then - /usr/bin/systemctl preset ceph-osd@\*.service ceph-osd.target >/dev/null 2>&1 || : + /usr/bin/systemctl preset ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} -%systemd_post ceph-osd@\*.service ceph-osd.target +%systemd_post ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || : @@ -1487,20 +1539,20 @@ fi %preun osd %if 0%{?suse_version} -%service_del_preun ceph-osd@\*.service ceph-osd.target +%service_del_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} -%systemd_preun ceph-osd@\*.service ceph-osd.target +%systemd_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %postun osd test -n "$FIRST_ARG" || FIRST_ARG=$1 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" -%service_del_postun ceph-osd@\*.service ceph-osd.target +%service_del_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} -%systemd_postun ceph-osd@\*.service ceph-osd.target +%systemd_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif if [ $FIRST_ARG -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to @@ -1510,7 +1562,7 @@ if [ $FIRST_ARG -ge 1 ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then - /usr/bin/systemctl try-restart ceph-osd@\*.service > /dev/null 2>&1 || : + /usr/bin/systemctl try-restart ceph-osd@\*.service ceph-volume@\*.service > /dev/null 2>&1 || : fi fi @@ -1520,7 +1572,7 @@ fi %dir %{_prefix}/lib/ocf %dir %{_prefix}/lib/ocf/resource.d %dir %{_prefix}/lib/ocf/resource.d/ceph -%{_prefix}/lib/ocf/resource.d/ceph/rbd +%attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/ceph/rbd %endif @@ -1555,9 +1607,11 @@ fi %{_bindir}/librados-config %{_mandir}/man8/librados-config.8* +%if 0%{with python2} %files -n python-rados %{python_sitearch}/rados.so %{python_sitearch}/rados-*.egg-info +%endif %files -n python%{python3_pkgversion}-rados %{python3_sitearch}/rados.cpython*.so @@ -1609,17 +1663,21 @@ fi %{_includedir}/rados/rgw_file.h %{_libdir}/librgw.so +%if 0%{with python2} %files -n python-rgw %{python_sitearch}/rgw.so %{python_sitearch}/rgw-*.egg-info +%endif %files -n python%{python3_pkgversion}-rgw %{python3_sitearch}/rgw.cpython*.so %{python3_sitearch}/rgw-*.egg-info +%if 0%{with python2} %files -n python-rbd %{python_sitearch}/rbd.so %{python_sitearch}/rbd-*.egg-info +%endif %files -n python%{python3_pkgversion}-rbd %{python3_sitearch}/rbd.cpython*.so @@ -1638,10 +1696,12 @@ fi %{_includedir}/cephfs/ceph_statx.h %{_libdir}/libcephfs.so +%if 0%{with python2} %files -n python-cephfs %{python_sitearch}/cephfs.so %{python_sitearch}/cephfs-*.egg-info %{python_sitelib}/ceph_volume_client.py* +%endif %files -n python%{python3_pkgversion}-cephfs %{python3_sitearch}/cephfs.cpython*.so @@ -1649,11 +1709,13 @@ fi %{python3_sitelib}/ceph_volume_client.py %{python3_sitelib}/__pycache__/ceph_volume_client.cpython*.py* +%if 0%{with python2} %files -n python%{python3_pkgversion}-ceph-argparse %{python3_sitelib}/ceph_argparse.py %{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py* %{python3_sitelib}/ceph_daemon.py %{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py* +%endif %if 0%{with ceph_test_package} %files -n ceph-test @@ -1801,9 +1863,11 @@ exit 0 %endif # with selinux +%if 0%{with python2} %files -n python-ceph-compat # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to # actually build this meta package. +%endif %changelog