# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/openib.eclass,v 1.9 2012/10/14 18:18:20 alexxy Exp $ # @ECLASS: openib.eclass # @AUTHOR: # Original Author: Alexey Shvetsov # @BLURB: Simplify working with OFED packages inherit base eutils rpm versionator EXPORT_FUNCTIONS src_unpack HOMEPAGE="http://www.openfabrics.org/" LICENSE="|| ( GPL-2 BSD-2 )" # @ECLASS-VARIABLE: OFED_VER # @DESCRIPTION: # Defines OFED version eg 1.4 or 1.4.0.1 # @ECLASS-VARIABLE: OFED_RC # @DESCRIPTION: # Sets if this version is RC # @ECLASS-VARIABLE: OFED_RC_VER # @DESCRIPTION: # Sets RC version # @ECLASS-VARIABLE: OFED_SUFFIX # @DESCRIPTION: # Defines OFED package suffix eg -1.ofed1.4 # @ECLASS-VARIABLE: OFED_SNAPSHOT # @DESCRIPTION: # Defines if src tarball is git snapshot SLOT="${OFED_VER}" # @ECLASS-VARIABLE: OFED_VERSIONS # @DESCRIPTION: # Defines array of ofed version supported by eclass OFED_VERSIONS=( "1.5.1" "1.5.2" "1.5.3" "1.5.3.1" "1.5.3.2" "1.5.4" "1.5.4.1" "3.5" ) # @FUNCTION: block_other_ofed_versions # @DESCRIPTION: # function that creates blockers list for ofed block_other_ofed_versions() { local slot RDEPEND="${RDEPEND} !sys-infiniband/${PN}:0" for slot in ${OFED_VERSIONS[@]}; do if [[ ${slot} != ${SLOT} ]]; then RDEPEND+=" !sys-infiniband/${PN}:${slot}" fi done } OFED_BASE_VER=$(get_version_component_range 1-3 ${OFED_VER}) if [ -z $OFED_RC ] ; then SRC_URI="http://www.openfabrics.org/downloads/OFED/ofed-${OFED_BASE_VER}/OFED-${OFED_VER}.tgz" else SRC_URI="http://www.openfabrics.org/downloads/OFED/ofed-${OFED_BASE_VER}/OFED-${OFED_VER}-rc${OFED_RC_VER}.tgz" fi case ${PN} in ofed) case ${PV} in 1.5.*|1.5.*.*) MY_PN="ofa_kernel" ;; *) MY_PN="compat-rdma" ;; esac ;; *) MY_PN="${PN}" ;; esac case ${PV} in *p*) MY_PV="${PV/p/}" ;; *) MY_PV="${PV}" ;; esac case ${MY_PN} in ofa_kernel|compat-rdma) EXT="tgz" ;; *) EXT="tar.gz" ;; esac if [ -z ${OFED_SRC_SNAPSHOT} ]; then S="${WORKDIR}/${MY_PN}-${MY_PV}" else S="${WORKDIR}/${MY_PN}-${MY_PV}-${OFED_SUFFIX}" fi # @FUNCTION: openib_src_unpack # @DESCRIPTION: # This function will unpack OFED packages openib_src_unpack() { unpack ${A} if [ -z ${OFED_RC} ]; then rpm_unpack "./OFED-${OFED_VER}/SRPMS/${MY_PN}-${MY_PV}-${OFED_SUFFIX}.src.rpm" else rpm_unpack "./OFED-${OFED_VER}-rc${OFED_RC_VER}/SRPMS/${MY_PN}-${MY_PV}-${OFED_SUFFIX}.src.rpm" fi if [ -z ${OFED_SNAPSHOT} ]; then unpack ./${MY_PN}-${MY_PV}.${EXT} else unpack ./${MY_PN}-${MY_PV}-${OFED_SUFFIX}.${EXT} fi }