# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header$ EAPI=5 if [[ "${PV}" == *.9999 ]]; then OCFS2_BRANCH="${PN}-${PV%.9999}" EGIT_COMMIT="refs/remotes/origin/${OCFS2_BRANCH}" EGIT_FETCH_CMD="git clone --branch ${OCFS2_BRANCH}" EGIT_PROJECT="${OCFS2_BRANCH}.git" # both behaviours are wrong EGIT_HAS_SUBMODULES=true fi inherit flag-o-matic eutils `[[ "${PVR}" == *9999* ]] && echo "git-r3 autotools"` vv="${PV%.*}" PV_MAJOR="${PV%%.*}" PV_MINOR="${PV#*.}" PV_MINOR="${PV_MINOR%%.*}" DESCRIPTION="Support programs for the Oracle Cluster Filesystem 2" HOMEPAGE="http://oss.oracle.com/projects/ocfs2-tools/" SRC_URI="http://oss.oracle.com/projects/ocfs2-tools/dist/files/source/v${PV_MAJOR}.${PV_MINOR}/${P}.tar.gz doc? ( http://oss.oracle.com/projects/ocfs2/dist/documentation/v${vv}/ocfs2-${vv//./_}-usersguide.pdf )" LICENSE="GPL-2" SLOT="0" KEYWORDS="~x86 ~amd64" IUSE="X static doc pacemaker" # (#142216) build system's broke, always requires glib for debugfs utility RDEPEND="X? ( =x11-libs/gtk+-2* >=dev-lang/python-2 >=dev-python/pygtk-2 ) pacemaker? ( sys-cluster/corosync sys-cluster/pacemaker >=sys-cluster/dlm-lib-3 dev-libs/libxml2 ) >=dev-libs/glib-2.2.3 sys-fs/e2fsprogs" [[ "$PV" > "1.7" ]] && RDEPEND+=" dev-libs/libaio" DEPEND="${RDEPEND}" RESTRICT="nomirror" if [[ "${PVR}" == *9999* ]]; then SRC_URI="" EGIT_REPO_URI="git://oss.oracle.com/git/ocfs2-tools.git" epatch(){ cat $*|patch -tNp1; } else src_unpack(){ for i in ${A}; do case ${i} in *.pdf)cp "${DISTDIR}/$i" "${WORKDIR}";; *)unpack "$i";; esac done } fi src_prepare(){ [[ -e configure ]] || eautoreconf use static && sed -i -e 's:PKG_CONFIG --libs :PKG_CONFIG --static --libs :g' configure sed -i -e 's:\(log_error.*\)%d\(.*\), CRM_SERVICE:\1\2:' ocfs2_controld/pacemaker.c sed -i -e 's:umode_t:__le16:' include/ocfs2-kernel/ocfs2_fs.h if [[ -e ocfs2cdsl ]]; then export ac_config_files="ocfs2cdsl/ocfs2cdsl.8" sed -i -e 's:^\(SUBDIRS = .*\)$:\1 ocfs2cdsl:' Makefile fi local i for i in "${FILESDIR}"/${P}*.patch; do [[ -e "$i" ]] && epatch "$i" done sed -i -e "s:^#include <$i\\.h>:#include \n#include <$i.h>:" `grep -lR "^#include <$i\\.h>" "$S"` } src_configure(){ if use pacemaker; then append-ldflags -Wl,--no-as-needed export OPTS="${CFLAGS} -I"${ROOT}"/usr/include/libxml2" else sed -i -e s:BUILD_OCFS2_CONTROLD=yes:BUILD_OCFS2_CONTROLD=no:g configure{,.in} fi econf \ $(use_enable X ocfs2console) \ $(use_enable !static dynamic-fsck) \ $(use_enable !static dynamic-ctl) \ || die "Failed to configure" } src_compile() { emake -j1 || die "Failed to compile" } src_install() { make DESTDIR="${D}" install || die "Failed to install" dodoc \ COPYING CREDITS MAINTAINERS README README.O2CB debugfs.ocfs2/README \ documentation/users_guide.txt documentation/samples/cluster.conf \ documentation/ocfs2_faq.txt "${FILESDIR}"/INSTALL.GENTOO \ vendor/common/o2cb.init vendor/common/o2cb.sysconfig use doc && dodoc "${WORKDIR}/"*.pdf # Move programs not needed before /usr is mounted to /usr/sbin/ mkdir -p "${D}"/usr/sbin use X && mv "${D}"/sbin/ocfs2console "${D}"/usr/sbin/ newinitd "${FILESDIR}"/ocfs2.init ocfs2 newconfd "${FILESDIR}"/ocfs2.conf ocfs2 insinto /etc/ocfs2 newins "${S}"/documentation/samples/cluster.conf cluster.conf # vs. keepdir # dodir /dlm } pkg_postinst() { elog "Read ${ROOT}usr/share/doc/${P}/INSTALL.GENTOO* for instructions" elog "about how to install, configure and run ocfs2." }