From 617d11be2b01bab4be8a5f6ee782b46889e2744c Mon Sep 17 00:00:00 2001 From: Matej Cotman Date: Thu, 22 Jan 2015 05:15:02 +0100 Subject: [PATCH 1/2] nodewebkit: add 0.11.2 --- pkgs/development/tools/node-webkit/nw11.nix | 57 +++++++++++++++++++ .../node-webkit/{default.nix => nw9.nix} | 0 pkgs/top-level/all-packages.nix | 8 ++- 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/tools/node-webkit/nw11.nix rename pkgs/development/tools/node-webkit/{default.nix => nw9.nix} (100%) diff --git a/pkgs/development/tools/node-webkit/nw11.nix b/pkgs/development/tools/node-webkit/nw11.nix new file mode 100644 index 00000000000..978213f6760 --- /dev/null +++ b/pkgs/development/tools/node-webkit/nw11.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchurl, buildEnv, makeWrapper +, xlibs, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig +, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, udev, libcap +, libnotify}: +let + bits = if stdenv.system == "x86_64-linux" then "x64" + else "ia32"; + + nwEnv = buildEnv { + name = "node-webkit-env"; + paths = [ + xlibs.libX11 xlibs.libXrender glib gtk atk pango cairo gdk_pixbuf + freetype fontconfig xlibs.libXcomposite alsaLib xlibs.libXdamage + xlibs.libXext xlibs.libXfixes nss nspr gconf expat dbus stdenv.cc + xlibs.libXtst xlibs.libXi xlibs.libXcursor xlibs.libXrandr libcap + libnotify + ]; + }; + +in stdenv.mkDerivation rec { + name = "node-webkit-${version}"; + version = "0.11.2"; + + src = fetchurl { + url = "http://dl.node-webkit.org/v${version}/node-webkit-v${version}-linux-${bits}.tar.gz"; + sha256 = if bits == "x64" then + "1iby0yrnbk9xfcsfz59f6g00l6rxiyxvq78shs0c145ky7lknq5q" else + "1hk3c9z3kwmqaj87vc5k1a7fv8jhkyqw1wjmsl3q5i50w880h398"; + }; + + installPhase = '' + mkdir -p $out/share/node-webkit + cp -R * $out/share/node-webkit + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nw + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nwsnapshot + + ln -s ${udev}/lib/libudev.so $out/share/node-webkit/libudev.so.0 + + patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nw + patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nwsnapshot + + mkdir -p $out/bin + ln -s $out/share/node-webkit/nw $out/bin + ln -s $out/share/node-webkit/nwsnapshot $out/bin + ''; + + buildInputs = [ makeWrapper ]; + + meta = with stdenv.lib; { + description = "An app runtime based on Chromium and node.js"; + homepage = https://github.com/rogerwang/node-webkit; + platforms = ["i686-linux" "x86_64-linux"]; + maintainers = [ maintainers.offline ]; + license = licenses.bsd3; + }; +} diff --git a/pkgs/development/tools/node-webkit/default.nix b/pkgs/development/tools/node-webkit/nw9.nix similarity index 100% rename from pkgs/development/tools/node-webkit/default.nix rename to pkgs/development/tools/node-webkit/nw9.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e7efc86f83a..1d0e5365a71 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4784,7 +4784,13 @@ let pythonPackages = python3Packages; }; - node_webkit = callPackage ../development/tools/node-webkit { + node_webkit = node_webkit_0_9; + + node_webkit_0_11 = callPackage ../development/tools/node-webkit/nw11.nix { + gconf = pkgs.gnome.GConf; + }; + + node_webkit_0_9 = callPackage ../development/tools/node-webkit/nw9.nix { gconf = pkgs.gnome.GConf; }; From 264ed82eda55403aad810a2b32527b510c83e24a Mon Sep 17 00:00:00 2001 From: Matej Cotman Date: Thu, 22 Jan 2015 05:16:58 +0100 Subject: [PATCH 2/2] nixui: add new package --- .../package-management/nixui/default.nix | 53 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 55 insertions(+) create mode 100644 pkgs/tools/package-management/nixui/default.nix diff --git a/pkgs/tools/package-management/nixui/default.nix b/pkgs/tools/package-management/nixui/default.nix new file mode 100644 index 00000000000..26123134985 --- /dev/null +++ b/pkgs/tools/package-management/nixui/default.nix @@ -0,0 +1,53 @@ +{ stdenv, pkgs, fetchgit, nix, node_webkit, config, makeDesktopItem, writeScript +, profilePaths ? (config.nixui.profilePaths or ["/nix/var/nix/profiles"]) +, dataDir ? (config.nixui.dataDir or "/tmp") +, configurations ? (config.nixui.configurations or ["/etc/nixos/configuration.nix"]) +, NIX_PATH ? (config.nixui.NIX_PATH or "/nix/var/nix/profiles/per-user/root/channels/nixos:nixpkgs=/etc/nixos/nixpkgs:nixos-config=/etc/nixos/configuration.nix") }: +let + version = "0.1.0"; + src = fetchgit { + url = "git://github.com/matejc/nixui.git"; + rev = "refs/tags/${version}"; + sha256 = "198inv8ih751fc1l4dvjp9p6k4kfacikab61v6f604d45psnk6qf"; + }; + nixui = (import "${src}/default.nix" { nixui = src; inherit pkgs; }).build; + script = writeScript "nixui" '' + #! ${stdenv.shell} + export PATH="${nix}/bin:\$PATH" + export NIXUI_CONFIG="${config}" + ${node_webkit}/bin/nw ${nixui}/lib/node_modules/nixui/ + ''; + config = builtins.toFile "config.json" '' + { + "profilePaths": ${builtins.toJSON profilePaths}, + "dataDir": "${dataDir}", + "configurations": ${builtins.toJSON configurations}, + "NIX_PATH": "${NIX_PATH}" + } + ''; + desktop = makeDesktopItem { + name = "nixui"; + exec = script; + icon = "${nixui}/lib/node_modules/nixui/img/128.png"; + desktopName = "NixUI"; + genericName = "NixUI"; + }; +in +stdenv.mkDerivation rec { + name = "nixui-${version}"; + inherit version src; + installPhase = '' + mkdir -p $out/bin + ln -s ${script} $out/bin/nixui + + mkdir -p $out/share/applications + ln -s ${desktop}/share/applications/* $out/share/applications/ + ''; + meta = { + description = "NodeWebkit user interface for Nix"; + homepage = https://github.com/matejc/nixui; + license = stdenv.lib.licenses.bsd2; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1d0e5365a71..de3e5b033ff 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12904,6 +12904,8 @@ let nixopsUnstable = callPackage ../tools/package-management/nixops/unstable.nix { }; + nixui = callPackage ../tools/package-management/nixui { node_webkit = node_webkit_0_11; }; + nix-prefetch-scripts = callPackage ../tools/package-management/nix-prefetch-scripts { }; nix-repl = callPackage ../tools/package-management/nix-repl { };