504 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			504 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# Copyright 2009, 2010 Elias Pipping <pipping@exherbo.org>
 | 
						|
# Copyright 2009 Heiko Przybyl <zuxez@cs.tu-berlin.de>
 | 
						|
# Distributed under the terms of the GNU General Public License v2
 | 
						|
 | 
						|
# You'll find new releases here:
 | 
						|
# - http://omahaproxy.appspot.com/viewer
 | 
						|
# - http://googlechromereleases.blogspot.com
 | 
						|
 | 
						|
CHROMIUM_CHANNEL=stable
 | 
						|
 | 
						|
MY_PN=chromium
 | 
						|
MY_PNV=${MY_PN}-${PV}
 | 
						|
 | 
						|
require freedesktop-desktop gtk-icon-cache python [ has_lib=false ] toolchain-funcs
 | 
						|
 | 
						|
myexparam patchset=
 | 
						|
 | 
						|
exparam -v PATCHSET patchset
 | 
						|
 | 
						|
if [[ -z $(exparam patchset) ]]; then
 | 
						|
    die "patchset exparam needs to be set!"
 | 
						|
fi
 | 
						|
 | 
						|
export_exlib_phases pkg_setup src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm
 | 
						|
 | 
						|
SUMMARY="The open-source project behind Google Chrome"
 | 
						|
DESCRIPTION="Browser based on Blink and Google's V8 JavaScript engine."
 | 
						|
HOMEPAGE="https://www.chromium.org/Home"
 | 
						|
DOWNLOADS="
 | 
						|
    https://storage.googleapis.com/chromium-browser-official/${MY_PNV}.tar.xz
 | 
						|
    https://gsdview.appspot.com/chromium-browser-official/${MY_PNV}.tar.xz
 | 
						|
    https://github.com/gcarq/inox-patchset/archive/${PATCHSET}.tar.gz -> inox-patches-${PATCHSET}.tar.gz
 | 
						|
"
 | 
						|
 | 
						|
LICENCES="
 | 
						|
    BSD-3         [[ note = [ chromium itself ] ]]
 | 
						|
    Apache-2.0    [[ note = [ skia ] ]]
 | 
						|
    BSD-2         [[ note = [ bsdiff, bspatch ] ]]
 | 
						|
    BSD-3         [[ note = [ dtoa, jscre, modp_b64, v8, webkit ] ]]
 | 
						|
    GPL-2         [[ note = [ hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr, nss ] ]]
 | 
						|
    LGPL-2        [[ note = [ webkit ] ]]
 | 
						|
    LGPL-2.1      [[ note = [ ffmpeg, hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr,
 | 
						|
                              nss, webkit ] ]]
 | 
						|
    MPL-1.1       [[ note = [ hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr, nss ] ]]
 | 
						|
    MIT           [[ note = [ harfbuzz ] ]]
 | 
						|
    public-domain [[ note = [ lzma_sdk, sqlite ] ]]
 | 
						|
    GPL-3         [[ note = [ inox patchset ] ]]
 | 
						|
"
 | 
						|
SLOT="0"
 | 
						|
MYOPTIONS="
 | 
						|
    bindist
 | 
						|
    cups
 | 
						|
    gconf
 | 
						|
    keyring [[ description = [ Store passwords using GNOME Keyring ] ]]
 | 
						|
    pulseaudio
 | 
						|
    platform:
 | 
						|
        amd64
 | 
						|
        x86
 | 
						|
    x86_cpu_features:
 | 
						|
        sse2
 | 
						|
    ( providers: jpeg-turbo )
 | 
						|
    ( providers: eudev systemd ) [[ number-selected = exactly-one ]]
 | 
						|
    ( providers: gtk2 gtk3 ) [[ number-selected = exactly-one ]]
 | 
						|
"
 | 
						|
 | 
						|
# http://crbug.com/62803 tracks the addition of a use_openssl option. Once that bug is closed,
 | 
						|
# use_openssl=1 can be passed; dev-libs/{nss,nspr} will no longer be needed. Note that that flag
 | 
						|
# currently does not use system openssl but a bundled version from third_party/openssl!
 | 
						|
# There is use_system_ssl for that
 | 
						|
 | 
						|
# 46.0.2490.86 fails with the latest libvpx-1.5.0
 | 
						|
# media-libs/libvpx[>=1.?.0]
 | 
						|
DEPENDENCIES="
 | 
						|
    build:
 | 
						|
        dev-lang/python:*[>=2.5&<3]
 | 
						|
        dev-lang/yasm
 | 
						|
        dev-perl/Switch
 | 
						|
        dev-util/gperf[>=3.0.4]
 | 
						|
        media-libs/libexif
 | 
						|
        sys-devel/bison
 | 
						|
        sys-devel/ninja
 | 
						|
    build+run:
 | 
						|
        app-speech/speechd[>=0.8]
 | 
						|
        dev-libs/atk
 | 
						|
        dev-libs/dbus-glib:1[>=0.84]
 | 
						|
        dev-libs/expat
 | 
						|
        dev-libs/glib:2[>=2.26] [[ note = [ for gsettings ] ]]
 | 
						|
        dev-libs/libevent[>=1.4.13]
 | 
						|
        dev-libs/libxml2:2.0[>=2.6.32]
 | 
						|
        dev-libs/libxslt[>=1.1.26]
 | 
						|
        dev-libs/nspr[>=4.0]
 | 
						|
        dev-libs/nss[>=3.12.3] [[ note = [ see base/nss_util.cc for the version requirement ] ]]
 | 
						|
        fonts/corefonts
 | 
						|
        media-libs/flac
 | 
						|
        media-libs/fontconfig
 | 
						|
        media-libs/freetype:2
 | 
						|
        media-libs/libpng:=[>=1.2.37]
 | 
						|
        media-libs/libwebp[>=0.4]
 | 
						|
        media-libs/opus[>=1.1-r1]
 | 
						|
        media-libs/speex
 | 
						|
        net-libs/libsrtp
 | 
						|
        sys-apps/dbus
 | 
						|
        sys-apps/pciutils
 | 
						|
        providers:eudev? ( sys-apps/eudev )
 | 
						|
        providers:systemd? ( sys-apps/systemd )
 | 
						|
        sys-libs/zlib[>=1.2.7-r1]
 | 
						|
        sys-sound/alsa-lib
 | 
						|
        virtual/usb:1
 | 
						|
        x11-libs/cairo[X]
 | 
						|
        x11-libs/gdk-pixbuf:2.0
 | 
						|
        providers:gtk2? ( x11-libs/gtk+:2[>=2.16.0] )
 | 
						|
        providers:gtk3? ( x11-libs/gtk+:3 )
 | 
						|
        x11-libs/harfbuzz
 | 
						|
        x11-libs/libX11
 | 
						|
        x11-libs/libXScrnSaver
 | 
						|
        x11-libs/libXcomposite
 | 
						|
        x11-libs/libXdamage
 | 
						|
        x11-libs/libXext
 | 
						|
        x11-libs/libXfixes
 | 
						|
        x11-libs/libXi
 | 
						|
        x11-libs/libXrandr
 | 
						|
        x11-libs/libXrender
 | 
						|
        x11-libs/libXtst
 | 
						|
        x11-libs/pango
 | 
						|
        cups? (
 | 
						|
            dev-libs/libgcrypt
 | 
						|
            net-print/cups
 | 
						|
            providers:gtk2? ( x11-libs/gtk+:2[>=2.16.0][cups] )
 | 
						|
            providers:gtk3? ( x11-libs/gtk+:3[cups] )
 | 
						|
        )
 | 
						|
        gconf? ( gnome-platform/GConf:2 )
 | 
						|
        keyring? ( gnome-desktop/libgnome-keyring:1 )
 | 
						|
        providers:jpeg-turbo? ( media-libs/libjpeg-turbo )
 | 
						|
        pulseaudio? ( media-sound/pulseaudio )
 | 
						|
    recommendation:
 | 
						|
        fonts/corefonts [[ description = [ Needed to display some websites ] ]]
 | 
						|
        x11-apps/xdg-utils [[ description = [ Set as default browser. Use application launchers for downloaded files (only for Gnome/KDE/Xfce) ] ]]
 | 
						|
    suggestion:
 | 
						|
        gnome-desktop/adwaita-icon-theme [[ description = [ For the downloads tab ] ]]
 | 
						|
"
 | 
						|
 | 
						|
WORK=${WORKBASE}/${MY_PNV}
 | 
						|
 | 
						|
DEFAULT_SRC_COMPILE_PARAMS=( chrome chrome_sandbox )
 | 
						|
 | 
						|
cxx_is_gxx() {
 | 
						|
    [[ ${CXX} == *g++* ]] && [[ ${CXX} != *clang* ]]
 | 
						|
}
 | 
						|
 | 
						|
eninja() {
 | 
						|
    edo ninja -j ${EXJOBS:-1} -v "$@"
 | 
						|
}
 | 
						|
 | 
						|
inox_pkg_setup() {
 | 
						|
    export BUILDTYPE=Release
 | 
						|
    export V=1
 | 
						|
 | 
						|
    # For ffmpeg's linking
 | 
						|
    export LD="${CXX}"
 | 
						|
 | 
						|
    exdirectory --allow /opt
 | 
						|
}
 | 
						|
 | 
						|
inox_src_prepare() {
 | 
						|
    # odd upstream git versioning
 | 
						|
    edo rm -r "${WORKBASE}"/inox-patchset-${PATCHSET}/archive
 | 
						|
    # this one is unneded and doesn't apply cleanly
 | 
						|
    edo rm "${WORKBASE}"/inox-patchset-${PATCHSET}/launcher-branding.patch
 | 
						|
    # fire up the inox patches
 | 
						|
    expatch "${WORKBASE}"/inox-patchset-${PATCHSET}/
 | 
						|
 | 
						|
    default
 | 
						|
 | 
						|
    edo sed \
 | 
						|
        -e '/-O>(debug_optimize)/d' \
 | 
						|
        -e '/-O>(release_optimize)/d' \
 | 
						|
        -i build/common.gypi
 | 
						|
 | 
						|
    # chromium uses hardcoded calls to ar, pkg-config, and it doesn't even always
 | 
						|
    # respect its own AR_target variable. Fix this for multiarch by adding
 | 
						|
    # appropriate symlinks here and adding this directory to the PATH
 | 
						|
    local dir=${WORKBASE}/symlinked-build-tools
 | 
						|
    edo mkdir -p ${dir}
 | 
						|
    edo ln -s /usr/$(exhost --target)/bin/$(exhost --target)-pkg-config ${dir}/pkg-config
 | 
						|
    edo ln -s /usr/$(exhost --target)/bin/$(exhost --target)-ar ${dir}/ar
 | 
						|
    edo ln -s /usr/$(exhost --target)/bin/$(exhost --target)-cc ${dir}/gcc
 | 
						|
    edo ln -s /usr/$(exhost --target)/bin/$(exhost --target)-c++ ${dir}/g++
 | 
						|
 | 
						|
    # and, they assume python is python2!
 | 
						|
    edo ln -s /usr/$(exhost --target)/bin/python2 ${dir}/python
 | 
						|
    export PATH="${dir}:${PATH}"
 | 
						|
 | 
						|
    # 46.0.2490.86 fails with Exception: Failed to open test/data/webui/i18n_process_css_test.html while
 | 
						|
    # trying to flatten test/data/webui/i18n_process_css_test.html
 | 
						|
    edo touch chrome/test/data/webui/i18n_process_css_test.html
 | 
						|
}
 | 
						|
 | 
						|
# See http://code.google.com/p/chromium/wiki/LinuxBuildInstructions
 | 
						|
inox_src_configure() {
 | 
						|
    local myconf=(
 | 
						|
        # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
 | 
						|
        # Note: These are for Exherbo use ONLY. For your own distribution, please get
 | 
						|
        # your own set of keys.
 | 
						|
        google_api_key=AIzaSyBEuNWzExJ_qIX-NT8OY_RGN6d6ZLWnExA
 | 
						|
        google_default_client_id=750749113475.apps.googleusercontent.com
 | 
						|
        google_default_client_secret=hw21UnHlcmzSMxzS6VACbPTq
 | 
						|
 | 
						|
        # Build against local system libraries instead of using a provided sysroot
 | 
						|
        $(ever at_least 49 && echo use_sysroot=0 )
 | 
						|
 | 
						|
        # Disable the voice-recognition support (Ok Google) hotwords plugin. It downloads a binary
 | 
						|
        # blob with which has access to the microphone, see debian bug #786909.
 | 
						|
        enable_hotwording=0
 | 
						|
 | 
						|
        # Always available on amd64, no reason to force it on x86
 | 
						|
        disable_sse2=$(option platform:amd64 0 $(option x86_cpu_features:sse2 0 1))
 | 
						|
 | 
						|
        disable_nacl=1
 | 
						|
 | 
						|
        no_strict_aliasing=1
 | 
						|
 | 
						|
        use_cups=$(option cups 1 0)
 | 
						|
        use_gtk3=$(option providers:gtk3 1 0)
 | 
						|
        use_gconf=$(option gconf 1 0)
 | 
						|
        use_gnome_keyring=$(option keyring 1 0)
 | 
						|
        use_pulseaudio=$(option pulseaudio 1 0)
 | 
						|
        # hard disable kerberos support (requires heimdal)
 | 
						|
        use_kerberos=0
 | 
						|
 | 
						|
        # Note: libmtp appears to be unused
 | 
						|
        use_system_bzip2=1
 | 
						|
        use_system_expat=1
 | 
						|
        use_system_ffmpeg=0
 | 
						|
        use_system_flac=1
 | 
						|
        use_system_harfbuzz=1
 | 
						|
        # our version is too recent; unicode/{bms,bmsearch,colldata}.h have been removed
 | 
						|
        use_system_icu=0
 | 
						|
        use_system_libevent=1
 | 
						|
        # Note: We can choose between (B) bundled jpeg, (BT) bundled jpeg-turbo and (S{,T}) system jpeg{,-turbo}.
 | 
						|
        # If the system jpeg lib is libjpeg-turbo we use it, otherwise we fall back to (BT).
 | 
						|
        use_system_libjpeg=$(option providers:jpeg-turbo 1 0)
 | 
						|
        # If use_system_libjpeg is enabled, use_libjpeg_turbo is ignored
 | 
						|
        use_libjpeg_turbo=1
 | 
						|
        use_system_libpng=1
 | 
						|
        use_system_libsrtp=1
 | 
						|
        # http://crbug.com/266149
 | 
						|
        use_system_libusb=0
 | 
						|
        # 46.0.2490.86: Build error with libvpx-1.5.0
 | 
						|
        use_system_libvpx=0
 | 
						|
        use_system_libwebp=1
 | 
						|
        use_system_libxml=1
 | 
						|
        use_system_libxslt=1
 | 
						|
        use_system_minizip=1
 | 
						|
        use_system_nspr=1
 | 
						|
        use_system_opus=1
 | 
						|
        # http://crbug.com/351093
 | 
						|
        use_system_protobuf=0
 | 
						|
        use_system_speex=1
 | 
						|
        # http://crbug.com/22208
 | 
						|
        use_system_sqlite=0
 | 
						|
        use_system_v8=0
 | 
						|
        use_system_xdg_utils=1
 | 
						|
        use_system_yasm=1
 | 
						|
        # Linking failure with system zlib
 | 
						|
        use_system_zlib=0
 | 
						|
 | 
						|
        # Do not try using (bundled) gold
 | 
						|
        linux_use_bundled_binutils=0
 | 
						|
        linux_use_bundled_gold=0
 | 
						|
        linux_use_gold_flags=0
 | 
						|
        # Do not try using (bundled) clang
 | 
						|
        clang=0
 | 
						|
        host_clang=0
 | 
						|
 | 
						|
        # Link instead of using dlopen()
 | 
						|
        linux_link_gnome_keyring=1
 | 
						|
        linux_link_gsettings=1
 | 
						|
        linux_link_libpci=1
 | 
						|
        linux_link_libspeechd=1
 | 
						|
        linux_link_pulseaudio=1
 | 
						|
 | 
						|
        # Tell chromium to look in the prefixed speech-dispatcher include directory, as is the
 | 
						|
        # case for speechd[>=0.8]
 | 
						|
        libspeechd_h_prefix='speech-dispatcher/'
 | 
						|
 | 
						|
        werror=
 | 
						|
        disable_fatal_linker_warnings=1
 | 
						|
 | 
						|
        python_ver=$(python_get_abi)
 | 
						|
 | 
						|
        $(option platform:amd64 && echo target_arch=x64)
 | 
						|
        $(option platform:x86 && echo target_arch=ia32)
 | 
						|
 | 
						|
        # gcc_version is actually the version of g++,
 | 
						|
        # similarly changes to cflags affect C and C++ code
 | 
						|
        $(cxx_is_gxx || echo gcc_version=unknown)
 | 
						|
 | 
						|
        # Build ffmpeg as a shared library
 | 
						|
        ffmpeg_component=shared_library
 | 
						|
        # Declare that we support H.264, etc.
 | 
						|
        proprietary_codecs=$(option bindist 0 1)
 | 
						|
        # Compile in H.264, etc.
 | 
						|
        ffmpeg_branding=$(option bindist Chromium Chrome)
 | 
						|
 | 
						|
        # Disable HiDPI support until someone needs and can test it
 | 
						|
        enable_hidpi=0
 | 
						|
 | 
						|
        # inox specific
 | 
						|
        enable_webrtc=0
 | 
						|
        enable_google_now=0
 | 
						|
        enable_remoting=0
 | 
						|
        safe_browsing_mode=0
 | 
						|
        enable_rlz=0
 | 
						|
        enable_hangout_services_extension=0
 | 
						|
        branding=Chromium
 | 
						|
        google_chrome_build=0
 | 
						|
        enable_web_speech=1
 | 
						|
        enable_wifi_bootstrapping=0
 | 
						|
        enable_speech_input=0
 | 
						|
        enable_pre_sync_backup=0
 | 
						|
        enable_print_preview=0
 | 
						|
    )
 | 
						|
 | 
						|
    if [[ ${CHROMIUM_CHANNEL} == "stable" ]]; then
 | 
						|
        myconf+=(
 | 
						|
            enable_pepper_cdms=1
 | 
						|
            enable_widevine=1
 | 
						|
        )
 | 
						|
    fi
 | 
						|
 | 
						|
    local mc myconf_concat
 | 
						|
    for mc in "${myconf[@]}"; do
 | 
						|
        myconf_concat+="-D${mc} "
 | 
						|
    done
 | 
						|
    edo ./build/linux/unbundle/replace_gyp_files.py ${myconf_concat}
 | 
						|
 | 
						|
    # Pass --depth because of this:
 | 
						|
    #   Exception: Could not automatically locate src directory.
 | 
						|
    #   This is a temporary Chromium feature that will be removed.  Use --depth as a workaround.
 | 
						|
    edo env GYP_GENERATORS=ninja build/gyp_chromium --depth "${WORK}" ${myconf_concat}
 | 
						|
}
 | 
						|
 | 
						|
inox_src_compile() {
 | 
						|
    eninja -C out/${BUILDTYPE} chrome chrome_sandbox
 | 
						|
}
 | 
						|
 | 
						|
inox_src_test() {
 | 
						|
    local disabled_base_tests=(
 | 
						|
        FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe            # Needs a utf8 locale
 | 
						|
        LoggingTest.CheckStreamsAreLazy                         # does not like to be sandboxed
 | 
						|
        OutOfMemoryDeathTest.ViaSharedLibraries
 | 
						|
        ProcessMetricsTest.GetNumberOfThreads
 | 
						|
        RTLTest.WrapPathWithLTRFormatting
 | 
						|
        StatsTableTest.MultipleThreads                          # Flaky
 | 
						|
        # Need access to a running X11 server (and potentially more)
 | 
						|
        'MessageLoopTestTypeUI.*'
 | 
						|
        MessageLoopTest.IsType
 | 
						|
        'WaitableEventWatcherTest.*'
 | 
						|
        'MessagePumpGLibTest.*'
 | 
						|
        'MessagePumpLibeventTest.*'
 | 
						|
        'TimerTest.*'
 | 
						|
        # fails with "out of memory" even with plenty free mem
 | 
						|
        SecurityTest.MemoryAllocationRestrictionsNew
 | 
						|
        SecurityTest.MemoryAllocationRestrictionsNewArray
 | 
						|
        SecurityTest.NewOverflow
 | 
						|
        # Fails randomly on different systems
 | 
						|
        SysInfoTest.MaxSharedMemorySize
 | 
						|
        TraceEventTestFixture.TraceSampling
 | 
						|
        # 42.0.2311.135
 | 
						|
        ProcessUtilTest.CurrentDirectory
 | 
						|
    )
 | 
						|
    local disabled_crypto_tests=(
 | 
						|
        # 39.0.2171.95
 | 
						|
        SignatureVerifierTest.VerifyRSAPSS
 | 
						|
    )
 | 
						|
    local disabled_gn_tests=(
 | 
						|
        BuilderTest.BasicDeps
 | 
						|
        # 41.0.2272.76
 | 
						|
        Label.Resolve
 | 
						|
    )
 | 
						|
    local disabled_ui_base_tests=(
 | 
						|
        # Needs fonts/corefonts
 | 
						|
        FontTest.LoadArial
 | 
						|
 | 
						|
        FontTest.GetActualFontNameForTesting
 | 
						|
 | 
						|
        # Need access to a running X11 server (and potentially more)
 | 
						|
        'CanvasTest.*'
 | 
						|
        'ClipboardTest.*'
 | 
						|
        'ClipboardTest/0.*'
 | 
						|
        'FontTest.AvgCharWidth'
 | 
						|
        'FontTest.AvgWidths'
 | 
						|
        'FontTest.Widths'
 | 
						|
        'GtkExpandedContainerTest.*'
 | 
						|
        'RenderTextTest.*'
 | 
						|
        'ResourceBundleTest.DelegateGetFontList'
 | 
						|
        'ScreenTest.*'
 | 
						|
        'TextEliderTest.*'
 | 
						|
        'TextUtilsTest.GetStringWidth'
 | 
						|
        'AnimationContainerTest.*'
 | 
						|
        'AnimationTest.*'
 | 
						|
        'SlideAnimationTest.*'
 | 
						|
        'OSExchangeDataProviderAuraX11Test.*'
 | 
						|
        'InputMethodBaseTest.*'
 | 
						|
        'OSExchangeDataTest.*'
 | 
						|
 | 
						|
        # These have been failing for a long time but are not critical. http://crbug.com/110711
 | 
						|
        FontListTest.FontDescString_FromFontVector
 | 
						|
        FontListTest.Fonts_DescStringWithStyleInFlexibleFormat_RoundTrip
 | 
						|
        FontListTest.Fonts_FontVector_RoundTrip
 | 
						|
        FontListTest.Fonts_FromDescString
 | 
						|
        FontListTest.Fonts_FromDescStringInFlexibleFormat
 | 
						|
        FontListTest.Fonts_FromDescStringWithStyleInFlexibleFormat
 | 
						|
        FontListTest.Fonts_FromFontVector
 | 
						|
        FontListTest.Fonts_GetHeight_GetBaseline
 | 
						|
        FontListTest.Fonts_Derive
 | 
						|
        FontListTest.Fonts_DeriveWithSizeDelta
 | 
						|
 | 
						|
        # 38.0.2125.101
 | 
						|
        SelectionRequestorTest.NestedRequests
 | 
						|
    )
 | 
						|
 | 
						|
    local disabled_media_tests=(
 | 
						|
        # http://crbug.com/160384
 | 
						|
        'YUVConvertTest.*'
 | 
						|
    )
 | 
						|
 | 
						|
    local t suites=( base cacheinvalidation crypto gn gpu printing ui_base url ) HOME="${TEMP}"
 | 
						|
 | 
						|
    for t in ${suites[@]}; do
 | 
						|
        tv=disabled_${t}_tests[*]
 | 
						|
        eninja -C out/${BUILDTYPE} ${t}_unittests
 | 
						|
        edo out/${BUILDTYPE}/${t}_unittests --gtest_filter=$(IFS=:; echo "-${!tv}")
 | 
						|
    done
 | 
						|
}
 | 
						|
 | 
						|
inox_src_install() {
 | 
						|
    # Install into /opt
 | 
						|
    local dest=/opt/inox
 | 
						|
    edo cd out/${BUILDTYPE}
 | 
						|
 | 
						|
    exeinto ${dest}
 | 
						|
    newexe chrome inox
 | 
						|
    newexe chrome_sandbox chrome-sandbox # the name is hardcoded
 | 
						|
    edo chmod 4755 "${IMAGE}"${dest}/chrome-sandbox
 | 
						|
    doexe "${FILES}"/inox-launcher.sh
 | 
						|
 | 
						|
    insinto ${dest}
 | 
						|
    doins -r *.pak locales resources
 | 
						|
    doins icudtl.dat
 | 
						|
    doins -r *.bin
 | 
						|
 | 
						|
    dosym /opt/netscape/plugins ${dest}
 | 
						|
 | 
						|
    if [[ ${CHROMIUM_CHANNEL} == "stable" ]]; then
 | 
						|
        doins libwidevinecdmadapter.so
 | 
						|
    fi
 | 
						|
 | 
						|
    dodir ${dest}/lib
 | 
						|
    insinto ${dest}/lib
 | 
						|
    doins lib/libffmpeg.so
 | 
						|
 | 
						|
    newman chrome.1 inox.1
 | 
						|
 | 
						|
    dodir /usr/$(exhost --target)/bin
 | 
						|
    dosym ${dest}/inox-launcher.sh /usr/$(exhost --target)/bin/inox-browser
 | 
						|
 | 
						|
    for size in 22 24 48 64 128 256 ; do
 | 
						|
        insinto /usr/share/icons/hicolor/${size}x${size}/apps
 | 
						|
        newins "${WORK}"/chrome/app/theme/chromium/product_logo_${size}.png inox-browser.png
 | 
						|
    done
 | 
						|
 | 
						|
    insinto /usr/share/applications/
 | 
						|
    hereins inox-browser.desktop <<EOF
 | 
						|
[Desktop Entry]
 | 
						|
Version=1.0
 | 
						|
Name=Inox
 | 
						|
GenericName=Web Browser
 | 
						|
Exec=inox-browser %U
 | 
						|
Terminal=false
 | 
						|
Icon=inox-browser
 | 
						|
Type=Application
 | 
						|
Categories=Network;WebBrowser;
 | 
						|
MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/mailto;x-scheme-handler/webcal;
 | 
						|
StartupWMClass=Inox-browser
 | 
						|
EOF
 | 
						|
 | 
						|
    insinto /etc/revdep-rebuild
 | 
						|
    hereins ${PN} <<EOF
 | 
						|
SEARCH_DIRS=${dest}
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
inox_pkg_postinst() {
 | 
						|
    freedesktop-desktop_pkg_postinst
 | 
						|
    gtk-icon-cache_pkg_postinst
 | 
						|
}
 | 
						|
 | 
						|
inox_pkg_postrm() {
 | 
						|
    freedesktop-desktop_pkg_postrm
 | 
						|
    gtk-icon-cache_pkg_postrm
 | 
						|
}
 | 
						|
 |