about summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers/vivaldi/default.nix
diff options
context:
space:
mode:
authorSlawomir Gonet <slawek@otwiera.cz>2016-03-29 12:54:40 +0200
committerSlawomir Gonet <slawek@otwiera.cz>2016-04-07 08:05:53 +0200
commitc6345de9f95012c5102370823fafc2cda6379a15 (patch)
tree2aafa110a036831eb6eb958595e49a5ba1720fb6 /pkgs/applications/networking/browsers/vivaldi/default.nix
parentb44b0ab27c26dea780aec7476b7d9486798b340a (diff)
downloadnixlib-c6345de9f95012c5102370823fafc2cda6379a15.tar
nixlib-c6345de9f95012c5102370823fafc2cda6379a15.tar.gz
nixlib-c6345de9f95012c5102370823fafc2cda6379a15.tar.bz2
nixlib-c6345de9f95012c5102370823fafc2cda6379a15.tar.lz
nixlib-c6345de9f95012c5102370823fafc2cda6379a15.tar.xz
nixlib-c6345de9f95012c5102370823fafc2cda6379a15.tar.zst
nixlib-c6345de9f95012c5102370823fafc2cda6379a15.zip
vivaldi: init at 1.0
Diffstat (limited to 'pkgs/applications/networking/browsers/vivaldi/default.nix')
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix77
1 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
new file mode 100644
index 000000000000..aeb1724d9633
--- /dev/null
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE
+, libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
+, alsaLib, dbus_libs, cups, libexif, ffmpeg, udev
+, freetype, fontconfig, libXft, libXrender, libxcb, expat, libXau, libXdmcp
+, libuuid, xz
+, gstreamer, gst_plugins_base, libxml2
+, glib, gtk, pango, gdk_pixbuf, cairo, atk, gnome3
+, nss, nspr
+, patchelf
+}:
+
+let
+  archUrl = name: arch: "https://vivaldi.com/download/stable/${name}_${arch}.deb";
+in
+stdenv.mkDerivation rec {
+  version    = "1.0";
+  debversion = "stable_1.0.435.40-1";
+  product    = "vivaldi";
+  name       = "${product}-${version}";
+
+  src = if stdenv.system == "x86_64-linux"
+    then fetchurl {
+      url    = archUrl "vivaldi-${debversion}" "amd64";
+      sha256 = "12c051a40258a95f9594eed2f73fa5f591482ac2a41d5cf643811b1ea2a1efbf";
+    }
+    else if stdenv.system == "i686-linux"
+    then fetchurl {
+      url    = archUrl "vivaldi-${debversion}" "i386";
+      sha256 = "6e0b84fba38211bab9a71bc10e97398fca77c0acd82791923c1d432b20846f0f";
+    }
+    else throw "Vivaldi is not supported on ${stdenv.system} (only i686-linux and x86_64 linux are supported)";
+
+  unpackPhase = ''
+    ar vx ${src}
+    tar -xvf data.tar.xz
+  '';
+
+  buildInputs =
+    [ stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE
+      libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
+      atk alsaLib dbus_libs cups gtk gdk_pixbuf libexif ffmpeg udev
+      freetype fontconfig libXrender libuuid expat glib nss nspr
+      gstreamer libxml2 gst_plugins_base pango cairo gnome3.gconf 
+      patchelf
+    ];
+
+  libPath = stdenv.lib.makeLibraryPath buildInputs
+    + stdenv.lib.optionalString (stdenv.system == "x86_64-linux")
+      (":" + stdenv.lib.makeSearchPath "lib64" buildInputs);
+
+  buildPhase = ''
+    echo "Patching Vivaldi binaries"
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath}" \
+    opt/vivaldi/vivaldi-bin
+    echo "Finished patching Vivaldi binaries"
+  '';
+
+  dontPatchELF = true;
+  dontStrip    = true;
+
+  installPhase = ''
+    mkdir -p "$out"
+    cp -r opt "$out"
+    mkdir "$out/bin"
+    ln -s "$out/opt/vivaldi/vivaldi" "$out/bin/vivaldi"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Browser for our Friends, powerful and personal";
+    homepage    = "https://vivaldi.com";
+    license     = licenses.unfree;
+    maintainers = with maintainers; [ otwieracz ];
+    platforms   = platforms.linux;
+  };
+}