From 737c5a866a8274382b26f01ae7b8fb748c1033f1 Mon Sep 17 00:00:00 2001 From: Patrick McLean Date: Wed, 30 Jun 2021 17:47:24 -0700 Subject: sys-cluster/ceph-14.2.22: Version bump Package-Manager: Portage-3.0.20, Repoman-3.0.3 Signed-off-by: Patrick McLean --- sys-cluster/ceph/Manifest | 1 + sys-cluster/ceph/ceph-14.2.22.ebuild | 391 +++++++++++++++++++++ .../files/ceph-14.2.22-build-without-mgr.patch | 32 ++ sys-cluster/ceph/files/ceph-14.2.22-cflags.patch | 25 ++ .../ceph/files/ceph-14.2.22-no-virtualenvs.patch | 39 ++ 5 files changed, 488 insertions(+) create mode 100644 sys-cluster/ceph/ceph-14.2.22.ebuild create mode 100644 sys-cluster/ceph/files/ceph-14.2.22-build-without-mgr.patch create mode 100644 sys-cluster/ceph/files/ceph-14.2.22-cflags.patch create mode 100644 sys-cluster/ceph/files/ceph-14.2.22-no-virtualenvs.patch diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest index 6c86ea701781..6e1553aae327 100644 --- a/sys-cluster/ceph/Manifest +++ b/sys-cluster/ceph/Manifest @@ -1,4 +1,5 @@ DIST ceph-14.2.21.tar.gz 129272778 BLAKE2B f82f452e0f0c40a95ea1bdb3654c2d322caa3edeeb05e41247e02a8ffe731c570d9e49aefa61c447a8b73620d4a9b9872335171f1e08fbd9a08eea930ccbfe76 SHA512 39b4a0624dcab2bafa50f51a42155fcf96dad74531a001d75009ad246a8ca80ce81ae538b34c0a1b773691c363626f1d0342f2439b711bd0dd16214592171884 +DIST ceph-14.2.22.tar.gz 130597047 BLAKE2B 58bbb3243de076ed1d25dfd7bd75717c50ad15d16690dcbd1511d1b506477845efc3ff7fbe713cf18fb8cfcc8c16707ad2a0f30159e3198ff82e57fbd2eb3cf2 SHA512 1c66661e1a39fa9151e95e33c390b810ffe269465d8785e2197cc15b8d83bd2edde77de48a8abd71a4da68cd5830ff14bcdf6b98fd17edabe85caeb1eca018d3 DIST ceph-15.2.12.tar.gz 148509713 BLAKE2B 4962e7d574b38592a874a1b3fa8610bb2d0afc8713d995d67a790c025bb086cb619cbbaec76482ec096b4c55b9f1df383f5bd4806a231bc88e70ac3efbac24b5 SHA512 08266a2e9a7ca5a37e03f340873571fd012c630dd898a87241cd97c29760b2bf41fe64c8883e7b08e0f83c26245072cd26e69ecb1db02378d1ec38335ba1cd0f DIST ceph-15.2.13.tar.gz 148542333 BLAKE2B 2e9668bcb0fd283ec4ab51b0c6142fc9a3b6310eb5d34e07da5e6b73b55dd7976db5ab9c78a93684ddc2f51873b1a17c4d31c5f5647b2d43a2826ee5362f7e5d SHA512 bde28c331c489db0845959f65c425146c317466a7793f56a83e2827dec35b8cd6f600bf9056151c1e6926cc0155deebbc8681c240ac9f37ad876b9a6afae96da DIST ceph-16.2.4.tar.gz 155840423 BLAKE2B a803ffa61ac9fd6d42790d6d8e12aa8df843968627df0051475355f3ba0dc1272afa3d9e2716115ad769b2f322d7bd239d99b89e51610e89ce9efe39af4f01ae SHA512 8904e7fcabd50276e4e86735fd85dba96f417c194c219025146f994707def7abe372528b0f2e862e274b2f405d7b791bac86b6cbb8d57cecd6f44023a2ffb6f6 diff --git a/sys-cluster/ceph/ceph-14.2.22.ebuild b/sys-cluster/ceph/ceph-14.2.22.ebuild new file mode 100644 index 000000000000..bbdff4749a9b --- /dev/null +++ b/sys-cluster/ceph/ceph-14.2.22.ebuild @@ -0,0 +1,391 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python3_{7,8} ) +DISTUTILS_USE_SETUPTOOLS=rdepend +CMAKE_MAKEFILE_GENERATOR=emake + +DISTUTILS_OPTIONAL=1 + +inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \ + python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ceph/ceph.git" + SRC_URI="" +else + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz" + KEYWORDS="~amd64 ~ppc64" +fi + +DESCRIPTION="Ceph distributed filesystem" +HOMEPAGE="https://ceph.com/" + +LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain" +SLOT="0" + +CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3) + +IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc + kafka kerberos ldap lttng +mgr numa rabbitmq +radosgw +ssl spdk system-boost + systemd +tcmalloc test xfs zfs" +IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})" + +DEPEND=" + acct-group/ceph + acct-user/ceph + virtual/libudev:= + app-arch/bzip2:= + app-arch/lz4:= + app-arch/snappy:= + app-arch/zstd:= + app-shells/bash:0 + app-misc/jq:= + dev-libs/crypto++:= + dev-libs/leveldb:=[snappy,tcmalloc(-)?] + dev-libs/libaio:= + dev-libs/libnl:3= + dev-libs/libxml2:= + =dev-util/google-perftools-2.6.1:= ) + kafka? ( dev-libs/librdkafka:= ) + kerberos? ( virtual/krb5 ) + ldap? ( net-nds/openldap:= ) + lttng? ( dev-util/lttng-ust:= ) + rabbitmq? ( net-libs/rabbitmq-c:= ) + radosgw? ( + dev-libs/expat:= + dev-libs/openssl:= + net-misc/curl:=[curl_ssl_openssl] + ) + ssl? ( dev-libs/openssl:= ) + system-boost? ( dev-libs/boost:=[threads(+),context,python,${PYTHON_USEDEP}] ) + xfs? ( sys-fs/xfsprogs:= ) + zfs? ( sys-fs/zfs:= ) + ${PYTHON_DEPS} +" +BDEPEND=" + amd64? ( dev-lang/yasm ) + x86? ( dev-lang/yasm ) + app-arch/cpio + >=dev-util/cmake-3.5.0 + dev-python/cython[${PYTHON_USEDEP}] + dev-python/sphinx + dev-util/cunit + dev-util/gperf + dev-util/ragel + dev-util/valgrind + sys-apps/coreutils + sys-apps/findutils + sys-apps/grep + sys-apps/sed + sys-apps/which + sys-devel/bc + sys-devel/patch + virtual/pkgconfig + test? ( + dev-python/coverage[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-python/requests-mock[${PYTHON_USEDEP}] + sys-apps/grep[pcre] + sys-fs/btrfs-progs + ) +" +RDEPEND="${DEPEND} + app-admin/sudo + net-misc/socat + sys-apps/gptfdisk + >=sys-apps/smartmontools-7.0 + sys-block/parted + sys-fs/cryptsetup + sys-fs/lsscsi + sys-fs/lvm2[-device-mapper-only(-)] + virtual/awk + dev-python/bcrypt[${PYTHON_USEDEP}] + dev-python/cherrypy[${PYTHON_USEDEP}] + dev-python/flask[${PYTHON_USEDEP}] + dev-python/jinja[${PYTHON_USEDEP}] + dev-python/pecan[${PYTHON_USEDEP}] + dev-python/prettytable[${PYTHON_USEDEP}] + dev-python/pyopenssl[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + mgr? ( + dev-python/more-itertools[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + =glibc-2.32 + has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON) + + rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \ + || die "failed to remove cmake cache" + + cmake_src_configure + + # bug #630232 + sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \ + "${BUILD_DIR:-${S}}"/include/acconfig.h \ + || die "sed failed" +} + +src_configure() { + use custom-cflags || strip-flags + ceph_src_configure +} + +python_compile() { + local CMAKE_USE_DIR="${S}" + ceph_src_configure + + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die + emake VERBOSE=1 clean + emake VERBOSE=1 all + + # python modules are only compiled with "make install" so we need to do this to + # prevent doing a bunch of compilation in src_install + DESTDIR="${T}" emake VERBOSE=1 install + popd >/dev/null || die +} + +src_compile() { + cmake_build VERBOSE=1 all + + # we have to do this here to prevent from building everything multiple times + python_copy_sources + python_foreach_impl python_compile +} + +src_test() { + make check || die "make check failed" +} + +python_install() { + local CMAKE_USE_DIR="${S}" + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die + DESTDIR="${ED}" emake VERBOSE=1 install + popd >/dev/null || die + + python_optimize +} + +src_install() { + cmake_src_install + python_foreach_impl python_install + + find "${ED}" -name '*.la' -type f -delete || die + + exeinto /usr/$(get_libdir)/ceph + newexe "${BUILD_DIR}/bin/init-ceph" init-ceph + + insinto /etc/logrotate.d/ + newins "${FILESDIR}"/ceph.logrotate-r2 ${PN} + + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat + + fowners -R ceph:ceph /var/log/ceph + + newinitd "${FILESDIR}/rbdmap.initd" rbdmap + newinitd "${FILESDIR}/${PN}.initd-r12" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r5" ${PN} + + insinto /etc/sysctl.d + newins "${FILESDIR}"/sysctld 90-${PN}.conf + + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc + + # units aren't installed by the build system unless systemd is enabled + # so no point installing these with the USE flag disabled + if use systemd; then + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \ + "ceph-mds@.service" + + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \ + "ceph-osd@.service" + + fi + + udev_dorules udev/*.rules + newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf + + readme.gentoo_create_doc + + python_setup + + # bug #630232 + sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \ + || die "sed failed" + + python_fix_shebang "${ED}"/usr/{,s}bin/ + + # python_fix_shebang apparently is not idempotent + local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]' + grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \ + | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die + + local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* ) + dostrip -x "${rados_classes[@]#${ED}}" +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/sys-cluster/ceph/files/ceph-14.2.22-build-without-mgr.patch b/sys-cluster/ceph/files/ceph-14.2.22-build-without-mgr.patch new file mode 100644 index 000000000000..f3ba34cc165c --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.22-build-without-mgr.patch @@ -0,0 +1,32 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index ed4bbc75d44..5f5e72918d2 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -451,9 +451,7 @@ if(WITH_LIBRADOSSTRIPER) + add_subdirectory(libradosstriper) + endif() + +-if(WITH_MGR) +- add_subdirectory(mgr) +-endif() ++add_subdirectory(mgr) + + set(librados_config_srcs + librados-config.cc) +diff --git a/src/mgr/CMakeLists.txt b/src/mgr/CMakeLists.txt +index e7caaeff099..b4f13c05184 100644 +--- a/src/mgr/CMakeLists.txt ++++ b/src/mgr/CMakeLists.txt +@@ -1,6 +1,7 @@ + add_library(mgr_cap_obj OBJECT + MgrCap.cc) + ++if(WITH_MGR) + set(mgr_srcs + ${CMAKE_SOURCE_DIR}/src/ceph_mgr.cc + ${CMAKE_SOURCE_DIR}/src/mon/PGMap.cc +@@ -36,3 +37,4 @@ target_link_libraries(ceph-mgr + set_target_properties(ceph-mgr PROPERTIES + POSITION_INDEPENDENT_CODE ${EXE_LINKER_USE_PIE}) + install(TARGETS ceph-mgr DESTINATION bin) ++endif() diff --git a/sys-cluster/ceph/files/ceph-14.2.22-cflags.patch b/sys-cluster/ceph/files/ceph-14.2.22-cflags.patch new file mode 100644 index 000000000000..5c9f17098616 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.22-cflags.patch @@ -0,0 +1,25 @@ +diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake +index eaab331413b..4ee3f1b0768 100644 +--- a/cmake/modules/BuildBoost.cmake ++++ b/cmake/modules/BuildBoost.cmake +@@ -62,7 +62,7 @@ function(do_build_boost version) + else() + list(APPEND boost_features "address-model=32") + endif() +- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX ++ set(BOOST_CXXFLAGS "${CMAKE_CXX_FLAGS} -fPIC -w") # check on arm, etc <---XXX + list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}") + + set(boost_with_libs) +diff --git a/cmake/modules/BuildZstd.cmake b/cmake/modules/BuildZstd.cmake +index 799b14b281d..9b4b5ee8dcf 100644 +--- a/cmake/modules/BuildZstd.cmake ++++ b/cmake/modules/BuildZstd.cmake +@@ -1,6 +1,6 @@ + # libzstd - build it statically + function(build_Zstd) +- set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable -O3") ++ set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable $ENV{CFLAGS} -O3") + + include(ExternalProject) + ExternalProject_Add(zstd_ext diff --git a/sys-cluster/ceph/files/ceph-14.2.22-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-14.2.22-no-virtualenvs.patch new file mode 100644 index 000000000000..534133122f99 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-14.2.22-no-virtualenvs.patch @@ -0,0 +1,39 @@ +diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt +index 7c9cc4abd56..9f84b0c2b26 100644 +--- a/src/pybind/mgr/dashboard/CMakeLists.txt ++++ b/src/pybind/mgr/dashboard/CMakeLists.txt +@@ -2,7 +2,7 @@ set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) + + add_custom_target(mgr-dashboard-test-venv + COMMAND +- ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} ++ #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard + COMMENT "dashboard tests virtualenv is being created") + add_dependencies(tests mgr-dashboard-test-venv) +@@ -14,9 +14,9 @@ function(add_npm_command) + set(multi_kw COMMAND DEPENDS) + cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN}) + string(REPLACE ";" " " command "${NC_COMMAND}") +- if(NC_NODEENV) +- string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command}) +- endif() ++ #if(NC_NODEENV) ++ # string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command}) ++ #endif() + string(REPLACE " " ";" command "${command}") + add_custom_command( + OUTPUT "${NC_OUTPUT}" +@@ -41,9 +41,9 @@ else() + + add_custom_command( + OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm" +- COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir} +- COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv +- COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv --verbose -p --node=10.13.0 ++ #COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir} ++ #COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv ++ #COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv --verbose -p --node=10.13.0 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "dashboard nodeenv is being installed" + ) -- cgit v1.2.3-65-gdbad