From 8fd4b80bc71b164be333560295ca48bc30871276 Mon Sep 17 00:00:00 2001 From: aszlig Date: Mon, 3 Dec 2012 18:23:49 +0100 Subject: [PATCH] chromium: Don't use the config attrset anymore. We can still use the config attribute set from within all-packages to pass it to the package expression, which we do in case of PulseAudio. In order to override other stuff you can now conveniently use chromium.override without passing a fake config attribute set. Signed-off-by: aszlig --- .../networking/browsers/chromium/default.nix | 73 ++++++++----------- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 33 insertions(+), 41 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 0415ae85ac0b..30234c92f6b1 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -1,4 +1,4 @@ -{ stdenv, config, fetchurl, makeWrapper, which +{ stdenv, fetchurl, makeWrapper, which # default dependencies , bzip2, flac, speex @@ -15,32 +15,23 @@ , libXScrnSaver, libXcursor, mesa # optional dependencies -, libgnome_keyring # config.gnomeKeyring -, gconf # config.gnome -, libgcrypt # config.gnome || config.cups -, nss, openssl # config.openssl -, pulseaudio # config.pulseaudio -, libselinux # config.selinux +, libgcrypt ? null # gnomeSupport || cupsSupport +# package customization , channel ? "stable" +, enableSELinux ? false, libselinux ? null +, enableNaCl ? false +, useOpenSSL ? false, nss ? null, openssl ? null +, gnomeSupport ? false, gconf ? null +, gnomeKeyringSupport ? false, libgnome_keyring ? null +, proprietaryCodecs ? true +, cupsSupport ? false +, pulseSupport ? false, pulseaudio ? null }: with stdenv.lib; let - mkConfigurable = mapAttrs (flag: default: attrByPath ["chromium" flag] default config); - - cfg = mkConfigurable { - selinux = false; - nacl = false; - openssl = false; - gnome = false; - gnomeKeyring = false; - proprietaryCodecs = true; - cups = false; - pulseaudio = config.pulseaudio or true; - }; - sourceInfo = builtins.getAttr channel (import ./sources.nix); mkGypFlags = @@ -63,7 +54,7 @@ let use_system_libusb = true; use_system_libxml = true; use_system_speex = true; - use_system_ssl = cfg.openssl; + use_system_ssl = useOpenSSL; use_system_stlport = true; use_system_xdg_utils = true; use_system_yasm = true; @@ -88,7 +79,7 @@ let post23 = !versionOlder sourceInfo.version "24.0.0.0"; post24 = !versionOlder sourceInfo.version "25.0.0.0"; - maybeFixPulseAudioBuild = optional (post23 && cfg.pulseaudio) (fetchurl { + maybeFixPulseAudioBuild = optional (post23 && pulseSupport) (fetchurl { url = http://archrepo.jeago.com/sources/chromium-dev/pulse_audio_fix.patch; sha256 = "1w91mirrkqigdhsj892mqxlc0nlv1dsp5shc46w9xf8nl96jxgfb"; }); @@ -108,28 +99,28 @@ in stdenv.mkDerivation rec { which makeWrapper python perl pkgconfig nspr udev - (if cfg.openssl then openssl else nss) + (if useOpenSSL then openssl else nss) utillinux alsaLib gcc bison gperf krb5 glib gtk dbus_glib libXScrnSaver libXcursor mesa - ] ++ optional cfg.gnomeKeyring libgnome_keyring - ++ optionals cfg.gnome [ gconf libgcrypt ] - ++ optional cfg.selinux libselinux - ++ optional cfg.cups libgcrypt - ++ optional cfg.pulseaudio pulseaudio + ] ++ optional gnomeKeyringSupport libgnome_keyring + ++ optionals gnomeSupport [ gconf libgcrypt ] + ++ optional enableSELinux libselinux + ++ optional cupsSupport libgcrypt + ++ optional pulseSupport pulseaudio ++ optional post24 pciutils; - opensslPatches = optional cfg.openssl openssl.patches; + opensslPatches = optional useOpenSSL openssl.patches; prePatch = "patchShebangs ."; - patches = optional cfg.cups ./cups_allow_deprecated.patch - ++ optional cfg.pulseaudio ./pulseaudio_array_bounds.patch + patches = optional cupsSupport ./cups_allow_deprecated.patch + ++ optional pulseSupport ./pulseaudio_array_bounds.patch ++ maybeFixPulseAudioBuild; - postPatch = optionalString cfg.openssl '' + postPatch = optionalString useOpenSSL '' cat $opensslPatches | patch -p1 -d third_party/openssl/openssl ''; @@ -137,15 +128,15 @@ in stdenv.mkDerivation rec { linux_use_gold_binary = false; linux_use_gold_flags = false; proprietary_codecs = false; - use_gnome_keyring = cfg.gnomeKeyring; - use_gconf = cfg.gnome; - use_gio = cfg.gnome; - use_pulseaudio = cfg.pulseaudio; - disable_nacl = !cfg.nacl; - use_openssl = cfg.openssl; - selinux = cfg.selinux; - use_cups = cfg.cups; - } // optionalAttrs cfg.proprietaryCodecs { + use_gnome_keyring = gnomeKeyringSupport; + use_gconf = gnomeSupport; + use_gio = gnomeSupport; + use_pulseaudio = pulseSupport; + disable_nacl = !enableNaCl; + use_openssl = useOpenSSL; + selinux = enableSELinux; + use_cups = cupsSupport; + } // optionalAttrs proprietaryCodecs { # enable support for the H.264 codec proprietary_codecs = true; ffmpeg_branding = "Chrome"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 512b3105ea70..aa200d0204b9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6634,6 +6634,7 @@ let chromium = lowPrio (callPackage ../applications/networking/browsers/chromium { channel = "stable"; gconf = gnome.GConf; + pulseSupport = config.pulseaudio or false; }); chromiumBeta = chromium.override { channel = "beta"; };