{ stdenv, fetchurl, intltool, pkgconfig, cmake , ncurses, m17n_lib, m17n_db, expat , withAnthy ? true, anthy ? null , withGtk ? true , withGtk2 ? withGtk, gtk2 ? null , withGtk3 ? withGtk, gtk3 ? null , withQt ? true , withQt4 ? withQt, qt4 ? null , withKde ? withQt , withKde4 ? withKde && withQt4, kdelibs4 ? null, automoc4 ? null , withKNotify4 ? withKde4 , withLibnotify ? !withKNotify4, libnotify ? null , withSqlite ? true, sqlite ? null , withNetworking ? true, curl ? null, openssl ? null , withFFI ? true, libffi ? null # Things that are clearly an overkill to be enabled by default , withMisc ? false, libeb ? null }: with stdenv.lib; assert withAnthy -> anthy != null; assert withGtk2 -> gtk2 != null; assert withGtk3 -> gtk3 != null; assert withQt4 -> qt4 != null; assert withKde4 -> withQt4 && kdelibs4 != null && automoc4 != null; assert withKNotify4 -> withKde4 && !withLibnotify; assert withLibnotify -> !withKNotify4 && libnotify != null; assert withSqlite -> sqlite != null; assert withNetworking -> curl != null && openssl != null; assert withFFI -> libffi != null; assert withMisc -> libeb != null; stdenv.mkDerivation rec { version = "1.8.6"; name = "uim-${version}"; buildInputs = [ intltool pkgconfig ncurses cmake m17n_lib m17n_db expat ] ++ optional withAnthy anthy ++ optional withGtk2 gtk2 ++ optional withGtk3 gtk3 ++ optional withQt4 qt4 ++ optionals withKde4 [ kdelibs4 automoc4 ] ++ optional withLibnotify libnotify ++ optional withSqlite sqlite ++ optionals withNetworking [ curl openssl ] ++ optional withFFI libffi ++ optional withMisc libeb; patches = [ ./data-hook.patch ]; configureFlags = [ "--enable-pref" "--with-skk" "--with-x" "--with-xft" "--with-expat=${expat.dev}" ] ++ optional withAnthy "--with-anthy-utf8" ++ optional withGtk2 "--with-gtk2" ++ optional withGtk3 "--with-gtk3" ++ optionals withQt4 [ "--with-qt4" "--with-qt4-immodule" ] ++ optional withKde4 "--enable-kde4-applet" ++ optional withKNotify4 "--enable-notify=knotify4" ++ optional withLibnotify "--enable-notify=libnotify" ++ optional withSqlite "--with-sqlite3" ++ optionals withNetworking [ "--with-curl" "--with-openssl-dir=${openssl.dev}" ] ++ optional withFFI "--with-ffi" ++ optional withMisc "--with-eb"; # TODO: things in `./configure --help`, but not in nixpkgs #--with-canna Use Canna [default=no] #--with-wnn Build with libwnn [default=no] #--with-mana Build a plugin for Mana [default=yes] #--with-prime Build a plugin for PRIME [default=yes] #--with-sj3 Use SJ3 [default=no] #--with-osx-dcs Build with OS X Dictionary Services [default=no] dontUseCmakeConfigure = true; src = fetchurl { url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/uim/uim-${version}.tar.bz2"; sha1 = "43b9dbdead6797880e6cfc9c032ecb2d37d42777"; }; meta = with stdenv.lib; { homepage = "https://github.com/uim/uim"; description = "A multilingual input method framework"; license = stdenv.lib.licenses.bsd3; platforms = stdenv.lib.platforms.linux; maintainers = with maintainers; [ ericsagnes ]; }; }