You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
3.6 KiB
161 lines
3.6 KiB
# Copyright 1999-2017 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=6
|
|
|
|
inherit cmake-utils linux-info bash-completion-r1
|
|
|
|
MYP=${PN}-${PV/_p/-fix}
|
|
|
|
DESCRIPTION="HTTP read-only file system for distributing software"
|
|
HOMEPAGE="http://cernvm.cern.ch/portal/filesystem"
|
|
SRC_URI="https://github.com/cvmfs/${PN}/archive/${MYP}.tar.gz"
|
|
|
|
LICENSE="BSD"
|
|
SLOT="0"
|
|
|
|
KEYWORDS="~amd64 ~x86"
|
|
IUSE="aufs bash-completion debug doc preload server test test-programs"
|
|
|
|
CDEPEND="
|
|
dev-cpp/gtest
|
|
>=dev-cpp/sparsehash-1.12
|
|
dev-db/sqlite:3=
|
|
dev-libs/leveldb:0=
|
|
dev-libs/openssl:0
|
|
net-libs/pacparser:0=
|
|
net-misc/curl:0[adns]
|
|
sys-apps/attr
|
|
sys-fs/fuse:0=
|
|
sys-libs/libcap:0=
|
|
sys-libs/zlib:0=
|
|
preload? ( >=dev-cpp/tbb-4.4:0=[debug?] )
|
|
server? (
|
|
>=dev-cpp/tbb-4.4:0=[debug?]
|
|
dev-python/geoip-python
|
|
)
|
|
"
|
|
|
|
RDEPEND="${CDEPEND}
|
|
app-admin/sudo
|
|
net-fs/autofs
|
|
server? (
|
|
aufs? ( || (
|
|
sys-fs/aufs3
|
|
sys-fs/aufs4
|
|
sys-kernel/aufs-sources ) )
|
|
www-servers/apache
|
|
)
|
|
"
|
|
|
|
DEPEND="${CDEPEND}
|
|
virtual/pkgconfig
|
|
doc? ( app-doc/doxygen[dot] )
|
|
test? (
|
|
dev-python/geoip-python
|
|
>=dev-cpp/tbb-4.4:0=
|
|
|| ( sys-devel/gdb dev-util/lldb )
|
|
)
|
|
"
|
|
|
|
REQUIRED_USE="test-programs? ( server )"
|
|
|
|
S="${WORKDIR}/${PN}-${MYP}"
|
|
|
|
pkg_setup() {
|
|
if use server; then
|
|
if use aufs; then
|
|
CONFIG_CHECK="~AUFS_FS"
|
|
ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set with the aufs flag"
|
|
else
|
|
CONFIG_CHECK="~OVERLAY_FS"
|
|
ERROR_AUFS_FS="CONFIG_OVERLAY_FS: is required to be set"
|
|
fi
|
|
linux-info_pkg_setup
|
|
fi
|
|
}
|
|
|
|
src_prepare() {
|
|
cmake-utils_src_prepare
|
|
# gentoo stuff
|
|
sed -i -e 's/COPYING//' CMakeLists.txt || die
|
|
rm bootstrap.sh || die
|
|
sed -e "s:cvmfs-\${CernVM-FS_VERSION_STRING}:${PF}:" \
|
|
-i CMakeLists.txt || die
|
|
|
|
# hack for bundled packages
|
|
# not worth unbundling upstreams are flaky/dead
|
|
local pkg
|
|
for pkg in vjson sha2 sha3; do
|
|
# respect toolchain variables
|
|
sed -e 's/g++/$(CXX)/g' \
|
|
-e 's/gcc/$(CC)/g' \
|
|
-e 's/CFLAGS/MYCFLAGS/g' \
|
|
-e 's/-O2/$(CFLAGS)/g' \
|
|
-e 's/-O2/$(CXXFLAGS)/g' \
|
|
-e 's/ar/$(AR)/' \
|
|
-e 's/ranlib/$(RANLIB)/' \
|
|
-i externals/${pkg}/src/Makefile || die
|
|
mkdir -p "${WORKDIR}/${P}_build"/externals/build_${pkg}
|
|
cp -r externals/${pkg}/src/* \
|
|
"${WORKDIR}/${P}_build"/externals/build_${pkg}/ || die
|
|
done
|
|
}
|
|
|
|
src_configure() {
|
|
local mycmakeargs=(
|
|
-DGEOIP_BUILTIN=OFF
|
|
-DGOOGLETEST_BUILTIN=OFF
|
|
-DLEVELDB_BUILTIN=OFF
|
|
-DLIBCURL_BUILTIN=OFF
|
|
-DPACPARSER_BUILTIN=OFF
|
|
-DSPARSEHASH_BUILTIN=OFF
|
|
-DSQLITE3_BUILTIN=OFF
|
|
-DTBB_PRIVATE_LIB=OFF
|
|
-DZLIB_BUILTIN=OFF
|
|
-DBUILD_CVMFS=ON
|
|
-DBUILD_LIBCVMFS=ON
|
|
-DINSTALL_MOUNT_SCRIPTS=ON
|
|
-DINSTALL_PUBLIC_KEYS=ON
|
|
-DINSTALL_BASH_COMPLETION=OFF
|
|
-DBUILD_DOCUMENTATION="$(usex doc)"
|
|
-DBUILD_PRELOADER="$(usex preload)"
|
|
-DBUILD_SERVER="$(usex server)"
|
|
)
|
|
if use test || use test-programs; then
|
|
mycmakeargs+=( -DBUILD_UNITTESTS=ON )
|
|
fi
|
|
use test-programs && mycmakeargs+=( -DINSTALL_UNITTESTS=ON )
|
|
if use debug; then
|
|
mycmakeargs+=(
|
|
$(cmake-utils_use server BUILD_SERVER_DEBUG)
|
|
$(cmake-utils_use test BUILD_UNITTESTS_DEBUG)
|
|
)
|
|
fi
|
|
cmake-utils_src_configure
|
|
}
|
|
|
|
src_compile() {
|
|
cmake-utils_src_compile
|
|
use doc && cmake-utils_src_compile doc
|
|
}
|
|
|
|
src_install() {
|
|
cmake-utils_src_install
|
|
use bash-completion && \
|
|
newbashcomp cvmfs/bash_completion/cvmfs.bash_completion cvmfs
|
|
dodoc doc/*.md
|
|
if use doc; then
|
|
insinto /usr/share/doc/${PF}
|
|
doins -r "${BUILD_DIR}"/html
|
|
docompress -x /usr/share/doc/${PF}/html
|
|
fi
|
|
}
|
|
|
|
pkg_config() {
|
|
einfo "Setting up CernVM-FS client"
|
|
cvmfs_config setup
|
|
einfo "Now edit ${EROOT%/}/etc/cvmfs/default.local"
|
|
einfo "and restart the autofs service"
|
|
}
|