diff options
Diffstat (limited to 'sci-geosciences/googleearth/googleearth-7.1.8.3036.ebuild')
-rw-r--r-- | sci-geosciences/googleearth/googleearth-7.1.8.3036.ebuild | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/sci-geosciences/googleearth/googleearth-7.1.8.3036.ebuild b/sci-geosciences/googleearth/googleearth-7.1.8.3036.ebuild new file mode 100644 index 000000000000..518db59913af --- /dev/null +++ b/sci-geosciences/googleearth/googleearth-7.1.8.3036.ebuild @@ -0,0 +1,175 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit pax-utils eutils unpacker fdo-mime gnome2-utils + +DESCRIPTION="A 3D interface to the planet" +HOMEPAGE="https://earth.google.com/" +# no upstream versioning, version determined from help/about +# incorrect digest means upstream bumped and thus needs version bump +SRC_URI="x86? ( https://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb + -> GoogleEarthLinux-${PV}_i386.deb ) + amd64? ( https://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb + -> GoogleEarthLinux-${PV}_amd64.deb )" +LICENSE="googleearth GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +RESTRICT="mirror splitdebug" +IUSE="+bundled-libs" + +QA_PREBUILT="*" + +# TODO: find a way to unbundle libQt +# ./googleearth-bin: symbol lookup error: ./libbase.so: undefined symbol: _Z34QBasicAtomicInt_fetchAndAddOrderedPVii + +RDEPEND=" + dev-libs/glib:2 + dev-libs/nspr + media-libs/fontconfig + media-libs/freetype + net-misc/curl + sys-devel/gcc[cxx] + sys-libs/zlib + virtual/glu + virtual/opengl + virtual/ttf-fonts + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXi + x11-libs/libXext + x11-libs/libXrender + x11-libs/libXau + x11-libs/libXdmcp + !bundled-libs? ( + dev-db/sqlite:3 + dev-libs/expat + dev-libs/nss + sci-libs/gdal + sci-libs/proj + )" +DEPEND="dev-util/patchelf" + +S=${WORKDIR}/opt/google/earth/free + +pkg_nofetch() { + einfo "Wrong checksum or file size means that Google silently replaced the distfile with a newer version." + einfo "Note that Gentoo cannot mirror the distfiles due to license reasons, so we have to follow the bump." + einfo "Please file a version bump bug on https://bugs.gentoo.org (search existing bugs for googleearth first!)." + einfo "By redigesting the file yourself, you will install a different version than the ebuild says, untested!" +} + +src_unpack() { + # default src_unpack fails with deb2targz installed, also this unpacks the data.tar.lzma as well + unpack_deb GoogleEarthLinux-${PV}_$(usex amd64 "amd64" "i386").deb + + if ! use bundled-libs ; then + einfo "removing bundled libs" + cd opt/google/earth/free || die + # sci-libs/gdal + rm -v libgdal.so.1 || die + # dev-db/sqlite + rm -v libsqlite3.so || die + # dev-libs/nss + rm -v libplc4.so libplds4.so libnspr4.so libnssckbi.so libfreebl3.so \ + libnssdbm3.so libnss3.so libnssutil3.so libsmime3.so libnsssysinit.so \ + libsoftokn3.so libssl3.so || die + # dev-libs/expat + rm -v libexpat.so.1 || die + # sci-libs/proj + rm -v libproj.so.0 || die + # dev-qt/qtcore:4 dev-qt/qtgui:4 dev-qt/qtwebkit:4 +# rm -v libQt{Core,Gui,Network,WebKit}.so.4 || die +# rm -rv plugins/imageformats || die + fi +} + +src_prepare() { + + # we have no ld-lsb.so.3 symlink + # thanks to Nathan Phillip Brink <ohnobinki@ohnopublishing.net> for suggesting patchelf + einfo "running patchelf" + patchelf --set-interpreter /lib/ld-linux$(usex amd64 "-x86-64" "").so.2 ${PN}-bin || die "patchelf failed" + + # Set RPATH for preserve-libs handling (bug #265372). + local x + for x in * ; do + # Use \x7fELF header to separate ELF executables and libraries + [[ -f ${x} && $(od -t x1 -N 4 "${x}") == *"7f 45 4c 46"* ]] || continue + fperms u+w "${x}" + patchelf --set-rpath '$ORIGIN' "${x}" || + die "patchelf failed on ${x}" + done + # prepare file permissions so that >patchelf-0.8 can work on the files + fperms u+w plugins/*.so plugins/imageformats/*.so + for x in plugins/*.so ; do + [[ -f ${x} ]] || continue + patchelf --set-rpath '$ORIGIN/..' "${x}" || + die "patchelf failed on ${x}" + done + for x in plugins/imageformats/*.so ; do + [[ -f ${x} ]] || continue + patchelf --set-rpath '$ORIGIN/../..' "${x}" || + die "patchelf failed on ${x}" + done + + epatch "${FILESDIR}"/${PN}-${PV%%.*}-desktopfile.patch +} + +src_install() { + make_wrapper ${PN} ./${PN} /opt/${PN} . + + insinto /usr/share/mime/packages + doins "${FILESDIR}/${PN}-mimetypes.xml" || die + + domenu google-earth.desktop + + for size in 16 22 24 32 48 64 128 256 ; do + newicon -s ${size} product_logo_${size}.png google-earth.png + done + + rm -rf xdg-mime xdg-settings google-earth google-earth.desktop product_logo_* + + insinto /opt/${PN} + doins -r * + + fperms +x /opt/${PN}/${PN}{,-bin} + cd "${ED}" || die + find . -type f -name "*.so.*" -exec fperms +x '{}' + + + pax-mark -m "${ED%/}"/opt/${PN}/${PN}-bin +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + elog "When you get a crash starting Google Earth, try adding a file ~./.config/Google/GoogleEarthPlus.conf" + elog "with the following options:" + elog "lastTip = 4" + elog "enableTips = false" + elog "" + elog "In addition, the use of free video drivers may cause problems associated with using the Mesa" + elog "library. In this case, Google Earth 6x likely only works with the Gallium3D variant." + elog "To select the 32bit graphic library use the command:" + elog " eselect mesa list" + elog "For example, for Radeon R300 (x86):" + elog " eselect mesa set r300 2" + elog "For Intel Q33 (amd64):" + elog " eselect mesa set 32bit i965 2" + elog "You may need to restart X afterwards" + + fdo-mime_desktop_database_update + fdo-mime_mime_database_update + gnome2_icon_cache_update +} + +pkg_postrm() { + fdo-mime_desktop_database_update + fdo-mime_mime_database_update + gnome2_icon_cache_update +} |