diff --git a/0001-Disable-erasure_codelib-neon-build.patch b/0001-Disable-erasure_codelib-neon-build.patch index bae9da6..18b99a7 100644 --- a/0001-Disable-erasure_codelib-neon-build.patch +++ b/0001-Disable-erasure_codelib-neon-build.patch @@ -1,4 +1,4 @@ -From 854a65a1dc079101b827bed60ce5ea2185943e2c Mon Sep 17 00:00:00 2001 +From 1aa42ff6c1d1a216d36a742835d9037601360f76 Mon Sep 17 00:00:00 2001 From: Boris Ranto Date: Wed, 11 Nov 2015 17:08:06 +0100 Subject: [PATCH] Disable erasure_codelib neon build @@ -43,5 +43,5 @@ index 6b658d5..93051f4 100644 libec_shec_sse3_la_SOURCES = ${shec_sources} libec_shec_sse3_la_CFLAGS = ${AM_CFLAGS} \ -- -2.5.5 +2.7.4 diff --git a/0002-Do-not-use-momit-leaf-frame-pointer-flag.patch b/0002-Do-not-use-momit-leaf-frame-pointer-flag.patch index 4d6514c..583cfbd 100644 --- a/0002-Do-not-use-momit-leaf-frame-pointer-flag.patch +++ b/0002-Do-not-use-momit-leaf-frame-pointer-flag.patch @@ -1,4 +1,4 @@ -From da169786d04025c98a7727040e0f5dd5c02245c2 Mon Sep 17 00:00:00 2001 +From 181986411c672e2ccce326e3c28b3ad450b6f99d Mon Sep 17 00:00:00 2001 From: Boris Ranto Date: Fri, 22 Apr 2016 15:30:22 +0200 Subject: [PATCH] Do not use -momit-leaf-frame-pointer flag @@ -26,5 +26,5 @@ index c64ea36..b3758a5 100644 # if we're compiling for release, compile without debug code (-DNDEBUG) and -- -2.5.5 +2.7.4 diff --git a/ceph.spec b/ceph.spec index 71788de..fc15f88 100644 --- a/ceph.spec +++ b/ceph.spec @@ -17,6 +17,7 @@ %bcond_with ocf %bcond_without cephfs_java %bcond_with tests +%bcond_with xio %ifnarch s390 s390x %bcond_without tcmalloc %else @@ -37,39 +38,13 @@ %bcond_without lttng %endif -%if (0%{?el5} || (0%{?rhel_version} >= 500 && 0%{?rhel_version} <= 600)) -%{!?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 - %if %{with selinux} # get selinux policy version %{!?_selinux_policy_version: %global _selinux_policy_version %(sed -e 's,.*selinux-policy-\\([^/]*\\)/.*,\\1,' /usr/share/selinux/devel/policyhelp 2>/dev/null || echo 0.0.0)} - -%define relabel_files() \ -restorecon -R /usr/bin/ceph-mon > /dev/null 2>&1; \ -restorecon -R /usr/bin/ceph-osd > /dev/null 2>&1; \ -restorecon -R /usr/bin/ceph-mds > /dev/null 2>&1; \ -restorecon -R /usr/bin/radosgw > /dev/null 2>&1; \ -restorecon -R /etc/rc\.d/init\.d/ceph > /dev/null 2>&1; \ -restorecon -R /etc/rc\.d/init\.d/radosgw > /dev/null 2>&1; \ -restorecon -R /var/run/ceph > /dev/null 2>&1; \ -restorecon -R /var/lib/ceph > /dev/null 2>&1; \ -restorecon -R /var/log/ceph > /dev/null 2>&1; \ -restorecon -R /var/log/radosgw > /dev/null 2>&1; %endif %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} - -# Use systemd files on RHEL 7 and above and in SUSE/openSUSE. -# Note: We don't install unit files for the services yet. For now, -# the _with_systemd variable only implies that we'll install -# /etc/tmpfiles.d/ceph.conf in order to set up the socket directory in -# /var/run/ceph. -%if 0%{?fedora} || 0%{?rhel} >= 7 || 0%{?suse_version} -%global _with_systemd 1 %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} -%endif # unify libexec for all targets %global _libexecdir %{_exec_prefix}/lib @@ -79,7 +54,7 @@ restorecon -R /var/log/radosgw > /dev/null 2>&1; # common ################################################################################# Name: ceph -Version: 10.2.1 +Version: 10.2.2 Release: 1%{?dist} Epoch: 1 Summary: User space components of the Ceph file system @@ -107,20 +82,20 @@ BuildRequires: checkpolicy BuildRequires: selinux-policy-devel BuildRequires: /usr/share/selinux/devel/policyhelp %endif -BuildRequires: gcc-c++ BuildRequires: boost-devel BuildRequires: cmake BuildRequires: cryptsetup BuildRequires: fuse-devel +BuildRequires: gcc-c++ BuildRequires: gdbm BuildRequires: hdparm BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel -BuildRequires: libcurl-devel -BuildRequires: libxml2-devel BuildRequires: libblkid-devel >= 2.17 +BuildRequires: libcurl-devel BuildRequires: libudev-devel BuildRequires: libtool +BuildRequires: libxml2-devel BuildRequires: make BuildRequires: parted BuildRequires: perl @@ -129,6 +104,7 @@ BuildRequires: python BuildRequires: python-devel BuildRequires: python-nose BuildRequires: python-requests +BuildRequires: python-sphinx BuildRequires: python-virtualenv BuildRequires: snappy-devel BuildRequires: util-linux @@ -144,12 +120,10 @@ BuildRequires: yasm # distro-conditional dependencies ################################################################################# %if 0%{?suse_version} -%if 0%{?_with_systemd} BuildRequires: pkgconfig(systemd) BuildRequires: systemd-rpm-macros BuildRequires: systemd %{?systemd_requires} -%endif PreReq: %fillup_prereq BuildRequires: net-tools BuildRequires: libbz2-devel @@ -166,32 +140,18 @@ BuildRequires: openldap2-devel BuildRequires: python-Cython %endif %if 0%{?fedora} || 0%{?rhel} -%if 0%{?_with_systemd} Requires: systemd -%endif +BuildRequires: boost-random BuildRequires: btrfs-progs BuildRequires: nss-devel BuildRequires: keyutils-libs-devel BuildRequires: libatomic_ops-devel -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(preun): initscripts -%if 0%{with tcmalloc} BuildRequires: gperftools-devel -%endif BuildRequires: openldap-devel BuildRequires: openssl-devel BuildRequires: redhat-lsb-core BuildRequires: Cython %endif -# boost -%if 0%{?fedora} || 0%{?rhel} -BuildRequires: boost-random -%endif -# python-argparse for distros with Python 2.6 or lower -%if (0%{?rhel} && 0%{?rhel} <= 6) -BuildRequires: python-argparse -%endif # lttng and babeltrace for rbd-replay-prep %if %{with lttng} %if 0%{?fedora} || 0%{?rhel} @@ -212,17 +172,14 @@ BuildRequires: FastCGI-devel BuildRequires: expat-devel BuildRequires: fcgi-devel %endif -# python-sphinx -%if 0%{?rhel} > 0 && 0%{?rhel} < 7 -BuildRequires: python-sphinx10 -%endif -%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 7 -BuildRequires: python-sphinx -%endif #hardened-cc1 %if 0%{?fedora} || 0%{?rhel} BuildRequires: redhat-rpm-config %endif +# Accelio IB/RDMA +%if 0%{with xio} +BuildRequires: libxio-devel +%endif %description Ceph is a massively scalable, open-source, distributed storage system that runs @@ -257,10 +214,14 @@ Requires: findutils Requires: which %if 0%{?suse_version} Requires: lsb-release +Recommends: ntp-daemon %endif %if 0%{?fedora} || 0%{?rhel} Requires: redhat-lsb-core %endif +%if 0%{with xio} +Requires: libxio +%endif %description base Base is the package that includes all the files shared amongst ceph servers @@ -274,15 +235,12 @@ Requires: python-rados = %{epoch}:%{version}-%{release} Requires: python-rbd = %{epoch}:%{version}-%{release} Requires: python-cephfs = %{epoch}:%{version}-%{release} Requires: python-requests -%if 0%{?_with_systemd} %{?systemd_requires} -%endif %if 0%{?suse_version} Requires(pre): pwdutils %endif -# python-argparse is only needed in distros with Python 2.6 or lower -%if (0%{?rhel} && 0%{?rhel} <= 6) -Requires: python-argparse +%if 0%{with xio} +Requires: libxio %endif %description -n ceph-common Common utilities to mount and interact with a ceph storage cluster. @@ -580,13 +538,8 @@ Group: System Environment/Libraries License: LGPL-2.0 Requires: java Requires: libcephfs_jni1 = %{epoch}:%{version}-%{release} -%if 0%{?el6} -Requires: junit4 -BuildRequires: junit4 -%else Requires: junit BuildRequires: junit -%endif %description -n cephfs-java This package contains the Java libraries for the Ceph File System. @@ -693,14 +646,12 @@ export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/-g /-g1 /'` %{configure} CPPFLAGS="$java_inc" \ --prefix=/usr \ --libexecdir=%{_libexecdir} \ - --localstatedir=/var \ - --sysconfdir=/etc \ + --localstatedir=%{_localstatedir} \ + --sysconfdir=%{_sysconfdir} \ %if 0%{?rhel} && ! 0%{?centos} --enable-subman \ %endif -%if 0%{?_with_systemd} --with-systemdsystemunitdir=%_unitdir \ -%endif --docdir=%{_docdir}/ceph \ --with-man-pages \ --mandir="%_mandir" \ @@ -710,6 +661,9 @@ export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/-g /-g1 /'` %if 0%{with cephfs_java} --enable-cephfs-java \ %endif +%if 0%{with xio} + --enable-xio \ +%endif %if 0%{with selinux} --with-selinux \ %endif @@ -721,9 +675,7 @@ export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/-g /-g1 /'` %endif $CEPH_EXTRA_CONFIGURE_ARGS \ %{?_with_ocf} \ -%if %{without tcmalloc} - --without-tcmalloc \ -%endif + %{?_with_tcmalloc} \ CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" %if %{with lowmem_builder} @@ -745,59 +697,23 @@ make %{?_smp_mflags} check-local %install -make DESTDIR=$RPM_BUILD_ROOT install -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_example.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_fail_to_register.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_hangs.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_missing_entry_point.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_missing_version.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_jerasure_generic.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_jerasure_neon.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_jerasure_sse3.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_jerasure_sse4.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_shec_generic.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_shec_neon.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_shec_sse3.so -rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_shec_sse4.so -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/etc-rbdmap $RPM_BUILD_ROOT%{_sysconfdir}/ceph/rbdmap +make DESTDIR=%{buildroot} install +find %{buildroot} -type f -name "*.la" -exec rm -f {} ';' +find %{buildroot} -type f -name "*.a" -exec rm -f {} ';' +install -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap %if 0%{?fedora} || 0%{?rhel} -install -m 0644 -D etc/sysconfig/ceph $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ceph +install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph %endif %if 0%{?suse_version} -install -m 0644 -D etc/sysconfig/ceph $RPM_BUILD_ROOT%{_localstatedir}/adm/fillup-templates/sysconfig.%{name} +install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name} %endif -%if 0%{?_with_systemd} - install -m 0644 -D systemd/ceph.tmpfiles.d $RPM_BUILD_ROOT%{_tmpfilesdir}/ceph-common.conf - install -m 0644 -D systemd/rbdmap.service $RPM_BUILD_ROOT%{_unitdir}/rbdmap.service - install -m 0644 -D systemd/ceph-osd@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-osd@.service - install -m 0644 -D systemd/ceph-mon@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-mon@.service - install -m 0644 -D systemd/ceph-create-keys@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-create-keys@.service - install -m 0644 -D systemd/ceph-mds@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-mds@.service - install -m 0644 -D systemd/ceph-radosgw@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-radosgw@.service - install -m 0644 -D systemd/ceph-rbd-mirror@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-rbd-mirror@.service - install -m 0644 -D systemd/ceph.target $RPM_BUILD_ROOT%{_unitdir}/ceph.target - install -m 0644 -D systemd/ceph-osd.target $RPM_BUILD_ROOT%{_unitdir}/ceph-osd.target - install -m 0644 -D systemd/ceph-mon.target $RPM_BUILD_ROOT%{_unitdir}/ceph-mon.target - install -m 0644 -D systemd/ceph-mds.target $RPM_BUILD_ROOT%{_unitdir}/ceph-mds.target - install -m 0644 -D systemd/ceph-radosgw.target $RPM_BUILD_ROOT%{_unitdir}/ceph-radosgw.target - install -m 0644 -D systemd/ceph-rbd-mirror.target $RPM_BUILD_ROOT%{_unitdir}/ceph-rbd-mirror.target - install -m 0644 -D systemd/ceph-disk@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-disk@.service - install -m 0755 -D systemd/ceph $RPM_BUILD_ROOT%{_sbindir}/rcceph - install -m 0644 -D systemd/50-ceph.preset $RPM_BUILD_ROOT%{_libexecdir}/systemd/system-preset/50-ceph.preset -%else - install -D src/init-rbdmap $RPM_BUILD_ROOT%{_initrddir}/rbdmap - install -D src/init-ceph $RPM_BUILD_ROOT%{_initrddir}/ceph - install -D src/init-radosgw $RPM_BUILD_ROOT%{_initrddir}/ceph-radosgw - ln -sf ../../etc/init.d/ceph %{buildroot}/%{_sbindir}/rcceph - ln -sf ../../etc/init.d/ceph-radosgw %{buildroot}/%{_sbindir}/rcceph-radosgw -%endif -mkdir -p $RPM_BUILD_ROOT%{_sbindir} -install -m 0644 -D src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph -chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.ceph.conf -chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.fetch_config +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 +chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf +chmod 0644 %{buildroot}%{_docdir}/ceph/sample.fetch_config # firewall templates %if 0%{?suse_version} @@ -806,38 +722,26 @@ install -m 0644 -D etc/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds %{buildro %endif # udev rules -install -m 0644 -D udev/50-rbd.rules $RPM_BUILD_ROOT%{_udevrulesdir}/50-rbd.rules -install -m 0644 -D udev/60-ceph-partuuid-workaround.rules $RPM_BUILD_ROOT%{_udevrulesdir}/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 - -%if 0%{?rhel} >= 7 || 0%{?fedora} || 0%{?suse_version} -mv $RPM_BUILD_ROOT/lib/udev/rules.d/95-ceph-osd.rules $RPM_BUILD_ROOT/usr/lib/udev/rules.d/95-ceph-osd.rules -mv $RPM_BUILD_ROOT/sbin/mount.ceph $RPM_BUILD_ROOT/usr/sbin/mount.ceph -mv $RPM_BUILD_ROOT/sbin/mount.fuse.ceph $RPM_BUILD_ROOT/usr/sbin/mount.fuse.ceph -%endif +install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules +install -m 0644 -D udev/95-ceph-osd.rules %{buildroot}%{_udevrulesdir}/95-ceph-osd.rules +mv %{buildroot}/sbin/mount.ceph %{buildroot}/usr/sbin/mount.ceph +mv %{buildroot}/sbin/mount.fuse.ceph %{buildroot}/usr/sbin/mount.fuse.ceph #set up placeholder directories -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ceph -%if ! 0%{?_with_systemd} -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/ceph -%endif -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/radosgw -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}/lib/ceph/bootstrap-rgw +mkdir -p %{buildroot}%{_sysconfdir}/ceph +mkdir -p %{buildroot}%{_localstatedir}/run/ceph +mkdir -p %{buildroot}%{_localstatedir}/log/ceph +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rgw %clean -rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} ################################################################################# # files and systemd scriptlets @@ -857,19 +761,11 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/ceph-detect-init %{_bindir}/ceph-client-debug %{_bindir}/cephfs -%if 0%{?_with_systemd} %{_unitdir}/ceph-create-keys@.service %{_libexecdir}/systemd/system-preset/50-ceph.preset -%else -%{_initrddir}/ceph -%endif %{_sbindir}/ceph-create-keys %{_sbindir}/rcceph -%if 0%{?rhel} >= 7 || 0%{?fedora} || 0%{?suse_version} %{_sbindir}/mount.ceph -%else -/sbin/mount.ceph -%endif %dir %{_libexecdir}/ceph %{_libexecdir}/ceph/ceph_common.sh %dir %{_libdir}/rados-classes @@ -910,9 +806,6 @@ rm -rf $RPM_BUILD_ROOT %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw -%if ! 0%{?_with_systemd} -%attr(770,ceph,ceph) %dir %{_localstatedir}/run/ceph -%endif %post base /sbin/ldconfig @@ -968,9 +861,7 @@ DISABLE_RESTART_ON_UPDATE="yes" %endif %{_bindir}/ceph-post-file %{_bindir}/ceph-brag -%if 0%{?_with_systemd} %{_tmpfilesdir}/ceph-common.conf -%endif %{_mandir}/man8/ceph-authtool.8* %{_mandir}/man8/ceph-conf.8* %{_mandir}/man8/ceph-dencoder.8* @@ -992,11 +883,7 @@ DISABLE_RESTART_ON_UPDATE="yes" %config %{_sysconfdir}/bash_completion.d/rados %config %{_sysconfdir}/bash_completion.d/rbd %config(noreplace) %{_sysconfdir}/ceph/rbdmap -%if 0%{?_with_systemd} %{_unitdir}/rbdmap.service -%else -%{_initrddir}/rbdmap -%endif %{python_sitelib}/ceph_argparse.py* %{python_sitelib}/ceph_daemon.py* %{_udevrulesdir}/50-rbd.rules @@ -1007,8 +894,8 @@ DISABLE_RESTART_ON_UPDATE="yes" CEPH_GROUP_ID=167 CEPH_USER_ID=167 %if 0%{?rhel} || 0%{?fedora} -%{_sbindir}/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || : -%{_sbindir}/useradd ceph -u $CEPH_USER_ID -o -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || : +/usr/sbin/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || : +/usr/sbin/useradd ceph -u $CEPH_USER_ID -o -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || : %endif %if 0%{?suse_version} if ! getent group ceph >/dev/null ; then @@ -1019,33 +906,32 @@ fi if ! getent passwd ceph >/dev/null ; then CEPH_USER_ID_OPTION="" getent passwd $CEPH_USER_ID >/dev/null || CEPH_USER_ID_OPTION="-u $CEPH_USER_ID" - useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || : + useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin 2>/dev/null || : fi +usermod -c "Ceph storage service" \ + -d %{_localstatedir}/lib/ceph \ + -g ceph \ + -s /sbin/nologin \ + ceph %endif exit 0 %post common -%if 0%{?_with_systemd} %tmpfiles_create %{_tmpfilesdir}/ceph-common.conf -%endif %postun common # Package removal cleanup if [ "$1" -eq "0" ] ; then - rm -rf /var/log/ceph - rm -rf /etc/ceph + rm -rf %{_localstatedir}/log/ceph + rm -rf %{_sysconfdir}/ceph fi ################################################################################# %files mds %{_bindir}/ceph-mds %{_mandir}/man8/ceph-mds.8* -%if 0%{?_with_systemd} %{_unitdir}/ceph-mds@.service %{_unitdir}/ceph-mds.target -%else -%{_initrddir}/ceph -%endif %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds %post mds @@ -1079,7 +965,7 @@ DISABLE_RESTART_ON_UPDATE="yes" if [ $FIRST_ARG -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. - SYSCONF_CEPH=/etc/sysconfig/ceph + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi @@ -1095,12 +981,8 @@ fi %{_mandir}/man8/ceph-mon.8* %{_mandir}/man8/ceph-rest-api.8* %{python_sitelib}/ceph_rest_api.py* -%if 0%{?_with_systemd} %{_unitdir}/ceph-mon@.service %{_unitdir}/ceph-mon.target -%else -%{_initrddir}/ceph -%endif %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon %post mon @@ -1134,7 +1016,7 @@ DISABLE_RESTART_ON_UPDATE="yes" if [ $FIRST_ARG -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. - SYSCONF_CEPH=/etc/sysconfig/ceph + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi @@ -1148,11 +1030,7 @@ fi %defattr(-,root,root,-) %{_bindir}/ceph-fuse %{_mandir}/man8/ceph-fuse.8* -%if 0%{?rhel} >= 7 || 0%{?fedora} || 0%{?suse_version} %{_sbindir}/mount.fuse.ceph -%else -/sbin/mount.fuse.ceph -%endif ################################################################################# %files -n rbd-fuse @@ -1165,10 +1043,8 @@ fi %defattr(-,root,root,-) %{_bindir}/rbd-mirror %{_mandir}/man8/rbd-mirror.8* -%if 0%{?_with_systemd} %{_unitdir}/ceph-rbd-mirror@.service %{_unitdir}/ceph-rbd-mirror.target -%endif %post -n rbd-mirror %if 0%{?suse_version} @@ -1201,7 +1077,7 @@ DISABLE_RESTART_ON_UPDATE="yes" if [ $FIRST_ARG -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. - SYSCONF_CEPH=/etc/sysconfig/ceph + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi @@ -1227,13 +1103,8 @@ fi %{_mandir}/man8/radosgw-admin.8* %config %{_sysconfdir}/bash_completion.d/radosgw-admin %dir %{_localstatedir}/lib/ceph/radosgw -%if 0%{?_with_systemd} %{_unitdir}/ceph-radosgw@.service %{_unitdir}/ceph-radosgw.target -%else -%{_initrddir}/ceph-radosgw -%{_sbindir}/rcceph-radosgw -%endif %post radosgw %if 0%{?suse_version} @@ -1266,7 +1137,7 @@ DISABLE_RESTART_ON_UPDATE="yes" if [ $FIRST_ARG -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. - SYSCONF_CEPH=/etc/sysconfig/ceph + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi @@ -1284,21 +1155,16 @@ fi %{_sbindir}/ceph-disk %{_sbindir}/ceph-disk-udev %{_libexecdir}/ceph/ceph-osd-prestart.sh -%{_udevrulesdir}/60-ceph-partuuid-workaround.rules %{_udevrulesdir}/95-ceph-osd.rules %{_mandir}/man8/ceph-clsinfo.8* %{_mandir}/man8/ceph-disk.8* %{_mandir}/man8/ceph-osd.8* %if 0%{?rhel} && ! 0%{?centos} -/etc/cron.hourly/subman +%{_sysconfdir}/cron.hourly/subman %endif -%if 0%{?_with_systemd} %{_unitdir}/ceph-osd@.service %{_unitdir}/ceph-osd.target %{_unitdir}/ceph-disk@.service -%else -%{_initrddir}/ceph -%endif %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd %post osd @@ -1332,7 +1198,7 @@ DISABLE_RESTART_ON_UPDATE="yes" if [ $FIRST_ARG -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. - SYSCONF_CEPH=/etc/sysconfig/ceph + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi @@ -1350,18 +1216,10 @@ fi %dir %{_prefix}/lib/ocf %dir %{_prefix}/lib/ocf/resource.d %dir %{_prefix}/lib/ocf/resource.d/ceph -%if 0%{_with_systemd} %exclude %{_prefix}/lib/ocf/resource.d/ceph/ceph %exclude %{_prefix}/lib/ocf/resource.d/ceph/mds %exclude %{_prefix}/lib/ocf/resource.d/ceph/mon %exclude %{_prefix}/lib/ocf/resource.d/ceph/osd -%endif -%if ! 0%{_with_systemd} -%{_prefix}/lib/ocf/resource.d/ceph/ceph -%{_prefix}/lib/ocf/resource.d/ceph/mds -%{_prefix}/lib/ocf/resource.d/ceph/mon -%{_prefix}/lib/ocf/resource.d/ceph/osd -%endif %{_prefix}/lib/ocf/resource.d/ceph/rbd %endif @@ -1573,95 +1431,79 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 %{_mandir}/man8/ceph_selinux.8* %post selinux +# backup file_contexts before update +. /etc/selinux/config +FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts +cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre + # Install the policy -OLD_POLVER=$(%{_sbindir}/semodule -l | grep -P '^ceph[\t ]' | awk '{print $2}') -%{_sbindir}/semodule -n -i %{_datadir}/selinux/packages/ceph.pp -NEW_POLVER=$(%{_sbindir}/semodule -l | grep -P '^ceph[\t ]' | awk '{print $2}') +/usr/sbin/semodule -i %{_datadir}/selinux/packages/ceph.pp # Load the policy if SELinux is enabled -if %{_sbindir}/selinuxenabled; then - %{_sbindir}/load_policy -else +if ! /usr/sbin/selinuxenabled; then # Do not relabel if selinux is not enabled exit 0 fi -if test "$OLD_POLVER" = "$NEW_POLVER"; then - # Do not relabel if policy version did not change +if diff ${FILE_CONTEXT} ${FILE_CONTEXT}.pre > /dev/null 2>&1; then + # Do not relabel if file contexts did not change exit 0 fi # Check whether the daemons are running -%if 0%{?_with_systemd} - /usr/bin/systemctl status ceph.target > /dev/null 2>&1 -%else - /sbin/service ceph status >/dev/null 2>&1 -%endif +/usr/bin/systemctl status ceph.target > /dev/null 2>&1 STATUS=$? # Stop the daemons if they were running if test $STATUS -eq 0; then -%if 0%{?_with_systemd} /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 -%else - /sbin/service ceph stop >/dev/null 2>&1 -%endif fi # Now, relabel the files -%relabel_files +/usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null +rm -f ${FILE_CONTEXT}.pre +# The fixfiles command won't fix label for /var/run/ceph +/usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1 # Start the daemons iff they were running before if test $STATUS -eq 0; then -%if 0%{?_with_systemd} /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : -%else - /sbin/service ceph start >/dev/null 2>&1 || : -%endif fi - exit 0 %postun selinux if [ $1 -eq 0 ]; then + # backup file_contexts before update + . /etc/selinux/config + FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts + cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre + # Remove the module - %{_sbindir}/semodule -n -r ceph + /usr/sbin/semodule -n -r ceph > /dev/null 2>&1 # Reload the policy if SELinux is enabled - if %{_sbindir}/selinuxenabled ; then - %{_sbindir}/load_policy - else + if ! /usr/sbin/selinuxenabled ; then # Do not relabel if SELinux is not enabled exit 0 fi # Check whether the daemons are running - %if 0%{?_with_systemd} - /usr/bin/systemctl status ceph.target > /dev/null 2>&1 - %else - /sbin/service ceph status >/dev/null 2>&1 - %endif + /usr/bin/systemctl status ceph.target > /dev/null 2>&1 STATUS=$? # Stop the daemons if they were running if test $STATUS -eq 0; then - %if 0%{?_with_systemd} /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 - %else - /sbin/service ceph stop >/dev/null 2>&1 - %endif fi - # Now, relabel the files - %relabel_files + /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null + rm -f ${FILE_CONTEXT}.pre + # The fixfiles command won't fix label for /var/run/ceph + /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1 # Start the daemons if they were running before if test $STATUS -eq 0; then - %if 0%{?_with_systemd} /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : - %else - /sbin/service ceph start >/dev/null 2>&1 || : - %endif fi fi exit 0 @@ -1687,6 +1529,11 @@ exit 0 %changelog +* Mon Jun 20 2016 Boris Ranto - 1:10.2.2-1 +- New version (1:10.2.2-1) +- Disable erasure_codelib neon build +- Do not use -momit-leaf-frame-pointer flag + * Mon May 16 2016 Boris Ranto - 1:10.2.1-1 - New version (1:10.2.1-1) - Disable erasure_codelib neon build diff --git a/sources b/sources index 1b16408..4f9ac1d 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ 0882c2620464a1b34de0957198a2dedb ceph-10.2.0.tar.gz a5201d34c6b952afc33fbd302317cd5a ceph-10.2.1.tar.gz +5cba47af53b3b17002aad3c854e5405c ceph-10.2.2.tar.gz