diff --git a/README-packaging.txt b/README-packaging.txt new file mode 100644 index 0000000..30739c2 --- /dev/null +++ b/README-packaging.txt @@ -0,0 +1,44 @@ +!!! DO NOT SUBMIT CEPH.SPEC MODIFICATIONS TO OBS !!! +!!! CEPH.SPEC IS MAINTAINED UPSTREAM !!! + +So you have an idea for how to improve ceph.spec and are preparing to submit it +to the Factory devel project. You might also intend to test your patch in the +OBS, first. Please read this before proceeding! + +Instructions for submitting +--------------------------- + +The ceph.spec file is maintained upstream at https://github.com/ceph/ceph + +To patch it, use the following procedure: + +1. find out the current Factory ceph maintainer(s) (e.g. by examining the + most recent entries in the ceph.changes file) +2. open PR targeting the master branch at https://github.com/ceph/ceph + Make sure to sign your commit ("git commit --signoff") using your real name + and real email address. If this is a problem, contact the current Factory + maintainers: they can act as a proxy. +3. ping the Factory ceph maintainers about your PR + +The Factory ceph maintainers will take care of getting your upstream PR +reviewed, tested, merged and, if necessary, backported. They will also take care +of submitting the patch to Factory. + +Caveat for testing +------------------ + +If you want to test your patch (e.g. in your home project), please read the +following CAVEAT: + +The ceph.spec file is maintained upstream. As a consequence of that, we cannot +simply run the downstream spec file cleaner on it. (If you are now asking +"why?", here is one reason: the spec file cleaner changes the copyright notice! +Another reason is: the spec file cleaner has been known to munge ceph.spec so +badly that it breaks the build!) + +Now, if special action is not taken, the spec file cleaner will run on the +server each time you commit. That must be avoided at all costs. Fortunately, it +is easy to avoid it by passing the "--noservice" option to "osc commit", e.g.: + + osc commit --noservice + diff --git a/ceph-16.1.0-1217-g8e1da7347e.tar.bz2 b/ceph-16.1.0-1217-g8e1da7347e.tar.bz2 new file mode 100644 index 0000000..7fcacf7 --- /dev/null +++ b/ceph-16.1.0-1217-g8e1da7347e.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2a004d48715af96395c38a510e1e686aa5f1125e74238c9e3c4a091b254ceb8 +size 126624817 diff --git a/ceph-16.1.0-46-g571704f730.tar.bz2 b/ceph-16.1.0-46-g571704f730.tar.bz2 deleted file mode 100644 index 3e46046..0000000 --- a/ceph-16.1.0-46-g571704f730.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9aa545e12fc519388fa267c20beee29eb892611d21a6af1b4bea15a8a9df3f8 -size 126371021 diff --git a/ceph-test.changes b/ceph-test.changes index 6ce8158..59ecc53 100644 --- a/ceph-test.changes +++ b/ceph-test.changes @@ -1,3 +1,36 @@ +------------------------------------------------------------------- +Fri Mar 26 10:14:59 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1217-g8e1da7347e: + + rpm: drop extraneous explicit sqlite-libs runtime dependency + +------------------------------------------------------------------- +Thu Mar 25 18:21:58 UTC 2021 - Nathan Cutler + +- pre_checkin.sh: add README-packaging.txt as a source file to ceph-test.spec + (to pacify obs-service-source_validator) + +------------------------------------------------------------------- +Thu Mar 25 16:38:00 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1216-gbaca20b112: + + spec: prepare openSUSE usrmerge (boo#1029961) + +------------------------------------------------------------------- +Thu Mar 25 11:15:20 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1215-gd99465b6ba + + rebase on top of upstream commit 3eb70cf622aace689e45749e8a92fce033d3d55c + (tip of "pacific" branch) + * introduce libnpmem and libpmemobj dependencies to for RBD_RWL and + RBD_SSD_CACHE features backed by system PMDK + * introduce libcephsqlite + +------------------------------------------------------------------- +Thu Mar 25 09:53:31 UTC 2021 - Nathan Cutler + +- Add README-packaging.txt + ------------------------------------------------------------------- Wed Jan 27 15:17:14 UTC 2021 - Nathan Cutler diff --git a/ceph-test.spec b/ceph-test.spec index 538c18a..ead1f45 100644 --- a/ceph-test.spec +++ b/ceph-test.spec @@ -32,6 +32,14 @@ %endif %if 0%{?fedora} || 0%{?rhel} %bcond_without selinux +%ifarch x86_64 ppc64le +%bcond_without rbd_rwl_cache +%bcond_without rbd_ssd_cache +%global _system_pmdk 1 +%else +%bcond_with rbd_rwl_cache +%bcond_with rbd_ssd_cache +%endif %if 0%{?rhel} >= 8 %bcond_with cephfs_java %else @@ -51,8 +59,14 @@ %bcond_with libradosstriper %ifarch x86_64 aarch64 ppc64le %bcond_without lttng +%global _system_pmdk 1 +%bcond_without rbd_rwl_cache +%bcond_without rbd_ssd_cache %else %bcond_with lttng +%global _system_pmdk 0 +%bcond_with rbd_rwl_cache +%bcond_with rbd_ssd_cache %endif %bcond_with ocf %bcond_with selinux @@ -109,7 +123,7 @@ # main package definition ################################################################################# Name: ceph-test -Version: 16.1.0.46+g571704f730 +Version: 16.1.0.1217+g8e1da7347e Release: 0%{?dist} %if 0%{?fedora} || 0%{?rhel} Epoch: 2 @@ -125,12 +139,14 @@ License: LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD- Group: System/Filesystems %endif URL: http://ceph.com/ -Source0: %{?_remote_tarball_prefix}ceph-16.1.0-46-g571704f730.tar.bz2 +Source0: %{?_remote_tarball_prefix}ceph-16.1.0-1217-g8e1da7347e.tar.bz2 %if 0%{?suse_version} -Source96: checkin.sh -Source97: README-checkin.txt -Source98: README-ceph-test.txt -Source99: ceph-rpmlintrc +Source94: ceph-rpmlintrc +Source95: checkin.sh +Source96: pre_checkin.sh +Source97: README-ceph-test.txt +Source98: README-checkin.txt +Source99: README-packaging.txt # _insert_obs_source_lines_here ExclusiveArch: x86_64 %endif @@ -186,6 +202,7 @@ BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: make BuildRequires: ncurses-devel +BuildRequires: libicu-devel BuildRequires: parted BuildRequires: patch BuildRequires: perl @@ -194,6 +211,7 @@ BuildRequires: procps BuildRequires: python%{python3_pkgversion} BuildRequires: python%{python3_pkgversion}-devel BuildRequires: snappy-devel +BuildRequires: sqlite-devel BuildRequires: sudo BuildRequires: pkgconfig(udev) BuildRequires: util-linux @@ -241,6 +259,10 @@ BuildRequires: nlohmann_json-devel BuildRequires: libevent-devel BuildRequires: yaml-cpp-devel %endif +%if 0%{?_system_pmdk} +BuildRequires: libpmem-devel +BuildRequires: libpmemobj-devel +%endif %if 0%{with seastar} BuildRequires: c-ares-devel BuildRequires: gnutls-devel @@ -469,6 +491,8 @@ This package contains Ceph benchmarks and test tools. %endif %if 0%{?rhel} || 0%{?fedora} %endif +%if 0%{?weak_deps} +%endif %if %{with ocf} %if 0%{?suse_version} %endif @@ -499,6 +523,10 @@ This package contains Ceph benchmarks and test tools. %endif %if 0%{?suse_version} %endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif %if 0%{with libradosstriper} %if 0%{?suse_version} %endif @@ -558,7 +586,7 @@ This package contains Ceph benchmarks and test tools. %if 0%{?suse_version} %endif %prep -%autosetup -p1 -n ceph-16.1.0-46-g571704f730 +%autosetup -p1 -n ceph-16.1.0-1217-g8e1da7347e %build # LTO can be enabled as soon as the following GCC bug is fixed: @@ -674,13 +702,22 @@ ${CMAKE} .. \ -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \ %endif %if 0%{without lua_packages} - -DWITH_RADOSGW_LUA_PACKAGES=OFF + -DWITH_RADOSGW_LUA_PACKAGES=OFF \ %endif %if 0%{with zbd} -DWITH_ZBD=ON \ %endif %if 0%{with cmake_verbose_logging} -DCMAKE_VERBOSE_MAKEFILE=ON \ +%endif +%if 0%{with rbd_rwl_cache} + -DWITH_RBD_RWL=ON \ +%endif +%if 0%{with rbd_ssd_cache} + -DWITH_RBD_SSD_CACHE=ON \ +%endif +%if 0%{?_system_pmdk} + -DWITH_SYSTEM_PMDK:BOOL=ON \ %endif -DBOOST_J=$CEPH_SMP_NCPUS \ -DWITH_GRAFANA=ON @@ -738,7 +775,7 @@ touch %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys # firewall templates and /sbin/mount.ceph symlink -%if 0%{?suse_version} +%if 0%{?suse_version} && !0%{?usrmerged} mkdir -p %{buildroot}/sbin ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph %endif @@ -890,6 +927,7 @@ rm -rf %{buildroot}%{_datadir}/ceph/mgr/insights rm -rf %{buildroot}%{_datadir}/ceph/mgr/iostat rm -rf %{buildroot}%{_datadir}/ceph/mgr/localpool rm -rf %{buildroot}%{_datadir}/ceph/mgr/mds_autoscaler +rm -rf %{buildroot}%{_datadir}/ceph/mgr/mirroring rm -rf %{buildroot}%{_datadir}/ceph/mgr/orchestrator rm -rf %{buildroot}%{_datadir}/ceph/mgr/osd_perf_query rm -rf %{buildroot}%{_datadir}/ceph/mgr/osd_support @@ -943,6 +981,8 @@ rm -rf %{buildroot}%{_bindir}/radosgw rm -rf %{buildroot}%{_bindir}/radosgw-token rm -rf %{buildroot}%{_bindir}/radosgw-es rm -rf %{buildroot}%{_bindir}/radosgw-object-expirer +rm -rf %{buildroot}%{_bindir}/rgw-gap-list +rm -rf %{buildroot}%{_bindir}/rgw-gap-list-comparator rm -rf %{buildroot}%{_bindir}/rgw-orphan-list rm -rf %{buildroot}%{_libdir}/libradosgw.so* rm -rf %{buildroot}%{_mandir}/man8/radosgw.8* @@ -988,6 +1028,8 @@ rm -rf %{buildroot}%{_includedir}/rados/page.h rm -rf %{buildroot}%{_includedir}/rados/rados_types.hpp rm -rf %{buildroot}%{python3_sitearch}/rados.cpython*.so rm -rf %{buildroot}%{python3_sitearch}/rados-*.egg-info +rm -rf %{buildroot}%{_libdir}/libcephsqlite.so +rm -rf %{buildroot}%{_includedir}/libcephsqlite.h rm -rf %{buildroot}%{_libdir}/libradosstriper.so.* rm -rf %{buildroot}%{_includedir}/radosstriper/libradosstriper.h rm -rf %{buildroot}%{_includedir}/radosstriper/libradosstriper.hpp @@ -1082,7 +1124,7 @@ rm -rf %{buildroot} %endif %if ! 0%{?suse_version} %endif -%if 0%{?suse_version} +%if 0%{?suse_version} && !0%{?usrmerged} %endif %if %{with lttng} %endif diff --git a/ceph.changes b/ceph.changes index 6ce8158..59ecc53 100644 --- a/ceph.changes +++ b/ceph.changes @@ -1,3 +1,36 @@ +------------------------------------------------------------------- +Fri Mar 26 10:14:59 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1217-g8e1da7347e: + + rpm: drop extraneous explicit sqlite-libs runtime dependency + +------------------------------------------------------------------- +Thu Mar 25 18:21:58 UTC 2021 - Nathan Cutler + +- pre_checkin.sh: add README-packaging.txt as a source file to ceph-test.spec + (to pacify obs-service-source_validator) + +------------------------------------------------------------------- +Thu Mar 25 16:38:00 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1216-gbaca20b112: + + spec: prepare openSUSE usrmerge (boo#1029961) + +------------------------------------------------------------------- +Thu Mar 25 11:15:20 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1215-gd99465b6ba + + rebase on top of upstream commit 3eb70cf622aace689e45749e8a92fce033d3d55c + (tip of "pacific" branch) + * introduce libnpmem and libpmemobj dependencies to for RBD_RWL and + RBD_SSD_CACHE features backed by system PMDK + * introduce libcephsqlite + +------------------------------------------------------------------- +Thu Mar 25 09:53:31 UTC 2021 - Nathan Cutler + +- Add README-packaging.txt + ------------------------------------------------------------------- Wed Jan 27 15:17:14 UTC 2021 - Nathan Cutler diff --git a/ceph.spec b/ceph.spec index 2f549b9..422794b 100644 --- a/ceph.spec +++ b/ceph.spec @@ -32,6 +32,14 @@ %endif %if 0%{?fedora} || 0%{?rhel} %bcond_without selinux +%ifarch x86_64 ppc64le +%bcond_without rbd_rwl_cache +%bcond_without rbd_ssd_cache +%global _system_pmdk 1 +%else +%bcond_with rbd_rwl_cache +%bcond_with rbd_ssd_cache +%endif %if 0%{?rhel} >= 8 %bcond_with cephfs_java %else @@ -51,8 +59,14 @@ %bcond_with libradosstriper %ifarch x86_64 aarch64 ppc64le %bcond_without lttng +%global _system_pmdk 1 +%bcond_without rbd_rwl_cache +%bcond_without rbd_ssd_cache %else %bcond_with lttng +%global _system_pmdk 0 +%bcond_with rbd_rwl_cache +%bcond_with rbd_ssd_cache %endif %bcond_with ocf %bcond_with selinux @@ -109,7 +123,7 @@ # main package definition ################################################################################# Name: ceph -Version: 16.1.0.46+g571704f730 +Version: 16.1.0.1217+g8e1da7347e Release: 0%{?dist} %if 0%{?fedora} || 0%{?rhel} Epoch: 2 @@ -125,7 +139,7 @@ License: LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD- Group: System/Filesystems %endif URL: http://ceph.com/ -Source0: %{?_remote_tarball_prefix}ceph-16.1.0-46-g571704f730.tar.bz2 +Source0: %{?_remote_tarball_prefix}ceph-16.1.0-1217-g8e1da7347e.tar.bz2 %if 0%{?suse_version} # _insert_obs_source_lines_here ExclusiveArch: x86_64 aarch64 ppc64le s390x @@ -178,6 +192,7 @@ BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: make BuildRequires: ncurses-devel +BuildRequires: libicu-devel BuildRequires: parted BuildRequires: patch BuildRequires: perl @@ -186,6 +201,7 @@ BuildRequires: procps BuildRequires: python%{python3_pkgversion} BuildRequires: python%{python3_pkgversion}-devel BuildRequires: snappy-devel +BuildRequires: sqlite-devel BuildRequires: sudo BuildRequires: pkgconfig(udev) BuildRequires: util-linux @@ -233,6 +249,10 @@ BuildRequires: nlohmann_json-devel BuildRequires: libevent-devel BuildRequires: yaml-cpp-devel %endif +%if 0%{?_system_pmdk} +BuildRequires: libpmem-devel +BuildRequires: libpmemobj-devel +%endif %if 0%{with seastar} BuildRequires: c-ares-devel BuildRequires: gnutls-devel @@ -421,7 +441,7 @@ BuildArch: noarch Requires: lvm2 Requires: python%{python3_pkgversion} %if 0%{?weak_deps} -Recommends: podman +Recommends: podman >= 2.0.2 %endif %description -n cephadm Utility to bootstrap a Ceph cluster and manage Ceph daemons deployed @@ -506,6 +526,7 @@ Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-modules-core = %{_epoch_prefix}%{version}-%{release} +Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release} %if 0%{?weak_deps} Recommends: ceph-mgr-dashboard = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-diskprediction-local = %{_epoch_prefix}%{version}-%{release} @@ -716,6 +737,9 @@ Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Requires: mailcap %endif +%if 0%{?weak_deps} +Recommends: gawk +%endif %description radosgw RADOS is a distributed object store used by the Ceph distributed storage system. This package provides a REST gateway to the @@ -870,6 +894,32 @@ Obsoletes: python-rados < %{_epoch_prefix}%{version}-%{release} This package contains Python 3 libraries for interacting with Ceph RADOS object store. +%package -n libcephsqlite +Summary: SQLite3 VFS for Ceph +%if 0%{?suse_version} +Group: System/Libraries +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +%description -n libcephsqlite +A SQLite3 VFS for storing and manipulating databases stored on Ceph's RADOS +distributed object store. + +%package -n libcephsqlite-devel +Summary: SQLite3 VFS for Ceph headers +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: sqlite-devel +Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: libcephsqlite-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: libcephsqlite-devel < %{_epoch_prefix}%{version}-%{release} +%description -n libcephsqlite-devel +A SQLite3 VFS for storing and manipulating databases stored on Ceph's RADOS +distributed object store. + %if 0%{with libradosstriper} %package -n libradosstriper1 Summary: RADOS striping interface @@ -1152,7 +1202,7 @@ This package provides Ceph default alerts for Prometheus. # common ################################################################################# %prep -%autosetup -p1 -n ceph-16.1.0-46-g571704f730 +%autosetup -p1 -n ceph-16.1.0-1217-g8e1da7347e %build # LTO can be enabled as soon as the following GCC bug is fixed: @@ -1268,13 +1318,22 @@ ${CMAKE} .. \ -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \ %endif %if 0%{without lua_packages} - -DWITH_RADOSGW_LUA_PACKAGES=OFF + -DWITH_RADOSGW_LUA_PACKAGES=OFF \ %endif %if 0%{with zbd} -DWITH_ZBD=ON \ %endif %if 0%{with cmake_verbose_logging} -DCMAKE_VERBOSE_MAKEFILE=ON \ +%endif +%if 0%{with rbd_rwl_cache} + -DWITH_RBD_RWL=ON \ +%endif +%if 0%{with rbd_ssd_cache} + -DWITH_RBD_SSD_CACHE=ON \ +%endif +%if 0%{?_system_pmdk} + -DWITH_SYSTEM_PMDK:BOOL=ON \ %endif -DBOOST_J=$CEPH_SMP_NCPUS \ -DWITH_GRAFANA=ON @@ -1332,7 +1391,7 @@ touch %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys # firewall templates and /sbin/mount.ceph symlink -%if 0%{?suse_version} +%if 0%{?suse_version} && !0%{?usrmerged} mkdir -p %{buildroot}/sbin ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph %endif @@ -1508,7 +1567,7 @@ exit 0 %{_bindir}/rbd-replay-many %{_bindir}/rbdmap %{_sbindir}/mount.ceph -%if 0%{?suse_version} +%if 0%{?suse_version} && !0%{?usrmerged} /sbin/mount.ceph %endif %if %{with lttng} @@ -1708,6 +1767,7 @@ fi %{_datadir}/ceph/mgr/iostat %{_datadir}/ceph/mgr/localpool %{_datadir}/ceph/mgr/mds_autoscaler +%{_datadir}/ceph/mgr/mirroring %{_datadir}/ceph/mgr/orchestrator %{_datadir}/ceph/mgr/osd_perf_query %{_datadir}/ceph/mgr/osd_support @@ -1956,6 +2016,8 @@ fi %{_bindir}/radosgw-token %{_bindir}/radosgw-es %{_bindir}/radosgw-object-expirer +%{_bindir}/rgw-gap-list +%{_bindir}/rgw-gap-list-comparator %{_bindir}/rgw-orphan-list %{_libdir}/libradosgw.so* %{_mandir}/man8/radosgw.8* @@ -2116,6 +2178,16 @@ fi %{python3_sitearch}/rados.cpython*.so %{python3_sitearch}/rados-*.egg-info +%files -n libcephsqlite +%{_libdir}/libcephsqlite.so + +%post -n libcephsqlite -p /sbin/ldconfig + +%postun -n libcephsqlite -p /sbin/ldconfig + +%files -n libcephsqlite-devel +%{_includedir}/libcephsqlite.h + %if 0%{with libradosstriper} %files -n libradosstriper1 %{_libdir}/libradosstriper.so.* diff --git a/pre_checkin.sh b/pre_checkin.sh index 35ea510..7e10a7d 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -286,8 +286,10 @@ desc=`get_package_description $SPEC_FILE $PACKAGE` reqs=`get_package_requires $SPEC_FILE $PACKAGE` sed -i -e 's/%bcond_without ceph_test_package/%bcond_with ceph_test_package/' $SPEC_FILE transform_spec_file $SPEC_FILE $PACKAGE "$rm_files" "$summ" "$desc" "$reqs" > $PACKAGE.spec -insert_line_before "${PACKAGE}.spec" "Source99: ceph-rpmlintrc" "_insert_obs_source_lines_here" -insert_line_before "${PACKAGE}.spec" "Source98: README-ceph-test.txt" "^Source99:" -insert_line_before "${PACKAGE}.spec" "Source97: README-checkin.txt" "^Source98:" -insert_line_before "${PACKAGE}.spec" "Source96: checkin.sh" "^Source97:" +insert_line_before "$PACKAGE.spec" "Source99: README-packaging.txt" "_insert_obs_source_lines_here" +insert_line_before "$PACKAGE.spec" "Source98: README-checkin.txt" "^Source99:" +insert_line_before "$PACKAGE.spec" "Source97: README-ceph-test.txt" "^Source98:" +insert_line_before "$PACKAGE.spec" "Source96: pre_checkin.sh" "^Source97:" +insert_line_before "$PACKAGE.spec" "Source95: checkin.sh" "^Source96:" +insert_line_before "$PACKAGE.spec" "Source94: ceph-rpmlintrc" "^Source95:" copy_changes_file $PACKAGE