From 004c7f243f47aa1c6e5a2bd61b1ff5f7efedc5f6 Mon Sep 17 00:00:00 2001 From: Sébastien Fabbro Date: Tue, 11 Aug 2015 21:37:04 +0000 Subject: added net-fs/cvmfs --- net-fs/cvmfs/Manifest | 1 + net-fs/cvmfs/cvmfs-2.1.20.0_p05-r1.ebuild | 151 +++++++++++++++++++++ .../files/cvmfs-2.1.20.0_p05-cares-underlink.patch | 106 +++++++++++++++ .../cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch | 151 +++++++++++++++++++++ .../cvmfs/files/cvmfs-2.1.20.0_p05-overlayfs.patch | 50 +++++++ net-fs/cvmfs/metadata.xml | 23 ++++ profiles/categories | 2 + 7 files changed, 484 insertions(+) create mode 100644 net-fs/cvmfs/Manifest create mode 100644 net-fs/cvmfs/cvmfs-2.1.20.0_p05-r1.ebuild create mode 100644 net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-cares-underlink.patch create mode 100644 net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch create mode 100644 net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-overlayfs.patch create mode 100644 net-fs/cvmfs/metadata.xml create mode 100644 profiles/categories diff --git a/net-fs/cvmfs/Manifest b/net-fs/cvmfs/Manifest new file mode 100644 index 0000000..9785eac --- /dev/null +++ b/net-fs/cvmfs/Manifest @@ -0,0 +1 @@ +DIST cvmfs-2.1.20.0-fix05.tar.gz 36877322 SHA256 83d9358bebdd3987472ed602efb7b0d06b586216030e02bc100a363dc7bbfc20 SHA512 95dc6d5e433630aecd45e15d59f831b4b1ccd8a439f799ae078a61bd6fd8e4dc10ae72d760352913c1d4d9e50cd5bc71ddd82b40b8b9b59d371d62aa7e62abf6 WHIRLPOOL a9ab8500ddd31466df26c12fbcaf0403e748fc1d52c9b5eefa495bc1aaa1f1c67e5f679407d55143fe161f7de7be0d52284cb947a63ff0e0a3f63ade879bb21c diff --git a/net-fs/cvmfs/cvmfs-2.1.20.0_p05-r1.ebuild b/net-fs/cvmfs/cvmfs-2.1.20.0_p05-r1.ebuild new file mode 100644 index 0000000..a1fd03b --- /dev/null +++ b/net-fs/cvmfs/cvmfs-2.1.20.0_p05-r1.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-fs/cvmfs/cvmfs-2.1.20.0_p05.ebuild,v 1.2 2015/08/07 19:00:39 bicatali Exp $ + +EAPI=5 + +inherit cmake-utils linux-info + +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 +client debug doc test server" + +CDEPEND=" + dev-cpp/gtest + dev-db/sqlite:3= + dev-libs/openssl:0 + net-libs/pacparser:0= + net-misc/curl:0=[adns] + sys-apps/attr + sys-libs/zlib:0= + client? ( + >=dev-cpp/sparsehash-1.12 + dev-libs/leveldb:0= + sys-fs/fuse:0= ) + server? ( + >=dev-python/geoip-python-1.3.1 + >=dev-cpp/tbb-4.3:0= )" + +RDEPEND="${CDEPEND} + client? ( net-fs/autofs ) + aufs? ( + || ( + sys-fs/aufs3 + sys-fs/aufs4 + sys-kernel/aufs-sources + ) + )" + +DEPEND="${CDEPEND} + virtual/pkgconfig + doc? ( app-doc/doxygen[dot] )" + +S="${WORKDIR}/${PN}-${MYP}" + +pkg_setup() { + if use server; then + if use aufs; then + CONFIG_CHECK=" + ~AUFS_FS + ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY + " + ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used" + else + CONFIG_CHECK="~OVERLAY_FS" + fi + linux-info_pkg_setup + fi +} + +PATCHES=( + "${FILESDIR}"/${P}-geoip-missing-cmake.patch + "${FILESDIR}"/${P}-cares-underlink.patch + "${FILESDIR}"/${P}-overlayfs.patch +) + +src_prepare() { + cmake-utils_src_prepare + + # gentoo stuff + sed -i -e 's/COPYING//' CMakeLists.txt || die + rm bootstrap.sh || die + sed -i \ + -e "s:cvmfs-\${CernVM-FS_VERSION_STRING}:${PF}:" \ + CMakeLists.txt || die + + # should be gone in >= 2.2 + sed -i \ + -e 's|/etc/auto.master|/etc/autofs/auto.master|g' \ + -e 's|/etc/sysconfig/autofs|/etc/conf.d/autofs|g' \ + cvmfs/cvmfs_config || die + + sed -i \ + -e 's|${res_path}/conf.d|${res_path/modules.d|' \ + cvmfs/cvmfs_server || die + + # hack for bundled vjson + # vjson not worth unbundling, already upstream obsolete + # upstream replaced by gason with a new api + if use server; then + sed -i \ + -e 's/g++/$(CXX)/g' \ + -e 's/-O2/$(CXXFLAGS)/g' \ + -e 's/ar/$(AR)/' \ + -e 's/ranlib/$(RANLIB)/' \ + externals/vjson/src/Makefile || die + mkdir -p "${WORKDIR}/${P}_build"/externals/build_vjson + cp externals/vjson/src/* \ + "${WORKDIR}/${P}_build"/externals/build_vjson/ || die + fi +} + +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 + $(cmake-utils_use debug BUILD_SERVER_DEBUG) + $(cmake-utils_use server BUILD_SERVER) + $(cmake-utils_use client BUILD_CVMFS) + $(cmake-utils_use client BUILD_LIBCVMFS) + $(cmake-utils_use client INSTALL_MOUNT_SCRIPTS) + $(cmake-utils_use test BUILD_UNITTESTS) + ) + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile + if use doc; then + cd doc + doxygen cvmfs.doxy || die + fi +} + +src_install() { + cmake-utils_src_install + use doc && dohtml -r doc/html/* +} + +pkg_config() { + if use client; then + einfo "Setting up CernVM-FS client" + cvmfs_config setup + einfo "Now edit ${EROOT%/}/etc/cvmfs/default.local" + einfo "and restart the autofs service" + fi +} diff --git a/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-cares-underlink.patch b/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-cares-underlink.patch new file mode 100644 index 0000000..0e67567 --- /dev/null +++ b/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-cares-underlink.patch @@ -0,0 +1,106 @@ +diff -Nur cvmfs-cvmfs-2.1.20.0-fix05.orig/cmake/Modules/FindCARES.cmake cvmfs-cvmfs-2.1.20.0-fix05/cmake/Modules/FindCARES.cmake +--- cvmfs-cvmfs-2.1.20.0-fix05.orig/cmake/Modules/FindCARES.cmake 1970-01-01 00:00:00.000000000 +0000 ++++ cvmfs-cvmfs-2.1.20.0-fix05/cmake/Modules/FindCARES.cmake 2015-07-31 18:35:05.859879354 +0000 +@@ -0,0 +1,35 @@ ++# ++# $Id: cvmfs-2.1.20.0_p05-cares-underlink.patch,v 1.1 2015/07/31 20:09:57 bicatali Exp $ ++# ++# - Find cares ++# Find the native CARES includes and library ++# ++# CARES_INCLUDE_DIRS - where to find cares.h, etc. ++# CARES_LIBRARIES - List of libraries when using cares. ++# CARES_FOUND - True if cares found. ++ ++ ++IF (CARES_INCLUDE_DIRS) ++ # Already in cache, be silent ++ SET(CARES_FIND_QUIETLY TRUE) ++ENDIF (CARES_INCLUDE_DIRS) ++ ++FIND_PATH(CARES_INCLUDE_DIR ares.h) ++ ++SET(CARES_NAMES cares) ++FIND_LIBRARY(CARES_LIBRARY NAMES ${CARES_NAMES} ) ++ ++# handle the QUIETLY and REQUIRED arguments and set CARES_FOUND to TRUE if ++# all listed variables are TRUE ++INCLUDE(FindPackageHandleStandardArgs) ++FIND_PACKAGE_HANDLE_STANDARD_ARGS(CARES DEFAULT_MSG CARES_LIBRARY CARES_INCLUDE_DIR) ++ ++IF(CARES_FOUND) ++ SET( CARES_LIBRARIES ${CARES_LIBRARY} ) ++ SET( CARES_INCLUDE_DIRS ${CARES_INCLUDE_DIR} ) ++ELSE(CARES_FOUND) ++ SET( CARES_LIBRARIES ) ++ SET( CARES_INCLUDE_DIRS ) ++ENDIF(CARES_FOUND) ++ ++MARK_AS_ADVANCED( CARES_LIBRARIES CARES_INCLUDE_DIRS ) +diff -Nur cvmfs-cvmfs-2.1.20.0-fix05.orig/CMakeLists.txt cvmfs-cvmfs-2.1.20.0-fix05/CMakeLists.txt +--- cvmfs-cvmfs-2.1.20.0-fix05.orig/CMakeLists.txt 2015-02-23 13:51:47.000000000 +0000 ++++ cvmfs-cvmfs-2.1.20.0-fix05/CMakeLists.txt 2015-07-31 18:32:34.259882076 +0000 +@@ -252,9 +252,12 @@ + include (${CARES_BUILTIN_LOCATION}/CVMFS-CMakeLists.txt) + include (${LIBCURL_BUILTIN_LOCATION}/CVMFS-CMakeLists.txt) + set (CURL_LIBRARIES "") ++ set (CARES_LIBRARIES "") + else (LIBCURL_BUILTIN) + find_package (CURL REQUIRED) ++ find_package (CARES REQUIRED) + set (INCLUDE_DIRECTORIES ${INCLUDE_DIRECTORIES} ${CURL_INCLUDE_DIRS}) ++ set (INCLUDE_DIRECTORIES ${INCLUDE_DIRECTORIES} ${CARES_INCLUDE_DIRS}) + if (CURL_INCLUDE_DIRS) + find_program(CURL_CONFIG_EXEC NAMES curl-config) + if (CURL_CONFIG_EXEC) +diff -Nur cvmfs-cvmfs-2.1.20.0-fix05.orig/cvmfs/CMakeLists.txt cvmfs-cvmfs-2.1.20.0-fix05/cvmfs/CMakeLists.txt +--- cvmfs-cvmfs-2.1.20.0-fix05.orig/cvmfs/CMakeLists.txt 2015-02-23 13:51:47.000000000 +0000 ++++ cvmfs-cvmfs-2.1.20.0-fix05/cvmfs/CMakeLists.txt 2015-07-31 18:34:36.789879876 +0000 +@@ -271,7 +271,7 @@ + set_target_properties (cvmfs_fuse_debug PROPERTIES VERSION ${CernVM-FS_VERSION_STRING}) + + # link the stuff (*_LIBRARIES are dynamic link libraries *_archive are static link libraries ... one of them will be empty for each dependency) +- set (CVMFS_FUSE_LINK_LIBRARIES ${SQLITE3_LIBRARY} ${CURL_LIBRARIES} ${PACPARSER_LIBRARIES} ${ZLIB_LIBRARIES} ${LEVELDB_LIBRARIES} ${OPENSSL_LIBRARIES} ${FUSE_LIBRARIES} ${LIBFUSE_ARCHIVE} ${SQLITE3_ARCHIVE} ${LIBCURL_ARCHIVE} ${PACPARSER_ARCHIVE} ${LEVELDB_ARCHIVE} ${CARES_ARCHIVE} ${ZLIB_ARCHIVE} ${RT_LIBRARY} ${UUID_LIBRARIES} pthread dl) ++ set (CVMFS_FUSE_LINK_LIBRARIES ${SQLITE3_LIBRARY} ${CARES_LIBRARIES} ${CURL_LIBRARIES} ${PACPARSER_LIBRARIES} ${ZLIB_LIBRARIES} ${LEVELDB_LIBRARIES} ${OPENSSL_LIBRARIES} ${FUSE_LIBRARIES} ${LIBFUSE_ARCHIVE} ${SQLITE3_ARCHIVE} ${LIBCURL_ARCHIVE} ${PACPARSER_ARCHIVE} ${LEVELDB_ARCHIVE} ${CARES_ARCHIVE} ${ZLIB_ARCHIVE} ${RT_LIBRARY} ${UUID_LIBRARIES} pthread dl) + + target_link_libraries (cvmfs2 ${CVMFS_LOADER_LIBS} ${OPENSSL_LIBRARIES} ${LIBFUSE} ${RT_LIBRARY} ${UUID_LIBRARIES} pthread dl) + target_link_libraries (cvmfs_fuse_debug ${CVMFS2_DEBUG_LIBS} ${CVMFS_FUSE_LINK_LIBRARIES}) +@@ -331,7 +331,7 @@ + add_dependencies (libcvmfs cvmfs_only) + + add_executable( test_libcvmfs ${TEST_LIBCVMFS_SOURCES} ) +- target_link_libraries( test_libcvmfs ${CMAKE_CURRENT_BINARY_DIR}/libcvmfs.a ${SQLITE3_LIBRARY} ${CURL_LIBRARIES} ${PACPARSER_LIBRARIES} ${ZLIB_LIBRARIES} ${OPENSSL_LIBRARIES} ${RT_LIBRARY} ${UUID_LIBRARIES} pthread dl ) ++ target_link_libraries( test_libcvmfs ${CMAKE_CURRENT_BINARY_DIR}/libcvmfs.a ${SQLITE3_LIBRARY} ${CARES_LIBRARIES} ${CURL_LIBRARIES} ${PACPARSER_LIBRARIES} ${ZLIB_LIBRARIES} ${OPENSSL_LIBRARIES} ${RT_LIBRARY} ${UUID_LIBRARIES} pthread dl ) + add_dependencies (test_libcvmfs libcvmfs) + + endif (BUILD_LIBCVMFS) +@@ -371,7 +371,7 @@ + set_target_properties (cvmfs_swissknife PROPERTIES COMPILE_FLAGS "${CVMFS_SWISSKNIFE_CFLAGS}" LINK_FLAGS "${CVMFS_SWISSKNIFE_LD_FLAGS}") + + # link the stuff (*_LIBRARIES are dynamic link libraries) +- target_link_libraries (cvmfs_swissknife ${CVMFS_SWISSKNIFE_LIBS} ${SQLITE3_LIBRARY} ${CURL_LIBRARIES} ${ZLIB_LIBRARIES} ${TBB_LIBRARIES} ${OPENSSL_LIBRARIES} ${LIBCURL_ARCHIVE} ${CARES_ARCHIVE} ${SQLITE3_ARCHIVE} ${ZLIB_ARCHIVE} ${RT_LIBRARY} ${VJSON_ARCHIVE} pthread dl) ++ target_link_libraries (cvmfs_swissknife ${CVMFS_SWISSKNIFE_LIBS} ${SQLITE3_LIBRARY} ${CARES_LIBRARIES} ${CURL_LIBRARIES} ${ZLIB_LIBRARIES} ${TBB_LIBRARIES} ${OPENSSL_LIBRARIES} ${LIBCURL_ARCHIVE} ${CARES_ARCHIVE} ${SQLITE3_ARCHIVE} ${ZLIB_ARCHIVE} ${RT_LIBRARY} ${VJSON_ARCHIVE} pthread dl) + + if (BUILD_SERVER_DEBUG) + add_executable (cvmfs_swissknife_debug ${CVMFS_SWISSKNIFE_DEBUG_SOURCES}) +@@ -399,7 +399,7 @@ + message (WARNING "Debug libraries of TBB were not found. Using the release versions instead.") + set (TBB_DEBUG_LIBRARIES ${TBB_LIBRARIES}) + endif (NOT TBB_DEBUG_LIBRARIES) +- target_link_libraries (cvmfs_swissknife_debug ${CVMFS_SWISSKNIFE_LIBS} ${SQLITE3_LIBRARY} ${CURL_LIBRARIES} ${ZLIB_LIBRARIES} ${OPENSSL_LIBRARIES} ${LIBCURL_ARCHIVE} ${CARES_ARCHIVE} ${SQLITE3_ARCHIVE} ${ZLIB_ARCHIVE} ${TBB_DEBUG_LIBRARIES} ${RT_LIBRARY} ${VJSON_ARCHIVE} pthread dl) ++ target_link_libraries (cvmfs_swissknife_debug ${CVMFS_SWISSKNIFE_LIBS} ${SQLITE3_LIBRARY} ${CARES_LIBRARIES} ${CURL_LIBRARIES} ${ZLIB_LIBRARIES} ${OPENSSL_LIBRARIES} ${LIBCURL_ARCHIVE} ${CARES_ARCHIVE} ${SQLITE3_ARCHIVE} ${ZLIB_ARCHIVE} ${TBB_DEBUG_LIBRARIES} ${RT_LIBRARY} ${VJSON_ARCHIVE} pthread dl) + endif (BUILD_SERVER_DEBUG) + endif (BUILD_SERVER) + +diff -Nur cvmfs-cvmfs-2.1.20.0-fix05.orig/cvmfs/CMakeLists.txt cvmfs-cvmfs-2.1.20.0-fix05/cvmfs/CMakeLists.txt +--- cvmfs-cvmfs-2.1.20.0-fix05.orig/test/unittests/CMakeLists.txt.orig 2015-07-31 19:03:06.829849170 +0000 ++++ cvmfs-cvmfs-2.1.20.0-fix05/test/unittests/CMakeLists.txt 2015-07-31 19:03:36.459848638 +0000 +@@ -212,7 +212,7 @@ + endif (BUILD_UNITTESTS_DEBUG) + + # link the stuff (*_LIBRARIES are dynamic link libraries) +-set (UNITTEST_LINK_LIBRARIES ${GTEST_LIBRARIES} ${GOOGLETEST_ARCHIVE} ${OPENSSL_LIBRARIES} ++set (UNITTEST_LINK_LIBRARIES ${GTEST_LIBRARIES} ${GOOGLETEST_ARCHIVE} ${OPENSSL_LIBRARIES} ${CARES_LIBRARIES} + ${CURL_LIBRARIES} ${LIBCURL_ARCHIVE} ${CARES_ARCHIVE} + ${SQLITE3_LIBRARY} ${SQLITE3_ARCHIVE} ${TBB_LIBRARIES} + ${ZLIB_LIBRARIES} ${ZLIB_ARCHIVE} ${RT_LIBRARY} ${UUID_LIBRARIES} diff --git a/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch b/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch new file mode 100644 index 0000000..e47f61e --- /dev/null +++ b/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch @@ -0,0 +1,151 @@ +--- /dev/null ++++ cmake/Modules/FindLibGeoIP.cmake +@@ -0,0 +1,68 @@ ++# - Try to find GeoIP headers and libraries ++# ++# Usage of this module as follows: ++# ++# find_package(LibGeoIP) ++# ++# Variables used by this module, they can change the default behaviour and need ++# to be set before calling find_package: ++# ++# LibGeoIP_ROOT_DIR Set this variable to the root installation of ++# libGeoIP if the module has problems finding the ++# proper installation path. ++# ++# Variables defined by this module: ++# ++# LIBGEOIP_FOUND System has GeoIP libraries and headers ++# LibGeoIP_LIBRARY The GeoIP library ++# LibGeoIP_INCLUDE_DIR The location of GeoIP headers ++# HAVE_GEOIP_COUNTRY_EDITION_V6 Whether the API support IPv6 country edition ++# HAVE_GEOIP_CITY_EDITION_REV0_V6 Whether the API supports IPv6 city edition ++ ++find_path(LibGeoIP_ROOT_DIR ++ NAMES include/GeoIPCity.h ++) ++ ++if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ++ # the static version of the library is preferred on OS X for the ++ # purposes of making packages (libGeoIP doesn't ship w/ OS X) ++ set(libgeoip_names libGeoIp.a GeoIP) ++else () ++ set(libgeoip_names GeoIP) ++endif () ++ ++find_library(LibGeoIP_LIBRARY ++ NAMES ${libgeoip_names} ++ HINTS ${LibGeoIP_ROOT_DIR}/lib ++) ++ ++find_path(LibGeoIP_INCLUDE_DIR ++ NAMES GeoIPCity.h ++ HINTS ${LibGeoIP_ROOT_DIR}/include ++) ++ ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(LibGeoIP DEFAULT_MSG ++ LibGeoIP_LIBRARY ++ LibGeoIP_INCLUDE_DIR ++) ++ ++if (LIBGEOIP_FOUND) ++ include(CheckCXXSourceCompiles) ++ set(CMAKE_REQUIRED_INCLUDES ${LibGeoIP_INCLUDE_DIR}) ++ check_cxx_source_compiles(" ++ #include ++ int main() { GEOIP_COUNTRY_EDITION_V6; return 0; } ++ " HAVE_GEOIP_COUNTRY_EDITION_V6) ++ check_cxx_source_compiles(" ++ #include ++ int main() { GEOIP_CITY_EDITION_REV0_V6; return 0; } ++ " HAVE_GEOIP_CITY_EDITION_REV0_V6) ++ set(CMAKE_REQUIRED_INCLUDES) ++endif () ++ ++mark_as_advanced( ++ LibGeoIP_ROOT_DIR ++ LibGeoIP_LIBRARY ++ LibGeoIP_INCLUDE_DIR ++) +\ No newline at end of file +diff --git a/cmake/Modules/FindPythonModule.cmake b/cmake/Modules/FindPythonModule.cmake +new file mode 100644 +index 0000000..1a29315 +--- /dev/null ++++ cmake/Modules/FindPythonModule.cmake +@@ -0,0 +1,24 @@ ++# Find if a Python module is installed ++# Found at http://www.cmake.org/pipermail/cmake/2011-January/041666.html ++# To use do: find_python_module(PyQt4 REQUIRED) ++function(find_python_module module) ++ string(TOUPPER ${module} module_upper) ++ if(NOT PYTHON_${module_upper}) ++ include (FindPythonInterp) ++ if(ARGC GREATER 1 AND ARGV1 STREQUAL "REQUIRED") ++ set(PY_${module}_FIND_REQUIRED TRUE) ++ endif() ++ # A module's location is usually a directory, but for binary modules ++ # it's a .so file. ++ execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" ++ "import re, ${module}; print(re.compile('/__init__.py.*').sub('',${module}.__file__))" ++ RESULT_VARIABLE _${module}_status ++ OUTPUT_VARIABLE _${module}_location ++ ERROR_QUIET ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if(${_${module}_status} EQUAL 0) ++ set(PYTHON_${module_upper} ${_${module}_location} CACHE STRING "Location of Python module ${module}") ++ endif(${_${module}_status} EQUAL 0) ++ endif(NOT PYTHON_${module_upper}) ++ find_package_handle_standard_args(PY_${module} DEFAULT_MSG PYTHON_${module_upper}) ++endfunction(find_python_module) +\ No newline at end of file +diff --git a/cvmfs/CMakeLists.txt b/cvmfs/CMakeLists.txt +index cb09b94..44be85e 100644 +--- cvmfs/CMakeLists.txt ++++ cvmfs/CMakeLists.txt +@@ -347,9 +347,9 @@ if (BUILD_SERVER) + # create targets with corresponding sources and static link libraries + add_executable (cvmfs_swissknife ${CVMFS_SWISSKNIFE_SOURCES}) + add_executable (cvmfs_suid_helper ${CVMFS_SUID_HELPER_SOURCES}) +- add_custom_target (geoip ALL) + + if (GEOIP_BUILTIN) ++ add_custom_target (geoip ALL) + add_dependencies (python-geoip libgeoip) + add_dependencies (geoip python-geoip) + endif (GEOIP_BUILTIN) +--- CMakeLists.txt.orig 2015-08-04 15:33:53.383868890 +0000 ++++ CMakeLists.txt 2015-08-04 15:58:03.133842858 +0000 +@@ -145,6 +145,12 @@ + endif (EXISTS "${CMAKE_SOURCE_DIR}/bootstrap.sh") + + # ++# include some common functionality ++# ++include (FindPythonModule) ++ ++ ++# + # set some default flags + # + # flags in CMAKE_C**_FLAGS are always passed to the compiler +@@ -309,13 +315,15 @@ + set (INCLUDE_DIRECTORIES ${INCLUDE_DIRECTORIES} ${GTEST_INCLUDE_DIRS}) + endif (GOOGLETEST_BUILTIN) + ++if (BUILD_SERVER OR BUILD_UNITTESTS) + if (GEOIP_BUILTIN) + include (${LIBGEOIP_BUILTIN_LOCATION}/CVMFS-CMakeLists.txt) + include (${PYTHON_GEOIP_BUILTIN_LOCATION}/CVMFS-CMakeLists.txt) + else (GEOIP_BUILTIN) +- find_package (GeoIP REQUIRED) +- find_package (python-GeoIP REQUIRED) ++ find_package (LibGeoIP REQUIRED) ++ find_python_module (GeoIP REQUIRED) + endif (GEOIP_BUILTIN) ++endif (BUILD_SERVER OR BUILD_UNITTESTS) + + # required libraries for client and libcvmfs + if (BUILD_CVMFS OR BUILD_LIBCVMFS) diff --git a/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-overlayfs.patch b/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-overlayfs.patch new file mode 100644 index 0000000..1948bcf --- /dev/null +++ b/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-overlayfs.patch @@ -0,0 +1,50 @@ +--- cvmfs/cvmfs_server.orig 2015-02-23 13:51:47.000000000 +0000 ++++ cvmfs/cvmfs_server 2015-08-10 20:49:35.918557033 +0000 +@@ -454,6 +454,7 @@ + # + # @return 0 if the overlayfs kernel module is loaded + check_overlayfs() { ++ [ -e /proc/config.gz ] && test x$(zgrep OVERLAY_FS /proc/config.gz | awk -F = '{print $2}') = xy && return 0 + /sbin/modprobe -q overlayfs || test -d /sys/module/overlayfs + } + +@@ -934,7 +939,7 @@ + local tmpdir + tmpdir=$(mktemp -d) + mkdir ${tmpdir}/a ${tmpdir}/b ${tmpdir}/c +- mount -t overlayfs \ ++ mount -t overlay \ + -o upperdir=${tmpdir}/b,lowerdir=${tmpdir}/a,ro,context=system_u:object_r:default_t:s0 \ + try_remount_overlayfs ${tmpdir}/c > /dev/null 2>&1 || return 1 + mount -o remount,rw ${tmpdir}/c > /dev/null 2>&1 || { _cleanup_tmrc $tmpdir; return 2; } +@@ -1870,8 +1875,9 @@ + local rdonly_dir="${spool_dir}/rdonly" + local temp_dir="${spool_dir}/tmp" + local cache_dir="${spool_dir}/cache" +- +- mkdir -p /cvmfs/$name $scratch_dir $rdonly_dir $temp_dir $cache_dir || return 1 ++ local work_dir="${spool_dir}/work" ++ ++ mkdir -p /cvmfs/$name $scratch_dir $rdonly_dir $temp_dir $cache_dir $work_dir || return 1 + chown -R $CVMFS_USER /cvmfs/$name/ $spool_dir/ + } + +@@ -1937,7 +1943,8 @@ + load_repo_config $name + local rdonly_dir="${CVMFS_SPOOL_DIR}/rdonly" + local scratch_dir="${CVMFS_SPOOL_DIR}/scratch" +- ++ local work_dir="${CVMFS_SPOOL_DIR}/work" ++ + local selinux_context="" + if [ $unionfs = "overlayfs" ]; then + echo -n "(overlayfs) " +@@ -1946,7 +1953,7 @@ + fi + cat >> /etc/fstab << EOF + cvmfs2#$name $rdonly_dir fuse allow_other,config=/etc/cvmfs/repositories.d/${name}/client.conf:${CVMFS_SPOOL_DIR}/client.local,cvmfs_suid 0 0 # added by CernVM-FS for $name +-overlayfs_$name /cvmfs/$name overlayfs upperdir=${scratch_dir},lowerdir=${rdonly_dir},ro$selinux_context 0 0 # added by CernVM-FS for $name ++overlayfs_$name /cvmfs/$name overlay upperdir=${scratch_dir},lowerdir=${rdonly_dir},workdir=${work_dir},ro$selinux_context 0 0 # added by CernVM-FS for $name + EOF + else + echo -n "(aufs) " diff --git a/net-fs/cvmfs/metadata.xml b/net-fs/cvmfs/metadata.xml new file mode 100644 index 0000000..fa44600 --- /dev/null +++ b/net-fs/cvmfs/metadata.xml @@ -0,0 +1,23 @@ + + + + + bicatali@gentoo.org + + + The CernVM File System is a client-server file system developed to + deliver software stacks onto virtual machines in a fast, scalable, + and reliable way. CernVM-FS is implemented as a FUSE module. It + makes a specially prepared directory tree stored on a web server + look like a local read-only file system on the virtual + machine. CernVM-FS uses outgoing HTTP connections only, thereby it + avoids most of the firewall issues of other network file systems. It + transfers data file by file on demand, verifying the content by + SHA-1 keys. + + + Install the cvmfs client programs and autofs scripts + Install the server and init script (requires apache and OverlayFS) + Use AUFS instead of OverlayFS for older kernels + + diff --git a/profiles/categories b/profiles/categories new file mode 100644 index 0000000..7855fde --- /dev/null +++ b/profiles/categories @@ -0,0 +1,2 @@ +net-fs + -- cgit v1.2.3-65-gdbad