Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 674766 - app-emulation/genymotion-bin-3.0.2 version bump
Summary: app-emulation/genymotion-bin-3.0.2 version bump
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Marco Genasci
URL:
Whiteboard:
Keywords: EBUILD, PATCH
Depends on:
Blocks:
 
Reported: 2019-01-07 09:07 UTC by Marco Genasci
Modified: 2019-04-27 13:24 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
0001-app-emulation-genymotion-bin-bump-to-version-3.0.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.patch,5.10 KB, patch)
2019-01-07 09:07 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.0.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.0.patch,5.04 KB, patch)
2019-01-09 10:04 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-version-bump-to-3.0.0.patch (0001-app-emulation-genymotion-bin-version-bump-to-3.0.0.patch,5.73 KB, patch)
2019-01-28 08:36 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.1.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.1.patch,5.61 KB, patch)
2019-03-26 17:28 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch,5.74 KB, patch)
2019-04-23 12:16 UTC, Marco Genasci
Details | Diff
0002-app-emulation-genymotion-bin-remove-old.patch (0002-app-emulation-genymotion-bin-remove-old.patch,5.09 KB, patch)
2019-04-23 12:16 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch,4.99 KB, patch)
2019-04-24 14:25 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch,5.25 KB, patch)
2019-04-25 10:19 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch,5.26 KB, patch)
2019-04-26 06:03 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch,5.16 KB, patch)
2019-04-26 14:22 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch,5.16 KB, patch)
2019-04-26 15:02 UTC, Marco Genasci
Details | Diff
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch (0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch,5.43 KB, patch)
2019-04-27 12:39 UTC, Marco Genasci
Details | Diff
0002-app-emulation-genymotion-bin-removed-old.patch (0002-app-emulation-genymotion-bin-removed-old.patch,5.15 KB, patch)
2019-04-27 12:39 UTC, Marco Genasci
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Marco Genasci 2019-01-07 09:07:02 UTC
New 3.0.0 version

Reproducible: Always
Comment 1 Marco Genasci 2019-01-07 09:07:40 UTC
Created attachment 560168 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.patch
Comment 2 Marco Genasci 2019-01-09 10:04:41 UTC
Created attachment 560486 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.0.patch

Fixed dependencies, see also #674782
Comment 3 Marco Genasci 2019-01-28 08:36:00 UTC
Created attachment 563046 [details, diff]
0001-app-emulation-genymotion-bin-version-bump-to-3.0.0.patch

- Add libressl support
- Fix >dev-ruby/hiredis-0.13 support

Special thanks to Frédéric Barthelery.
Comment 4 Marco Genasci 2019-03-26 17:28:32 UTC
Created attachment 570852 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.1.patch
Comment 5 Mart Raudsepp gentoo-dev 2019-04-23 08:42:02 UTC
Is the gst-plugins-base usage really gone now?
Comment 6 Marco Genasci 2019-04-23 12:16:13 UTC
Created attachment 573852 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch
Comment 7 Marco Genasci 2019-04-23 12:16:40 UTC
Created attachment 573854 [details, diff]
0002-app-emulation-genymotion-bin-remove-old.patch
Comment 8 Marco Genasci 2019-04-23 12:19:10 UTC
(In reply to Mart Raudsepp from comment #5)
> Is the gst-plugins-base usage really gone now?

Yes see also #684162
Comment 9 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-04-23 15:14:25 UTC
Comment on attachment 573852 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch

>From dcf111dfe84a0c26068244e64a87bae4c33e3efd Mon Sep 17 00:00:00 2001
>From: Marco Genasci <fedeliallalinea@gmail.com>
>Date: Tue, 23 Apr 2019 14:12:03 +0200
>Subject: [PATCH 1/2] app-emulation/genymotion-bin: bump to version 3.0.2
>MIME-Version: 1.0
>Content-Type: text/plain; charset=UTF-8
>Content-Transfer-Encoding: 8bit
>
>Special thanks to Frédéric Barthelery.
>
>Package-Manager: Portage-2.3.62, Repoman-2.3.11
>---
> app-emulation/genymotion-bin/Manifest         |   1 +
> .../genymotion-bin-3.0.2.ebuild               | 123 ++++++++++++++++++
> 2 files changed, 124 insertions(+)
> create mode 100644 app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild
>
>diff --git a/app-emulation/genymotion-bin/Manifest b/app-emulation/genymotion-bin/Manifest
>index 462804264ea..767f04d1b95 100644
>--- a/app-emulation/genymotion-bin/Manifest
>+++ b/app-emulation/genymotion-bin/Manifest
>@@ -1 +1,2 @@
> DIST genymotion-2.12.2-linux_x64.bin 45850812 BLAKE2B 74c3dfa73818f1d7318235d13acbff79d5dd27fd8d7c8cd246046406aaf8f2b9cdb9e9cb7c44bd294b0a047c2bd1e6a419bd4191dd3e332d82494f358cc9d73c SHA512 31b1c9de1a264f285938fcc62612a6aa74393e88f6075664f3e168c5226e74ab25e72061904716f6b2d33ed77221b8c4605c247090c7e2fd149ea8be96f9b5dc
>+DIST genymotion-3.0.2-linux_x64.bin 38744066 BLAKE2B 4c98cdc8d5a5cd98192260893b39dd838bba5903d590268d53223c1ebe712296cf25aa638c16de39ea4f83a5fd8717edbab7c043ff6a12e6455862ecd25ca7cc SHA512 5075d9a9c6c5e84ff90e05e4fa70db98cf89ad25e8765566176b94559f60cc170e383a02f50c752fb63859b757645390d977081d2f79ce0fab8607ebf3e08e01
>diff --git a/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild b/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild
>new file mode 100644
>index 00000000000..d54b9d3b653
>--- /dev/null
>+++ b/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild
>@@ -0,0 +1,123 @@
>+# Copyright 1999-2019 Gentoo Authors
>+# Distributed under the terms of the GNU General Public License v2
>+
>+EAPI=7
>+
>+inherit desktop bash-completion-r1 pax-utils
>+
>+MY_PN="${PN/-bin}"
>+MY_P="${MY_PN}-${PV}"
>+
>+DESCRIPTION="Complete set of tools that provide a virtual environment for Android"
>+HOMEPAGE="https://genymotion.com"
>+SRC_URI="${MY_P}-linux_x64.bin"
>+DOWNLOAD_URL="https://www.genymotion.com/download/"
>+
>+LICENSE="genymotion"
>+SLOT="0"
>+KEYWORDS="-* ~amd64"
>+
>+IUSE="libressl"
>+
>+DEPEND=""
>+RDEPEND="|| ( >=app-emulation/virtualbox-5.0.28 >=app-emulation/virtualbox-bin-5.0.28 )
>+	virtual/opengl
>+	libressl? ( dev-libs/libressl )

Are you sure that it works fine with all four ABI-versions of LibreSSL around?

>+	!libressl? ( =dev-libs/openssl-1.0*:* )

I would personally suggest using || ( dev-libs/openssl:1.0.0 =dev-libs/openssl-1.0*:0 )).  This will make it clearer that you prefer compat slot over forced downgrade, and make it easier to find it once we move the compat slot outta main package.

>+	dev-libs/hiredis

Depend on a specific subslot.

>+	>=dev-util/patchelf-0.9_p20180129

Is this really R(untime)DEPEND?  I see you're using it in ebuild, so it looks like BDEPEND.

>+	>sys-apps/util-linux-0.8

Why '>'?  Also, this version looks so old you can just drop the version here.

>+"
>+# 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
>+#	=dev-libs/protobuf-2.6*

To whom is this addressed?  What is its purpose?

>+
>+RESTRICT="bindist fetch"

I suppose you want to restrict binchecks too.

>+S="${WORKDIR}"
>+
>+pkg_nofetch() {
>+	einfo
>+	einfo "Please visit ${DOWNLOAD_URL} and download ${A}"
>+	einfo "which must be placed in DISTDIR directory."
>+	einfo
>+}
>+
>+src_unpack() {
>+	cp "${DISTDIR}/${A}" "${WORKDIR}" || die "cp failed"

Don't use ${A} in ebuild, except in explicit context of 'unpack ${A}' (which we don't do anymore, given 'default').  This is going to fail horribly if someone ever needs to add a second file to SRC_URI.

>+}
>+
>+src_prepare() {
>+	default
>+
>+	# removed function _install_desktop_file because happens outside of sandbox
>+	sed -i -e "s/_install_desktop_file\ ||\ abort//" ${A} || die "sed failed"

The escaping seems unnecessary here.

>+	chmod +x ${A} || die "chmod failed"
>+	yes | ./${A} -d "${S}" > /dev/null || die "unpack failed"
>+
>+	# removed windows line for bashcompletion
>+	sed -i -e "s/complete\ -F\ _gmtool\ gmtool.exe//" "${S}/${MY_PN}/completion/bash/gmtool.bash" || die "sed failed"

Likewise.  Also I suppose you're removing the whole line, so '/complete .../d' would be preferable.

>+
>+	# patch to support newer hiredis version (0.14)
>+	for i in genymotion genyshell gmtool player libcom.so.1.0.0 librendering.so.1.0.0 ; do
>+		patchelf --replace-needed libhiredis.so.0.13 libhiredis.so "${S}/${MY_PN}/$i" || die "Unable to patch $i for hiredis"
>+		# patch to support libressl
>+		if use libressl ; then
>+			patchelf --replace-needed libcrypto.so.1.0.0 libcrypto.so "${S}/${MY_PN}/$i" || die "Unable to patch $i for libressl"

Don't patch generic 'foo.so' to executables as that entirely kills the purpose of SOVERSION.  Instead, patch to the correct version if you are sure this is 100% ABI-compatible.

>+		fi
>+	done
>+}
>+
>+QA_PREBUILT="
>+	opt/${MY_PN}/*.so*
>+	opt/${MY_PN}/imageformats/*.so
>+	opt/${MY_PN}/plugins/*.so*
>+	opt/${MY_PN}/${MY_PN}
>+	opt/${MY_PN}/genyshell
>+	opt/${MY_PN}/player
>+	opt/${MY_PN}/${MY_PN}adbtunneld
>+	opt/${MY_PN}/gmtool
>+"

You can remove QA_PREBUILT if you use RESTRICT=binchecks.

>+
>+src_install() {
>+	insinto /opt/"${MY_PN}"
>+
>+	# Use qt bundled
>+	doins -r "${MY_PN}"/{geoservices,Qt,QtGraphicalEffects,QtLocation,QtPositioning,QtQuick,QtQuick.2}
>+	doins -r "${MY_PN}"/{icons,imageformats,platforms,plugins,sqldrivers,translations,xcbglintegrations}
>+	doins "${MY_PN}"/libQt*
>+	doins "${MY_PN}"/qt.conf
>+	doins "${MY_PN}"/libicu*
>+
>+	doins "${MY_PN}"/{libcom,librendering}.so*
>+	# android library
>+	doins "${MY_PN}"/{libEGL_translator,libGLES_CM_translator,libGLES_V2_translator,libOpenglRender}.so*

Libraries are expected to be marked executable on Linux too.

>+
>+	insopts -m0755
>+	doins "${MY_PN}"/{genymotion,genyshell,player,genymotionadbtunneld,gmtool}

Instead of adjusting insopts, use exeinto/doexe.

>+
>+	pax-mark -m "${ED%/}/opt/${MY_PN}/${MY_PN}"
>+	pax-mark -m "${ED%/}/opt/${MY_PN}/gmtool"
>+
>+	dosym "${ED%/}"/opt/"${MY_PN}"/genyshell /opt/bin/genyshell
>+	dosym "${ED%/}"/opt/"${MY_PN}"/"${MY_PN}" /opt/bin/"${MY_PN}"

This overuse of MY_PN reduces readability.

>+	dosym "${ED%/}"/opt/"${MY_PN}"/gmtool /opt/bin/gmtool

Use relative symlink target paths, please.

>+
>+	newbashcomp "${MY_PN}/completion/bash/gmtool.bash" gmtool
>+
>+	if has_version "app-shells/zsh" ; then

This is automagic dependency.  Install it unconditionally.

>+		insinto /usr/share/zsh/site-functions
>+		doins "${MY_PN}/completion/zsh/_gmtool"
>+	fi
>+
>+	make_desktop_entry "/opt/${MY_PN}/${MY_PN}" "Genymotion ${PV}" "/opt/${MY_PN}/icons/icon.png" "Development;Emulator;"
>+	mv "${ED%/}"/usr/share/applications/*.desktop "${ED%/}"/usr/share/applications/"${MY_PN}".desktop || die "mv failed"

What are you doing here, exactly?

>+}
>+
>+pkg_postinst() {
>+	elog "Genymotion needs adb to work correctly: install with android-sdk-update-manager"
>+	elog "'Android SDK Platform-tools' and 'Android SDK Tools'"
>+	elog "Your user should also be in the android group to work correctly"
>+	elog "Then in Genymotion set the android-sdk-update-manager directory: (Settings->ADB)"
>+	elog
>+	elog "      /opt/android-sdk-update-manager"
>+}
>-- 
>2.21.0
>
Comment 10 Marco Genasci 2019-04-23 17:01:25 UTC
> >+IUSE="libressl"
> >+
> >+DEPEND=""
> >+RDEPEND="|| ( >=app-emulation/virtualbox-5.0.28 >=app-emulation/virtualbox-bin-5.0.28 )
> >+	virtual/opengl
> >+	libressl? ( dev-libs/libressl )
> 
> Are you sure that it works fine with all four ABI-versions of LibreSSL
> around?
Unfortunately not I don't have a libressl environment. 
I just know that Frédéric Barthelery (a genymotion developer) work with latest libressl version (2.8.3).

> >+
> >+	# patch to support newer hiredis version (0.14)
> >+	for i in genymotion genyshell gmtool player libcom.so.1.0.0 librendering.so.1.0.0 ; do
> >+		patchelf --replace-needed libhiredis.so.0.13 libhiredis.so "${S}/${MY_PN}/$i" || die "Unable to patch $i for hiredis"
> >+		# patch to support libressl
> >+		if use libressl ; then
> >+			patchelf --replace-needed libcrypto.so.1.0.0 libcrypto.so "${S}/${MY_PN}/$i" || die "Unable to patch $i for libressl"
> 
> Don't patch generic 'foo.so' to executables as that entirely kills the
> purpose of SOVERSION.  Instead, patch to the correct version if you are sure
> this is 100% ABI-compatible.
In this case I patched because original binary is linked to 0.13 so version but work also with unstable 0.14 version.
What is the correct way in this case? Keep 0/0.13 subslot and force ~amd64 to use it?

> 
> >+		insinto /usr/share/zsh/site-functions
> >+		doins "${MY_PN}/completion/zsh/_gmtool"
> >+	fi
> >+
> >+	make_desktop_entry "/opt/${MY_PN}/${MY_PN}" "Genymotion ${PV}" "/opt/${MY_PN}/icons/icon.png" "Development;Emulator;"
> >+	mv "${ED%/}"/usr/share/applications/*.desktop "${ED%/}"/usr/share/applications/"${MY_PN}".desktop || die "mv failed"
> 
> What are you doing here, exactly?
It's just eye candy. I rename desktop file (make_desktop_entry create _opt_genymotion_genymotion-genymotion-bin.desktop name), but no problem I remove the line.
Comment 11 Marco Genasci 2019-04-24 14:25:52 UTC
Created attachment 573964 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch
Comment 12 Mart Raudsepp gentoo-dev 2019-04-25 08:37:40 UTC
(In reply to Marco Genasci from comment #10)
> > What are you doing here, exactly?
> It's just eye candy. I rename desktop file (make_desktop_entry create
> _opt_genymotion_genymotion-genymotion-bin.desktop name), but no problem I
> remove the line.

Does it ship its own desktop file as well? The actual filename of a .desktop file is very important - it is the unique identifier of an application for GUI desktops.
Thus I definitely can not disagree with renaming it to something more sensible than _opt_genymotion_*. But to me the question is - should it be $MY_PN.desktop or something else. The current standard is to use reverse DNS for the project, when the main part is actually owned by the project. So that would make it something like com.genymotion.genymotion-bin or without the -bin. However differently named .desktop files are considered different programs - that's why I'm asking what name does upstream use - I mean, it surely does have a .desktop file you simply ignore for some reason right now, or some other download for a specific other distro provides it, so it actually shows up in desktop environments? I suggest to use the same name if they are the same thing.
Comment 13 Marco Genasci 2019-04-25 09:29:07 UTC
(In reply to Mart Raudsepp from comment #12)
> Does it ship its own desktop file as well? The actual filename of a .desktop
> file is very important - it is the unique identifier of an application for
> GUI desktops.
> Thus I definitely can not disagree with renaming it to something more
> sensible than _opt_genymotion_*. But to me the question is - should it be
> $MY_PN.desktop or something else. The current standard is to use reverse DNS
> for the project, when the main part is actually owned by the project. So
> that would make it something like com.genymotion.genymotion-bin or without
> the -bin. However differently named .desktop files are considered different
> programs - that's why I'm asking what name does upstream use - I mean, it
> surely does have a .desktop file you simply ignore for some reason right
> now, or some other download for a specific other distro provides it, so it
> actually shows up in desktop environments? I suggest to use the same name if
> they are the same thing.

Thank you for explaining. Yes a .desktop file is created in $HOME (with wrong icon and executable path) and is named genymobile-genymotion.desktop.
The problem with this file is that as wrong icon and executable path and that's why I use make_desktop_entry function.
So is better use sed on this file or is correct to use make_desktop_entry?
Comment 14 Mart Raudsepp gentoo-dev 2019-04-25 09:40:20 UTC
I don't care how you make it; here I care about how it's named as installed into /usr/share/applications/
If the upstream one has more data (such as translations), then I would personally patch or sed that; but that's just me, and I'm only here to kill gstreamer:0.10
Comment 15 Marco Genasci 2019-04-25 10:19:43 UTC
Created attachment 574106 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch

Removed make_desktop_entry and keeped the upstream .desktop file
Comment 16 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-04-25 17:12:23 UTC
(In reply to Marco Genasci from comment #10)
> > >+IUSE="libressl"
> > >+
> > >+DEPEND=""
> > >+RDEPEND="|| ( >=app-emulation/virtualbox-5.0.28 >=app-emulation/virtualbox-bin-5.0.28 )
> > >+	virtual/opengl
> > >+	libressl? ( dev-libs/libressl )
> > 
> > Are you sure that it works fine with all four ABI-versions of LibreSSL
> > around?
> Unfortunately not I don't have a libressl environment. 
> I just know that Frédéric Barthelery (a genymotion developer) work with
> latest libressl version (2.8.3).

I'd suggest either dropping libressl support altogether, or limiting it to the one subslot that is known to work.  This is a fragile thing you're doing here, and faking support is worse than not having it all (because it means users can rebuild their whole system only to discover it doesn't work, and they have to rebuild it back to openssl).

> > >+	# patch to support newer hiredis version (0.14)
> > >+	for i in genymotion genyshell gmtool player libcom.so.1.0.0 librendering.so.1.0.0 ; do
> > >+		patchelf --replace-needed libhiredis.so.0.13 libhiredis.so "${S}/${MY_PN}/$i" || die "Unable to patch $i for hiredis"
> > >+		# patch to support libressl
> > >+		if use libressl ; then
> > >+			patchelf --replace-needed libcrypto.so.1.0.0 libcrypto.so "${S}/${MY_PN}/$i" || die "Unable to patch $i for libressl"
> > 
> > Don't patch generic 'foo.so' to executables as that entirely kills the
> > purpose of SOVERSION.  Instead, patch to the correct version if you are sure
> > this is 100% ABI-compatible.
> In this case I patched because original binary is linked to 0.13 so version
> but work also with unstable 0.14 version.
> What is the correct way in this case? Keep 0/0.13 subslot and force ~amd64
> to use it?

Since this package is ~arch-only, just force it for 0/0.14 which is current ~amd64 version.
Comment 17 Marco Genasci 2019-04-26 06:03:19 UTC
Created attachment 574166 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch

- removed libressl support (I can't test)
- forced to dev-libs/hiredis:0/0.14
Comment 18 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-04-26 13:29:17 UTC
Comment on attachment 574166 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch

Thanks for your effort.  We're really close now, a few more nitpicks.

>From 22bb802b831216da8deeca3efdcfa97a648e7263 Mon Sep 17 00:00:00 2001
>From: Marco Genasci <fedeliallalinea@gmail.com>
>Date: Tue, 23 Apr 2019 14:12:03 +0200
>Subject: [PATCH 1/5] app-emulation/genymotion-bin: bump to version 3.0.2
>MIME-Version: 1.0
>Content-Type: text/plain; charset=UTF-8
>Content-Transfer-Encoding: 8bit
>
>Special thanks to Frédéric Barthelery.
>
>Package-Manager: Portage-2.3.62, Repoman-2.3.11
>---
> app-emulation/genymotion-bin/Manifest         |   1 +
> .../genymotion-bin-3.0.2.ebuild               | 108 ++++++++++++++++++
> 2 files changed, 109 insertions(+)
> create mode 100644 app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild
>
>diff --git a/app-emulation/genymotion-bin/Manifest b/app-emulation/genymotion-bin/Manifest
>index 462804264ea..767f04d1b95 100644
>--- a/app-emulation/genymotion-bin/Manifest
>+++ b/app-emulation/genymotion-bin/Manifest
>@@ -1 +1,2 @@
> DIST genymotion-2.12.2-linux_x64.bin 45850812 BLAKE2B 74c3dfa73818f1d7318235d13acbff79d5dd27fd8d7c8cd246046406aaf8f2b9cdb9e9cb7c44bd294b0a047c2bd1e6a419bd4191dd3e332d82494f358cc9d73c SHA512 31b1c9de1a264f285938fcc62612a6aa74393e88f6075664f3e168c5226e74ab25e72061904716f6b2d33ed77221b8c4605c247090c7e2fd149ea8be96f9b5dc
>+DIST genymotion-3.0.2-linux_x64.bin 38744066 BLAKE2B 4c98cdc8d5a5cd98192260893b39dd838bba5903d590268d53223c1ebe712296cf25aa638c16de39ea4f83a5fd8717edbab7c043ff6a12e6455862ecd25ca7cc SHA512 5075d9a9c6c5e84ff90e05e4fa70db98cf89ad25e8765566176b94559f60cc170e383a02f50c752fb63859b757645390d977081d2f79ce0fab8607ebf3e08e01
>diff --git a/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild b/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild
>new file mode 100644
>index 00000000000..c441d63d7b9
>--- /dev/null
>+++ b/app-emulation/genymotion-bin/genymotion-bin-3.0.2.ebuild
>@@ -0,0 +1,108 @@
>+# Copyright 1999-2019 Gentoo Authors
>+# Distributed under the terms of the GNU General Public License v2
>+
>+EAPI=7
>+
>+inherit bash-completion-r1 pax-utils
>+
>+MY_PN="${PN/-bin}"
>+MY_P="${MY_PN}-${PV}"
>+BIN_ARCHIVE="${MY_P}-linux_x64.bin"
>+
>+DESCRIPTION="Complete set of tools that provide a virtual environment for Android"
>+HOMEPAGE="https://genymotion.com"
>+SRC_URI="${BIN_ARCHIVE}"
>+DOWNLOAD_URL="https://www.genymotion.com/download/"
>+
>+LICENSE="genymotion"
>+SLOT="0"
>+KEYWORDS="-* ~amd64"
>+
>+DEPEND=""
>+RDEPEND="|| ( >=app-emulation/virtualbox-5.0.28 >=app-emulation/virtualbox-bin-5.0.28 )
>+	virtual/opengl
>+	|| (
>+		dev-libs/openssl:1.0.0
>+		=dev-libs/openssl-1.0*:0
>+	)
>+	dev-libs/hiredis:0/0.14
>+	sys-apps/util-linux
>+"
>+BDEPEND=">=dev-util/patchelf-0.9_p20180129"
>+
>+RESTRICT="binchecks bindist fetch"
>+S="${WORKDIR}"
>+
>+pkg_nofetch() {
>+	einfo
>+	einfo "Please visit ${DOWNLOAD_URL} and download ${BIN_ARCHIVE}"

DOWNLOAD_URL is used only once.  If you just put the URL inline here, you'd have a better feeling of line length, and I suspect you may be exceeding 80 chars with this.  Also, usually it is worthwhile to put the filename on separate, indented line to make it easier for user to visually 'catch' it and copy without having to read the whole deal.

>+	einfo "which must be placed in DISTDIR directory."
>+	einfo
>+}
>+
>+src_unpack() {
>+	cp "${DISTDIR}/${BIN_ARCHIVE}" "${WORKDIR}" || die "cp failed"
>+}
>+
>+src_prepare() {
>+	default
>+
>+	chmod +x ${BIN_ARCHIVE} || die "chmod failed"
>+	yes | ./${BIN_ARCHIVE} -d "${S}" > /dev/null || die "unpack failed"
>+
>+	# removed windows line for bashcompletion
>+	sed -i "/complete -F _gmtool gmtool.exe/d" "${S}/${MY_PN}/completion/bash/gmtool.bash" || die "sed failed"

There's no need to repeat ${S} when it's the current directory.

>+
>+	# patch to support newer hiredis version (0.14)
>+	for i in genymotion genyshell gmtool player libcom.so.1.0.0 librendering.so.1.0.0 ; do
>+		patchelf --replace-needed libhiredis.so.0.13 libhiredis.so.0.14 "${S}/${MY_PN}/$i" || die "Unable to patch $i for hiredis"

Please always use ${foo} form for variables, i.e. ${i}.

>+	done
>+}
>+
>+src_install() {
>+	insinto /opt/"${MY_PN}"
>+
>+	# Use qt bundled
>+	doins -r "${MY_PN}"/{geoservices,Qt,QtGraphicalEffects,QtLocation,QtPositioning,QtQuick,QtQuick.2}
>+	doins -r "${MY_PN}"/{icons,imageformats,platforms,plugins,sqldrivers,translations,xcbglintegrations}
>+	doins "${MY_PN}"/libQt*
>+	doins "${MY_PN}"/qt.conf
>+	doins "${MY_PN}"/libicu*
>+
>+	doins "${MY_PN}"/{libcom,librendering}.so*
>+	# android library
>+	doins "${MY_PN}"/{libEGL_translator,libGLES_CM_translator,libGLES_V2_translator,libOpenglRender}.so*
>+
>+	find "${ED%/}/opt/${MY_PN}" -name "*.so*" -type f -exec chmod +x {} \; || die "Change .so permission failed"

Instead of changing permissions post-install, move exeinto earlier and use doexe whenever appropriate (yes, doexe is for any file +x, not necessarily programs).

>+
>+	exeinto /opt/"${MY_PN}"
>+	doexe "${MY_PN}"/{genymotion,genyshell,player,genymotionadbtunneld,gmtool}
>+
>+	pax-mark -m "${ED%/}/opt/${MY_PN}/genymotion"

In EAPI 7, ED is guaranteed not to have a trailing slash, so you don't need to strip it anymore.

>+	pax-mark -m "${ED%/}/opt/${MY_PN}/gmtool"
>+
>+	dosym ../"${MY_PN}"/genyshell /opt/bin/genyshell
>+	dosym ../"${MY_PN}"/genymotion /opt/bin/genymotion
>+	dosym ../"${MY_PN}"/gmtool /opt/bin/gmtool
>+
>+	newbashcomp "${MY_PN}/completion/bash/gmtool.bash" gmtool
>+
>+	insinto /usr/share/zsh/site-functions
>+	doins "${MY_PN}/completion/zsh/_gmtool"
>+
>+	sed -i "s:Icon.*:Icon=/opt/${MY_PN}/icons/icon.png:" \
>+		"${HOME}"/.local/share/applications/genymobile-genymotion.desktop || die "sed failed"
>+	sed -i "s:Exec.*:Exec=/opt/${MY_PN}/genymotion:" \
>+		"${HOME}"/.local/share/applications/genymobile-genymotion.desktop || die "sed failed"

Combine both seds, using '-e' for each command you're passing.

>+	insinto /usr/share/applications
>+	doins "${HOME}"/.local/share/applications/genymobile-genymotion.desktop

There's domenu helper for this (in desktop.eclass).

>+}
>+
>+pkg_postinst() {
>+	elog "Genymotion needs adb to work correctly: install with android-sdk-update-manager"
>+	elog "'Android SDK Platform-tools' and 'Android SDK Tools'"
>+	elog "Your user should also be in the android group to work correctly"
>+	elog "Then in Genymotion set the android-sdk-update-manager directory: (Settings->ADB)"
>+	elog
>+	elog "      /opt/android-sdk-update-manager"
>+}
>-- 
>2.21.0
>
Comment 19 Marco Genasci 2019-04-26 14:22:02 UTC
(In reply to Michał Górny from comment #18)
> Comment on attachment 574166 [details, diff] [details, diff]
> 0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch
> 
> >+	done
> >+}
> >+
> >+src_install() {
> >+	insinto /opt/"${MY_PN}"
> >+
> >+	# Use qt bundled
> >+	doins -r "${MY_PN}"/{geoservices,Qt,QtGraphicalEffects,QtLocation,QtPositioning,QtQuick,QtQuick.2}
> >+	doins -r "${MY_PN}"/{icons,imageformats,platforms,plugins,sqldrivers,translations,xcbglintegrations}
> >+	doins "${MY_PN}"/libQt*
> >+	doins "${MY_PN}"/qt.conf
> >+	doins "${MY_PN}"/libicu*
> >+
> >+	doins "${MY_PN}"/{libcom,librendering}.so*
> >+	# android library
> >+	doins "${MY_PN}"/{libEGL_translator,libGLES_CM_translator,libGLES_V2_translator,libOpenglRender}.so*
> >+
> >+	find "${ED%/}/opt/${MY_PN}" -name "*.so*" -type f -exec chmod +x {} \; || die "Change .so permission failed"
> 
> Instead of changing permissions post-install, move exeinto earlier and use
> doexe whenever appropriate (yes, doexe is for any file +x, not necessarily
> programs).
> 
The problem here is that also the directories that I install with doins -r contain some libraries and I "can't use" doexe, in the sense I'll have to install every single file in directories distinguishing what need +x or not.
If necessary, however, I will do it.
Comment 20 Marco Genasci 2019-04-26 14:22:21 UTC
Created attachment 574182 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch
Comment 21 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-04-26 14:45:56 UTC
(In reply to Marco Genasci from comment #19)
> The problem here is that also the directories that I install with doins -r
> contain some libraries and I "can't use" doexe, in the sense I'll have to
> install every single file in directories distinguishing what need +x or not.
> If necessary, however, I will do it.

Ah, ok then.  In any case, I'd still suggest using doexe when you are explicitly installing libraries.  Having them +x twice doesn't hurt, and this avoids triggering 'this seems wrong' alarm LED ;-).
Comment 22 Marco Genasci 2019-04-26 15:02:52 UTC
Created attachment 574276 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch

Maybe the latest :P
Comment 23 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-04-26 19:53:04 UTC
I hoped it would be but I need your signoff on those patches (aka point 2 in the big message above attachment form).  In the meantime, I'll test the ebuilds.
Comment 24 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-04-26 20:07:00 UTC
One more thing.  I'm sorry but I've been wrong, and RESTRICT=binchecks is not a correct replacement for QA_PREBUILT.
Comment 25 Marco Genasci 2019-04-27 12:39:16 UTC
Created attachment 574412 [details, diff]
0001-app-emulation-genymotion-bin-bump-to-version-3.0.2.patch
Comment 26 Marco Genasci 2019-04-27 12:39:35 UTC
Created attachment 574414 [details, diff]
0002-app-emulation-genymotion-bin-removed-old.patch
Comment 27 Larry the Git Cow gentoo-dev 2019-04-27 13:24:41 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91e4999315050c1745130d287e9b5ac01802bab5

commit 91e4999315050c1745130d287e9b5ac01802bab5
Author:     Marco Genasci <fedeliallalinea@gmail.com>
AuthorDate: 2019-04-27 12:37:05 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2019-04-27 13:23:53 +0000

    app-emulation/genymotion-bin: removed old
    
    Signed-off-by: Marco Genasci <fedeliallalinea@gmail.com>
    Package-Manager: Portage-2.3.62, Repoman-2.3.11
    Closes: https://bugs.gentoo.org/674766
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 app-emulation/genymotion-bin/Manifest              |   1 -
 .../genymotion-bin/genymotion-bin-2.12.2.ebuild    | 113 ---------------------
 2 files changed, 114 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=752777e9b54bdb44a692aa7649664badd7d97c4d

commit 752777e9b54bdb44a692aa7649664badd7d97c4d
Author:     Marco Genasci <fedeliallalinea@gmail.com>
AuthorDate: 2019-04-27 12:36:18 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2019-04-27 13:23:38 +0000

    app-emulation/genymotion-bin: bump to version 3.0.2
    
    Special thanks to Frédéric Barthelery.
    
    Signed-off-by: Marco Genasci <fedeliallalinea@gmail.com>
    Package-Manager: Portage-2.3.62, Repoman-2.3.11
    Closes: https://bugs.gentoo.org/674766
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 app-emulation/genymotion-bin/Manifest              |   1 +
 .../genymotion-bin/genymotion-bin-3.0.2.ebuild     | 123 +++++++++++++++++++++
 2 files changed, 124 insertions(+)