Files
nixpkgs/pkgs/by-name/ui/uim/package.nix
Sandro Jäckel 1c8f2099d8 uim: remove null from inputs
Those packages are never undefined and if they would, that would be a
bug, hence we can remove that outdated pattern.
2026-04-09 01:04:26 +02:00

156 lines
3.5 KiB
Nix

{
lib,
stdenv,
fetchurl,
shared-mime-info,
autoconf,
automake116x,
intltool,
libtool,
pkg-config,
cmake,
ruby,
librsvg,
ncurses,
m17n_lib,
m17n_db,
expat,
withAnthy ? true,
anthy,
withGtk ? true,
withGtk2 ? withGtk,
gtk2,
withGtk3 ? withGtk,
gtk3,
# Was never enabled in the history of this package and is not needed by any
# dependent package, hence disabled to save up closure size.
withQt ? false,
withQt5 ? withQt,
qt5,
withLibnotify ? true,
libnotify,
withSqlite ? true,
sqlite,
withNetworking ? true,
curl,
openssl,
withFFI ? true,
libffi,
# Things that are clearly an overkill to be enabled by default
withMisc ? false,
libeb,
}:
stdenv.mkDerivation (finalAttrs: {
version = "1.9.6";
pname = "uim";
src = fetchurl {
url = "https://github.com/uim/uim/releases/download/${finalAttrs.version}/uim-${finalAttrs.version}.tar.bz2";
hash = "sha256-Z/Dl+kKSpTPtxvmLhC32DFMaic+C0DNqThq3IgKrjIM=";
meta = {
homepage = "https://github.com/uim/uim/";
};
};
nativeBuildInputs = [
autoconf
automake116x
intltool
libtool
pkg-config
cmake
ruby # used by sigscheme build to generate function tables
librsvg # used by uim build to generate png pixmaps from svg
]
++ lib.optionals withQt5 [
qt5.wrapQtAppsHook
];
buildInputs = [
ncurses
m17n_lib
m17n_db
expat
]
++ lib.optional withAnthy anthy
++ lib.optional withGtk2 gtk2
++ lib.optional withGtk3 gtk3
++ lib.optionals withQt5 [
qt5.qtbase
qt5.qtx11extras
]
++ lib.optional withLibnotify libnotify
++ lib.optional withSqlite sqlite
++ lib.optionals withNetworking [
curl
openssl
]
++ lib.optional withFFI libffi
++ lib.optional withMisc libeb;
postPatch = ''
patchShebangs *.sh */*.sh */*/*.sh
cp replace/*.h uim
'';
patches = [
./data-hook.patch
];
configureFlags = [
# configure in maintainer mode or else some pixmaps won't get autogenerated
# this should imply the above `--enable-maintainer-mode`, but it does not
"--enable-maintainer-mode"
"--enable-pref"
"--with-skk"
"--with-x"
"--with-xft"
"--with-expat=${expat.dev}"
]
++ lib.optional withAnthy "--with-anthy-utf8"
++ lib.optional withGtk2 "--with-gtk2"
++ lib.optional withGtk3 "--with-gtk3"
++ lib.optionals withQt5 [
"--with-qt5"
"--with-qt5-immodule"
]
++ lib.optional withLibnotify "--enable-notify=libnotify"
++ lib.optional withSqlite "--with-sqlite3"
++ lib.optionals withNetworking [
"--with-curl"
"--with-openssl-dir=${openssl.dev}"
]
++ lib.optional withFFI "--with-ffi"
++ lib.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]
# TODO: fix this in librsvg/glib later
# https://github.com/NixOS/nixpkgs/pull/57027#issuecomment-475461733
preBuild = ''
export XDG_DATA_DIRS="${shared-mime-info}/share"
'';
dontUseCmakeConfigure = true;
meta = {
inherit (finalAttrs.src.meta) homepage;
description = "Multilingual input method framework";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
oxij
];
};
})