From 13f44694dccd078d8071660a8b81ab4cdff5f1ea Mon Sep 17 00:00:00 2001 From: Jan Malakhovski Date: Sun, 13 May 2018 01:13:58 +0000 Subject: [PATCH] uim: 1.8.6 -> 1.8.6-20180501-git, switch to fetchFromGitHub Old version fails to build. --- pkgs/tools/inputmethods/uim/data-hook.patch | 41 ++++++------ pkgs/tools/inputmethods/uim/default.nix | 74 ++++++++++++++++----- 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 ]; }; }