summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-02-27 08:23:17 +0000
committerRobin Gloster <mail@glob.in>2016-02-27 08:23:17 +0000
commit08893722ba4e26bf8252c5c17e29dfde896bf5a4 (patch)
tree400192af83f3050f3946e07aea4dd873ac7bf906
parent83bf03e1a361740ba07bde619628e110db67d891 (diff)
parentb9853c0b9b8ef4fd20307a60d5defa0722bbf663 (diff)
downloadnixpkgs-08893722ba4e26bf8252c5c17e29dfde896bf5a4.tar
nixpkgs-08893722ba4e26bf8252c5c17e29dfde896bf5a4.tar.gz
nixpkgs-08893722ba4e26bf8252c5c17e29dfde896bf5a4.tar.bz2
nixpkgs-08893722ba4e26bf8252c5c17e29dfde896bf5a4.tar.lz
nixpkgs-08893722ba4e26bf8252c5c17e29dfde896bf5a4.tar.xz
nixpkgs-08893722ba4e26bf8252c5c17e29dfde896bf5a4.tar.zst
nixpkgs-08893722ba4e26bf8252c5c17e29dfde896bf5a4.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
-rw-r--r--nixos/modules/i18n/inputMethod/ibus.nix32
-rw-r--r--nixos/modules/services/x11/hardware/libinput.nix7
-rw-r--r--pkgs/applications/networking/msmtp/default.nix10
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix14
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix22
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix46
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix65
-rw-r--r--pkgs/tools/inputmethods/ibus/wrapper.nix50
-rw-r--r--pkgs/tools/networking/sshpass/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix22
10 files changed, 186 insertions, 84 deletions
diff --git a/nixos/modules/i18n/inputMethod/ibus.nix b/nixos/modules/i18n/inputMethod/ibus.nix
index 86059751a3d..bb80f43634d 100644
--- a/nixos/modules/i18n/inputMethod/ibus.nix
+++ b/nixos/modules/i18n/inputMethod/ibus.nix
@@ -9,6 +9,17 @@ let
     name  = "ibus-engine";
     check = x: (lib.types.package.check x) && (attrByPath ["meta" "isIbusEngine"] false x);
   };
+
+  ibusAutostart = pkgs.writeTextFile {
+    name = "autostart-ibus-daemon";
+    destination = "/etc/xdg/autostart/ibus-daemon.desktop";
+    text = ''
+      [Desktop Entry]
+      Name=IBus
+      Type=Application
+      Exec=${ibusPackage}/bin/ibus-daemon --daemonize --xim --cache=refresh
+    '';
+  };
 in
 {
   options = {
@@ -17,27 +28,28 @@ in
         type    = with types; listOf ibusEngine;
         default = [];
         example = literalExample "with pkgs.ibus-engines; [ mozc hangul ]";
-        description = ''
-          Enabled IBus engines.
-          Available engines can be found by running `nix-env "&lt;nixpkgs&gt;" . -qaP -A ibus-engines`.
-        '';
+        description =
+          let
+            engines =
+              lib.concatStringsSep ", "
+              (map (name: "<literal>${name}</literal>")
+               (lib.attrNames pkgs.ibus-engines));
+          in
+            "Enabled IBus engines. Available engines are: ${engines}.";
       };
     };
   };
 
   config = mkIf (config.i18n.inputMethod.enabled == "ibus") {
     # Without dconf enabled it is impossible to use IBus
-    environment.systemPackages = [ ibusPackage pkgs.gnome3.dconf ];
-
-    gtkPlugins = [ pkgs.ibus ];
-    qtPlugins  = [ pkgs.ibus-qt ];
+    environment.systemPackages = with pkgs; [
+      ibusPackage ibus-qt gnome3.dconf ibusAutostart
+    ];
 
     environment.variables = {
       GTK_IM_MODULE = "ibus";
       QT_IM_MODULE = "ibus";
       XMODIFIERS = "@im=ibus";
     };
-
-    services.xserver.displayManager.sessionCommands = "${ibusPackage}/bin/ibus-daemon --daemonize --xim --cache=none";
   };
 }
diff --git a/nixos/modules/services/x11/hardware/libinput.nix b/nixos/modules/services/x11/hardware/libinput.nix
index fb9e24160e9..12cc1e7e646 100644
--- a/nixos/modules/services/x11/hardware/libinput.nix
+++ b/nixos/modules/services/x11/hardware/libinput.nix
@@ -10,12 +10,7 @@ in {
 
     services.xserver.libinput = {
 
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        example = true;
-        description = "Whether to enable libinput support.";
-      };
+      enable = mkEnableOption "libinput";
 
       dev = mkOption {
         type = types.nullOr types.str;
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index 363e98d46d2..e78605392be 100644
--- a/pkgs/applications/networking/msmtp/default.nix
+++ b/pkgs/applications/networking/msmtp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, pkgconfig, gnutls, gsasl, libidn }:
+{ stdenv, fetchurl, openssl, pkgconfig, gnutls, gsasl, libidn, Security }:
 
 stdenv.mkDerivation rec {
   version = "1.6.2";
@@ -9,7 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "12c7ljahb06pgn8yvvw526xvr11vnr6d4nr0apylixddpxycsvig";
   };
 
-  buildInputs = [ openssl pkgconfig gnutls gsasl libidn ];
+  buildInputs = [ openssl pkgconfig gnutls gsasl libidn ]
+    ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+  configureFlags =
+    stdenv.lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
 
   postInstall = ''
     cp scripts/msmtpq/msmtp-queue scripts/msmtpq/msmtpq $prefix/bin/
@@ -21,6 +25,6 @@ stdenv.mkDerivation rec {
       homepage = "http://msmtp.sourceforge.net/";
       license = stdenv.lib.licenses.gpl3;
       maintainers = [ stdenv.lib.maintainers.garbas ];
-      platforms = stdenv.lib.platforms.linux;
+      platforms = stdenv.lib.platforms.unix;
     };
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
index 89039745fd9..2494c75a06c 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
@@ -1,5 +1,7 @@
-{ stdenv, fetchFromGitHub, makeWrapper, ibus, anthy, intltool, pkgconfig, glib, gobjectIntrospection,
-  python, pythonPackages, gtk3, libtool, automake, autoconf }:
+{ stdenv, fetchFromGitHub, makeWrapper, ibus, anthy, intltool
+, pkgconfig, glib, gobjectIntrospection
+, python3, pygobject3, gtk3, libtool, automake, autoconf
+}:
 
 stdenv.mkDerivation rec {
   name = "ibus-anthy-${version}";
@@ -18,12 +20,14 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t";
 
-  buildInputs = [ makeWrapper ibus anthy intltool pkgconfig glib gobjectIntrospection
-    python pythonPackages.pygobject3 gtk3 libtool automake autoconf ];
+  buildInputs = [
+    makeWrapper ibus anthy intltool pkgconfig glib gobjectIntrospection
+    python3 pygobject3 gtk3 libtool automake autoconf
+  ];
 
   postFixup = ''
     substituteInPlace $out/share/ibus/component/anthy.xml --replace \$\{exec_prefix\} $out
-    for file in "$out"/libexec/*; do
+    for file in "$out"/libexec/*; do # */
       wrapProgram "$file" \
         --prefix PYTHONPATH : $PYTHONPATH \
         --prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH:$out/lib/girepository-1.0
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
index b682196d5d0..ffffeefa9b6 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
@@ -1,24 +1,20 @@
-{ stdenv, gnome, fetchFromGitHub, ibus, libhangul, autoconf, automake, gettext, libtool, librsvg,
-  intltool, pkgconfig, pythonPackages, makeWrapper, gtk3, python }:
+{ stdenv, fetchurl, makeWrapper
+, intltool, pkgconfig
+, gtk3, ibus, libhangul, librsvg, python3, pygobject3
+}:
 
 stdenv.mkDerivation rec {
   name = "ibus-hangul-${version}";
   version = "1.5.0";
 
-  src = fetchFromGitHub {
-    owner  = "choehwanjin";
-    repo   = "ibus-hangul";
-    rev    = version;
-    sha256 = "12l2spr32biqdbz01bzkamgq5gskbi6cd7ai343wqyy1ibjlkmp8";
+  src = fetchurl {
+    url = "https://github.com/choehwanjin/ibus-hangul/releases/download/${version}/${name}.tar.gz";
+    sha256 = null;
   };
 
-  buildInputs = [ ibus libhangul autoconf gettext automake libtool
-    intltool pkgconfig python pythonPackages.pygobject3 gtk3 makeWrapper ];
+  buildInputs = [ gtk3 ibus libhangul python3 pygobject3 ];
 
-  preConfigure = ''
-    autoreconf --verbose --force --install
-    intltoolize --automake --force --copy
-  '';
+  nativeBuildInputs = [ intltool makeWrapper pkgconfig ];
 
   postInstall = ''
     wrapProgram $out/bin/ibus-setup-hangul \
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index 244169cf46b..3d78a8ec69e 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -1,15 +1,53 @@
-{ stdenv, fetchurl, ibus, pkgconfig, python3, pythonPackages }:
+{ stdenv, fetchurl, makeWrapper, ibus, pkgconfig, python3, pygobject3
+, gtk3, atk, dconf, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
   name = "ibus-table-${version}";
-  version = "1.9.6";
+  version = "1.9.11";
 
   src = fetchurl {
     url = "https://github.com/kaio/ibus-table/releases/download/${version}/${name}.tar.gz";
-    sha256 = "0xygfscmsx0x80c4d4v40k9bc7831kgdsc74mc84ljxbjg9p9lcf";
+    sha256 = "14sb89z1inbbhcrbsm5nww8la04ncy2lk32mxfqpi4ghl22ixxqd";
   };
 
-  buildInputs = [ ibus pkgconfig python3 pythonPackages.pygobject3 ];
+  postPatch = ''
+    # Data paths will be set at run-time.
+    sed -e "/export IBUS_TABLE_LIB_LOCATION=/ s/^.*$//" \
+        -e "/export IBUS_TABLE_LOCATION=/ s/^.*$//" \
+        -i "engine/ibus-engine-table.in"
+    sed -e "/export IBUS_TABLE_BIN_PATH=/ s/^.*$//" \
+        -e "/export IBUS_TABLE_DATA_DIR=/ s/^.*$//" \
+        -i "engine/ibus-table-createdb.in"
+    sed -e "/export IBUS_PREFIX=/ s/^.*$//" \
+        -e "/export IBUS_DATAROOTDIR=/ s/^.$//" \
+        -e "/export IBUS_LOCALEDIR=/ s/^.$//" \
+        -i "setup/ibus-setup-table.in"
+  '';
+
+  buildInputs = [
+    gtk3 dconf gobjectIntrospection
+    ibus
+    pkgconfig
+    python3 pygobject3
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  preFixup = ''
+    for prog in "$out/bin"/*; do #*/
+      wrapProgram "$prog" \
+        --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
+        --prefix PYTHONPATH : "$PYTHONPATH" \
+        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
+        --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
+    done
+
+    for prog in "$out/libexec"/*; do #*/
+      wrapProgram "$prog" \
+        --prefix PYTHONPATH : "$PYTHONPATH" \
+        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0"
+    done
+  '';
 
   meta = with stdenv.lib; {
     isIbusEngine = true;
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 3e17e721f7b..8b830c257f0 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -1,42 +1,71 @@
-{ stdenv, fetchurl, makeWrapper, python, intltool, pkgconfig
-, gnome3, atk, pygobject3, dbus, libnotify, isocodes, gobjectIntrospection, wayland }:
+{ stdenv, fetchurl, makeWrapper
+, intltool, isocodes, pkgconfig
+, python3, pygobject3
+, gtk2, gtk3, atk, dconf, glib
+, dbus, libnotify, gobjectIntrospection, wayland
+}:
 
 stdenv.mkDerivation rec {
   name = "ibus-${version}";
-  version = "1.5.11";
+  version = "1.5.13";
 
   src = fetchurl {
     url = "https://github.com/ibus/ibus/releases/download/${version}/${name}.tar.gz";
-    sha256 = "1g26llizd26h9sfz4xdq8krhz19hn08pirvfbkk3g89ri8lmm6a9";
+    sha256 = "1wd5azlsgdih8qw6gi15rv130s6d90846n3r1ccwmp6z882xhwzd";
   };
 
-  configureFlags = "--disable-gconf --enable-dconf --disable-memconf --enable-ui --enable-python-library";
+  postPatch = ''
+    # These paths will be set in the wrapper.
+    sed -e "/export IBUS_DATAROOTDIR/ s/^.*$//" \
+        -e "/export IBUS_LIBEXECDIR/ s/^.*$//" \
+        -e "/export IBUS_LOCALEDIR/ s/^.*$//" \
+        -e "/export IBUS_PREFIX/ s/^.*$//" \
+        -i "setup/ibus-setup.in"
+  '';
+
+  configureFlags = [
+    "--disable-gconf"
+    "--enable-dconf"
+    "--disable-memconf"
+    "--enable-ui"
+    "--enable-python-library"
+  ];
 
   buildInputs = [
-    makeWrapper python gnome3.glib wayland
-    intltool pkgconfig gnome3.gtk2
-    gnome3.gtk3 dbus gnome3.dconf gnome3.gconf
-    libnotify isocodes gobjectIntrospection
+    python3 pygobject3
+    intltool isocodes pkgconfig
+    gtk2 gtk3 dconf glib
+    dbus libnotify gobjectIntrospection wayland
   ];
 
+  nativeBuildInputs = [ makeWrapper ];
+
   preConfigure = ''
+    # Fix hard-coded installation paths, so make does not try to overwrite our
+    # Python installation.
+    sed -e "/py2overridesdir=/ s|=.*$|=$out/lib/${python3.libPrefix}|" \
+        -e "/pyoverridesdir=/ s|=.*$|=$out/lib/${python3.libPrefix}|" \
+        -e "/PYTHON2_LIBDIR/ s|=.*|=$out/lib/${python3.libPrefix}|" \
+        -i configure
+
+    # Don't try to generate a system-wide dconf database; it wouldn't work.
     substituteInPlace data/dconf/Makefile.in --replace "dconf update" "echo"
-    sed -i "s|PYTHON2_LIBDIR=.*|PYTHON2_LIBDIR=$out/lib/${python.libPrefix}|" configure
   '';
 
   preFixup = ''
-    for f in "$out"/bin/*; do
-      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
-                       --prefix PYTHONPATH : "$(toPythonPath ${pygobject3})" \
-                       --prefix LD_LIBRARY_PATH : "${gnome3.gtk3}/lib:${atk}/lib:$out/lib" \
-                       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
-                       --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules"
+    for f in "$out/bin"/*; do #*/
+      wrapProgram "$f" \
+        --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
+        --prefix PYTHONPATH : "$PYTHONPATH" \
+        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
+        --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
     done
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/ibus/ibus;
     description = "Intelligent Input Bus for Linux / Unix OS";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ttuegel ];
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus/wrapper.nix b/pkgs/tools/inputmethods/ibus/wrapper.nix
index 270a2db7412..3bccad1cc0c 100644
--- a/pkgs/tools/inputmethods/ibus/wrapper.nix
+++ b/pkgs/tools/inputmethods/ibus/wrapper.nix
@@ -1,24 +1,36 @@
-{ stdenv, buildEnv, ibus, makeWrapper, plugins, hicolor_icon_theme }:
+{ stdenv, runCommand, ibus, lndir, makeWrapper, plugins, hicolor_icon_theme }:
 
 let
-drv = buildEnv {
   name = "ibus-with-plugins-" + (builtins.parseDrvName ibus.name).version;
+  env = {
+    nativeBuildInputs = [ lndir makeWrapper ];
+    propagatedUserEnvPackages = [ hicolor_icon_theme ];
+    paths = [ ibus ] ++ plugins;
+  };
+  command = ''
+    for dir in bin etc lib libexec share; do
+        mkdir -p "$out/$dir"
+        for pkg in $paths; do
+            if [ -d "$pkg/$dir" ]; then
+                lndir -silent "$pkg/$dir" "$out/$dir"
+            fi
+        done
+    done
 
-  paths = [ ibus hicolor_icon_theme ] ++ plugins;
-
-  postBuild = ''
-    # TODO: This could be avoided if buildEnv could be forced to create all directories
-    if [ -L $out/bin ]; then
-      rm $out/bin
-      mkdir $out/bin
-      for i in ${ibus}/bin/*; do
-        ln -s $i $out/bin
-      done
-    fi
-    wrapProgram $out/bin/ibus \
-      --set IBUS_COMPONENT_PATH "$out/share/ibus/component/"
-    wrapProgram $out/bin/ibus-daemon \
-      --set IBUS_COMPONENT_PATH "$out/share/ibus/component/"
+    for prog in ibus ibus-daemon ibus-setup; do
+        wrapProgram "$out/bin/$prog" \
+          --suffix XDG_DATA_DIRS : "${hicolor_icon_theme}/share" \
+          --set IBUS_COMPONENT_PATH "$out/share/ibus/component/" \
+          --set IBUS_DATAROOTDIR "$out/share" \
+          --set IBUS_LIBEXECDIR "$out/libexec" \
+          --set IBUS_LOCALEDIR "$out/share/locale" \
+          --set IBUS_PREFIX "$out" \
+          --set IBUS_TABLE_BIN_PATH "$out/bin" \
+          --set IBUS_TABLE_DATA_DIR "$out/share" \
+          --set IBUS_TABLE_LIB_LOCATION "$out/libexec" \
+          --set IBUS_TABLE_LOCATION "$out/share/ibus-table" \
+          --set IBUS_TABLE_DEBUG_LEVEL 1
+    done
   '';
-  };
-in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
+in
+  runCommand name env command
diff --git a/pkgs/tools/networking/sshpass/default.nix b/pkgs/tools/networking/sshpass/default.nix
index 3a8e106155f..95212b00beb 100644
--- a/pkgs/tools/networking/sshpass/default.nix
+++ b/pkgs/tools/networking/sshpass/default.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
     homepage = http://sourceforge.net/projects/sshpass/;
     description = "Non-interactive ssh password auth";
     maintainers = [ stdenv.lib.maintainers.madjar ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d3aca452704..abb06530f15 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1160,15 +1160,22 @@ let
 
   m17n_lib = callPackage ../tools/inputmethods/m17n-lib { };
 
-  ibus = callPackage ../tools/inputmethods/ibus { };
+  ibus = callPackage ../tools/inputmethods/ibus {
+    inherit (python3Packages) pygobject3;
+    inherit (gnome3) dconf glib;
+  };
 
   ibus-qt = callPackage ../tools/inputmethods/ibus/ibus-qt.nix { };
 
   ibus-engines = {
 
-    anthy = callPackage ../tools/inputmethods/ibus-engines/ibus-anthy { };
+    anthy = callPackage ../tools/inputmethods/ibus-engines/ibus-anthy {
+      inherit (python3Packages) pygobject3;
+    };
 
-    hangul = callPackage ../tools/inputmethods/ibus-engines/ibus-hangul { };
+    hangul = callPackage ../tools/inputmethods/ibus-engines/ibus-hangul {
+      inherit (python3Packages) pygobject3;
+    };
 
     m17n = callPackage ../tools/inputmethods/ibus-engines/ibus-m17n { };
 
@@ -1176,7 +1183,10 @@ let
       inherit (pythonPackages) gyp;
     };
 
-    table = callPackage ../tools/inputmethods/ibus-engines/ibus-table { };
+    table = callPackage ../tools/inputmethods/ibus-engines/ibus-table {
+      inherit (python3Packages) pygobject3;
+      inherit (gnome3) dconf;
+    };
 
     table-others = callPackage ../tools/inputmethods/ibus-engines/ibus-table-others {
       ibus-table = ibus-engines.table;
@@ -12973,7 +12983,9 @@ let
 
   sxhkd = callPackage ../applications/window-managers/sxhkd { };
 
-  msmtp = callPackage ../applications/networking/msmtp { };
+  msmtp = callPackage ../applications/networking/msmtp {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   imapfilter = callPackage ../applications/networking/mailreaders/imapfilter.nix {
     lua = lua5;