#
-# TODO:
-# - SPLIT IT!
+# Conditional build:
+%bcond_without gnome # GNOME panel applet
+%bcond_without kde # KDE panel applet
+%bcond_with qt3 # Qt 3 support / immodule
+%bcond_without qt4 # Qt 4 support / immodule
+%bcond_without anthy # Anthy IM and dictionary support
+%bcond_without canna # Canna IM and dictionary support
+%bcond_without eb # EB text search support
+%bcond_without m17n # m17n IM support
+%bcond_without mana # mana IM support
+%bcond_with scim # scim support [broken, already removed in 1.9.0-git]
+%bcond_without wnn # Wnn IM support
#
Summary: Multilingual input method library
Summary(pl.UTF-8): Biblioteka obsługująca wejście w wielu językach
Name: uim
-Version: 1.7.0
-Release: 0.1
+Version: 1.8.6
+Release: 6
License: GPL or BSD
Group: Libraries
-Source0: http://uim.googlecode.com/files/%{name}-%{version}.tar.bz2
-# Source0-md5: 1633f131ea58b34fd85e15411e3cc363
+#Source0Download: https://github.com/uim/uim/releases
+Source0: https://github.com/uim/uim/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2
+# Source0-md5: ecea4c597bab1fd4ba98ea84edcece59
Source1: %{name}.xinputd
Source2: %{name}-init.el
-Patch0: %{name}-link.patch
-Patch1: %{name}-emacs-utf8.patch
-Patch2: %{name}-enable-libgcroots.patch
-Patch3: %{name}-qt-po.patch
-URL: http://uim.freedesktop.org/
-BuildRequires: Canna-devel
-BuildRequires: Qt3Support-devel
-BuildRequires: anthy-devel >= 9100h-2
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: automoc4
-BuildRequires: cmake
-BuildRequires: curl-devel
-BuildRequires: eb-devel
-BuildRequires: expat-devel
-BuildRequires: gcc-objc
-BuildRequires: gtk+2-devel >= 2:2.2.0
-BuildRequires: gtk+3-devel
-BuildRequires: kde4-kdelibs-devel
+Patch0: %{name}-emacs-utf8.patch
+Patch1: %{name}-gtk+gnome-git.patch
+URL: https://github.com/uim/uim/wiki
+%{?with_canna:BuildRequires: Canna-devel}
+%{?with_wnn:BuildRequires: FreeWnn-devel}
+%{?with_qt4:BuildRequires: Qt3Support-devel >= 4}
+%{?with_anthy:BuildRequires: anthy-devel >= 9100h-2}
+BuildRequires: autoconf >= 2.60b
+BuildRequires: automake >= 1:1.10
+%{?with_kde:BuildRequires: automoc4}
+%{?with_kde:BuildRequires: cmake}
+BuildRequires: curl-devel >= 7.16.4
+%{?with_eb:BuildRequires: eb-devel}
+BuildRequires: expat-devel >= 1.95
+BuildRequires: gettext-tools >= 0.17
+%{?with_gnome:BuildRequires: gnome-panel-devel >= 3}
+BuildRequires: gtk+2-devel >= 2:2.4.0
+BuildRequires: gtk+3-devel >= 3.0
+BuildRequires: intltool >= 0.36.3
+%{?with_kde:BuildRequires: kde4-kdelibs-devel}
BuildRequires: libedit-devel
-BuildRequires: libffi-devel
-BuildRequires: libgcroots-devel
-BuildRequires: libgnome-devel >= 2.4.0
-BuildRequires: libtool
-BuildRequires: m17n-lib-devel
-BuildRequires: mana
+BuildRequires: libffi-devel >= 3.0.0
+BuildRequires: libgcroots-devel >= 0.2.3
+%{?with_gnome:BuildRequires: libgnome-devel >= 2.4.0}
+BuildRequires: libnotify-devel >= 0.4
+BuildRequires: libstdc++-devel
+BuildRequires: libtool >= 2:1.5
+%{?with_m17n:BuildRequires: m17n-lib-devel >= 1.3.1}
+BuildRequires: ncurses-devel
BuildRequires: openssl-devel
-BuildRequires: qt-devel
-BuildRequires: qt4-qmake
-BuildRequires: sqlite3-devel
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(libffi) >= 3.0.0
+# since 1.9.0-git for PRIME support
+#BuildRequires: prime >= 0.8.5.2
+%{?with_qt3:BuildRequires: qt-devel >= 3.2.0}
+%{?with_qt4:BuildRequires: qt4-qmake >= 4}
+%{?with_scim:BuildRequires: scim-devel >= 1.3.0}
+BuildRequires: sqlite3-devel >= 3.0.0
BuildRequires: xorg-lib-libX11-devel
-BuildRequires: xorg-lib-libXau-devel
-BuildRequires: xorg-lib-libXdmcp-devel
BuildRequires: xorg-lib-libXext-devel
BuildRequires: xorg-lib-libXft-devel
-BuildRequires: xorg-lib-libXrender-devel
-BuildRequires: xorg-lib-libXt-devel
-Requires(post,postun): /sbin/ldconfig
-Requires(post,postun): gtk+2
+Requires: libgcroots >= 0.2.3
+# for libuim-curl
+Requires: curl-libs >= 7.16.4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%ifarch %{ix86}
+%if "%(%{__cc} -dumpversion)" >= "6.3"
+# "-O2 -march=i686 -mtune=pentium4" combination causes sigscheme to segfault when built with gcc 6.3
+%define filterout -mtune=pentium4
+%endif
+%endif
+
%description
Uim is a multilingual input method library. Uim aims to provide secure
and useful input methods for all languages. Currently, it can input to
-applications which support Gtk+'s immodule, Qt's immodule and XIM.
+applications which support GTK+'s immodule, Qt's immodule and XIM.
This package provides the input method library, the XIM bridge and
most of the input methods.
%description -l pl.UTF-8
Uim jest biblioteką obsługującą wejście w wielu językach. Celem
-projektu jest udostępnienie bezpiecznej i użytecznej metody dla
-wszystkich języków.
+projektu jest udostępnienie bezpiecznych i użytecznych metod
+wprowadzania dla wszystkich języków. Obecnie potrafi obsłużyć
+aplikacje obsługujące moduły IM z GTK+, moduły IM z Qt oraz XIM.
+
+Ten pakiet udostępnia bibliotekę metody wprowadzania, mostek XIM oraz
+większość metod wprowadzania.
+
+Do wprowadzania tekstu japońskiego trzeba zainstalować:
+- uim-anthy dla metody Anthy
+- uim-canna dla metody Canna
+- uim-skk dla SKK.
%package devel
Summary: Header files for uim libraryi
Pliki nagłówkowe biblioteki uim.
%package gtk2
-Summary: GTK+2 support for Uim
+Summary: GTK+ 2 support for Uim
+Summary(pl.UTF-8): Obsługa GTK+ 2 dla biblioteki Uim
Group: X11/Applications
-Requires: uim = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
# for update-gtk-immodules
-Requires(post): gtk+2 >= 2.9.1-2
-Requires(postun): gtk+2
+Requires(post,postun): gtk+2 >= 2:2.9.1-2
+Requires: gtk+2 >= 2:2.4.0
%description gtk2
Uim is a multilingual input method library. Uim aims to provide secure
and useful input methods for all languages.
-This package provides the Gtk IM module and helper program.
+This package provides the GTK+ 2 IM module and helper program.
+
+%description gtk2 -l pl.UTF-8
+Uim jest biblioteką obsługującą wejście w wielu językach. Celem
+projektu jest udostępnienie bezpiecznych i użytecznych metod
+wprowadzania dla wszystkich języków.
+
+Ten pakiet zawiera moduł IM GTK+ 2 oraz program pomocniczy.
%package gtk3
-Summary: GTK+3 support for Uim
+Summary: GTK+ 3 support for Uim
+Summary(pl.UTF-8): Obsługa GTK+ 3 dla biblioteki Uim
Group: X11/Applications
-Requires: uim = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
# for update-gtk-immodules
-Requires(post): gtk+3
-Requires(postun): gtk+3
+Requires(post,postun): gtk+3
%description gtk3
Uim is a multilingual input method library. Uim aims to provide secure
and useful input methods for all languages.
-This package provides the Gtk IM module and helper program.
+This package provides the GTK+ 3 IM module and helper program.
+
+%description gtk3 -l pl.UTF-8
+Uim jest biblioteką obsługującą wejście w wielu językach. Celem
+projektu jest udostępnienie bezpiecznych i użytecznych metod
+wprowadzania dla wszystkich języków.
+
+Ten pakiet zawiera moduł IM GTK+ 3 oraz program pomocniczy.
%package gnome
-Summary: GNOME Applet for Uim
+Summary: GNOME 3 Applet for Uim
+Summary(pl.UTF-8): Aplet GNOME 3 dla biblioteki Uim
Group: X11/Applications
-Requires: uim = %{version}-%{release}
-Requires: uim-gtk3
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-gtk3 = %{version}-%{release}
%description gnome
Uim is a multilingual input method library. Uim aims to provide secure
and useful input methods for all languages.
-This package provides the GNOME panel applet.
+This package provides the GNOME 3 panel applet.
-%package qt
-Summary: Qt4 support for Uim
+%description gnome -l pl.UTF-8
+Uim jest biblioteką obsługującą wejście w wielu językach. Celem
+projektu jest udostępnienie bezpiecznych i użytecznych metod
+wprowadzania dla wszystkich języków.
+
+Ten pakiet zawiera aplet panelu GNOME 3.
+
+%package qt3
+Summary: Qt 3 support for Uim
+Summary(pl.UTF-8): Obsługa Qt 3 dla biblioteki Uim
Group: X11/Applications
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-qt-common = %{version}-%{release}
-%description qt
+%description qt3
Uim is a multilingual input method library. Uim aims to provide secure
and useful input methods for all languages.
-This package provides the Qt4 IM module and helper programs.
+This package provides the Qt 3 IM module and helper programs.
-%package qt3
-Summary: Qt3 support for Uim
+%description qt3 -l pl.UTF-8
+Uim jest biblioteką obsługującą wejście w wielu językach. Celem
+projektu jest udostępnienie bezpiecznych i użytecznych metod
+wprowadzania dla wszystkich języków.
+
+Ten pakiet zawiera moduł IM Qt 3 oraz programy pomocnicze.
+
+%package qt
+Summary: Qt 4 support for Uim
+Summary(pl.UTF-8): Obsługa Qt 4 dla biblioteki Uim
Group: X11/Applications
-Provides: %{name}-qt-common = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
+Requires: qt >= 6:3.2.0
-%description qt3
+%description qt
Uim is a multilingual input method library. Uim aims to provide secure
and useful input methods for all languages.
-This package provides the Qt3 IM module and helper programs.
+This package provides the Qt 4 IM module and helper programs.
+
+%description qt -l pl.UTF-8
+Uim jest biblioteką obsługującą wejście w wielu językach. Celem
+projektu jest udostępnienie bezpiecznych i użytecznych metod
+wprowadzania dla wszystkich języków.
+
+Ten pakiet zawiera moduł IM Qt 4 oraz programy pomocnicze.
%package kde
-Summary: KDE Applet for Uim
+Summary: KDE 4 Applet for Uim
+Summary(pl.UTF-8): Aplet KDE 4 dla biblioteki Uim
Group: X11/Applications
-Requires: uim = %{version}-%{release}
-Requires: uim-qt
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-qt = %{version}-%{release}
%description kde
Uim is a multilingual input method library. Uim aims to provide secure
and useful input methods for all languages.
-This package provides the KDE applet.
+This package provides the KDE 4 applet.
-%package -n emacs-uim
-Summary: Emacs support for Uim
-Group: Libraries
-Requires: emacs
-Requires: emacs-common-uim = %{version}-%{release}
+%description kde -l pl.UTF-8
+Uim jest biblioteką obsługującą wejście w wielu językach. Celem
+projektu jest udostępnienie bezpiecznych i użytecznych metod
+wprowadzania dla wszystkich języków.
-%description -n emacs-uim
-This package provides Emacs support.
+Ten pakiet zawiera aplet KDE 4.
%package -n emacs-common-uim
Summary: Common package for Emacsen support for Uim
+Summary(pl.UTF-8): Pakiet wspólny Uima dla emacsów
Group: Libraries
-Requires: uim = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description -n emacs-common-uim
This package provides an utility to use Emacsen support for Uim.
+%description -n emacs-common-uim -l pl.UTF-8
+Ten pakiet zawiera narzędzia pozwalające na używanie Uima w emacsach.
+
+%package -n emacs-uim
+Summary: Emacs support for Uim
+Summary(pl.UTF-8): Obsługa Uima w Emacsie
+Group: Libraries
+Requires: emacs
+Requires: emacs-common-uim = %{version}-%{release}
+
+%description -n emacs-uim
+This package provides Emacs support for Uim.
+
+%description -n emacs-uim
+Ten pakiet zapewnia obsługę Uima w Emacsie.
+
%package -n xemacs-uim
Summary: XEmacs support for Uim
+Summary(pl.UTF-8): Obsługa Uima w XEmacsie
Group: Libraries
Requires: emacs-common-uim = %{version}-%{release}
Requires: xemacs
%description -n xemacs-uim
This package provides XEmacs support.
+%description -n xemacs-uim -l pl.UTF-8
+Ten pakiet zapewnia obsługę Uima w XEmacsie.
+
%package anthy
Summary: Anthy support for Uim
+Summary(pl.UTF-8): Obsługa metody Anthy w Uimie
Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
Requires: anthy >= 9100h
-Requires: uim = %{version}-%{release}
-Requires(post): gtk+3
-Requires(post): /usr/bin/uim-module-manager
-Requires(postun): gtk+3
-Requires(postun): /usr/bin/uim-module-manager
%description anthy
This package provides support for Anthy, a Japanese input method.
+%description anthy -l pl.UTF-8
+Ten pakiet zawiera obsługę metody Anthy wprowadzania znaków
+japońskich.
+
%package canna
Summary: Canna support for Uim
+Summary(pl.UTF-8): Obsługa metody Canna w Uimie
Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
Requires: Canna
-Requires: uim = %{version}-%{release}
-Requires(post): gtk+3
-Requires(post): /usr/bin/uim-module-manager
-Requires(postun): gtk+3
-Requires(postun): /usr/bin/uim-module-manager
%description canna
This package provides support for Canna, a Japanese input method.
+%description canna -l pl.UTF-8
+Ten pakiet zawiera obsługę metody Canna wprowadzania znaków
+japońskich.
+
+%package eb
+Summary: EB search support for Uim
+Summary(pl.UTF-8): Obsługa wyszukiwania EB w Uimie
+Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
+
+%description eb
+This package provides support for searching text in books in EB
+format.
+
+%description eb -l pl.UTF-8
+Ten pakiet zawiera obsługę wyszukiwania tekstu w książkach w formacie
+EB.
+
+%package m17n
+Summary: m17n-lib support for Uim
+Summary(pl.UTF-8): Obsługa m17n-lib w Uimie
+Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
+Requires: m17n-lib >= 1.3.1
+
+%description m17n
+This package provides support for m17n-lib, which allows input of many
+languages using the input table map from m17n-db.
+
+%description m17n -l pl.UTF-8
+Ten pakiet zawiera obsługę m17n-lib, co pozwala na wprowadzanie znaków
+wielu języków przy użyciu tablic wejściowych z m17n-db.
+
%package mana
Summary: Mana support for Uim
+Summary(pl.UTF-8): Obsługa metody Mana w Uimie
Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
Requires: mana
-Requires: uim = %{version}-%{release}
-Requires(post): gtk+3
-Requires(post): /usr/bin/uim-module-manager
-Requires(postun): gtk+3
-Requires(postun): /usr/bin/uim-module-manager
+Requires: mana-uim
%description mana
This package provides support for mana, a Japanese input method.
+%description mana -l pl.UTF-8
+Ten pakiet zawiera obsługę metody Mana wprowadzania znaków
+japońskich.
+
+%package prime
+Summary: PRIME support for Uim
+Summary(pl.UTF-8): Obsługa metody PRIME w Uimie
+Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
+Requires: prime >= 0.8.5.2
+
+%description prime
+This package provides support for PRIME, a Japanese input method.
+
+%description prime -l pl.UTF-8
+Ten pakiet zawiera obsługę metody PRIME wprowadzania znaków
+japońskich.
+
+%package scim
+Summary: SCIM support for Uim
+Summary(pl.UTF-8): Obsługa metod SCIM w Uimie
+Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
+Requires: scim >= 1.3.0
+
+%description scim
+This package provides support for SCIM-provided input methods.
+
+%description scim -l pl.UTF-8
+Ten pakiet zawiera obsługę metod udostępnianych przez SCIM.
+
+%package sj3
+Summary: SJ3 support for Uim
+Summary(pl.UTF-8): Obsługa metody SJ3 w Uimie
+Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
+
+%description sj3
+This package provides support for SJ3, a Japanese input method.
+
+%description sj3 -l pl.UTF-8
+Ten pakiet zawiera obsługę metody SJ3 wprowadzania znaków
+japońskich.
+
%package skk
Summary: SKK support for Uim
+Summary(pl.UTF-8): Obsługa metody SKK w Uimie
Group: Libraries
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
Requires: skkdic
-Requires: uim = %{version}-%{release}
-Requires(post): gtk+3
-Requires(post): /usr/bin/uim-module-manager
-Requires(postun): gtk+3
-Requires(postun): /usr/bin/uim-module-manager
%description skk
This package provides support for SKK, a Japanese input method.
-%package m17n
-Summary: m17n-lib support for Uim
+%description skk -l pl.UTF-8
+Ten pakiet zawiera obsługę metody SKK wprowadzania znaków
+japońskich.
+
+%package wnn
+Summary: Wnn support for Uim
+Summary(pl.UTF-8): Obsługa metody Wnn w Uimie
Group: Libraries
-Requires: uim = %{version}-%{release}
-Requires(post): gtk+3
-Requires(post): /usr/bin/uim-module-manager
-Requires(postun): gtk+3
-Requires(postun): /usr/bin/uim-module-manager
+Requires(post,postun): %{_bindir}/uim-module-manager
+Requires: %{name} = %{version}-%{release}
-%description m17n
-This package provides support for m17n-lib, which allows input of many
-languages using the input table map from m17n-db.
+%description wnn
+This package provides support for Wnn, a Japanese input method.
+
+%description wnn -l pl.UTF-8
+Ten pakiet zawiera obsługę metody Wnn wprowadzania znaków
+japońskich.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
-%patch2 -p1
-%patch3 -p1
cp -a fep/README fep/README.fep
cp -a fep/README.ja fep/README.fep.ja
cp -a xim/README xim/README.xim
%build
+%{__gettextize}
+%{__intltoolize}
+%{__libtoolize}
%{__aclocal} -I m4
%{__autoconf}
+%{__autoheader}
%{__automake}
%configure \
- --enable-openssl \
- --enable-gnome2-applet \
- --enable-gnome3-applet \
- --enable-qt4-qt3support \
+ MANA=/usr/bin/mana \
--enable-default-toolkit=gtk3 \
- --with-lispdir=%{_datadir}/emacs/site-lisp \
--enable-dict \
- --enable-pref \
+ --disable-gnome2-applet \
+ %{?with_gnome:--enable-gnome3-applet} \
+ %{?with_kde:--enable-kde4-applet} \
--enable-notify=libnotify \
- --without-scim \
- --with-anthy \
- --with-anthy-utf8 \
- --with-canna \
- --with-m17nlib \
- --with-mana \
- --with-prime \
- --without-sj3 \
- --without-skk \
+ --enable-openssl \
+ --enable-pref \
+ %{?with_qt4:--enable-qt4-qt3support} \
+ --without-anthy \
+ %{?with_anthy:--with-anthy-utf8} \
+ %{?with_canna:--with-canna} \
--with-curl \
+ %{?with_eb:--with-eb} \
--with-expat \
- --with-ssl-engine \
- --with-sqlite3 \
--with-ffi \
- --with-x \
- --with-xft \
--with-gtk2 \
--with-gtk3 \
- --with-qt \
- --with-qt-immodule \
- --with-qt4 \
- --with-qt4-immodule \
- --enable-kde4-applet \
--with-libedit \
- --with-eb
+ --with-libgcroots=installed \
+ --with-lispdir=%{_datadir}/emacs/site-lisp \
+ %{!?with_m17n:--without-m17nlib} \
+ %{?with_mana:--with-mana} \
+ --with-prime \
+ %{?with_qt3:--with-qt --with-qt-immodule} \
+ %{?with_qt4:--with-qt4 --with-qt4-immodule} \
+ %{?with_scim:--with-scim} \
+ --with-sj3 \
+ --with-skk \
+ --with-sqlite3 \
+ --with-ssl-engine \
+ %{?with_wnn:--with-wnn --with-wnn-includes=/usr/include/wnn} \
+ --with-x \
+ --with-xft
-%{__make}
+%{__make} -j1
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_sysconfdir}/X11/xinit/xinput.d \
- $RPM_BUILD_ROOT%{_datadir}/{emacs/site-lisp,xemacs/site-packages/lisp}/site-start.d
+ $RPM_BUILD_ROOT%{_datadir}/{emacs/site-lisp,xemacs-packages/lisp}/site-start.d \
+ $RPM_BUILD_ROOT%{_localstatedir}/lib/uim
-%{__make} install \
+%{__make} -j1 install \
+ QT_PLUGINSDIR=%{_libdir}/qt/plugins-mt \
DESTDIR=$RPM_BUILD_ROOT
# For XEmacs
-make install -C emacs \
+%{__make} -j1 install -C emacs \
DESTDIR=$RPM_BUILD_ROOT \
- UIMEL_LISP_DIR=%{_datadir}/xemacs/site-packages/lisp/uim-el
+ UIMEL_LISP_DIR=%{_datadir}/xemacs-packages/lisp/uim-el
-%{__rm} $RPM_BUILD_ROOT%{_libdir}{,/gtk*/*/immodules,/uim/*}/*.la
+%{__rm} $RPM_BUILD_ROOT%{_libdir}{,/gtk*/*/immodules,/uim/*%{?with_gnome:,/uim}%{?with_qt3:,/qt/plugins-mt/*}}/*.la
%{__sed} -e 's|@@LIB@@|%{_lib}|g' %{SOURCE1} >$RPM_BUILD_ROOT%{_sysconfdir}/X11/xinit/xinput.d/uim.conf
install -p %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d/
-install -p %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/xemacs/site-packages/lisp/site-start.d/
+install -p %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/xemacs-packages/lisp/
+
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/uim/{installed-modules,loader}.scm $RPM_BUILD_ROOT%{_localstatedir}/lib/uim/
+ln -sf %{_localstatedir}/lib/uim/installed-modules.scm $RPM_BUILD_ROOT%{_datadir}/uim/
+ln -sf %{_localstatedir}/lib/uim/loader.scm $RPM_BUILD_ROOT%{_datadir}/uim/
+
+%if %{without scim}
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/uim/{scim.scm,pixmaps/scim.svg}
+%endif
+
+# OSX-specific
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/uim/annotation-osx-dcs.scm
+
+# Register additional input methods
+LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} \
+LIBUIM_SYSTEM_SCM_FILES=$RPM_BUILD_ROOT%{_datadir}/uim/lib \
+LIBUIM_SCM_FILES=$RPM_BUILD_ROOT%{_datadir}/uim \
+LIBUIM_PLUGIN_LIB_DIR=$RPM_BUILD_ROOT%{_libdir}/uim/plugin \
+UIM_DISABLE_NOTIFY=1 \
+$RPM_BUILD_ROOT%{_bindir}/uim-module-manager \
+ --path $RPM_BUILD_ROOT%{_localstatedir}/lib/uim \
+ --register tcode trycode hangul
+
+# Unregister methods that come from separate packages
+LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} \
+LIBUIM_SYSTEM_SCM_FILES=$RPM_BUILD_ROOT%{_datadir}/uim/lib \
+LIBUIM_SCM_FILES=$RPM_BUILD_ROOT%{_datadir}/uim \
+LIBUIM_PLUGIN_LIB_DIR=$RPM_BUILD_ROOT%{_libdir}/uim/plugin \
+UIM_DISABLE_NOTIFY=1 \
+$RPM_BUILD_ROOT%{_bindir}/uim-module-manager \
+ --path $RPM_BUILD_ROOT%{_localstatedir}/lib/uim \
+ --unregister anthy-utf8 canna m17nlib mana prime scim sj3 skk wnn
%find_lang %{name}
-%find_lang %{name}-chardict-qt
-%find_lang %{name}-chardict-qt4
%clean
rm -rf $RPM_BUILD_ROOT
-%post
-umask 022
-/sbin/ldconfig
-%if "%{_lib}" != "lib"
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%post gtk2
+%if "%{_lib}" == "lib64"
%{_bindir}/gtk-query-immodules-2.0-64 > %{_sysconfdir}/gtk64-2.0/gtk.immodules
-%{_bindir}/gtk-query-immodules-3.0-64 --update-cache
%else
%{_bindir}/gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/gtk.immodules
-%{_bindir}/gtk-query-immodules-3.0 --update-cache
%endif
-%postun
-umask 022
-/sbin/ldconfig
-%if "%{_lib}" != "lib"
+%postun gtk2
+%if "%{_lib}" == "lib64"
%{_bindir}/gtk-query-immodules-2.0-64 > %{_sysconfdir}/gtk64-2.0/gtk.immodules
-%{_bindir}/gtk-query-immodules-3.0-64 --update-cache
%else
%{_bindir}/gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/gtk.immodules
+%endif
+
+%post gtk3
+%if "%{_lib}" == "lib64"
+%{_bindir}/gtk-query-immodules-3.0-64 --update-cache
+%else
+%{_bindir}/gtk-query-immodules-3.0 --update-cache
+%endif
+
+%postun gtk3
+%if "%{_lib}" == "lib64"
+%{_bindir}/gtk-query-immodules-3.0-64 --update-cache
+%else
%{_bindir}/gtk-query-immodules-3.0 --update-cache
%endif
+%post anthy
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register anthy-utf8
+
+%postun anthy
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister anthy-utf8
+fi
+
+%post canna
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register canna
+
+%postun canna
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister canna
+fi
+
+%post m17n
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register m17nlib
+
+%postun m17n
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister m17nlib
+fi
+
+%post mana
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register mana
+
+%postun mana
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister mana
+fi
+
+%post prime
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register prime
+
+%postun prime
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister prime
+fi
+
+%post scim
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register scim
+
+%postun scim
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister scim
+fi
+
+%post sj3
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register sj3
+
+%postun sj3
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister sj3
+fi
+
+%post skk
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register skk
+
+%postun skk
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister skk
+fi
+
+%post wnn
+%{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --register wnn
+
+%postun wnn
+if [ "$1" = "0" ]; then
+ %{_bindir}/uim-module-manager --path %{_localstatedir}/lib/uim --unregister wnn
+fi
+
%files -f %{name}.lang
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog NEWS README
+%doc fep/README.fep fep/README.fep.ja fep/README.fep.key xim/README.xim
%{_sysconfdir}/X11/xinit/xinput.d/uim.conf
%attr(755,root,root) %{_bindir}/uim-fep
%attr(755,root,root) %{_bindir}/uim-fep-tick
%attr(755,root,root) %{_bindir}/uim-module-manager
%attr(755,root,root) %{_bindir}/uim-sh
%attr(755,root,root) %{_bindir}/uim-xim
-%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/lib*.so.[0-9]
+%attr(755,root,root) %{_libdir}/libuim.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libuim.so.8
+%attr(755,root,root) %{_libdir}/libuim-custom.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libuim-custom.so.2
+%attr(755,root,root) %{_libdir}/libuim-scm.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libuim-scm.so.0
%attr(755,root,root) %{_libdir}/uim-helper-server
%dir %{_libdir}/uim
%dir %{_libdir}/uim/notify
-%attr(755,root,root) %{_libdir}/uim/notify/libuimnotify*.so
+%attr(755,root,root) %{_libdir}/uim/notify/libuimnotify-libnotify.so
%dir %{_libdir}/uim/plugin
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-curl.so
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-custom-enabler.so
-%attr(755,root,root) %{_libdir}/uim/plugin/libuim-eb.so
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-editline.so
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-expat.so
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-ffi.so
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-socket.so
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-sqlite3.so
%dir %{_datadir}/uim
-%{_datadir}/%{name}/*
+%{_datadir}/uim/byeoru-data
+%{_datadir}/uim/helperdata
+%{_datadir}/uim/lib
+%{_datadir}/uim/pixmaps
+%{_datadir}/uim/tables
+%{_datadir}/uim/*.scm
+# NOTE: scm and pixmaps files are always installed, even if particular part is disabled by bcond
+# by using unconditional exclude we avoid packaging them if bcond is disabled
+%exclude %{_datadir}/uim/pixmaps/anthy*.png
+%exclude %{_datadir}/uim/pixmaps/canna.png
+%exclude %{_datadir}/uim/pixmaps/m17n*png
+%exclude %{_datadir}/uim/pixmaps/mana.png
+%exclude %{_datadir}/uim/pixmaps/mana.svg
+%exclude %{_datadir}/uim/pixmaps/prime*.png
+%if %{with scim}
+%exclude %{_datadir}/uim/pixmaps/scim.png
+%exclude %{_datadir}/uim/pixmaps/scim.svg
+%endif
+%exclude %{_datadir}/uim/pixmaps/sj3.png
+%exclude %{_datadir}/uim/pixmaps/sj3.svg
+%exclude %{_datadir}/uim/pixmaps/skk*.png
+%exclude %{_datadir}/uim/pixmaps/skk*.svg
+%exclude %{_datadir}/uim/pixmaps/wnn.png
+%exclude %{_datadir}/uim/pixmaps/wnn.svg
+%exclude %{_datadir}/uim/annotation-eb.scm
+%exclude %{_datadir}/uim/anthy*.scm
+%exclude %{_datadir}/uim/canna*.scm
+%exclude %{_datadir}/uim/m17nlib*.scm
+%exclude %{_datadir}/uim/mana*.scm
+%exclude %{_datadir}/uim/prime*.scm
+%if %{with scim}
+%exclude %{_datadir}/uim/scim.scm
+%endif
+%exclude %{_datadir}/uim/sj3*.scm
+%exclude %{_datadir}/uim/skk*.scm
+%exclude %{_datadir}/uim/wnn*.scm
%{_desktopdir}/uim.desktop
-%{_mandir}/man1/*.1*
+%{_mandir}/man1/uim-xim.1*
+%dir %{_localstatedir}/lib/uim
+%verify(not md5 mtime size) %{_localstatedir}/lib/uim/installed-modules.scm
+%verify(not md5 mtime size) %{_localstatedir}/lib/uim/loader.scm
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so
+%attr(755,root,root) %{_libdir}/libuim.so
+%attr(755,root,root) %{_libdir}/libuim-custom.so
+%attr(755,root,root) %{_libdir}/libuim-scm.so
%{_includedir}/%{name}
-%{_pkgconfigdir}/*.pc
+%{_pkgconfigdir}/uim.pc
%files gtk2
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/uim-pref-gtk
%attr(755,root,root) %{_bindir}/uim-toolbar-gtk
%attr(755,root,root) %{_bindir}/uim-toolbar-gtk-systray
-%attr(755,root,root) %{_libdir}/gtk-2.0/*/immodules/*.so
+%attr(755,root,root) %{_libdir}/gtk-2.0/*/immodules/im-uim.so
%attr(755,root,root) %{_libdir}/uim-candwin-gtk
%attr(755,root,root) %{_libdir}/uim-candwin-tbl-gtk
+%attr(755,root,root) %{_libdir}/uim-candwin-horizontal-gtk
%files gtk3
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/uim-pref-gtk3
%attr(755,root,root) %{_bindir}/uim-toolbar-gtk3
%attr(755,root,root) %{_bindir}/uim-toolbar-gtk3-systray
-%attr(755,root,root) %{_libdir}/gtk-3.0/*/immodules/*.so
+%attr(755,root,root) %{_libdir}/gtk-3.0/*/immodules/im-uim.so
%attr(755,root,root) %{_libdir}/uim-candwin-gtk3
%attr(755,root,root) %{_libdir}/uim-candwin-tbl-gtk3
+%attr(755,root,root) %{_libdir}/uim-candwin-horizontal-gtk3
+%dir %{_datadir}/uim/ui
+%{_datadir}/uim/ui/uim-applet-menu.xml
+%if %{with gnome}
%files gnome
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/uim-toolbar-applet-gnome3
-%{_datadir}/dbus-1/services/org.gnome.panel.applet.UimAppletFactory.service
-%{_datadir}/gnome-panel/4.0/applets/UimApplet.panel-applet
-
-%files qt -f %{name}-chardict-qt4.lang
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/uim-chardict-qt4
-%attr(755,root,root) %{_bindir}/uim-im-switcher-qt4
-%attr(755,root,root) %{_bindir}/uim-pref-qt4
-%attr(755,root,root) %{_bindir}/uim-toolbar-qt4
-%attr(755,root,root) %{_libdir}/qt4/plugins/inputmethods/*.so
-%attr(755,root,root) %{_libdir}/uim-candwin-qt4
+%attr(755,root,root) %{_libdir}/uim/libuim-toolbar-applet-gnome3.so
+%{_datadir}/gnome-panel/applets/UimApplet.panel-applet
+%endif
-%files qt3 -f %{name}-chardict-qt.lang
+%if %{with qt3}
+%files qt3
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/uim-chardict-qt
%attr(755,root,root) %{_bindir}/uim-im-switcher-qt
%attr(755,root,root) %{_bindir}/uim-pref-qt
%attr(755,root,root) %{_bindir}/uim-toolbar-qt
%attr(755,root,root) %{_libdir}/uim-candwin-qt
+%attr(755,root,root) %{_libdir}/qt/plugins-mt/inputmethods/libquiminputcontextplugin.so
+%endif
+
+%if %{with qt4}
+%files qt
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/uim-chardict-qt4
+%attr(755,root,root) %{_bindir}/uim-im-switcher-qt4
+%attr(755,root,root) %{_bindir}/uim-pref-qt4
+%attr(755,root,root) %{_bindir}/uim-toolbar-qt4
+%attr(755,root,root) %{_libdir}/qt4/plugins/inputmethods/libuiminputcontextplugin.so
+%attr(755,root,root) %{_libdir}/uim-candwin-qt4
+%endif
+%if %{with kde}
%files kde
%defattr(644,root,root,755)
-%{_libdir}/kde4/plasma_applet_uim.so
+%attr(755,root,root) %{_libdir}/kde4/plasma_applet_uim.so
%{_datadir}/kde4/services/plasma-applet-uim.desktop
+%endif
+
+%files -n emacs-common-uim
+%defattr(644,root,root,755)
+%doc emacs/README
+%lang(ja) %doc emacs/README.ja
+%attr(755,root,root) %{_bindir}/uim-el-agent
+%attr(755,root,root) %{_bindir}/uim-el-helper-agent
%files -n emacs-uim
%defattr(644,root,root,755)
%files -n xemacs-uim
%defattr(644,root,root,755)
-%{_datadir}/xemacs/site-packages/lisp/uim-el
-%{_datadir}/xemacs/site-packages/lisp/site-start.d/uim-init.el
-
-%files -n emacs-common-uim
-%defattr(644,root,root,755)
-%doc emacs/README
-%lang(ja) %doc emacs/README.ja
-%attr(755,root,root) %{_bindir}/uim-el-agent
-%attr(755,root,root) %{_bindir}/uim-el-helper-agent
+%{_datadir}/xemacs-packages/lisp/uim-el
+%{_datadir}/xemacs-packages/lisp/uim-init.el
+%if %{with anthy}
%files anthy
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/uim/plugin/libuim-anthy.so
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-anthy-utf8.so
%{_datadir}/uim/anthy*.scm
%{_datadir}/uim/pixmaps/anthy*.png
+%endif
+%if %{with canna}
%files canna
%defattr(644,root,root,755)
%{_datadir}/uim/canna*.scm
%{_datadir}/uim/pixmaps/canna.png
+%endif
+
+%if %{with eb}
+%files eb
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/uim/plugin/libuim-eb.so
+%{_datadir}/uim/annotation-eb.scm
+%endif
+
+%if %{with m17n}
+%files m17n
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/uim-m17nlib-relink-icons
+%attr(755,root,root) %{_libdir}/uim/plugin/libuim-m17nlib.so
+%{_datadir}/uim/m17nlib*.scm
+%{_datadir}/uim/pixmaps/m17n*.png
+%endif
+%if %{with mana}
%files mana
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/uim/plugin/libuim-mana.so
%{_datadir}/uim/mana*.scm
%{_datadir}/uim/pixmaps/mana.png
+%{_datadir}/uim/pixmaps/mana.svg
+%endif
+
+%files prime
+%defattr(644,root,root,755)
+%{_datadir}/uim/prime*.scm
+%{_datadir}/uim/pixmaps/prime*.png
+
+%if %{with scim}
+%files scim
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/uim/plugin/libuim-scim.so
+%{_datadir}/uim/scim.scm
+%{_datadir}/uim/pixmaps/scim.png
+%{_datadir}/uim/pixmaps/scim.svg
+%endif
+
+%files sj3
+%defattr(644,root,root,755)
+%{_datadir}/uim/sj3*.scm
+%{_datadir}/uim/pixmaps/sj3.png
+%{_datadir}/uim/pixmaps/sj3.svg
%files skk
%defattr(644,root,root,755)
%{_datadir}/uim/pixmaps/skk*.png
%{_datadir}/uim/pixmaps/skk*.svg
-%files m17n
+%if %{with wnn}
+%files wnn
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/uim-m17nlib-relink-icons
-%attr(755,root,root) %{_libdir}/uim/plugin/libuim-m17nlib.so
-%{_datadir}/uim/m17nlib.scm
-%{_datadir}/uim/pixmaps/m17n*png
+%attr(755,root,root) %{_libdir}/uim/plugin/libuim-wnn.so
+%{_datadir}/uim/wnn*.scm
+%{_datadir}/uim/pixmaps/wnn.png
+%{_datadir}/uim/pixmaps/wnn.svg
+%endif