app-emulation/genymotion/genymotion-2.9.0.ebuild
author Da Risk <da_risk@geekorum.com>
Thu, 13 Apr 2017 16:24:38 -0700
changeset 211 214da3e8fd8e
permissions -rw-r--r--
app-emulation/genymotion:add latest 2.9.0 version (Portage version: 2.3.5/hg/Linux x86_64, unsigned Manifest commit)

# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

DESCRIPTION="An awesome Android emulator"
HOMEPAGE="http://www.genymotion.com"
SRC_URI="https://dl.genymotion.com/releases/${P}/${P}-linux_x64.bin"

LICENSE="GENYMOTION"
SLOT="0"
KEYWORDS="~amd64"
IUSE="unbundled-libs"

inherit pax-utils

DEPEND=""
# note if you compile protobuf with >=gcc-5.1 you need to disable the new c++11 abi
# -D_GLIBCXX_USE_CXX11_ABI=0  to your CXXFLAGS for protobuf
RDEPEND="|| ( >=app-emulation/virtualbox-5.0.28
		    >=app-emulation/virtualbox-bin-5.0.28 )
		 unbundled-libs? (
		 	dev-libs/openssl:0
		 	dev-libs/icu
			dev-qt/qtcore:5[icu]
			dev-qt/qtgui:5
			dev-qt/qtnetwork:5
			dev-qt/qtopengl:5
			dev-qt/qtprintsupport:5
			dev-qt/qtquickcontrols:5
			dev-qt/qtsql:5
			dev-qt/qtsvg:5
			dev-qt/qtwebkit:5
			dev-qt/qtwebsockets:5
			dev-qt/qtwidgets:5
			dev-qt/qtx11extras:5
			dev-qt/qtgraphicaleffects:5
		 	=dev-libs/protobuf-2.6*
		 )"

# don't unbundle libav to avoid downgrade
#		 	media-video/libav:0/9

QA_PRESTRIPPED="
	/opt/genymotion/device-upgrade
	/opt/genymotion/genymotion
	/opt/genymotion/genymotion-tool
	/opt/genymotion/genymotionadbtunneld
	/opt/genymotion/genyshell
	/opt/genymotion/gmtool
	/opt/genymotion/imageformats/libqsvg.so
	/opt/genymotion/imageformats/libqgif.so
	/opt/genymotion/imageformats/libqjpeg.so
	/opt/genymotion/lib64EGL_translator.so
	/opt/genymotion/lib64GLES_CM_translator.so
	/opt/genymotion/lib64GLES_V2_translator.so
	/opt/genymotion/lib64OpenglRender.so
	/opt/genymotion/libavutil.so.51
	/opt/genymotion/libcrypto.so.1.0.0
	/opt/genymotion/libicudata.so.53
	/opt/genymotion/libicui18n.so.53
	/opt/genymotion/libicuuc.so.53
	/opt/genymotion/libminicrypt.so.1.0.0
	/opt/genymotion/libprotobuf.so.9
	/opt/genymotion/libQt5Concurrent.so.5
	/opt/genymotion/libQt5Core.so.5
	/opt/genymotion/libQt5DBus.so.5
	/opt/genymotion/libQt5Gui.so.5
	/opt/genymotion/libQt5Network.so.5
	/opt/genymotion/libQt5OpenGL.so.5
	/opt/genymotion/libQt5PrintSupport.so.5
	/opt/genymotion/libQt5Qml.so.5
	/opt/genymotion/libQt5Quick.so.5
	/opt/genymotion/libQt5Sql.so.5
	/opt/genymotion/libQt5Svg.so.5
	/opt/genymotion/libQt5WebKit.so.5
	/opt/genymotion/libQt5WebKitWidgets.so.5
	/opt/genymotion/libQt5Widgets.so.5
	/opt/genymotion/libswscale.so.2
	/opt/genymotion/platforms/libqxcb.so
	/opt/genymotion/player
	/opt/genymotion/plugins/libvboxmanage.so.1.0.0
	/opt/genymotion/sqldrivers/libqsqlite.so
	/opt/genymotion/tools/aapt
	/opt/genymotion/tools/adb
	/opt/genymotion/tools/glewinfo "

EMBEDDED_LIBS="
			   libXcomposite.so.1
			   libxslt.so.1
			   libQt5WebKitWidgets.so.5
			   libQt5WebSockets.so.5
			   libQt5Concurrent.so.5
			   libQt5Svg.so.5
			   libQt5Gui.so.5
			   libQt5Core.so.5
			   libQt5Network.so.5
			   libQt5Widgets.so.5
			   libQt5Sql.so.5
			   libQt5WebKit.so.5
			   libQt5X11Extras.so.5
			   libQt5PrintSupport.so.5
			   libQt5Positioning.so.5
			   libQt5Sensors.so.5
			   libQt5WebChannel.so.5
			   libQt5OpenGL.so.5
			   libQt5Quick.so.5
			   libQt5Qml.so.5
			   libQt5DBus.so.5
			   liborc-0.4.so.0
			   libssl.so.1.0.0
			   libcrypto.so.1.0.0
			   libprotobuf.so.9
			   libgstapp-0.10.so.0
			   libgstbase-0.10.so.0
			   libgstinterfaces-0.10.so.0
			   libgstpbutils-0.10.so.0
			   libgstreamer-0.10.so.0
			   libgstvideo-0.10.so.0
			   libicudata.so.53
			   libicui18n.so.53
			   libicuuc.so.53
"
# don't unbundle libav
#			   libavutil.so.51
#			   libswscale.so.2

src_unpack() {
	mkdir "${S}"
	skip=$(awk '/^__TARFILE_FOLLOWS__/ { print NR + 1; exit 0; }' "${DISTDIR}/${A}")
	tail -n +$skip "${DISTDIR}/${A}" | tar -xj -C "${S}"
}

src_install() {
	dodir "/opt/genymotion"
	if use unbundled-libs ; then
		rm -r sqldrivers || die
		rm -r platforms || die
		rm -r QtGraphicalEffects || die
		rm -r QtQuick || die
		rm -r QtQuick.2 || die
		# should be deleted and use the system one provided by qtsvg
		# but it does not work
		# rm -r imageformats || die
		# delete all other qt dependencies
		rm $EMBEDDED_LIBS || die
		rm qt.conf || die
	fi

	cp -R "${S}"/* "${D}opt/genymotion"
	pax-mark -m "${D}opt/genymotion/genymotion"
	pax-mark -m "${D}opt/genymotion/gmtool"

	dodir "/opt/bin"
	dosym "/opt/genymotion/genymotion" "/opt/bin/genymotion"
	dosym "/opt/genymotion/genymotion-shell" "/opt/bin/genymotion-shell"
	dosym "/opt/genymotion/gmtool" "/opt/bin/gmtool"
}