google-chrome: init at 45.0.2454.101-1 (close #10892)

As suggested the Google Chrome .deb file that is used for Chromium's plugins is reused.
vcunat removed lots of newlines, as the style was diverging from the
majority far too much (IHHO).
This commit is contained in:
Matthijs Steen 2015-11-08 18:55:47 +01:00 committed by Vladimír Čunát
parent 61402311cc
commit 0ceda119d7
2 changed files with 122 additions and 0 deletions

View File

@ -0,0 +1,120 @@
{ stdenv, buildEnv, fetchurl, patchelf, bash
# Linked dynamic libraries.
, glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr
, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite
, alsaLib, libXdamage, libXtst, libXrandr, expat, cups
, dbus_libs, gtk, gdk_pixbuf, gcc
# Will crash without.
, udev
# Loaded at runtime.
, libexif
# Additional dependencies according to other distros.
## Ubuntu
, liberation_ttf, curl, utillinux, xdg_utils, wget
## Arch Linux.
, flac, harfbuzz, icu, libpng, libopus, snappy, speechd
## Gentoo
, bzip2, libcap
# Which distribution channel to use.
, channel ? "stable"
# Necessary for USB audio devices.
, pulseSupport ? true, libpulseaudio ? null
}:
with stdenv.lib;
with (import ../chromium/source/update.nix {
inherit (stdenv) system;
}).getChannel channel;
let
dist = if channel == "dev" then "unstable" else channel;
opusWithCustomModes = libopus.override {
withCustomModes = true;
};
env = buildEnv {
name = "google-chrome-env";
paths = [
glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr
libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite
alsaLib libXdamage libXtst libXrandr expat cups
dbus_libs gtk gdk_pixbuf gcc
udev
libexif
liberation_ttf curl utillinux xdg_utils wget
flac harfbuzz icu libpng opusWithCustomModes snappy speechd
bzip2 libcap
]
++ optional pulseSupport libpulseaudio;
};
in stdenv.mkDerivation rec {
inherit version;
name = "google-chrome-${version}";
src = fetchurl binary;
buildInputs = [ env patchelf ];
unpackPhase = ''
ar x $src
tar xf data.tar.xz
'';
installPhase = ''
exe=$out/bin/google-chrome-${dist}
rpath="${env}/lib:${env}/lib64"
mkdir -p $out/bin $out/share
cp -a opt/* $out/share
cp -a usr/share/* $out/share
substituteInPlace $out/share/applications/google-chrome.desktop \
--replace /usr/bin/google-chrome-${dist} $exe
substituteInPlace $out/share/gnome-control-center/default-apps/google-chrome.xml \
--replace /opt/google/chrome/google-chrome $exe
substituteInPlace $out/share/menu/google-chrome.menu \
--replace /opt $out/share \
--replace $out/share/google/chrome/google-chrome $exe
for icon_file in $out/share/google/chrome/product_logo_*[0-9].png; do
num_and_suffix="''${icon_file##*logo_}"
icon_size="''${num_and_suffix%.*}"
logo_output_prefix="$out/share/icons/hicolor"
logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
mkdir -p "$logo_output_path"
mv "$icon_file" "$logo_output_path/google-chrome.png"
done
cat > $exe << EOF
#!${bash}/bin/sh
export LD_LIBRARY_PATH=$rpath\''${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
export PATH=${env}/bin\''${PATH:+:\$PATH}
$out/share/google/chrome/google-chrome "\$@"
EOF
chmod +x $exe
for elf in $out/share/google/chrome/{chrome,chrome-sandbox,nacl_helper}; do
patchelf --set-rpath $rpath $elf
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
done
'';
meta = {
description = "A freeware web browser developed by Google";
homepage = "https://www.google.com/chrome/browser/";
license = licenses.unfree;
maintainers = [ maintainers.msteen ];
platforms = platforms.linux;
};
}

View File

@ -11851,6 +11851,8 @@ let
inherit (gnome) GConf;
};
google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome.GConf; };
googleearth = callPackage_i686 ../applications/misc/googleearth { };
google_talk_plugin = callPackage ../applications/networking/browsers/mozilla-plugins/google-talk-plugin {