{ "{" (1, 1)
ID "lib" (1, 3)
, "," (1, 6)
ID "stdenv" (1, 8)
, "," (1, 14)
ID "fetchurl" (1, 16)
, "," (1, 24)
ID "zlib" (1, 26)
, "," (1, 30)
ID "libX11" (1, 32)
, "," (1, 38)
ID "libXext" (1, 40)
, "," (1, 47)
ID "libSM" (1, 49)
, "," (1, 54)
ID "libICE" (1, 56)
, "," (1, 62)
ID "libxkbcommon" (1, 64)
, "," (1, 76)
ID "libxshmfence" (1, 78)
, "," (2, 1)
ID "libXfixes" (2, 3)
, "," (2, 12)
ID "libXt" (2, 14)
, "," (2, 19)
ID "libXi" (2, 21)
, "," (2, 26)
ID "libXcursor" (2, 28)
, "," (2, 38)
ID "libXScrnSaver" (2, 40)
, "," (2, 53)
ID "libXcomposite" (2, 55)
, "," (2, 68)
ID "libXdamage" (2, 70)
, "," (2, 80)
ID "libXtst" (2, 82)
, "," (2, 89)
ID "libXrandr" (2, 91)
, "," (3, 1)
ID "alsa-lib" (3, 3)
, "," (3, 11)
ID "dbus" (3, 13)
, "," (3, 17)
ID "cups" (3, 19)
, "," (3, 23)
ID "libexif" (3, 25)
, "," (3, 32)
ID "ffmpeg" (3, 34)
, "," (3, 40)
ID "systemd" (3, 42)
, "," (3, 49)
ID "libva" (3, 51)
, "," (4, 1)
ID "freetype" (4, 3)
, "," (4, 11)
ID "fontconfig" (4, 13)
, "," (4, 23)
ID "libXft" (4, 25)
, "," (4, 31)
ID "libXrender" (4, 33)
, "," (4, 43)
ID "libxcb" (4, 45)
, "," (4, 51)
ID "expat" (4, 53)
, "," (5, 1)
ID "libuuid" (5, 3)
, "," (6, 1)
ID "libxml2" (6, 3)
, "," (7, 1)
ID "glib" (7, 3)
, "," (7, 7)
ID "gtk3" (7, 9)
, "," (7, 13)
ID "pango" (7, 15)
, "," (7, 20)
ID "gdk-pixbuf" (7, 22)
, "," (7, 32)
ID "cairo" (7, 34)
, "," (7, 39)
ID "atk" (7, 41)
, "," (7, 44)
ID "at-spi2-atk" (7, 46)
, "," (7, 57)
ID "at-spi2-core" (7, 59)
, "," (8, 1)
ID "libdrm" (8, 3)
, "," (8, 9)
ID "mesa" (8, 11)
, "," (9, 1)
ID "nss" (9, 3)
, "," (9, 6)
ID "nspr" (9, 8)
, "," (10, 1)
ID "patchelf" (10, 3)
, "," (10, 11)
ID "makeWrapper" (10, 13)
, "," (11, 1)
ID "isSnapshot" (11, 3)
? "?" (11, 14)
ID "false" (11, 16)
, "," (12, 1)
ID "proprietaryCodecs" (12, 3)
? "?" (12, 21)
ID "false" (12, 23)
, "," (12, 28)
ID "vivaldi-ffmpeg-codecs" (12, 30)
? "?" (12, 52)
ID "null" (12, 54)
, "," (13, 1)
ID "enableWidevine" (13, 3)
? "?" (13, 18)
ID "false" (13, 20)
, "," (13, 25)
ID "vivaldi-widevine" (13, 27)
? "?" (13, 44)
ID "null" (13, 46)
, "," (14, 1)
ID "commandLineArgs" (14, 3)
? "?" (14, 19)
" "\"" (14, 21)
" "\"" (14, 22)
, "," (15, 1)
ID "pulseSupport" (15, 3)
? "?" (15, 16)
ID "stdenv" (15, 18)
. "." (15, 24)
ID "isLinux" (15, 25)
, "," (15, 32)
ID "libpulseaudio" (15, 34)
} "}" (16, 1)
: ":" (16, 2)
LET "let" (18, 1)
ID "branch" (19, 3)
= "=" (19, 10)
IF "if" (19, 12)
ID "isSnapshot" (19, 15)
THEN "then" (19, 26)
" "\"" (19, 31)
STR "snapshot" (19, 32)
" "\"" (19, 40)
ELSE "else" (19, 42)
" "\"" (19, 47)
STR "stable" (19, 48)
" "\"" (19, 54)
; ";" (19, 55)
ID "vivaldiName" (20, 3)
= "=" (20, 15)
IF "if" (20, 17)
ID "isSnapshot" (20, 20)
THEN "then" (20, 31)
" "\"" (20, 36)
STR "vivaldi-snapshot" (20, 37)
" "\"" (20, 53)
ELSE "else" (20, 55)
" "\"" (20, 60)
STR "vivaldi" (20, 61)
" "\"" (20, 68)
; ";" (20, 69)
IN "in" (21, 1)
ID "stdenv" (21, 4)
. "." (21, 10)
ID "mkDerivation" (21, 11)
REC "rec" (21, 24)
{ "{" (21, 28)
ID "pname" (22, 3)
= "=" (22, 9)
" "\"" (22, 11)
STR "vivaldi" (22, 12)
" "\"" (22, 19)
; ";" (22, 20)
ID "version" (23, 3)
= "=" (23, 11)
" "\"" (23, 13)
STR "5.1.2567.73-1" (23, 14)
" "\"" (23, 27)
; ";" (23, 28)
ID "src" (25, 3)
= "=" (25, 7)
ID "fetchurl" (25, 9)
{ "{" (25, 18)
ID "url" (26, 5)
= "=" (26, 9)
" "\"" (26, 11)
STR "https://downloads.vivaldi.com/" (26, 12)
DOLLAR_CURLY "${" (26, 42)
ID "branch" (26, 44)
} "}" (26, 50)
STR "/vivaldi-" (26, 51)
DOLLAR_CURLY "${" (26, 60)
ID "branch" (26, 62)
} "}" (26, 68)
STR "_" (26, 69)
DOLLAR_CURLY "${" (26, 70)
ID "version" (26, 72)
} "}" (26, 79)
STR "_amd64.deb" (26, 80)
" "\"" (26, 90)
; ";" (26, 91)
ID "sha256" (27, 5)
= "=" (27, 12)
" "\"" (27, 14)
STR "04jzhipn4ip7x3zdwmfnp6w0qc2y1qdfy5w3qyy0r114jz9s9i7g" (27, 15)
" "\"" (27, 67)
; ";" (27, 68)
} "}" (28, 3)
; ";" (28, 4)
ID "unpackPhase" (30, 3)
= "=" (30, 15)
IND_STRING_OPEN "''\n" (30, 17)
IND_STR "    ar vx $src\n    tar -xvf data.tar.xz\n  " (31, 1)
IND_STRING_CLOSE "''" (33, 3)
; ";" (33, 5)
ID "nativeBuildInputs" (35, 3)
= "=" (35, 21)
[ "[" (35, 23)
ID "patchelf" (35, 25)
ID "makeWrapper" (35, 34)
] "]" (35, 46)
; ";" (35, 47)
ID "buildInputs" (37, 3)
= "=" (37, 15)
[ "[" (37, 17)
ID "stdenv" (38, 5)
. "." (38, 11)
ID "cc" (38, 12)
. "." (38, 14)
ID "cc" (38, 15)
ID "stdenv" (38, 18)
. "." (38, 24)
ID "cc" (38, 25)
. "." (38, 27)
ID "libc" (38, 28)
ID "zlib" (38, 33)
ID "libX11" (38, 38)
ID "libXt" (38, 45)
ID "libXext" (38, 51)
ID "libSM" (38, 59)
ID "libICE" (38, 65)
ID "libxcb" (38, 72)
ID "libxkbcommon" (38, 79)
ID "libxshmfence" (38, 92)
ID "libXi" (39, 5)
ID "libXft" (39, 11)
ID "libXcursor" (39, 18)
ID "libXfixes" (39, 29)
ID "libXScrnSaver" (39, 39)
ID "libXcomposite" (39, 53)
ID "libXdamage" (39, 67)
ID "libXtst" (39, 78)
ID "libXrandr" (39, 86)
ID "atk" (40, 5)
ID "at-spi2-atk" (40, 9)
ID "at-spi2-core" (40, 21)
ID "alsa-lib" (40, 34)
ID "dbus" (40, 43)
ID "cups" (40, 48)
ID "gtk3" (40, 53)
ID "gdk-pixbuf" (40, 58)
ID "libexif" (40, 69)
ID "ffmpeg" (40, 77)
ID "systemd" (40, 84)
ID "libva" (40, 92)
ID "freetype" (41, 5)
ID "fontconfig" (41, 14)
ID "libXrender" (41, 25)
ID "libuuid" (41, 36)
ID "expat" (41, 44)
ID "glib" (41, 50)
ID "nss" (41, 55)
ID "nspr" (41, 59)
ID "libxml2" (42, 5)
ID "pango" (42, 13)
ID "cairo" (42, 19)
ID "libdrm" (43, 5)
ID "mesa" (43, 12)
] "]" (44, 3)
CONCAT "++" (44, 5)
ID "lib" (44, 8)
. "." (44, 11)
ID "optional" (44, 12)
ID "proprietaryCodecs" (44, 21)
ID "vivaldi-ffmpeg-codecs" (44, 39)
CONCAT "++" (45, 5)
ID "lib" (45, 8)
. "." (45, 11)
ID "optional" (45, 12)
ID "pulseSupport" (45, 21)
ID "libpulseaudio" (45, 34)
; ";" (45, 47)
ID "libPath" (47, 3)
= "=" (47, 11)
ID "lib" (47, 13)
. "." (47, 16)
ID "makeLibraryPath" (47, 17)
ID "buildInputs" (47, 33)
+ "+" (48, 5)
ID "lib" (48, 7)
. "." (48, 10)
ID "optionalString" (48, 11)
( "(" (48, 26)
ID "stdenv" (48, 27)
. "." (48, 33)
ID "is64bit" (48, 34)
) ")" (48, 41)
( "(" (49, 7)
" "\"" (49, 8)
STR ":" (49, 9)
" "\"" (49, 10)
+ "+" (49, 12)
ID "lib" (49, 14)
. "." (49, 17)
ID "makeSearchPathOutput" (49, 18)
" "\"" (49, 39)
STR "lib" (49, 40)
" "\"" (49, 43)
" "\"" (49, 45)
STR "lib64" (49, 46)
" "\"" (49, 51)
ID "buildInputs" (49, 53)
) ")" (49, 64)
+ "+" (50, 5)
" "\"" (50, 7)
STR ":$out/opt/" (50, 8)
DOLLAR_CURLY "${" (50, 18)
ID "vivaldiName" (50, 20)
} "}" (50, 31)
STR "/lib" (50, 32)
" "\"" (50, 36)
; ";" (50, 37)
ID "buildPhase" (52, 3)
= "=" (52, 14)
IND_STRING_OPEN "''\n" (52, 16)
IND_STR "    runHook preBuild\n    echo \"Patching Vivaldi binaries\"\n    for f in chrome_crashpad_handler vivaldi-bin vivaldi-sandbox ; do\n      patchelf \\\n        --set-interpreter \"$(cat $NIX_CC/nix-support/dynamic-linker)\" \\\n        --set-rpath \"" (53, 1)
DOLLAR_CURLY "${" (58, 22)
ID "libPath" (58, 24)
} "}" (58, 31)
IND_STR "\" \\\n        opt/" (58, 32)
DOLLAR_CURLY "${" (59, 13)
ID "vivaldiName" (59, 15)
} "}" (59, 26)
IND_STR "/$f\n    done\n  " (59, 27)
IND_STRING_CLOSE "''" (61, 3)
+ "+" (61, 6)
ID "lib" (61, 8)
. "." (61, 11)
ID "optionalString" (61, 12)
ID "proprietaryCodecs" (61, 27)
IND_STRING_OPEN "''\n" (61, 45)
IND_STR "    ln -s " (62, 1)
DOLLAR_CURLY "${" (62, 11)
ID "vivaldi-ffmpeg-codecs" (62, 13)
} "}" (62, 34)
IND_STR "/lib/libffmpeg.so opt/" (62, 35)
DOLLAR_CURLY "${" (62, 57)
ID "vivaldiName" (62, 59)
} "}" (62, 70)
IND_STR "/libffmpeg.so." (62, 71)
IND_STR "$" (62, 85)
IND_STR "{version%\\.*\\.*}\n  " (62, 88)
IND_STRING_CLOSE "''" (63, 3)
+ "+" (63, 6)
IND_STRING_OPEN "''\n" (63, 8)
IND_STR "    echo \"Finished patching Vivaldi binaries\"\n    runHook postBuild\n  " (64, 1)
IND_STRING_CLOSE "''" (66, 3)
; ";" (66, 5)
ID "dontPatchELF" (68, 3)
= "=" (68, 16)
ID "true" (68, 18)
; ";" (68, 22)
ID "dontStrip" (69, 3)
= "=" (69, 16)
ID "true" (69, 18)
; ";" (69, 22)
ID "installPhase" (71, 3)
= "=" (71, 16)
IND_STRING_OPEN "''\n" (71, 18)
IND_STR "    runHook preInstall\n    mkdir -p \"$out\"\n    cp -r opt \"$out\"\n    mkdir \"$out/bin\"\n    ln -s \"$out/opt/" (72, 1)
DOLLAR_CURLY "${" (76, 21)
ID "vivaldiName" (76, 23)
} "}" (76, 34)
IND_STR "/" (76, 35)
DOLLAR_CURLY "${" (76, 36)
ID "vivaldiName" (76, 38)
} "}" (76, 49)
IND_STR "\" \"$out/bin/vivaldi\"\n    mkdir -p \"$out/share\"\n    cp -r usr/share/{applications,xfce4} \"$out\"/share\n    substituteInPlace \"$out\"/share/applications/*.desktop \\\n      --replace /usr/bin/" (76, 50)
DOLLAR_CURLY "${" (80, 26)
ID "vivaldiName" (80, 28)
} "}" (80, 39)
IND_STR " \"$out\"/bin/vivaldi\n    substituteInPlace \"$out\"/share/applications/*.desktop \\\n      --replace vivaldi-stable vivaldi\n    local d\n    for d in 16 22 24 32 48 64 128 256; do\n      mkdir -p \"$out\"/share/icons/hicolor/" (80, 40)
IND_STR "$" (85, 43)
IND_STR "{d}x" (85, 46)
IND_STR "$" (85, 50)
IND_STR "{d}/apps\n      ln -s \\\n        \"$out\"/opt/" (85, 53)
DOLLAR_CURLY "${" (87, 20)
ID "vivaldiName" (87, 22)
} "}" (87, 33)
IND_STR "/product_logo_" (87, 34)
IND_STR "$" (87, 48)
IND_STR "{d}.png \\\n        \"$out\"/share/icons/hicolor/" (87, 51)
IND_STR "$" (88, 36)
IND_STR "{d}x" (88, 39)
IND_STR "$" (88, 43)
IND_STR "{d}/apps/vivaldi.png\n    done\n    wrapProgram \"$out/bin/vivaldi\" \\\n      --add-flags " (88, 46)
DOLLAR_CURLY "${" (91, 19)
ID "lib" (91, 21)
. "." (91, 24)
ID "escapeShellArg" (91, 25)
ID "commandLineArgs" (91, 40)
} "}" (91, 55)
IND_STR " \\\n      --suffix XDG_DATA_DIRS : " (91, 56)
DOLLAR_CURLY "${" (92, 32)
ID "gtk3" (92, 34)
} "}" (92, 38)
IND_STR "/share/gsettings-schemas/" (92, 39)
DOLLAR_CURLY "${" (92, 64)
ID "gtk3" (92, 66)
. "." (92, 70)
ID "name" (92, 71)
} "}" (92, 75)
IND_STR "/ \\\n      " (92, 76)
DOLLAR_CURLY "${" (93, 7)
ID "lib" (93, 9)
. "." (93, 12)
ID "optionalString" (93, 13)
ID "enableWidevine" (93, 28)
" "\"" (93, 43)
STR "--suffix LD_LIBRARY_PATH : " (93, 44)
DOLLAR_CURLY "${" (93, 71)
ID "libPath" (93, 73)
} "}" (93, 80)
" "\"" (93, 81)
} "}" (93, 82)
IND_STR "\n  " (93, 83)
IND_STRING_CLOSE "''" (94, 3)
+ "+" (94, 6)
ID "lib" (94, 8)
. "." (94, 11)
ID "optionalString" (94, 12)
ID "enableWidevine" (94, 27)
IND_STRING_OPEN "''\n" (94, 42)
IND_STR "    ln -sf " (95, 1)
DOLLAR_CURLY "${" (95, 12)
ID "vivaldi-widevine" (95, 14)
} "}" (95, 30)
IND_STR "/share/google/chrome/WidevineCdm $out/opt/" (95, 31)
DOLLAR_CURLY "${" (95, 73)
ID "vivaldiName" (95, 75)
} "}" (95, 86)
IND_STR "/WidevineCdm\n  " (95, 87)
IND_STRING_CLOSE "''" (96, 3)
+ "+" (96, 6)
IND_STRING_OPEN "''\n" (96, 8)
IND_STR "    runHook postInstall\n  " (97, 1)
IND_STRING_CLOSE "''" (98, 3)
; ";" (98, 5)
ID "meta" (100, 3)
= "=" (100, 8)
WITH "with" (100, 10)
ID "lib" (100, 15)
; ";" (100, 18)
{ "{" (100, 20)
ID "description" (101, 5)
= "=" (101, 17)
" "\"" (101, 19)
STR "A Browser for our Friends, powerful and personal" (101, 20)
" "\"" (101, 68)
; ";" (101, 69)
ID "homepage" (102, 5)
= "=" (102, 17)
" "\"" (102, 19)
STR "https://vivaldi.com" (102, 20)
" "\"" (102, 39)
; ";" (102, 40)
ID "license" (103, 5)
= "=" (103, 17)
ID "licenses" (103, 19)
. "." (103, 27)
ID "unfree" (103, 28)
; ";" (103, 34)
ID "maintainers" (104, 5)
= "=" (104, 17)
WITH "with" (104, 19)
ID "maintainers" (104, 24)
; ";" (104, 35)
[ "[" (104, 37)
ID "otwieracz" (104, 39)
ID "badmutex" (104, 49)
] "]" (104, 58)
; ";" (104, 59)
ID "platforms" (105, 5)
= "=" (105, 17)
[ "[" (105, 19)
" "\"" (105, 21)
STR "x86_64-linux" (105, 22)
" "\"" (105, 34)
] "]" (105, 36)
; ";" (105, 37)
} "}" (106, 3)
; ";" (106, 4)
} "}" (107, 1)