diff options
author | Robin Gloster <mail@glob.in> | 2016-02-27 08:23:17 +0000 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2016-02-27 08:23:17 +0000 |
commit | 08893722ba4e26bf8252c5c17e29dfde896bf5a4 (patch) | |
tree | 400192af83f3050f3946e07aea4dd873ac7bf906 | |
parent | 83bf03e1a361740ba07bde619628e110db67d891 (diff) | |
parent | b9853c0b9b8ef4fd20307a60d5defa0722bbf663 (diff) | |
download | nixpkgs-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.nix | 32 | ||||
-rw-r--r-- | nixos/modules/services/x11/hardware/libinput.nix | 7 | ||||
-rw-r--r-- | pkgs/applications/networking/msmtp/default.nix | 10 | ||||
-rw-r--r-- | pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix | 14 | ||||
-rw-r--r-- | pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix | 22 | ||||
-rw-r--r-- | pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix | 46 | ||||
-rw-r--r-- | pkgs/tools/inputmethods/ibus/default.nix | 65 | ||||
-rw-r--r-- | pkgs/tools/inputmethods/ibus/wrapper.nix | 50 | ||||
-rw-r--r-- | pkgs/tools/networking/sshpass/default.nix | 2 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 22 |
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 "<nixpkgs>" . -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; |