diff --git a/caribou-0.4.17-fix-python-exec.patch b/caribou-0.4.17-fix-python-exec.patch deleted file mode 100644 index 8c24eca..0000000 --- a/caribou-0.4.17-fix-python-exec.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -urN caribou-0.4.17/bin/antler-keyboard.in caribou-0.4.17.new/bin/antler-keyboard.in ---- caribou-0.4.17/bin/antler-keyboard.in 2015-02-17 15:24:26.299147360 +0530 -+++ caribou-0.4.17.new/bin/antler-keyboard.in 2015-02-17 15:25:44.355118770 +0530 -@@ -52,4 +52,4 @@ - export ANTLER_THEME_PATH="$(dirname $script_dir)/data" - fi - --@PYTHON@ -m caribou.antler.main "$@" -+exec @PYTHON@ -m caribou.antler.main "$@" -diff -urN caribou-0.4.17/bin/caribou-preferences.in caribou-0.4.17.new/bin/caribou-preferences.in ---- caribou-0.4.17/bin/caribou-preferences.in 2015-02-17 15:24:26.299147360 +0530 -+++ caribou-0.4.17.new/bin/caribou-preferences.in 2015-02-17 15:25:45.607118311 +0530 -@@ -50,7 +50,7 @@ - export LD_LIBRARY_PATH="$(dirname $script_dir)/libcaribou/.lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" - fi - --@PYTHON@ -c " -+exec @PYTHON@ -c " - import signal - signal.signal(signal.SIGINT, signal.SIG_DFL) - diff --git a/caribou-0.4.17-multilib.patch b/caribou-0.4.17-multilib.patch deleted file mode 100644 index abfa061..0000000 --- a/caribou-0.4.17-multilib.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff -urN caribou-0.4.17/bin/antler-keyboard.in caribou-0.4.17.new/bin/antler-keyboard.in ---- caribou-0.4.17/bin/antler-keyboard.in 2015-01-16 14:18:49.000000000 +0530 -+++ caribou-0.4.17.new/bin/antler-keyboard.in 2015-02-17 14:58:25.892608190 +0530 -@@ -18,6 +18,20 @@ - # along with this program; if not, write to the Free Software Foundation, - # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -+ARCH=$(uname -m) -+ -+case $ARCH in -+x86_64 | sparc64 | s390x | ppc64) -+LIB_DIR=/usr/lib64 -+SECONDARY_LIB_DIR=/usr/lib -+;; -+* ) -+LIB_DIR=/usr/lib -+SECONDARY_LIB_DIR=/usr/lib64 -+;; -+esac -+ -+ - script_dir="$(dirname "$(readlink -f ${0})")" - - prefix=@prefix@ -@@ -28,8 +42,8 @@ - then - datadir="$(@PYTHON@ -c "from gi.repository import GLib; print ':'.join(GLib.get_system_data_dirs())")" - export PYTHONPATH="${prefix}/lib/python@PYTHON_VERSION@/site-packages:${prefix}/lib64/python@PYTHON_VERSION@/site-packages${PYTHONPATH:+:$PYTHONPATH}" -- export GI_TYPELIB_PATH="@libdir@/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" -- export LD_LIBRARY_PATH="@libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" -+ export GI_TYPELIB_PATH="$LIB_DIR/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" -+ export LD_LIBRARY_PATH="$LIB_DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" - export XDG_DATA_DIRS="@datadir@${datadir:+:$datadir}" - else - export PYTHONPATH="$(dirname $script_dir)${PYTHONPATH:+:$PYTHONPATH}" -diff -urN caribou-0.4.17/bin/caribou-preferences.in caribou-0.4.17.new/bin/caribou-preferences.in ---- caribou-0.4.17/bin/caribou-preferences.in 2013-01-11 08:01:47.000000000 +0530 -+++ caribou-0.4.17.new/bin/caribou-preferences.in 2015-02-17 14:59:14.750594240 +0530 -@@ -18,6 +18,19 @@ - # along with this program; if not, write to the Free Software Foundation, - # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -+ARCH=$(uname -m) -+ -+case $ARCH in -+x86_64 | sparc64 | s390x | ppc64) -+LIB_DIR=/usr/lib64 -+SECONDARY_LIB_DIR=/usr/lib -+;; -+* ) -+LIB_DIR=/usr/lib -+SECONDARY_LIB_DIR=/usr/lib64 -+;; -+esac -+ - script_dir="$(dirname "$(readlink -f ${0})")" - - prefix=@prefix@ -@@ -28,8 +41,8 @@ - then - datadir="$(@PYTHON@ -c "from gi.repository import GLib; print ':'.join(GLib.get_system_data_dirs())")" - export PYTHONPATH="@prefix@/lib/python@PYTHON_VERSION@/site-packages${PYTHONPATH:+:$PYTHONPATH}" -- export GI_TYPELIB_PATH="@libdir@/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" -- export LD_LIBRARY_PATH="@libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" -+ export GI_TYPELIB_PATH="$LIB_DIR/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" -+ export LD_LIBRARY_PATH="$LIB_DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" - export XDG_DATA_DIRS="@datadir@${datadir:+:$datadir}" - else - export PYTHONPATH="$(dirname $script_dir)${PYTHONPATH:+:$PYTHONPATH}" diff --git a/caribou-0.4.20-fix-python-exec.patch b/caribou-0.4.20-fix-python-exec.patch new file mode 100644 index 0000000..806e57a --- /dev/null +++ b/caribou-0.4.20-fix-python-exec.patch @@ -0,0 +1,21 @@ +diff -urN caribou-0.4.20.old/bin/antler-keyboard.in caribou-0.4.20/bin/antler-keyboard.in +--- caribou-0.4.20.old/bin/antler-keyboard.in 2016-06-27 19:31:55.547580177 +0530 ++++ caribou-0.4.20/bin/antler-keyboard.in 2016-06-27 19:37:00.369738066 +0530 +@@ -38,4 +38,4 @@ + export ANTLER_THEME_PATH="$(dirname $script_dir)/data" + fi + +-@PYTHON@ -m caribou.antler.main "$@" ++exec @PYTHON@ -m caribou.antler.main "$@" +diff -urN caribou-0.4.20.old/bin/caribou-preferences.in caribou-0.4.20/bin/caribou-preferences.in +--- caribou-0.4.20.old/bin/caribou-preferences.in 2016-06-27 19:31:55.547580177 +0530 ++++ caribou-0.4.20/bin/caribou-preferences.in 2016-06-27 19:37:14.392561317 +0530 +@@ -37,7 +37,7 @@ + export LD_LIBRARY_PATH="$(dirname $script_dir)/libcaribou/.lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + fi + +-@PYTHON@ -c " ++exec @PYTHON@ -c " + import signal + signal.signal(signal.SIGINT, signal.SIG_DFL) + diff --git a/caribou-0.4.20-multilib.patch b/caribou-0.4.20-multilib.patch new file mode 100644 index 0000000..101234a --- /dev/null +++ b/caribou-0.4.20-multilib.patch @@ -0,0 +1,68 @@ +diff -urN caribou-0.4.20.old/bin/antler-keyboard.in caribou-0.4.20/bin/antler-keyboard.in +--- caribou-0.4.20.old/bin/antler-keyboard.in 2016-06-27 19:40:02.959436627 +0530 ++++ caribou-0.4.20/bin/antler-keyboard.in 2016-06-27 19:47:32.697767930 +0530 +@@ -18,6 +18,19 @@ + # along with this program; if not, write to the Free Software Foundation, + # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + ++ARCH=$(uname -m) ++ ++case $ARCH in ++x86_64 | sparc64 | s390x | ppc64) ++LIB_DIR=/usr/lib64 ++SECONDARY_LIB_DIR=/usr/lib ++;; ++* ) ++LIB_DIR=/usr/lib ++SECONDARY_LIB_DIR=/usr/lib64 ++;; ++esac ++ + script_dir="$(dirname "$(readlink -f ${0})")" + + prefix=@prefix@ +@@ -28,8 +41,8 @@ + then + datadir="$(@PYTHON@ -c "from gi.repository import GLib; print(':'.join(GLib.get_system_data_dirs()))")" + export PYTHONPATH="${prefix}/lib/python@PYTHON_VERSION@/site-packages:${prefix}/lib64/python@PYTHON_VERSION@/site-packages${PYTHONPATH:+:$PYTHONPATH}" +- export GI_TYPELIB_PATH="@libdir@/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" +- export LD_LIBRARY_PATH="@libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ++ export GI_TYPELIB_PATH="$LIB_DIR/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" ++ export LD_LIBRARY_PATH="$LIB_DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + export XDG_DATA_DIRS="@datadir@${datadir:+:$datadir}" + else + export PYTHONPATH="$(dirname $script_dir)${PYTHONPATH:+:$PYTHONPATH}" +diff -urN caribou-0.4.20.old/bin/caribou-preferences.in caribou-0.4.20/bin/caribou-preferences.in +--- caribou-0.4.20.old/bin/caribou-preferences.in 2016-06-27 19:40:02.959436627 +0530 ++++ caribou-0.4.20/bin/caribou-preferences.in 2016-06-27 19:48:58.525983390 +0530 +@@ -18,6 +18,19 @@ + # along with this program; if not, write to the Free Software Foundation, + # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + ++ARCH=$(uname -m) ++ ++case $ARCH in ++x86_64 | sparc64 | s390x | ppc64) ++LIB_DIR=/usr/lib64 ++SECONDARY_LIB_DIR=/usr/lib ++;; ++* ) ++LIB_DIR=/usr/lib ++SECONDARY_LIB_DIR=/usr/lib64 ++;; ++esac ++ + script_dir="$(dirname "$(readlink -f ${0})")" + + prefix=@prefix@ +@@ -28,8 +41,8 @@ + then + datadir="$(@PYTHON@ -c "from gi.repository import GLib; print(':'.join(GLib.get_system_data_dirs()))")" + export PYTHONPATH="@prefix@/lib/python@PYTHON_VERSION@/site-packages${PYTHONPATH:+:$PYTHONPATH}" +- export GI_TYPELIB_PATH="@libdir@/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" +- export LD_LIBRARY_PATH="@libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ++ export GI_TYPELIB_PATH="$LIB_DIR/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" ++ export LD_LIBRARY_PATH="$LIB_DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + export XDG_DATA_DIRS="@datadir@${datadir:+:$datadir}" + else + export PYTHONPATH="$(dirname $script_dir)${PYTHONPATH:+:$PYTHONPATH}" diff --git a/caribou-0.4.20-python3-compatibility.patch b/caribou-0.4.20-python3-compatibility.patch new file mode 100644 index 0000000..8358af5 --- /dev/null +++ b/caribou-0.4.20-python3-compatibility.patch @@ -0,0 +1,137 @@ +diff -urN caribou-0.4.20.old/bin/antler-keyboard.in caribou-0.4.20/bin/antler-keyboard.in +--- caribou-0.4.20.old/bin/antler-keyboard.in 2015-01-17 23:28:39.000000000 +0530 ++++ caribou-0.4.20/bin/antler-keyboard.in 2016-06-27 20:21:58.400039929 +0530 +@@ -26,7 +26,7 @@ + + if [ $script_dir = "@libexecdir@" ] + then +- datadir="$(@PYTHON@ -c "from gi.repository import GLib; print ':'.join(GLib.get_system_data_dirs())")" ++ datadir="$(@PYTHON@ -c "from gi.repository import GLib; print(':'.join(GLib.get_system_data_dirs()))")" + export PYTHONPATH="${prefix}/lib/python@PYTHON_VERSION@/site-packages:${prefix}/lib64/python@PYTHON_VERSION@/site-packages${PYTHONPATH:+:$PYTHONPATH}" + export GI_TYPELIB_PATH="@libdir@/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" + export LD_LIBRARY_PATH="@libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" +diff -urN caribou-0.4.20.old/bin/caribou-preferences.in caribou-0.4.20/bin/caribou-preferences.in +--- caribou-0.4.20.old/bin/caribou-preferences.in 2012-12-30 10:50:16.000000000 +0530 ++++ caribou-0.4.20/bin/caribou-preferences.in 2016-06-27 20:21:58.401039910 +0530 +@@ -26,7 +26,7 @@ + + if [ $script_dir = "@bindir@" ] + then +- datadir="$(@PYTHON@ -c "from gi.repository import GLib; print ':'.join(GLib.get_system_data_dirs())")" ++ datadir="$(@PYTHON@ -c "from gi.repository import GLib; print(':'.join(GLib.get_system_data_dirs()))")" + export PYTHONPATH="@prefix@/lib/python@PYTHON_VERSION@/site-packages${PYTHONPATH:+:$PYTHONPATH}" + export GI_TYPELIB_PATH="@libdir@/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" + export LD_LIBRARY_PATH="@libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" +diff -urN caribou-0.4.20.old/caribou/antler/keyboard_view.py caribou-0.4.20/caribou/antler/keyboard_view.py +--- caribou-0.4.20.old/caribou/antler/keyboard_view.py 2015-01-17 23:28:43.000000000 +0530 ++++ caribou-0.4.20/caribou/antler/keyboard_view.py 2016-06-27 20:22:29.481427745 +0530 +@@ -1,6 +1,6 @@ + from caribou.settings.preferences_window import PreferencesDialog + from caribou.settings import CaribouSettings +-from antler_settings import AntlerSettings ++from .antler_settings import AntlerSettings + from gi.repository import Gtk + from gi.repository import Gdk + from gi.repository import GObject +@@ -193,7 +193,7 @@ + + for i, key in enumerate(col): + align = key.props.align +- if not alignboxes.has_key(align): ++ if align not in alignboxes: + alignbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) + alignbox.set_spacing(self._spacing) + alignboxes[align] = alignbox +@@ -288,7 +288,7 @@ + + def _load_style(self, provider, filename, search_path): + spath = search_path[:] +- if os.environ.has_key("ANTLER_THEME_PATH"): ++ if "ANTLER_THEME_PATH" in os.environ: + spath.insert(0, os.environ["ANTLER_THEME_PATH"]) + + for directory in spath: +diff -urN caribou-0.4.20.old/caribou/antler/main.py caribou-0.4.20/caribou/antler/main.py +--- caribou-0.4.20.old/caribou/antler/main.py 2015-01-17 23:28:43.000000000 +0530 ++++ caribou-0.4.20/caribou/antler/main.py 2016-06-27 20:21:58.403039870 +0530 +@@ -1,3 +1,6 @@ ++import gi ++gi.require_version('Caribou', '1.0') ++gi.require_version('Gtk', '3.0') + from gi.repository import Caribou, GLib, GObject, Gtk + from .window import AntlerWindowEntry + from .keyboard_view import AntlerKeyboardView +diff -urN caribou-0.4.20.old/caribou/antler/window.py caribou-0.4.20/caribou/antler/window.py +--- caribou-0.4.20.old/caribou/antler/window.py 2016-01-10 12:12:50.000000000 +0530 ++++ caribou-0.4.20/caribou/antler/window.py 2016-06-27 20:21:58.404039851 +0530 +@@ -20,11 +20,13 @@ + # along with this program; if not, write to the Free Software Foundation, + # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + ++import gi ++gi.require_version('Clutter', '1.0') + from gi.repository import Gtk + from gi.repository import Gdk + from gi.repository import GObject + from gi.repository import Clutter +-from antler_settings import AntlerSettings ++from .antler_settings import AntlerSettings + from math import sqrt + import os + import sys +diff -urN caribou-0.4.20.old/caribou/settings/preferences_window.py caribou-0.4.20/caribou/settings/preferences_window.py +--- caribou-0.4.20.old/caribou/settings/preferences_window.py 2012-10-23 05:53:28.000000000 +0530 ++++ caribou-0.4.20/caribou/settings/preferences_window.py 2016-06-27 20:21:58.404039851 +0530 +@@ -20,7 +20,10 @@ + + from caribou.settings.setting_types import * + ++import gi + from gi.repository import GObject ++gi.require_version('Gtk', '3.0') ++gi.require_version('Gdk', '3.0') + from gi.repository import Gdk + from gi.repository import Gtk + +diff -urN caribou-0.4.20.old/caribou/settings/settings_manager.py caribou-0.4.20/caribou/settings/settings_manager.py +--- caribou-0.4.20.old/caribou/settings/settings_manager.py 2016-01-10 12:12:50.000000000 +0530 ++++ caribou-0.4.20/caribou/settings/settings_manager.py 2016-06-27 20:21:58.405039831 +0530 +@@ -19,7 +19,7 @@ + raise AttributeError("no setting named '%s'" % name) + + def _map_settings(self, setting): +- if self._settings_map.has_key(setting.name): ++ if setting.name in self._settings_map: + raise ValueError("more than one setting has the name '%s'" % setting.name) + self._settings_map[setting.name] = setting + +@@ -27,7 +27,7 @@ + self._map_settings(s) + + def _setup_settings(self): +- for setting in self._settings_map.values(): ++ for setting in list(self._settings_map.values()): + if isinstance(setting, SettingsGroup): + continue + setting.value = \ +diff -urN caribou-0.4.20.old/tools/convert_cldr.py caribou-0.4.20/tools/convert_cldr.py +--- caribou-0.4.20.old/tools/convert_cldr.py 2015-01-17 23:28:48.000000000 +0530 ++++ caribou-0.4.20/tools/convert_cldr.py 2016-06-27 20:21:58.406039811 +0530 +@@ -13,7 +13,7 @@ + uc = 0 + if hasattr(__builtins__, 'unichr'): + def unescape(m): +- return unichr(int(m.group(1), 16)) ++ return chr(int(m.group(1), 16)) + else: + def unescape(m): + return chr(int(m.group(1), 16)) +@@ -66,7 +66,7 @@ + for value in longPress.split(' '): + subkey = parse_single_key(value) + key.append(subkey) +- for k, v in sorted(rows.items(), key=lambda x: x[0], reverse=True): ++ for k, v in sorted(list(rows.items()), key=lambda x: x[0], reverse=True): + row = Element('row') + for key in sorted(v, key=lambda x: x): + row.append(key[1]) diff --git a/caribou.spec b/caribou.spec index 38a1154..9a5ee0c 100644 --- a/caribou.spec +++ b/caribou.spec @@ -1,16 +1,14 @@ -%global with_python3 1 - Name: caribou Version: 0.4.20 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A simplified in-place on-screen keyboard License: LGPLv2+ URL: http://live.gnome.org/Caribou Source0: http://download.gnome.org/sources/caribou/0.4/caribou-%{version}.tar.xz -Patch0: caribou-0.4.17-multilib.patch -Patch1: caribou-0.4.17-fix-python-exec.patch +Patch0: caribou-0.4.20-python3-compatibility.patch +Patch1: caribou-0.4.20-fix-python-exec.patch +Patch2: caribou-0.4.20-multilib.patch -BuildRequires: python2-devel BuildRequires: gtk2-devel BuildRequires: gtk3-devel BuildRequires: pygobject3-devel @@ -26,14 +24,7 @@ BuildRequires: libgee-devel BuildRequires: gobject-introspection-devel BuildRequires: at-spi2-core-devel -%if 0%{?with_python3} -BuildRequires: python3-devel -BuildRequires: python-tools -BuildRequires: python3-gobject -%endif # with_python3 - - -# Changing in F23 to pull python3-caribou default +# Changed in F23 to pull python3-caribou default Requires: python3-%{name} = %{version}-%{release} Requires: gobject-introspection Requires: caribou-gtk2-module @@ -58,20 +49,24 @@ Obsoletes: gok-devel < 2.30.1-6 The %{name}-devel package contains libraries and header files for developing applications that use %{name}. -%package -n python-caribou +%package -n python2-caribou +%{?python_provide:%python_provide python2-caribou} Summary: Keyboard UI for %{name} +BuildRequires: python2-devel Requires: pygobject3 Requires: pyatspi Requires: %{name} = %{version}-%{release} Obsoletes: caribou < 0.4.1-3 BuildArch: noarch -%description -n python-caribou +%description -n python2-caribou This package contains caribou python GUI -%if 0%{?with_python3} %package -n python3-caribou +%{?python_provide:%python_provide python3-caribou} Summary: Keyboard UI for %{name} +BuildRequires: python3-devel +BuildRequires: python3-gobject Requires: python3-gobject Requires: python3-pyatspi Requires: %{name} = %{version}-%{release} @@ -80,7 +75,6 @@ BuildArch: noarch %description -n python3-caribou This package contains caribou python3 GUI -%endif %package gtk2-module Summary: Gtk2 module for %{name} @@ -100,7 +94,7 @@ This package contains caribou module for gtk3 applications. %package antler Summary: Keyboard implementation for %{name} -Requires: python-%{name} = %{version}-%{release} +Requires: python3-%{name} = %{version}-%{release} Obsoletes: caribou < 0.4.1-3 %description antler @@ -109,8 +103,9 @@ non-gnome-shell sessions. %prep %setup -q -%patch0 -p1 -b .multilib +%patch0 -p1 -b .python3 %patch1 -p1 -b .fix-python-exec +%patch2 -p1 -b .multilib %build %configure --disable-static @@ -119,13 +114,10 @@ make V=1 %{?_smp_mflags} %install make install DESTDIR=%{buildroot} INSTALL="install -p" -%if 0%{?with_python3} +# For Python3 make clean %configure --disable-static PYTHON=python3 -2to3 -w caribou -2to3 -w tools make install DESTDIR=%{buildroot} INSTALL="install -p" -%endif find %{buildroot} -name '*.la' -exec rm -f {} ';' @@ -154,7 +146,8 @@ fi /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %files -f caribou.lang -%doc NEWS COPYING README +%doc NEWS README +%license COPYING %{_bindir}/caribou-preferences %{_datadir}/caribou %{_libdir}/girepository-1.0/Caribou-1.0.typelib @@ -165,13 +158,11 @@ fi %{_libdir}/gnome-settings-daemon-3.0/gtk-modules/caribou-gtk-module.desktop %{_libexecdir}/caribou -%files -n python-caribou -%{python_sitelib}/caribou +%files -n python2-caribou +%{python2_sitelib}/caribou -%if 0%{?with_python3} %files -n python3-caribou %{python3_sitelib}/caribou -%endif %files devel %{_includedir}/* @@ -194,6 +185,12 @@ fi %changelog +* Thu Jun 30 2016 Parag Nemade - 0.4.20-2 +- Resolves:rh#1324995: caribou-preferences string import error +- Use %%license for COPYING +- move python-caribou to python2-caribou +- Add virtual provides for python packages + * Tue Feb 16 2016 Richard Hughes - 0.4.20-1 - Update to 0.4.20