clean spec file
[platform/upstream/ibus.git] / ibus.spec.in
index df267a0..334f37e 100644 (file)
@@ -1,10 +1,18 @@
 %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%{!?gtk_binary_version: %define gtk_binary_version %(pkg-config  --variable=gtk_binary_version gtk+-2.0)}
-%define mod_path ibus-@PACKAGE_VERSION_MAJOR@.@PACKAGE_VERSION_MINOR@
-%define host_vendor %(if [[ "%{_host_vendor}" == "unknown" ]]; then echo redhat; else echo %{_host_vendor}; fi)
-%define host %{_host_cpu}-%{host_vendor}-%{_host_os}-gnu
+%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
+%{!?gtk2_binary_version: %define gtk2_binary_version %(pkg-config  --variable=gtk_binary_version gtk+-2.0)}
+%{!?gtk3_binary_version: %define gtk3_binary_version %(pkg-config  --variable=gtk_binary_version gtk+-3.0)}
+
+# Build flags
+%define build_python_library 0
+
+%define glib_ver %([ -a %{_libdir}/pkgconfig/glib-2.0.pc ] && pkg-config --modversion glib-2.0 | cut -d. -f 1,2 || echo -n "999")
+%define gconf2_version 2.12.0
+%define dbus_python_version 0.83.0
+%define im_chooser_version 1.2.5
+
 Name:       ibus
-Version:    @PACKAGE_VERSION@
+Version:    @IBUS_VERSION@
 Release:    1%{?dist}
 Summary:    Intelligent Input Bus for Linux OS
 License:    LGPLv2+
@@ -12,66 +20,102 @@ Group:      System Environment/Libraries
 URL:        http://code.google.com/p/ibus/
 Source0:    http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
 Source1:    xinput-ibus
+# Patch0:     ibus-HEAD.patch
 
 BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
-%define glib_ver %([ -a %{_libdir}/pkgconfig/glib-2.0.pc ] && pkg-config --modversion glib-2.0 | cut -d. -f 1,2 || echo -n "999")
 
+BuildRequires:  cvs
 BuildRequires:  gettext-devel
 BuildRequires:  libtool
 BuildRequires:  python
 BuildRequires:  gtk2-devel
-BuildRequires:  dbus-devel
-# BuildRequires:  qt-devel
+BuildRequires:  gtk3-devel
 BuildRequires:  dbus-glib-devel
-BuildRequires: dbus-python-devel
+BuildRequires:  dbus-python-devel >= %{dbus_python_version}
 BuildRequires:  desktop-file-utils
-BuildRequires: GConf2-devel
+BuildRequires:  gtk-doc
+BuildRequires:  GConf2-devel
+BuildRequires:  dconf-devel
+BuildRequires:  pygobject2-devel
+BuildRequires:  intltool
+BuildRequires:  iso-codes-devel
+
+Requires:   %{name}-libs = %{version}-%{release}
+Requires:   %{name}-gtk2 = %{version}-%{release}
+Requires:   %{name}-gtk3 = %{version}-%{release}
+Requires:   %{name}-conf = %{version}-%{release}
+
+Requires:   pygtk2
+Requires:   iso-codes
+Requires:   dbus-python >= %{dbus_python_version}
+Requires:   im-chooser >= %{im_chooser_version}
+Requires:   notify-python
+Requires:   librsvg2
 
 Requires(post):  desktop-file-utils
-Requires(post):  %{_sbindir}/alternatives
 Requires(postun):  desktop-file-utils
+
+Requires(post):  %{_sbindir}/alternatives
 Requires(postun):  %{_sbindir}/alternatives
 
-Requires:   %{name}-libs = %{version}-%{release}
-Requires:   glib2 >= %{glib_ver}
-Requires:   pygtk2
-Requires:   dbus-python >= 0.83.0
-Requires:   notification-daemon
-Requires:   pyxdg
-Requires:   iso-codes
+Obsoletes:  ibus-qt < 1.1.0
 
 %define _xinputconf %{_sysconfdir}/X11/xinit/xinput.d/ibus.conf
 
 %description
-IBus means Intelligent Input Bus. It is a new input framework for Linux OS. It provides
-full featured and user friendly input method user interface. It also may help
-developers to develop input method easily.
+IBus means Intelligent Input Bus. It is an input framework for Linux OS.
 
 %package libs
 Summary:    IBus libraries
 Group:      System Environment/Libraries
 
+Requires:   glib2 >= %{glib_ver}
+Requires:   dbus >= 1.2.4
+
 %description libs
-This package contains ibus libraries.
+This package contains the libraries for IBus
 
+%package gconf
+Summary:    IBus configuration module using GConf
+Group:      System Environment/Libraries
+Provides:   %{name}-conf = %{version}-%{release}
+Requires:   %{name} = %{version}-%{release}
+Requires:   GConf2 >= %{gconf2_version}
+Requires(pre): GConf2 >= %{gconf2_version}
+Requires(post): GConf2 >= %{gconf2_version}
+Requires(preun): GConf2 >= %{gconf2_version}
+
+%description gconf
+This package contains ibus configuration module using GConf
 
-%package gtk
+%package dconf
+Summary:    IBus configuration module using DConf
+Group:      System Environment/Libraries
+Provides:   %{name}-conf = %{version}-%{release}
+Requires:   %{name} = %{version}-%{release}
+Requires(posttrans): dconf
+
+%description dconf
+This package contains ibus configuration module using DConf
+
+%package gtk2
 Summary:    IBus im module for gtk2
 Group:      System Environment/Libraries
 Requires:   %{name} = %{version}-%{release}
+Requires(post): glib2 >= %{glib_ver}
 
-%description gtk
+%description gtk2
 This package contains ibus im module for gtk2
 
-# %package qt
-# Summary:    IBus im module for qt4
-Group:      System Environment/Libraries
-Requires:   %{name} = %{version}-%{release}
-# Requires:   qt >= 4.4.2
-#
-# %description qt
-# This package contains ibus im module for qt4
+%package gtk3
+Summary:    IBus im module for gtk3
+Group:      System Environment/Libraries
+Requires:   %{name} = %{version}-%{release}
+Requires(post): glib2 >= %{glib_ver}
+
+%description gtk3
+This package contains ibus im module for gtk3
 
 %package devel
 Summary:    Development tools for ibus
@@ -84,112 +128,193 @@ Requires:   dbus-devel
 The ibus-devel package contains the header files and developer
 docs for ibus.
 
+%package devel-docs
+Summary:    Developer documents for ibus
+Group:      Development/Libraries
+Requires:   %{name} = %{version}-%{release}
+Requires:   gtk-doc
+
+%description devel-docs
+The ibus-devel-docs package contains developer documentation for ibus
+
+
 %prep
 %setup -q
+# %patch0 -p1
 
 %build
-%configure --disable-static --disable-iso-codes-check
+
+OPTIONS="--disable-static --enable-gtk2 --enable-gtk3 --enable-xim --disable-gtk-doc --enable-introspection --enable-gconf"
+
+%if %{build_python_library}
+OPTIONS="$OPTIONS --enable-python-library"
+%else
+OPTIONS="$OPTIONS --disable-python-library"
+%endif
+
+%configure $OPTIONS
+
 # make -C po update-gmo
 make %{?_smp_mflags}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-make DESTDIR=${RPM_BUILD_ROOT} install
-rm -f $RPM_BUILD_ROOT%{_libdir}/libibus.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk_binary_version}/immodules/im-ibus.la
+make DESTDIR=$RPM_BUILD_ROOT install
+rm -f $RPM_BUILD_ROOT%{_libdir}/libibus-1.0.la
+rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.la
+rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.la
 
 # install xinput config file
-mkdir -pm 755 ${RPM_BUILD_ROOT}/%{_sysconfdir}/X11/xinit/xinput.d
-install -pm 644 %{SOURCE1} ${RPM_BUILD_ROOT}/%{_xinputconf}
+install -pm 644 -D %{SOURCE1} $RPM_BUILD_ROOT%{_xinputconf}
 
 # install .desktop files
+echo "NoDisplay=true" >> $RPM_BUILD_ROOT%{_datadir}/applications/ibus.desktop
+echo "NoDisplay=true" >> $RPM_BUILD_ROOT%{_datadir}/applications/ibus-setup.desktop
 desktop-file-install --delete-original          \
   --dir $RPM_BUILD_ROOT%{_datadir}/applications \
   $RPM_BUILD_ROOT%{_datadir}/applications/*
 
-%find_lang %{name}
+%find_lang %{name}10
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%pre
-if [ "$1" -gt 1 ] ; then
-export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
-gconftool-2 --makefile-uninstall-rule \
-%{_sysconfdir}/gconf/schemas/%{name}.schemas >/dev/null || :
-fi
-
 %post
-export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
-gconftool-2 --makefile-install-rule \
-%{_sysconfdir}/gconf/schemas/%{name}.schemas > /dev/null || :
+# recreate icon cache
+touch --no-create %{_datadir}/icons/hicolor || :
+[ -x %{_bindir}/gtk-update-icon-cache ] && \
+  %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
 
-%preun
-if [ "$1" -eq 0 ] ; then
+%{_sbindir}/alternatives --install %{_sysconfdir}/X11/xinit/xinputrc xinputrc %{_xinputconf} 83 || :
+
+%post gconf
 export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
-gconftool-2 --makefile-uninstall-rule \
-%{_sysconfdir}/gconf/schemas/%{name}.schemas > /dev/null || :
+gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || :
+
+%pre gconf
+if [ "$1" -gt 1 ]; then
+    export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+    gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || :
 fi
 
-%post libs
-/sbin/ldconfig
-update-desktop-database -q
-%{_sbindir}/alternatives --install %{_sysconfdir}/X11/xinit/xinputrc xinputrc %{_xinputconf} 83 || :
+%preun gconf
+if [ "$1" -eq 0 ]; then
+    export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+    gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || :
+fi
 
-%post gtk
-%{_bindir}/update-gtk-immodules %{host} || :
+%postun
+# recreate icon cache
+touch --no-create %{_datadir}/icons/hicolor || :
+[ -x %{_bindir}/gtk-update-icon-cache ] && \
+  %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
 
-%postun libs
-/sbin/ldconfig
-update-desktop-database -q
 if [ "$1" = "0" ]; then
   %{_sbindir}/alternatives --remove xinputrc %{_xinputconf} || :
   # if alternative was set to manual, reset to auto
   [ -L %{_sysconfdir}/alternatives/xinputrc -a "`readlink %{_sysconfdir}/alternatives/xinputrc`" = "%{_xinputconf}" ] && %{_sbindir}/alternatives --auto xinputrc || :
 fi
 
-%postun gtk
-%{_bindir}/update-gtk-immodules %{host} || :
+%postun dconf
+if [ "$1" -eq 0 ] ; then
+    /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
+    rm -f %{_sysconfdir}/dconf/db/ibus
+fi
+
+%posttrans dconf
+/usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
+dconf update &> /dev/null || :
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
+%post gtk2
+%{_bindir}/update-gtk-immodules %{_host}
+
+%postun gtk2
+%{_bindir}/update-gtk-immodules %{_host}
+
+%post gtk3
+%{_bindir}/gtk-query-immodules-3.0-%{__isa_bits} --update-cache
 
-%files -f %{name}.lang
+%postun gtk3
+%{_bindir}/gtk-query-immodules-3.0-%{__isa_bits} --update-cache
+
+%files -f %{name}10.lang
 %defattr(-,root,root,-)
 %doc AUTHORS COPYING README
-%{python_sitelib}/ibus
+
+%if %{build_python_library}
+    %dir %{python_sitelib}/ibus
+    %{python_sitelib}/ibus/*
+%endif
+
+%{python_sitearch}/gi/overrides/IBus.py*
+
+%dir %{_datadir}/ibus/
+%{_bindir}/ibus
 %{_bindir}/ibus-daemon
 %{_bindir}/ibus-setup
-%{_datadir}/ibus
+%{_datadir}/ibus/component/gtkpanel.xml
+%{_datadir}/ibus/component/simple.xml
+%{_datadir}/ibus/keymaps/*
+%{_datadir}/ibus/setup/*
+
+
 %{_datadir}/applications/*
-%{_datadir}/pixmaps/*
-%{_libexecdir}/ibus-gconf
-%{_libexecdir}/ibus-ui-gtk
+%{_datadir}/icons/hicolor/*/apps/*
+%if %{build_python_library}
+    %{_libexecdir}/ibus-ui-gtk
+%endif
+%{_libexecdir}/ibus-ui-gtk3
 %{_libexecdir}/ibus-x11
-%config(noreplace) %{_xinputconf}
-%config(noreplace) %{_sysconfdir}/gconf/schemas/%{name}.schemas
-%config(noreplace) %{_sysconfdir}/xdg/autostart/ibus.desktop
+%{_libexecdir}/ibus-engine-simple
+# %{_sysconfdir}/xdg/autostart/ibus.desktop
+%{_datadir}/bash-completion/completions/ibus.bash
+%config %{_xinputconf}
 
 %files libs
 %defattr(-,root,root,-)
-%{_libdir}/libibus.so*
+%{_libdir}/libibus-1.0.so.*
+%{_libdir}/girepository-1.0/IBus-1.0.typelib
+
+%files gconf
+%defattr(-,root,root,-)
+%{_datadir}/ibus/component/gconf.xml
+%{_libexecdir}/ibus-gconf
+%{_sysconfdir}/gconf/schemas/ibus.schemas
 
-%files gtk
+%files dconf
+%defattr(-,root,root,-)
+%{_datadir}/ibus/component/dconf.xml
+%{_libexecdir}/ibus-dconf
+%{_sysconfdir}/dconf/db/ibus.d
+%{_sysconfdir}/dconf/profile/ibus
+%{_datadir}/GConf/gsettings/ibus.convert
+%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml
+
+%files gtk2
 %defattr(-,root,root,-)
-%{_libdir}/gtk-2.0/%{gtk_binary_version}/immodules/im-ibus.so
+%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.so
 
-# %files qt
-%defattr(-,root,root,-)
-# %{_libdir}/qt4/plugins/inputmethods/libibus.so
+%files gtk3
+%defattr(-,root,root,-)
+%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.so
 
 %files devel
 %defattr(-,root,root,-)
 %{_libdir}/lib*.so
+%{_libdir}/pkgconfig/*
 %{_includedir}/*
+%{_datadir}/gir-1.0/IBus-1.0.gir
+%{_datadir}/vala/vapi/ibus-1.0.vapi
+%{_datadir}/vala/vapi/ibus-1.0.deps
+
+%files devel-docs
+%defattr(-,root,root,-)
 %{_datadir}/gtk-doc/html/*
-%{_libdir}/pkgconfig/*
 
 %changelog
-* @DATE_DISPLAY@ Huang Peng <shawn.p.huang@gmail.com> - @VERSION@-1
+* @DATE_DISPLAY@ Peng Huang <shawn.p.huang@gmail.com> - @IBUS_VERSION@-1
 - Current version.
-
-* Thu Aug 07 2008 Huang Peng <shawn.p.huang@gmail.com> - 0.1.0.20080810-1
-- The first version.
-