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.
gentoo-overlay/app-emulation/libguestfs/libguestfs-1.8.16.ebuild

212 lines
4.8 KiB

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/libguestfs/libguestfs-1.8.16.ebuild,v 1.1 2012/01/05 11:23:23 maksbotan Exp $
EAPI="3"
WANT_AUTOMAKE="1.11"
JAVA_PKG_OPT_USE="java"
JAVA_PKG_ALLOW_VM_CHANGE="yes"
APLANCE_PV="1.7.18"
PYTHON_DEPEND="python? 2:2.6"
USE_RUBY="ruby18"
RUBY_OPTIONAL="yes"
PHP_EXT_NAME="guestfs_php"
USE_PHP="php5-3 php5-4"
PHP_EXT_OPTIONAL_USE="php"
inherit autotools bash-completion-r1 confutils versionator java-pkg-opt-2 perl-module python ruby-ng php-ext-source-r2 ghc-package
MY_PV_1="$(get_version_component_range 1-2)"
MY_PV_2="$(get_version_component_range 2)"
[[ $(( $(get_version_component_range 2) % 2 )) -eq 0 ]] && SD="stable" || SD="development"
DESCRIPTION="Library for accessing and modifying virtual machine (VM) disk images"
HOMEPAGE="http://libguestfs.org/"
SRC_URI="http://libguestfs.org/download/${MY_PV_1}-${SD}/${P}.tar.gz
http://rion-overlay.googlecode.com/files/${PN}-${APLANCE_PV}-x86_64.tar.gz"
LICENSE="GPL-2"
SLOT="0"
# Upstream NOT supported 32-bit version, keyword in own risk
KEYWORDS="~amd64"
IUSE="fuse +ocaml perl python ruby haskell +readline nls php debug doc nls source javadoc"
COMMON_DEPEND="
virtual/perl-Getopt-Long
>=dev-perl/Sys-Virt-0.2.4
>=app-misc/hivex-1.2.1[perl]
dev-perl/libintl-perl
dev-perl/String-ShellQuote
dev-libs/libpcre
app-arch/cpio
dev-lang/perl
app-cdr/cdrkit
>=app-emulation/qemu-kvm-0.13[qemu_user_targets_x86_64,qemu_softmmu_targets_x86_64]
sys-apps/fakeroot
sys-apps/file
app-emulation/libvirt
dev-libs/libxml2:2
>=sys-apps/fakechroot-2.8
>=app-admin/augeas-0.7.1
sys-fs/squashfs-tools
perl? ( virtual/perl-ExtUtils-MakeMaker )
fuse? ( sys-fs/fuse )
readline? ( sys-libs/readline )
doc? ( dev-libs/libxml2 )
ocaml? ( dev-lang/ocaml
dev-ml/findlib
dev-ml/xml-light )
ruby? ( dev-lang/ruby
dev-ruby/rake )
java? ( virtual/jre )
haskell? ( dev-lang/ghc )"
DEPEND="${COMMON_DEPEND}
java? ( >=virtual/jdk-1.6
source? ( app-arch/zip ) )
doc? ( app-text/po4a )"
RDEPEND="${COMMON_DEPEND}
java? ( >=virtual/jre-1.6 )"
PHP_EXT_S="${S}/php/extension"
pkg_setup() {
use java && java-pkg-opt-2_pkg_setup
if use python; then
python_set_active_version 2
python_pkg_setup
python_need_rebuild
fi
confutils_use_depend_all source java
confutils_use_depend_all javadoc java
use ruby && ruby-ng_pkg_setup
use haskell && ghc-package_pkg_setup
}
src_unpack() {
unpack ${P}.tar.gz
cd "${WORKDIR}"
mkdir image || die
cd image || die
unpack libguestfs-${APLANCE_PV}-x86_64.tar.gz
cp "${WORKDIR}"/image/usr/local/lib/guestfs/* "${S}"/appliance/ || die
# part of php-ext-source-r2_src_unpack
# whole version cannot be called here as it will attempt to unpack ${A}
if use php; then
local slot orig_s="${PHP_EXT_S}"
for slot in $(php_get_slots); do
cp -r "${orig_s}" "${WORKDIR}/${slot}" || die
done
fi
}
src_prepare() {
epatch "${FILESDIR}/1.8/${PV}"/000*.patch
use java && java-pkg-opt-2_src_prepare
eautoreconf
if use php; then
php-ext-source-r2_src_prepare
fi
}
src_configure() {
# Disable feature test for kvm for more reason
# i.e: not loaded module in __build__ time,
# build server not supported kvm, etc. ...
#
# In fact, this feature is virtio support and requires
# configured kernel.
export vmchannel_test=no
econf \
--with-repo=fedora-12 \
--disable-appliance \
--disable-daemon \
--with-drive-if=virtio \
--with-net-if=virtio-net-pci \
--disable-rpath \
$(use_enable java) \
$(use_enable nls) \
$(use_with readline) \
$(use_enable ocaml ocaml-viewer) \
$(use_enable perl) \
$(use_enable fuse) \
$(use_enable ocaml) \
$(use_enable python) \
$(use_enable ruby) \
$(use_enable haskell) \
$(use_with doc po4a)
if use php; then
php-ext-source-r2_src_configure
fi
}
src_compile() {
emake || die
if use php; then
php-ext-source-r2_src_compile
fi
}
src_test() {
emake -j1 check || die
}
src_install() {
emake -j1 DESTDIR="${D}" install || die
dodoc BUGS HACKING README RELEASE-NOTES TODO
dobashcomp "${D}/etc"/bash_completion.d/guestfish-bash-completion.sh
rm -fr "${D}/etc"/bash* || die
insinto /usr/$(get_libdir)/guestfs/
doins "${WORKDIR}/image/usr/local/lib/"guestfs/*
find "${D}" -name '*.la' -exec rm -f '{}' +
if use java; then
java-pkg_newjar java/${P}.jar ${PN},jar
rm -fr "${D}/usr"/share/java
rm -fr "${D}/usr"/share/javadoc
if use source;then
java-pkg_dosrc java/com/redhat/et/libguestfs/*
fi
if use javadoc;then
java-pkg_dojavadoc java/api
fi
fi
use perl && fixlocalpod
python_clean_installation_image -q
if use php; then
php-ext-source-r2_src_install
fi
}
pkg_preinst() {
use java && java-pkg-opt-2_pkg_preinst
}
pkg_postinst() {
use haskell && ghc-package_pkg_postinst
}
pkg_prerm() {
use haskell && ghc-package_pkg_prerm
}