From 61042a5b6ac89166180b9257fa72c478439d3753 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 2 Feb 2016 05:19:51 +0100 Subject: [PATCH] chromium/plugins: Use @var@ for passing variables There is already a pull request from @colemickens, who has just reversed the variable references $flash and $flashVersion but the fix is kinda fragile as he points out himself in #12713. The reason the wrong substition was made is that both variables begin with the same name and we do a simple replace instead of a more complicated one using builtins.match. So staying simple but to still not raising issues with other variables that begin with the same name I'm now using @var@ instead, like we use in substituteAll and other substituters (like the ones in CMake or autotools) deal with it. Note that I'm not using $var$ here to make sure it doesn't get confused with real shell variables. So with this fix in place, the wrapper now has the following flags: --ppapi-flash-path=/nix/store/.../lib/libpepflashplayer.so --ppapi-flash-version=20.0.0.294 Previously we had (#12710): --ppapi-flash-path=/nix/store/.../lib/libpepflashplayer.so --ppapi-flash-version=/nix/store/...-binary-plugins-flashVersion Thanks to @colemickens for reporting and putting up a pull request. Signed-off-by: aszlig Fixes: #12710 Fixes: #12713 --- .../applications/networking/browsers/chromium/plugins.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix index dda97690561..78d9086dd96 100644 --- a/pkgs/applications/networking/browsers/chromium/plugins.nix +++ b/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -16,7 +16,7 @@ let mkPluginInfo = { output ? "out", allowedVars ? [ output ] , flags ? [], envVars ? {} }: let - shSearch = ["'"] ++ map (var: "\$${var}") allowedVars; + shSearch = ["'"] ++ map (var: "@${var}@") allowedVars; shReplace = ["'\\''"] ++ map (var: "'\"\${${var}}\"'") allowedVars; # We need to triple-escape "val": # * First because makeWrapper doesn't do any quoting of its arguments by @@ -94,8 +94,8 @@ let output = "flash"; allowedVars = [ "flash" "flashVersion" ]; flags = [ - "--ppapi-flash-path=$flash/lib/libpepflashplayer.so" - "--ppapi-flash-version=$flashVersion" + "--ppapi-flash-path=@flash@/lib/libpepflashplayer.so" + "--ppapi-flash-version=@flashVersion@" ]; }} @@ -107,7 +107,7 @@ let ${mkPluginInfo { output = "widevine"; flags = [ "--register-pepper-plugins=${wvModule}${wvInfo}" ]; - envVars.NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE = "$widevine/lib"; + envVars.NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE = "@widevine@/lib"; }} '';