summary refs log tree commit diff
path: root/pkgs/tools/inputmethods/uim
diff options
context:
space:
mode:
authorJan Malakhovski <oxij@oxij.org>2018-05-13 01:13:58 +0000
committerJan Malakhovski <oxij@oxij.org>2018-05-15 15:23:59 +0000
commit13f44694dccd078d8071660a8b81ab4cdff5f1ea (patch)
treef8bf40ee017fe5512a1ff9e90b6c5381e3b3f0c3 /pkgs/tools/inputmethods/uim
parentb0d29e7e179f20c92f18e2eff13b871d015adc5a (diff)
downloadnixpkgs-13f44694dccd078d8071660a8b81ab4cdff5f1ea.tar
nixpkgs-13f44694dccd078d8071660a8b81ab4cdff5f1ea.tar.gz
nixpkgs-13f44694dccd078d8071660a8b81ab4cdff5f1ea.tar.bz2
nixpkgs-13f44694dccd078d8071660a8b81ab4cdff5f1ea.tar.lz
nixpkgs-13f44694dccd078d8071660a8b81ab4cdff5f1ea.tar.xz
nixpkgs-13f44694dccd078d8071660a8b81ab4cdff5f1ea.tar.zst
nixpkgs-13f44694dccd078d8071660a8b81ab4cdff5f1ea.zip
uim: 1.8.6 -> 1.8.6-20180501-git, switch to fetchFromGitHub
Old version fails to build.
Diffstat (limited to 'pkgs/tools/inputmethods/uim')
-rw-r--r--pkgs/tools/inputmethods/uim/data-hook.patch41
-rw-r--r--pkgs/tools/inputmethods/uim/default.nix74
2 files changed, 76 insertions, 39 deletions
diff --git a/pkgs/tools/inputmethods/uim/data-hook.patch b/pkgs/tools/inputmethods/uim/data-hook.patch
index 07fdf873316..be80962527b 100644
--- a/pkgs/tools/inputmethods/uim/data-hook.patch
+++ b/pkgs/tools/inputmethods/uim/data-hook.patch
@@ -1,6 +1,6 @@
 --- a/gtk2/immodule/Makefile.in	2015-11-24 16:21:08.967087208 +0900
 +++ b/gtk2/immodule/Makefile.in	2015-11-24 16:22:53.316095150 +0900
-@@ -806,7 +806,6 @@
+@@ -928,7 +928,6 @@
  
  install-data-am: install-moduleLTLIBRARIES
  	@$(NORMAL_INSTALL)
@@ -8,19 +8,18 @@
  install-dvi: install-dvi-am
  
  install-dvi-am:
-@@ -861,7 +860,7 @@
- 	ctags distclean distclean-compile distclean-generic \
- 	distclean-libtool distclean-tags distdir dvi dvi-am html \
- 	html-am info info-am install install-am install-data \
--	install-data-am install-data-hook install-dvi install-dvi-am \
-+	install-data-am install-dvi install-dvi-am \
- 	install-exec install-exec-am install-html install-html-am \
- 	install-info install-info-am install-man \
- 	install-moduleLTLIBRARIES install-pdf install-pdf-am \
-
+@@ -993,7 +992,7 @@
+ 	distclean-compile distclean-generic distclean-libtool \
+ 	distclean-tags distdir dvi dvi-am html html-am info info-am \
+ 	install install-am install-data install-data-am \
+-	install-data-hook install-dvi install-dvi-am install-exec \
++	install-dvi install-dvi-am install-exec \
+ 	install-exec-am install-html install-html-am install-info \
+ 	install-info-am install-man install-moduleLTLIBRARIES \
+ 	install-pdf install-pdf-am install-ps install-ps-am \
 --- a/gtk3/immodule/Makefile.in	2015-11-24 16:21:08.971087209 +0900
 +++ b/gtk3/immodule/Makefile.in	2015-11-24 16:23:28.251097832 +0900
-@@ -824,7 +824,6 @@
+@@ -896,7 +896,6 @@
  
  install-data-am: install-moduleLTLIBRARIES
  	@$(NORMAL_INSTALL)
@@ -28,12 +27,12 @@
  install-dvi: install-dvi-am
  
  install-dvi-am:
-@@ -879,7 +878,7 @@
- 	ctags distclean distclean-compile distclean-generic \
- 	distclean-libtool distclean-tags distdir dvi dvi-am html \
- 	html-am info info-am install install-am install-data \
--	install-data-am install-data-hook install-dvi install-dvi-am \
-+	install-data-am install-dvi install-dvi-am \
- 	install-exec install-exec-am install-html install-html-am \
- 	install-info install-info-am install-man \
- 	install-moduleLTLIBRARIES install-pdf install-pdf-am 
+@@ -959,7 +958,7 @@
+ 	cscopelist-am ctags ctags-am distclean distclean-compile \
+ 	distclean-generic distclean-libtool distclean-tags distdir dvi \
+ 	dvi-am html html-am info info-am install install-am \
+-	install-data install-data-am install-data-hook install-dvi \
++	install-data install-data-am install-dvi \
+ 	install-dvi-am install-exec install-exec-am install-html \
+ 	install-html-am install-info install-info-am install-man \
+ 	install-moduleLTLIBRARIES install-pdf install-pdf-am \
diff --git a/pkgs/tools/inputmethods/uim/default.nix b/pkgs/tools/inputmethods/uim/default.nix
index 96b88714178..1bdbef2fde6 100644
--- a/pkgs/tools/inputmethods/uim/default.nix
+++ b/pkgs/tools/inputmethods/uim/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, intltool, pkgconfig, cmake
+{ stdenv, fetchFromGitHub
+, autoconf, automake, intltool, libtool, pkgconfig, cmake
+, ruby, librsvg
 , ncurses, m17n_lib, m17n_db, expat
 , withAnthy ? true, anthy ? null
 , withGtk ? true
@@ -6,6 +8,7 @@
 , withGtk3 ? withGtk, gtk3 ? null
 , withQt ? true
 , withQt4 ? withQt, qt4 ? null
+, withQt5 ? false, qt5 ? null
 , withLibnotify ? true, libnotify ? null
 , withSqlite ? true, sqlite ? null
 , withNetworking ? true, curl ? null, openssl ? null
@@ -17,10 +20,17 @@
 
 with stdenv.lib;
 
-assert withAnthy -> anthy != null;
 assert withGtk2 -> gtk2 != null;
 assert withGtk3 -> gtk3 != null;
-assert withQt4 -> qt4 != null;
+
+# TODO(@oxij): ./configure can't find both qmakes at the same time
+# this can be fixed by adding an alias qmake -> qmaka${version} in qmake derivation
+assert withQt4 -> !withQt5 && qt4 != null;
+assert withQt5 -> !withQt4 && qt5 != null;
+
+assert !withQt5; # fails to build with "Makefile.qmake: No such file or directory"
+
+assert withAnthy -> anthy != null;
 assert withLibnotify -> libnotify != null;
 assert withSqlite -> sqlite != null;
 assert withNetworking -> curl != null && openssl != null;
@@ -28,22 +38,32 @@ assert withFFI -> libffi != null;
 assert withMisc -> libeb != null;
 
 stdenv.mkDerivation rec {
-  version = "1.8.6";
+  version = "1.8.6-20180501-git";
   name = "uim-${version}";
 
+  src = fetchFromGitHub {
+    owner = "uim";
+    repo = "uim";
+    rev = "c79432cb5aba3a67fb7e7557f4817c749865cc8a";
+    fetchSubmodules = true;
+    sha256 = "12rznfwq1mh750i18bl1743c51akyyvy6la5rgrxmrnp0mha9ba5";
+  };
+
+  nativeBuildInputs = [
+    autoconf automake intltool libtool pkgconfig cmake
+
+    ruby # used by sigscheme build to generate function tables
+    librsvg # used by uim build to generate png pixmaps from svg
+  ];
+
   buildInputs = [
-    intltool
-    pkgconfig
-    ncurses
-    cmake
-    m17n_lib
-    m17n_db
-    expat
+    ncurses m17n_lib m17n_db expat
   ]
   ++ optional withAnthy anthy
   ++ optional withGtk2 gtk2
   ++ optional withGtk3 gtk3
   ++ optional withQt4 qt4
+  ++ optionals withQt5 [ qt5.qtbase.bin qt5.qtbase.dev ]
   ++ optional withLibnotify libnotify
   ++ optional withSqlite sqlite
   ++ optionals withNetworking [
@@ -52,9 +72,27 @@ stdenv.mkDerivation rec {
   ++ optional withFFI libffi
   ++ optional withMisc libeb;
 
+  prePatch = ''
+    patchShebangs *.sh */*.sh */*/*.sh
+
+    # configure sigscheme in maintainer mode or else some function tables won't get autogenerated
+    substituteInPlace configure.ac \
+      --replace "--with-master-pkg=uim --enable-conf=uim" \
+                "--enable-maintainer-mode --with-master-pkg=uim --enable-conf=uim"
+
+    # generate ./configure files
+    (cd sigscheme/libgcroots; ./autogen.sh)
+    (cd sigscheme; ./autogen.sh)
+    ./autogen.sh
+  '';
+
   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"
@@ -68,6 +106,10 @@ stdenv.mkDerivation rec {
     "--with-qt4"
     "--with-qt4-immodule"
   ]
+  ++ optionals withQt5 [
+    "--with-qt5"
+    "--with-qt5-immodule"
+  ]
   ++ optional withLibnotify "--enable-notify=libnotify"
   ++ optional withSqlite "--with-sqlite3"
   ++ optionals withNetworking [
@@ -87,16 +129,12 @@ stdenv.mkDerivation rec {
 
   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";
+    homepage    = src.meta.homepage;
     description = "A multilingual input method framework";
     license     = licenses.bsd3;
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
+    broken      = stdenv.hostPlatform.isAarch64; # fails to build libgcroots (not supported on aarch64)
     maintainers = with maintainers; [ ericsagnes oxij ];
   };
 }