ÃֽŠ°Ô½Ã±Û(JAVA)
2017.06.12 / 10:01

google desktop, real 64bit binaries?

±Ý±Ý±Ý
Ãßõ ¼ö 208
Posted: Thu Aug 19, 2010 8:22 pm    Post subject: google desktop, real 64bit binaries?Reply with quote

I am running a 64bit gentoo system.

Google offers a 64bit google desktop, see http://desktop.google.com/linux/

I downloaded the rpm from http://dl.google.com/linux/rpm/stable/x86_64/google-desktop-linux-current.rpm and checked it:

Code:
$file google-desktop-linux-current.rpm
google-desktop-linux-current.rpm: RPM v3 bin i386 google-desktop-linux-1.2.0-0088


Is this really a 64bit binary?

Are there ebuild for this 64bit version available?

I tried to edit the current ebuild from https://bugs.gentoo.org/show_bug.cgi?id=183492

Code:
# cat google-desktop-1.2.ebuild
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header$

inherit eutils multilib rpm mozextension

DESCRIPTION="Google Desktop"
HOMEPAGE="http://desktop.google.com/linux/"
SRC_URI="http://dl.google.com/linux/rpm/stable/x86_64/google-desktop-linux-current.rpm"

LICENSE="as-is"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="firefox thunderbird msoffice"
#RESTRICT="fetch strip"

RDEPEND="virtual/libc
        x86? (
                x11-libs/libX11
                x11-libs/libXi )
        msoffice? ( app-text/catdoc app-text/wv )
        dev-libs/atk
        dev-libs/glib
        x11-libs/gtk+
        x11-libs/pango"
DEPEND="${RDEPEND}"

ENVDDIR="/etc/env.d/"
ENVDFILE="45google-desktop"

S="${WORKDIR}"

pkg_setup() {
}

pkg_nofetch() {
        einfo "Please download ${A} yourself from http://desktop.google.com/linux"
        einfo "and place it in ${DISTDIR}"
}

src_unpack() {
        # You must download google-desktop-linux-1.0.1.0060.rpm
        # from desktop.google.com/linux and put it in ${DISTDIR}
        einfo "Unpacking"
        rpm_src_unpack
}

src_install() {

        # do not include gdl-update since its RH specific
        #dodir /etc/cron.hourly

        #insinto /etc/cron.hourly
        #doins etc/cron.hourly/gdl-update

        dodir /opt/google

        insinto /opt/google/desktop
        doins ${S}/opt/google/desktop/*
        doins ${S}/opt/google/desktop/.gdl_installed_files

        exeinto /opt/google/desktop/bin
        doexe ${S}/opt/google/desktop/bin/gdl_box
        doexe ${S}/opt/google/desktop/bin/gdlinux

        newexe ${S}/opt/google/desktop/bin/gdl_config gdl_config.bin
        newexe ${S}/opt/google/desktop/bin/gdl_fs_crawler gdl_fs_crawler.bin
        newexe ${S}/opt/google/desktop/bin/gdl_indexer gdl_indexer.bin
        newexe ${S}/opt/google/desktop/bin/gdl_service gdl_service.bin
        newexe ${S}/opt/google/desktop/bin/gdl_stats gdl_stats.bin
        newexe ${S}/opt/google/desktop/bin/gdl_update gdl_update.bin

        make_wrapper gdl_config ./gdl_config.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_fs_crawler ./gdl_fs_crawler.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_indexer ./gdl_indexer.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_service ./gdl_service.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_stats ./gdl_stats.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_update ./gdl_update.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin

        insinto /opt/google/desktop/resource
        doins ${S}/opt/google/desktop/resource/*

        insinto /opt/google/desktop/xdg
        doins ${S}/opt/google/desktop/xdg/*

        insinto /usr/bin
        dosym /opt/google/desktop/bin/gdlinux /usr/bin/gdlinux

        into /opt/google/desktop

        insinto /opt/google/desktop
        dolib.so ${S}/opt/google/desktop/lib/*
        dosym /opt/google/desktop/lib64 /opt/google/desktop/lib

        dodir /var/cache/google/desktop
        keepdir /var/cache/google/desktop

        fperms 755 /var/cache/google
        fperms 777 /var/cache/google/desktop
        fperms o+t /var/cache/google/desktop

        cd ${S}/opt/google/desktop/xdg/
        insinto /usr/share/desktop-directories
        doins google-gdl.directory
        domenu google-gdl.desktop google-gdl-preferences.desktop

        # Install Extensions
        declare MOZILLA_FIVE_HOME
        if use firefox; then
                if has_version '>=www-client/mozilla-firefox-1.5'; then
                        MOZILLA_FIVE_HOME="/usr/$(get_libdir)/mozilla-firefox"
                        xpi_install ${S}/opt/google/desktop/plugin/firefox \
                        || die "xpi install for firefox failed!"
                fi
                if has_version '>=www-client/mozilla-firefox-bin-1.5'; then
                        MOZILLA_FIVE_HOME="/opt/firefox"
                        xpi_install ${S}/opt/google/desktop/plugin/firefox \
                        || die "xpi install for firefox-bin failed!"
                fi
        fi
        if use thunderbird; then
                if has_version '>=mail-client/mozilla-thunderbird-1.5'; then
                        MOZILLA_FIVE_HOME="/usr/$(get_libdir)/mozilla-thunderbird"
                        xpi_install ${S}/opt/google/desktop/plugin/thunderbird \
                        || die "xpi install for thunderbird failed!"
                fi
                if has_version '>=mail-client/mozilla-thunderbird-bin-1.5'; then
                        MOZILLA_FIVE_HOME="/opt/thunderbird"
                        xpi_install ${S}/opt/google/desktop/plugin/thunderbird \
                        || die "xpi install for thunderbird-bin failed!"
                fi
        fi

        # Update env.d
        dodir /etc/env.d
        echo "LDPATH=/opt/google/desktop/lib/" > ${D}${ENVDDIR}${ENVDFILE}
}

pkg_postinst ()
{
        env-update
        source /etc/profile
}


After recreating the manifest I tried to reinstall google-desktop. But it fails with a checksum error:
Code:
# emerge google-desktop

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[ebuild  N    ] app-misc/google-desktop-1.2  USE="firefox -msoffice -thunderbird" 2,584 kB [1]

Total: 1 package (1 new), Size of downloads: 2,584 kB
Portage tree and overlays:
 [0] /usr/portage
 [1] /usr/local/portage


>>> Verifying ebuild manifests

>>> Emerging (1 of 1) app-misc/google-desktop-1.2 from unknown repo
Refetching... File renamed to '/usr/portage/distfiles/google-desktop-linux-current.rpm._checksum_failure_.r_oXyl'

>>> Downloading 'http://distfiles.gentoo.org/distfiles/google-desktop-linux-current.rpm'
--2010-08-19 22:12:20--  http://distfiles.gentoo.org/distfiles/google-desktop-linux-current.rpm
Resolving distfiles.gentoo.org... 149.20.20.135, 140.211.166.134, 216.165.129.135, ...
Connecting to distfiles.gentoo.org|149.20.20.135|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://mirrors.kernel.org/gentoo/distfiles/google-desktop-linux-current.rpm [following]
--2010-08-19 22:12:21--  http://mirrors.kernel.org/gentoo/distfiles/google-desktop-linux-current.rpm
Resolving mirrors.kernel.org... 130.239.17.6, 199.6.1.174
Connecting to mirrors.kernel.org|130.239.17.6|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2010-08-19 22:12:21 ERROR 404: Not Found.

>>> Downloading 'http://dl.google.com/linux/rpm/stable/x86_64/google-desktop-linux-current.rpm'
--2010-08-19 22:12:21--  http://dl.google.com/linux/rpm/stable/x86_64/google-desktop-linux-current.rpm
Resolving dl.google.com... 209.85.135.91, 209.85.135.190, 209.85.135.93, ...
Connecting to dl.google.com|209.85.135.91|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8372107 (8.0M) [application/x-redhat-package-manager]
Saving to: `/usr/portage/distfiles/google-desktop-linux-current.rpm'

100%[=====================================================================================================>] 8,372,107    721K/s   in 11s     

2010-08-19 22:12:32 (726 KB/s) - `/usr/portage/distfiles/google-desktop-linux-current.rpm' saved [8372107/8372107]

('Filesize does not match recorded size', 8372107, 2645672)
!!! Fetched file: google-desktop-linux-current.rpm VERIFY FAILED!
!!! Reason: Filesize does not match recorded size
!!! Got:      8372107
!!! Expected: 2645672
Refetching... File renamed to '/usr/portage/distfiles/google-desktop-linux-current.rpm._checksum_failure_.r_oXyl'

!!! Couldn't download 'google-desktop-linux-current.rpm'. Aborting.
 * Fetch failed for 'app-misc/google-desktop-1.2', Log file:
 *  '/var/tmp/portage/app-misc/google-desktop-1.2/temp/build.log'


How to fix this problem/ebuild?
_________________
Please notice the back of this message.


Last edited by menschmeier on Fri Aug 20, 2010 1:59 pm; edited 1 time in total




delete the line with google-desktop-linux-current.rpm in the file Manifest

and re-digest the local overlay / repository

that way google-desktop-linux-current.rpm will be re-fetched and new checksums will be created and added to the Manifest file :idea:
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa




Ok, done. I installed it.
Thank you, kernelOfTruth.

But something is wrong with the stuff google delivered. google-desktop doesn't start now. The reason is a bad LD_LIBRARY_PATH

This is the content of /opt/google/desktop:
Code:
# ll /opt/google/desktop
total 16K
-rw-r--r-- 1 root root  141 Aug 20 15:20 README
-rw-r--r-- 1 root root  129 Aug 20 15:20 VERSION
drwxr-xr-x 2 root root 4.0K Aug 20 15:20 bin
drwxr-xr-x 2 root root 4.0K Aug 20 15:20 lib64
drwxr-xr-x 2 root root  140 Aug 20 15:20 resource
drwxr-xr-x 2 root root   95 Aug 20 15:20 xdg


But all the scripts expect the libs to be in a folder named lib:
Code:
# cat bin/gdl_service
#!/bin/sh
cd "/opt/google/desktop/bin"
if [ -n "/opt/google/desktop/lib" ] ; then
        if [ "${LD_LIBRARY_PATH+set}" = "set" ] ; then
                export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/google/desktop/lib"
        else
                export LD_LIBRARY_PATH="/opt/google/desktop/lib"
        fi
fi
exec ./gdl_service.bin "$@"


Code:
# cat bin/gdlinux
#!/bin/bash
# Copyright 2007 Google Inc. All Rights Reserved.

GDL_LD_LIBRARY_PATH="/opt/google/desktop/lib:$LD_LIBRARY_PATH" \
/opt/google/desktop/bin/gdl_box $@


So I have to create a symlink lib --> lib64.
_________________
Please notice the back of this message.




My final amd64-ebuild, maybe this one can still be improved:

Code:
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header$

inherit eutils multilib rpm mozextension

DESCRIPTION="Google Desktop"
HOMEPAGE="http://desktop.google.com/linux/"
SRC_URI="http://dl.google.com/linux/rpm/stable/x86_64/google-desktop-linux-current.rpm"

LICENSE="as-is"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="firefox thunderbird msoffice"
#RESTRICT="fetch strip"

RDEPEND="virtual/libc
                x11-libs/libX11
                x11-libs/libXi
        msoffice? ( app-text/catdoc app-text/wv )
        dev-libs/atk
        dev-libs/glib
        x11-libs/gtk+
        x11-libs/pango"
DEPEND="${RDEPEND}"

ENVDDIR="/etc/env.d/"
ENVDFILE="45google-desktop"

S="${WORKDIR}"

pkg_setup() {
        einfo ""
}

pkg_nofetch() {
        einfo "Please download ${A} yourself from http://desktop.google.com/linux"
        einfo "and place it in ${DISTDIR}"
}

src_unpack() {
        # You must download google-desktop-linux-1.0.1.0060.rpm
        # from desktop.google.com/linux and put it in ${DISTDIR}
        einfo "Unpacking"
        rpm_src_unpack
}

src_install() {

        # do not include gdl-update since its RH specific
        #dodir /etc/cron.hourly

        #insinto /etc/cron.hourly
        #doins etc/cron.hourly/gdl-update

        dodir /opt/google

        insinto /opt/google/desktop
        doins ${S}/opt/google/desktop/*
        doins ${S}/opt/google/desktop/.gdl_installed_files

        exeinto /opt/google/desktop/bin
        doexe ${S}/opt/google/desktop/bin/gdl_box
        doexe ${S}/opt/google/desktop/bin/gdlinux

        newexe ${S}/opt/google/desktop/bin/gdl_config gdl_config.bin
        newexe ${S}/opt/google/desktop/bin/gdl_fs_crawler gdl_fs_crawler.bin
        newexe ${S}/opt/google/desktop/bin/gdl_indexer gdl_indexer.bin
        newexe ${S}/opt/google/desktop/bin/gdl_service gdl_service.bin
        newexe ${S}/opt/google/desktop/bin/gdl_stats gdl_stats.bin
        newexe ${S}/opt/google/desktop/bin/gdl_update gdl_update.bin

        make_wrapper gdl_config ./gdl_config.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_fs_crawler ./gdl_fs_crawler.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_indexer ./gdl_indexer.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_service ./gdl_service.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_stats ./gdl_stats.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin
        make_wrapper gdl_update ./gdl_update.bin /opt/google/desktop/bin /opt/google/desktop/lib /opt/google/desktop/bin

        insinto /opt/google/desktop/resource
        doins ${S}/opt/google/desktop/resource/*

        insinto /opt/google/desktop/xdg
        doins ${S}/opt/google/desktop/xdg/*

        insinto /usr/bin
        dosym /opt/google/desktop/bin/gdlinux /usr/bin/gdlinux

        into /opt/google/desktop

        insinto /opt/google/desktop
        dolib.so ${S}/opt/google/desktop/lib/*
        dosym /opt/google/desktop/lib64 /opt/google/desktop/lib

        dodir /var/cache/google/desktop
        keepdir /var/cache/google/desktop

        fperms 755 /var/cache/google
        fperms 777 /var/cache/google/desktop
        fperms o+t /var/cache/google/desktop

        cd ${S}/opt/google/desktop/xdg/
        insinto /usr/share/desktop-directories
        doins google-gdl.directory
        domenu google-gdl.desktop google-gdl-preferences.desktop

        # Install Extensions
        declare MOZILLA_FIVE_HOME
        if use firefox; then
                if has_version '>=www-client/mozilla-firefox-1.5'; then
                        MOZILLA_FIVE_HOME="/usr/$(get_libdir)/mozilla-firefox"
                        xpi_install ${S}/opt/google/desktop/plugin/firefox \
                        || die "xpi install for firefox failed!"
                fi
                if has_version '>=www-client/mozilla-firefox-bin-1.5'; then
                        MOZILLA_FIVE_HOME="/opt/firefox"
                        xpi_install ${S}/opt/google/desktop/plugin/firefox \
                        || die "xpi install for firefox-bin failed!"
                fi
        fi
        if use thunderbird; then
                if has_version '>=mail-client/mozilla-thunderbird-1.5'; then
                        MOZILLA_FIVE_HOME="/usr/$(get_libdir)/mozilla-thunderbird"
                        xpi_install ${S}/opt/google/desktop/plugin/thunderbird \
                        || die "xpi install for thunderbird failed!"
                fi
                if has_version '>=mail-client/mozilla-thunderbird-bin-1.5'; then
                        MOZILLA_FIVE_HOME="/opt/thunderbird"
                        xpi_install ${S}/opt/google/desktop/plugin/thunderbird \
                        || die "xpi install for thunderbird-bin failed!"
                fi
        fi

        # Update env.d
        dodir /etc/env.d
        echo "LDPATH=/opt/google/desktop/lib64/" > ${D}${ENVDDIR}${ENVDFILE}
}

pkg_postinst ()
{
        env-update
        source /etc/profile
}

_________________
Please notice the back of this message.