added ceph-git, not compiling yet
This commit is contained in:
244
ceph-git/PKGBUILD
Normal file
244
ceph-git/PKGBUILD
Normal file
@@ -0,0 +1,244 @@
|
||||
# Maintainer: Thore Bödecker <foxxx0@archlinux.org>
|
||||
# Contributor: Sébastien "Seblu" Luttringer <seblu@archlinux.org>
|
||||
|
||||
pkgbase=ceph-git
|
||||
pkgname=(ceph-git ceph-libs-git)
|
||||
pkgver=14.0.1.r3999.g38e25b5837
|
||||
pkgrel=1
|
||||
pkgdesc='Distributed, fault-tolerant storage platform delivering object, block, and file system'
|
||||
arch=('x86_64')
|
||||
url='https://ceph.com/'
|
||||
license=('GPL')
|
||||
makedepends=('bc' 'boost' 'boost-libs' 'cmake' 'cpio' 'crypto++' 'curl' 'cython'
|
||||
'cython2' 'expat' 'fcgi' 'fuse2' 'gcc-libs' 'git' 'glibc' 'gperf' 'gperftools'
|
||||
'gptfdisk' 'inetutils' 'jq' 'junit' 'keyutils' 'leveldb' 'libaio'
|
||||
'libatomic_ops' 'libedit' 'libsystemd' 'libutil-linux' 'libxml2' 'lsb-release'
|
||||
'lz4' 'ncurses' 'nss' 'parted' 'pcre' 'procps-ng' 'python2-cherrypy'
|
||||
'python2-jinja' 'python2-nose' 'python2-pecan' 'python2-pip' 'python2-bcrypt'
|
||||
'python2-prettytable' 'python2-pyopenssl' 'python2-setuptools' 'python2-routes'
|
||||
'python2-sphinx' 'python2-tox' 'python2-virtualenv' 'python2-werkzeug' 'sed'
|
||||
'snappy' 'socat' 'systemd' 'valgrind' 'xfsprogs' 'xmlstarlet' 'yasm'
|
||||
'zlib' 'zstd' 'cunit' 'oath-toolkit' 'fontconfig' 'librabbitmq-c')
|
||||
options=('emptydirs')
|
||||
source=("git+https://github.com/ceph/ceph.git"
|
||||
"git+https://github.com/ceph/ceph-object-corpus.git"
|
||||
"git+https://github.com/ceph/civetweb"
|
||||
"git+https://github.com/ceph/jerasure.git#branch=v2-ceph"
|
||||
"git+https://github.com/ceph/gf-complete.git#branch=v3-ceph"
|
||||
"git+https://github.com/ceph/rocksdb"
|
||||
"git+https://github.com/ceph/ceph-erasure-code-corpus.git"
|
||||
"git+https://github.com/ceph/googletest#branch=ceph-release-1.7.x"
|
||||
"git+https://github.com/ceph/spdk.git"
|
||||
"git+https://github.com/ceph/xxHash.git"
|
||||
"git+https://github.com/ceph/isa-l"
|
||||
"git+https://github.com/ceph/lua.git#branch=lua-5.3-ceph"
|
||||
"git+https://github.com/facebook/zstd"
|
||||
"git+https://github.com/01org/isa-l_crypto"
|
||||
"git+https://github.com/ceph/blkin"
|
||||
"git+https://github.com/ceph/rapidjson"
|
||||
"git+https://github.com/ceph/dmclock.git"
|
||||
"git+https://github.com/ceph/seastar.git"
|
||||
"git+https://github.com/ceph/c-ares.git"
|
||||
'ceph.sysusers'
|
||||
'boost-1.67.patch'
|
||||
'fix-python2-paths.patch'
|
||||
'remove-distro-version-detection.patch')
|
||||
sha512sums=('SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'4354001c1abd9a0c385ba7bd529e3638fb6660b6a88d4e49706d4ac21c81b8e829303a20fb5445730bdac18c4865efb10bc809c1cd56d743c12aa9a52e160049'
|
||||
'b886c3f2b2a2b32d4033225b5f28cef98ca96e3f4fe2d04cfdbdb3141bbefd81895284abe9c9b75dcad156d54a93dc938bd8d9a45056b4de12855bbbdf0870ca'
|
||||
'0299a9c17417463b1c1b832499f83d8e4248772b401a3a5649103918c06114e23e56c442ac351fbba30113575916d5cd008410514d55a09f465b09b5a499ca6b'
|
||||
'02c9e8fd3c23fb4c9c4c576ee6d06e8525ca31decfd964fb7231e73c98fe2987a483dda680969752186f0918f47d9af4fb09a4901e5319077f45d870906716da')
|
||||
|
||||
pkgver() {
|
||||
cd "${srcdir}/ceph"
|
||||
git describe --long | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/ceph"
|
||||
# put all submodules in the right places
|
||||
SRC_SUBMODULES=($(awk '/^\[submodule/ {print substr($2,2,length($2)-3)}' ${srcdir}/ceph/.gitmodules | xargs -L1 basename))
|
||||
for SUBMODULE in ${SRC_SUBMODULES[@]}; do
|
||||
SUBMODULE_PATH=$(awk "/path\s*=.*${SUBMODULE}$/ {print \$3}" "${srcdir}/ceph/.gitmodules")
|
||||
rm -fr "${srcdir}/ceph/${SUBMODULE_PATH}"
|
||||
mv "${srcdir}/${SUBMODULE}" "${srcdir}/ceph/${SUBMODULE_PATH}"
|
||||
done
|
||||
|
||||
git submodule update --init
|
||||
|
||||
# apply patch from the source array (should be a pacman feature)
|
||||
local filename
|
||||
for filename in "${source[@]}"; do
|
||||
if [[ "$filename" =~ \.patch$ ]]; then
|
||||
msg2 "Applying patch ${filename##*/}"
|
||||
patch -p1 -N -i "$srcdir/${filename##*/}"
|
||||
fi
|
||||
done
|
||||
|
||||
# remove tests that require root privileges
|
||||
rm src/test/cli/ceph-authtool/cap*.t
|
||||
|
||||
# remove broken tests
|
||||
rm src/test/cli/crushtool/build.t
|
||||
rm -rf qa/btrfs
|
||||
rm src/btrfs_ioc_test.c
|
||||
|
||||
# this test will try to perform btrfs operations when a btrfs mount
|
||||
# is active on the build host, which will fail
|
||||
if mount | grep 'type btrfs' &>/dev/null; then
|
||||
sed -i '/run-tox-ceph-disk/d' src/test/CMakeLists.txt
|
||||
fi
|
||||
|
||||
# fix python interpreter -> python2
|
||||
for file in \
|
||||
src/ceph-create-keys \
|
||||
src/mount.fuse.ceph
|
||||
do
|
||||
sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${file}"
|
||||
done
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/ceph"
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
|
||||
# experimental in luminous: (and currently broken with boost 1.66)
|
||||
# RADOSGW_BEAST_FRONTEND
|
||||
# -> disabled
|
||||
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
|
||||
-DCMAKE_INSTALL_SBINDIR=/usr/bin \
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
|
||||
-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib \
|
||||
-DWITH_BABELTRACE=OFF \
|
||||
-DWITH_CEPHFS=ON \
|
||||
-DWITH_FUSE=ON \
|
||||
-DWITH_LTTNG=OFF \
|
||||
-DWITH_LZ4=ON \
|
||||
-DWITH_MGR=ON \
|
||||
-DWITH_NSS=ON \
|
||||
-DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \
|
||||
-DWITH_RADOSGW=ON \
|
||||
-DWITH_RADOSGW_BEAST_FRONTEND=OFF \
|
||||
-DWITH_RDMA=OFF \
|
||||
-DWITH_SSL=ON \
|
||||
-DWITH_SYSTEM_BOOST=ON \
|
||||
-DWITH_SYSTEMD=ON \
|
||||
-DWITH_TESTS=ON \
|
||||
-DWITH_XFS=ON \
|
||||
-DENABLE_SHARED=ON \
|
||||
-DWITH_MGR_DASHBOARD_FRONTEND=OFF \
|
||||
..
|
||||
|
||||
make all
|
||||
}
|
||||
|
||||
check() {
|
||||
cd "${srcdir}/ceph/build"
|
||||
|
||||
export CTEST_PARALLEL_LEVEL="$(nproc)"
|
||||
make check
|
||||
|
||||
# sometimes processes are not properly terminated...
|
||||
for process in ceph-mon ceph-mgr ceph-osd; do
|
||||
pkill -9 "$process" || true
|
||||
done
|
||||
}
|
||||
|
||||
package_ceph-libs-git() {
|
||||
depends=('boost-libs' 'curl' 'glibc' 'keyutils' 'leveldb' 'libaio'
|
||||
'libutil-linux' 'lz4' 'nss' 'python2' 'xfsprogs' 'oath-toolkit')
|
||||
|
||||
cd "${srcdir}/ceph/build"
|
||||
|
||||
# main install
|
||||
make DESTDIR="$pkgdir" install
|
||||
|
||||
# remove stuff that goes into the ceph package
|
||||
rm -rf "${pkgdir}"/usr/lib/{ceph/mgr,systemd,sysusers.d,tmpfiles.d}
|
||||
rm -rf "${pkgdir}/usr/share"
|
||||
rm -rf "${pkgdir}/usr/sbin"
|
||||
rm -rf "${pkgdir}/usr/bin"
|
||||
rm -rf "${pkgdir}/etc"
|
||||
rm -rf "${pkgdir}/var"
|
||||
}
|
||||
|
||||
package_ceph-git() {
|
||||
depends=('ceph-libs' 'boost-libs' 'curl' 'fuse2' 'glibc' 'gperftools'
|
||||
'keyutils' 'leveldb' 'libaio' 'libsystemd' 'libutil-linux' 'python2-routes'
|
||||
'lsb-release' 'ncurses' 'nss' 'python2' 'python2-cherrypy' 'python2-bcrypt'
|
||||
'python2-jinja' 'python2-mako' 'python2-pecan' 'python2-prettytable'
|
||||
'python2-pyopenssl' 'python2-setuptools' 'python2-singledispatch'
|
||||
'python2-webob' 'python2-werkzeug' 'snappy' 'xfsprogs' 'python2-requests')
|
||||
|
||||
cd "${srcdir}/ceph/build"
|
||||
|
||||
# main install
|
||||
make DESTDIR="$pkgdir" install
|
||||
|
||||
# remove stuff that is in the ceph-libs package
|
||||
find "${pkgdir}/usr/lib" -maxdepth 1 -type f -delete
|
||||
find "${pkgdir}/usr/lib" -maxdepth 1 -type l -delete
|
||||
find "${pkgdir}/usr/lib/ceph" -maxdepth 1 -type f -delete
|
||||
find "${pkgdir}/usr/lib/ceph" -maxdepth 1 -type l -delete
|
||||
rm -rf "${pkgdir}"/usr/lib/{ceph/{compressor,crypto,erasure-code},python2.7,rados-classes}
|
||||
rm -rf "${pkgdir}/usr/include"
|
||||
|
||||
# install tmpfiles.d and sysusers.d stuff
|
||||
install -Dm644 "${srcdir}/${pkgbase}-${pkgver}/systemd/ceph.tmpfiles.d" \
|
||||
"${pkgdir}/usr/lib/tmpfiles.d/${pkgbase}.conf"
|
||||
install -Dm644 "${srcdir}/ceph.sysusers" \
|
||||
"${pkgdir}/usr/lib/sysusers.d/${pkgbase}.conf"
|
||||
|
||||
# remove debian init script
|
||||
rm -rf "${pkgdir}/etc/init.d"
|
||||
|
||||
# fix sbin dir (cmake opt seems to have no effect)
|
||||
mv "${pkgdir}"/usr/sbin/* "${pkgdir}/usr/bin/"
|
||||
rm -rf "${pkgdir}/usr/sbin"
|
||||
|
||||
# remove drop.ceph.com ssh stuff
|
||||
rm -f "${pkgdir}/usr/share/ceph/{{known_hosts,id_rsa}_drop.ceph.com,.pub}"
|
||||
|
||||
# fix bash completions path
|
||||
install -d -m 755 "${pkgdir}/usr/share/bash-completion"
|
||||
mv "$pkgdir"/{etc/bash_completion.d,usr/share/bash-completion/completions}
|
||||
|
||||
# fix EnvironmentFile location in systemd service files
|
||||
sed -i 's|/etc/sysconfig/|/etc/conf.d/|g' "${pkgdir}"/usr/lib/systemd/system/*.service
|
||||
|
||||
# prepare some paths and set correct permissions
|
||||
install -D -d -m750 -o 0 -g 340 "${pkgdir}/etc/ceph"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/log/ceph"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/bootstrap-mds"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/bootstrap-osd"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/bootstrap-rgw"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/mon"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/mgr"
|
||||
install -D -d -m750 -o 340 -g 340 "${pkgdir}/var/lib/ceph/osd"
|
||||
}
|
||||
|
||||
# vim:set ts=2 sw=2 et:
|
11
ceph-git/boost-1.67.patch
Normal file
11
ceph-git/boost-1.67.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/src/test/librbd/test_mock_Journal.cc 2018-06-03 01:56:35.407273176 +0300
|
||||
+++ b/src/test/librbd/test_mock_Journal.cc 2018-06-03 01:56:29.800506081 +0300
|
||||
@@ -1,6 +1,8 @@
|
||||
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
|
||||
// vim: ts=8 sw=2 smarttab
|
||||
|
||||
+#define BOOST_BIND_NO_PLACEHOLDERS
|
||||
+
|
||||
#include "test/librbd/test_mock_fixture.h"
|
||||
#include "test/journal/mock/MockJournaler.h"
|
||||
#include "test/librbd/test_support.h"
|
1
ceph-git/ceph.sysusers
Normal file
1
ceph-git/ceph.sysusers
Normal file
@@ -0,0 +1 @@
|
||||
u ceph 340 - /run/ceph
|
61
ceph-git/fix-python2-paths.patch
Normal file
61
ceph-git/fix-python2-paths.patch
Normal file
@@ -0,0 +1,61 @@
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -58,7 +58,7 @@ endif(WITH_CCACHE)
|
||||
option(WITH_MANPAGE "Build man pages." ON)
|
||||
if(WITH_MANPAGE)
|
||||
find_program(SPHINX_BUILD
|
||||
- NAMES sphinx-build sphinx-build-3)
|
||||
+ NAMES sphinx-build2 sphinx-build-3)
|
||||
if(NOT SPHINX_BUILD)
|
||||
message(FATAL_ERROR "Can't find sphinx-build.")
|
||||
endif(NOT SPHINX_BUILD)
|
||||
@@ -272,7 +272,7 @@ if(WITH_BLUESTORE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64|aarch64")
|
||||
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64|aarch64|x86_64-native-linuxapp-gcc")
|
||||
option(WITH_SPDK "Enable SPDK" ON)
|
||||
else()
|
||||
option(WITH_SPDK "Enable SPDK" OFF)
|
||||
--- a/src/tools/setup-virtualenv.sh
|
||||
+++ b/src/tools/setup-virtualenv.sh
|
||||
@@ -58,10 +58,10 @@ if [ -z "$DIR" ] ; then
|
||||
fi
|
||||
rm -fr $DIR
|
||||
mkdir -p $DIR
|
||||
-virtualenv --python $PYTHON_BINARY $DIR
|
||||
+virtualenv2 --python $PYTHON_BINARY $DIR
|
||||
. $DIR/bin/activate
|
||||
|
||||
-if pip --help | grep -q disable-pip-version-check; then
|
||||
+if pip2 --help | grep -q disable-pip-version-check; then
|
||||
DISABLE_PIP_VERSION_CHECK=--disable-pip-version-check
|
||||
else
|
||||
DISABLE_PIP_VERSION_CHECK=
|
||||
@@ -69,9 +69,9 @@ fi
|
||||
|
||||
# older versions of pip will not install wrap_console scripts
|
||||
# when using wheel packages
|
||||
-pip $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install --upgrade 'pip >= 6.1'
|
||||
+pip2 $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install --upgrade 'pip >= 6.1'
|
||||
|
||||
-if pip --help | grep -q disable-pip-version-check; then
|
||||
+if pip2 --help | grep -q disable-pip-version-check; then
|
||||
DISABLE_PIP_VERSION_CHECK=--disable-pip-version-check
|
||||
else
|
||||
DISABLE_PIP_VERSION_CHECK=
|
||||
@@ -81,10 +81,10 @@ if test -d wheelhouse ; then
|
||||
export NO_INDEX=--no-index
|
||||
fi
|
||||
|
||||
-pip $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install $NO_INDEX --find-links=file://$(pwd)/wheelhouse 'tox >=2.9.1'
|
||||
+pip2 $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install $NO_INDEX --find-links=file://$(pwd)/wheelhouse 'tox >=2.9.1'
|
||||
if test -f requirements.txt ; then
|
||||
if ! test -f wheelhouse/md5 || ! md5sum -c wheelhouse/md5 > /dev/null; then
|
||||
NO_INDEX=''
|
||||
fi
|
||||
- pip $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install $NO_INDEX --find-links=file://$(pwd)/wheelhouse -r requirements.txt
|
||||
+ pip2 $DISABLE_PIP_VERSION_CHECK --log $DIR/log.txt install $NO_INDEX --find-links=file://$(pwd)/wheelhouse -r requirements.txt
|
||||
fi
|
||||
|
11
ceph-git/fix-sphinx-binary-name.patch
Normal file
11
ceph-git/fix-sphinx-binary-name.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/CMakeLists.txt 2017-09-26 18:27:07.000000000 +0200
|
||||
+++ b/CMakeLists.txt 2017-10-06 14:10:11.032378659 +0200
|
||||
@@ -63,7 +63,7 @@
|
||||
option(WITH_MANPAGE "Build man pages." ON)
|
||||
if(WITH_MANPAGE)
|
||||
find_program(SPHINX_BUILD
|
||||
- sphinx-build)
|
||||
+ sphinx-build2)
|
||||
if(NOT SPHINX_BUILD)
|
||||
message(FATAL_ERROR "Can't find sphinx-build.")
|
||||
endif(NOT SPHINX_BUILD)
|
10
ceph-git/remove-distro-version-detection.patch
Normal file
10
ceph-git/remove-distro-version-detection.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- a/src/common/util.cc 2018-05-29 14:04:02.000000000 +0200
|
||||
+++ b/src/common/util.cc 2018-06-04 13:45:52.279495745 +0200
|
||||
@@ -96,7 +96,6 @@ static bool os_release_parse(map<string,
|
||||
static const map<string, string> kvm = {
|
||||
{ "distro", "ID=" },
|
||||
{ "distro_description", "PRETTY_NAME=" },
|
||||
- { "distro_version", "VERSION_ID=" }
|
||||
};
|
||||
|
||||
FILE *fp = fopen("/etc/os-release", "r");
|
Reference in New Issue
Block a user