From d4f9828e69517dc88c2454aa45d8fa96b3802ffd Mon Sep 17 00:00:00 2001 From: CentOS Buildsys Date: Oct 30 2013 10:00:59 +0000 Subject: import gnome-documents-3.8.5-1.el7.src.rpm --- diff --git a/.gnome-documents.metadata b/.gnome-documents.metadata new file mode 100644 index 0000000..3b3ddc5 --- /dev/null +++ b/.gnome-documents.metadata @@ -0,0 +1 @@ +41e40dc784f05bb88fba120a2a303bac376f043b SOURCES/gnome-documents-3.8.5.tar.xz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/0001-Support-previewing-of-password-protected-PDFs.patch b/SOURCES/0001-Support-previewing-of-password-protected-PDFs.patch new file mode 100644 index 0000000..c72cfee --- /dev/null +++ b/SOURCES/0001-Support-previewing-of-password-protected-PDFs.patch @@ -0,0 +1,484 @@ +From 544daeb096cd029c8c13539fea1a43186d0c26c1 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Mon, 27 May 2013 16:48:49 +0200 +Subject: [PATCH] Support previewing of password protected PDFs + +Delay changing the window mode when loading a document, so that we are +still in the overview when presenting the dialog to enter the password. +We switch the mode to preview when load-finished or load-error has +been received. + +https://bugzilla.gnome.org/show_bug.cgi?id=700716 +--- + src/Makefile-js.am | 1 + + src/documents.js | 24 ++++++----- + src/embed.js | 28 ++++++++++--- + src/lib/gd-pdf-loader.c | 40 +++++++++++++++--- + src/lib/gd-pdf-loader.h | 1 + + src/mainToolbar.js | 3 +- + src/password.js | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ + 7 files changed, 181 insertions(+), 21 deletions(-) + create mode 100644 src/password.js + +diff --git a/src/Makefile-js.am b/src/Makefile-js.am +index 9387e0f..764981e 100644 +--- a/src/Makefile-js.am ++++ b/src/Makefile-js.am +@@ -11,6 +11,7 @@ dist_js_DATA = \ + manager.js \ + miners.js \ + notifications.js \ ++ password.js \ + places.js \ + presentation.js \ + preview.js \ +diff --git a/src/documents.js b/src/documents.js +index 4da2a4f..ab31261 100644 +--- a/src/documents.js ++++ b/src/documents.js +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2011, 2012 Red Hat, Inc. ++ * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. + * + * Gnome Documents is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the +@@ -19,6 +19,7 @@ + * + */ + ++const EvDocument = imports.gi.EvinceDocument; + const EvView = imports.gi.EvinceView; + const GdkPixbuf = imports.gi.GdkPixbuf; + const Gio = imports.gi.Gio; +@@ -548,7 +549,7 @@ const DocCommon = new Lang.Class({ + }, + + print: function(toplevel) { +- this.load(null, Lang.bind(this, ++ this.load(null, null, Lang.bind(this, + function(doc, docModel, error) { + if (error) { + log('Unable to print document ' + this.uri + ': ' + error); +@@ -627,8 +628,8 @@ const LocalDocument = new Lang.Class({ + this.typeDescription = description; + }, + +- load: function(cancellable, callback) { +- GdPrivate.pdf_loader_load_uri_async(this.uri, cancellable, Lang.bind(this, ++ load: function(passwd, cancellable, callback) { ++ GdPrivate.pdf_loader_load_uri_async(this.uri, passwd, cancellable, Lang.bind(this, + function(source, res) { + try { + let docModel = GdPrivate.pdf_loader_load_uri_finish(res); +@@ -693,7 +694,7 @@ const GoogleDocument = new Lang.Class({ + })); + }, + +- load: function(cancellable, callback) { ++ load: function(passwd, cancellable, callback) { + this._createGDataEntry(cancellable, Lang.bind(this, + function(entry, service, exception) { + if (exception) { +@@ -845,7 +846,7 @@ const SkydriveDocument = new Lang.Class({ + })); + }, + +- load: function(cancellable, callback) { ++ load: function(passwd, cancellable, callback) { + this._createZpjEntry(cancellable, Lang.bind(this, + function(entry, service, exception) { + if (exception) { +@@ -1024,6 +1025,11 @@ const DocumentManager = new Lang.Class({ + if (error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) + return; + ++ if (error.matches(EvDocument.DocumentError, EvDocument.DocumentError.ENCRYPTED)) { ++ this.emit('password-needed', doc); ++ return; ++ } ++ + // Translators: %s is the title of a document + let message = _("Oops! Unable to load ā€œ%sā€").format(doc.name); + let exception = this._humanizeError(error); +@@ -1048,7 +1054,7 @@ const DocumentManager = new Lang.Class({ + this.emit('load-finished', doc, docModel); + }, + +- reloadActiveItem: function() { ++ reloadActiveItem: function(passwd) { + let doc = this.getActiveItem(); + + if (!doc) +@@ -1061,7 +1067,7 @@ const DocumentManager = new Lang.Class({ + this._clearActiveDocModel(); + + this._loaderCancellable = new Gio.Cancellable(); +- doc.load(this._loaderCancellable, Lang.bind(this, this._onDocumentLoaded)); ++ doc.load(passwd, this._loaderCancellable, Lang.bind(this, this._onDocumentLoaded)); + this.emit('load-started', doc); + }, + +@@ -1085,7 +1091,7 @@ const DocumentManager = new Lang.Class({ + recentManager.add_item(doc.uri); + + this._loaderCancellable = new Gio.Cancellable(); +- doc.load(this._loaderCancellable, Lang.bind(this, this._onDocumentLoaded)); ++ doc.load(null, this._loaderCancellable, Lang.bind(this, this._onDocumentLoaded)); + this.emit('load-started', doc); + }, + +diff --git a/src/embed.js b/src/embed.js +index 1a673ea..6ad9826 100644 +--- a/src/embed.js ++++ b/src/embed.js +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2011 Red Hat, Inc. ++ * Copyright (c) 2011, 2013 Red Hat, Inc. + * + * Gnome Documents is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the +@@ -25,6 +25,7 @@ const Mainloop = imports.mainloop; + const Application = imports.application; + const MainToolbar = imports.mainToolbar; + const Notifications = imports.notifications; ++const Password = imports.password; + const Preview = imports.preview; + const Edit = imports.edit; + const Selections = imports.selections; +@@ -270,6 +271,8 @@ const Embed = new Lang.Class({ + Lang.bind(this, this._onLoadFinished)); + Application.documentManager.connect('load-error', + Lang.bind(this, this._onLoadError)); ++ Application.documentManager.connect('password-needed', ++ Lang.bind(this, this._onPasswordNeeded)); + + this._onQueryStatusChanged(); + +@@ -355,15 +358,13 @@ const Embed = new Lang.Class({ + }, + + _onActiveItemChanged: function(manager, doc) { +- let newMode = WindowMode.WindowMode.OVERVIEW; +- + if (doc) { + let collection = Application.collectionManager.getItemById(doc.id); + if (!collection) +- newMode = WindowMode.WindowMode.PREVIEW; ++ return; + } + +- Application.modeController.setWindowMode(newMode); ++ Application.modeController.setWindowMode(WindowMode.WindowMode.OVERVIEW); + }, + + _clearLoadTimer: function() { +@@ -386,6 +387,8 @@ const Embed = new Lang.Class({ + }, + + _onLoadFinished: function(manager, doc, docModel) { ++ Application.modeController.setWindowMode(WindowMode.WindowMode.PREVIEW); ++ + docModel.set_sizing_mode(EvView.SizingMode.AUTOMATIC); + docModel.set_page_layout(EvView.PageLayout.AUTOMATIC); + this._toolbar.setModel(docModel); +@@ -398,11 +401,26 @@ const Embed = new Lang.Class({ + }, + + _onLoadError: function(manager, doc, message, exception) { ++ Application.modeController.setWindowMode(WindowMode.WindowMode.PREVIEW); ++ + this._clearLoadTimer(); + this._spinnerBox.stop(); + this._setError(message, exception.message); + }, + ++ _onPasswordNeeded: function(manager, doc) { ++ this._clearLoadTimer(); ++ this._spinnerBox.stop(); ++ ++ let dialog = new Password.PasswordDialog(doc); ++ dialog.widget.connect('response', Lang.bind(this, ++ function(widget, response) { ++ dialog.widget.destroy(); ++ if (response == Gtk.ResponseType.CANCEL) ++ Application.documentManager.setActiveItem(null); ++ })); ++ }, ++ + _prepareForOverview: function() { + if (this._preview) + this._preview.setModel(null); +diff --git a/src/lib/gd-pdf-loader.c b/src/lib/gd-pdf-loader.c +index 6b1aed2..f835f80 100644 +--- a/src/lib/gd-pdf-loader.c ++++ b/src/lib/gd-pdf-loader.c +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2011, 2012 Red Hat, Inc. ++ * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by +@@ -41,6 +41,9 @@ typedef struct { + gchar *pdf_path; + GPid unoconv_pid; + ++ gchar *passwd; ++ gboolean passwd_tried; ++ + GFile *download_file; + GInputStream *stream; + +@@ -135,6 +138,7 @@ pdf_load_job_free (PdfLoadJob *job) + g_clear_object (&job->zpj_entry); + + g_free (job->uri); ++ g_free (job->passwd); + g_free (job->resource_id); + + if (job->pdf_path != NULL) { +@@ -157,6 +161,7 @@ pdf_load_job_new (GSimpleAsyncResult *result, + const gchar *uri, + GDataEntry *gdata_entry, + ZpjSkydriveEntry *zpj_entry, ++ const gchar *passwd, + GCancellable *cancellable) + { + PdfLoadJob *retval; +@@ -169,6 +174,8 @@ pdf_load_job_new (GSimpleAsyncResult *result, + + if (uri != NULL) + retval->uri = g_strdup (uri); ++ if (passwd != NULL) ++ retval->passwd = g_strdup (passwd); + if (gdata_entry != NULL) + retval->gdata_entry = g_object_ref (gdata_entry); + if (zpj_entry != NULL) +@@ -222,14 +229,23 @@ ev_load_job_done (EvJob *ev_job, + PdfLoadJob *job = user_data; + + if (ev_job_is_failed (ev_job) || (ev_job->document == NULL)) { +- if (job->from_old_cache) ++ if (job->from_old_cache) { + pdf_load_job_force_refresh_cache (job); +- else ++ } else if (g_error_matches (ev_job->error, EV_DOCUMENT_ERROR, EV_DOCUMENT_ERROR_ENCRYPTED) ++ && job->passwd != NULL ++ && !job->passwd_tried) { ++ /* EvJobLoad tries using the password only after the job has ++ * failed once. ++ */ ++ ev_job_scheduler_push_job (ev_job, EV_JOB_PRIORITY_NONE); ++ job->passwd_tried = TRUE; ++ } else { + pdf_load_job_complete_error (job, (ev_job->error != NULL) ? + g_error_copy (ev_job->error) : + g_error_new_literal (G_IO_ERROR, + G_IO_ERROR_FAILED, + _("Unable to load the document"))); ++ } + + g_clear_object (&ev_job); + return; +@@ -255,6 +271,9 @@ pdf_load_job_from_pdf (PdfLoadJob *job) + } + + ev_job = ev_job_load_new ((uri != NULL) ? (uri) : (job->uri)); ++ if (job->passwd != NULL) ++ ev_job_load_set_password (EV_JOB_LOAD (ev_job), job->passwd); ++ + g_signal_connect (ev_job, "finished", + G_CALLBACK (ev_load_job_done), job); + +@@ -1015,8 +1034,17 @@ pdf_load_job_start (PdfLoadJob *job) + pdf_load_job_from_regular_file (job); + } + ++/** ++ * gd_pdf_loader_load_uri_async: ++ * @uri: ++ * @passwd: (allow-none): ++ * @cancellable: (allow-none): ++ * @callback: ++ * @user_data: ++ */ + void + gd_pdf_loader_load_uri_async (const gchar *uri, ++ const gchar *passwd, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +@@ -1027,7 +1055,7 @@ gd_pdf_loader_load_uri_async (const gchar *uri, + result = g_simple_async_result_new (NULL, callback, user_data, + gd_pdf_loader_load_uri_async); + +- job = pdf_load_job_new (result, uri, NULL, NULL, cancellable); ++ job = pdf_load_job_new (result, uri, NULL, NULL, passwd, cancellable); + + pdf_load_job_start (job); + +@@ -1068,7 +1096,7 @@ gd_pdf_loader_load_gdata_entry_async (GDataEntry *entry, + result = g_simple_async_result_new (NULL, callback, user_data, + gd_pdf_loader_load_gdata_entry_async); + +- job = pdf_load_job_new (result, NULL, entry, NULL, cancellable); ++ job = pdf_load_job_new (result, NULL, entry, NULL, NULL, cancellable); + job->gdata_service = g_object_ref (service); + + pdf_load_job_start (job); +@@ -1110,7 +1138,7 @@ gd_pdf_loader_load_zpj_entry_async (ZpjSkydriveEntry *entry, + result = g_simple_async_result_new (NULL, callback, user_data, + gd_pdf_loader_load_zpj_entry_async); + +- job = pdf_load_job_new (result, NULL, NULL, entry, cancellable); ++ job = pdf_load_job_new (result, NULL, NULL, entry, NULL, cancellable); + job->zpj_service = g_object_ref (service); + + pdf_load_job_start (job); +diff --git a/src/lib/gd-pdf-loader.h b/src/lib/gd-pdf-loader.h +index 22b05b4..9e5ffb7 100644 +--- a/src/lib/gd-pdf-loader.h ++++ b/src/lib/gd-pdf-loader.h +@@ -33,6 +33,7 @@ + G_BEGIN_DECLS + + void gd_pdf_loader_load_uri_async (const gchar *uri, ++ const gchar *passwd, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +diff --git a/src/mainToolbar.js b/src/mainToolbar.js +index 25e6b94..a1b1c52 100644 +--- a/src/mainToolbar.js ++++ b/src/mainToolbar.js +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2011 Red Hat, Inc. ++ * Copyright (c) 2011, 2013 Red Hat, Inc. + * + * Gnome Documents is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the +@@ -58,6 +58,7 @@ const MainToolbar = new Lang.Class({ + })); + + Application.documentManager.connect('load-error', Lang.bind(this, this._onLoadErrorOrPassword)); ++ Application.documentManager.connect('password-needed', Lang.bind(this, this._onLoadErrorOrPassword)); + }, + + _onLoadErrorOrPassword: function() { +diff --git a/src/password.js b/src/password.js +new file mode 100644 +index 0000000..3a09b10 +--- /dev/null ++++ b/src/password.js +@@ -0,0 +1,105 @@ ++/* ++ * Copyright (c) 2013 Red Hat, Inc. ++ * ++ * Gnome Documents is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by the ++ * Free Software Foundation; either version 2 of the License, or (at your ++ * option) any later version. ++ * ++ * Gnome Documents is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with Gnome Documents; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ * Author: Debarshi Ray ++ * ++ */ ++ ++const Gio = imports.gi.Gio; ++const GLib = imports.gi.GLib; ++const Gtk = imports.gi.Gtk; ++const _ = imports.gettext.gettext; ++const C_ = imports.gettext.pgettext; ++ ++const Application = imports.application; ++const Documents = imports.documents; ++const Mainloop = imports.mainloop; ++ ++const Lang = imports.lang; ++ ++const PasswordDialog = new Lang.Class({ ++ Name: 'PasswordDialog', ++ ++ _init: function(doc) { ++ let toplevel = Application.application.get_windows()[0]; ++ this.widget = new Gtk.Dialog({ resizable: false, ++ transient_for: toplevel, ++ modal: true, ++ destroy_with_parent: true, ++ default_width: 400, ++ border_width: 6, ++ title: _("Password Required"), ++ hexpand: true }); ++ this.widget.add_button('gtk-cancel', Gtk.ResponseType.CANCEL); ++ this.widget.add_button(_("_Unlock"), Gtk.ResponseType.OK); ++ this.widget.set_default_response(Gtk.ResponseType.OK); ++ this.widget.set_response_sensitive(Gtk.ResponseType.OK, false); ++ ++ let grid = new Gtk.Grid({ column_spacing: 12, ++ row_spacing: 18, ++ border_width: 5, ++ margin_bottom: 6, ++ hexpand: true, ++ vexpand: true }); ++ ++ let contentArea = this.widget.get_content_area(); ++ contentArea.pack_start(grid, true, true, 2); ++ ++ let label; ++ ++ let msg = _("Document %s is locked and requires a password to be opened." ++ ).format(doc.name); ++ // Doesn't respect halign and hexpand. ++ label = new Gtk.Label({ label: msg, ++ max_width_chars: 56, ++ use_markup: true, ++ wrap: true }); ++ label.set_alignment(0.0, 0.5); ++ grid.attach(label, 0, 0, 2, 1); ++ ++ let entry = new Gtk.Entry({ activates_default: true, ++ can_focus: true, ++ visibility: false, ++ hexpand: true }); ++ label = new Gtk.Label({ label: _("_Password"), ++ mnemonic_widget: entry, ++ use_underline: true }); ++ label.get_style_context().add_class('dim-label'); ++ grid.attach(label, 0, 1, 1, 1); ++ grid.attach(entry, 1, 1, 1, 1); ++ ++ entry.connect('realize', Lang.bind(this, ++ function() { ++ entry.grab_focus(); ++ })); ++ entry.connect('changed', Lang.bind(this, ++ function() { ++ let length = entry.get_text_length(); ++ this.widget.set_response_sensitive(Gtk.ResponseType.OK, (length != 0)); ++ })); ++ ++ this.widget.connect('response', Lang.bind(this, ++ function(widget, response) { ++ if (response != Gtk.ResponseType.OK) ++ return; ++ let passwd = entry.get_text(); ++ Application.documentManager.reloadActiveItem(passwd); ++ })); ++ ++ this.widget.show_all(); ++ } ++}); +-- +1.8.3.1 + diff --git a/SPECS/gnome-documents.spec b/SPECS/gnome-documents.spec new file mode 100644 index 0000000..b23ce14 --- /dev/null +++ b/SPECS/gnome-documents.spec @@ -0,0 +1,259 @@ +%define evince_version 3.3.92 + +Name: gnome-documents +Version: 3.8.5 +Release: 1%{?dist} +Summary: A document manager application for GNOME + +License: GPLv2+ +URL: https://live.gnome.org/Design/Apps/Documents +Source0: http://ftp.acc.umu.se/pub/GNOME/sources/%{name}/3.8/%{name}-%{version}.tar.xz + +# https://bugzilla.gnome.org/show_bug.cgi?id=700716 +Patch0: 0001-Support-previewing-of-password-protected-PDFs.patch + +BuildRequires: autoconf +BuildRequires: intltool +BuildRequires: libgdata-devel +BuildRequires: gnome-desktop3-devel +BuildRequires: liboauth-devel +BuildRequires: evince-devel >= %{evince_version} +BuildRequires: gnome-online-accounts-devel +BuildRequires: tracker-devel +BuildRequires: desktop-file-utils +BuildRequires: gjs-devel +BuildRequires: libzapojit-devel +BuildRequires: webkitgtk3-devel +BuildRequires: itstool +BuildRequires: inkscape +BuildRequires: poppler-utils +BuildRequires: docbook-style-xsl + +%description +gnome-documents is a document manager application for GNOME, +aiming to be a simple and elegant replacement for using Files to show +the Documents directory. + +%prep +%setup -q +%patch0 -p1 + +%build +autoreconf -fi +intltoolize --automake -f + +%configure --disable-static --enable-getting-started +make %{?_smp_mflags} + +%install +make install DESTDIR=$RPM_BUILD_ROOT +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' +desktop-file-validate $RPM_BUILD_ROOT/%{_datadir}/applications/%{name}.desktop +%find_lang %{name} + + +%post +/sbin/ldconfig +touch --no-create %{_datadir}/icons/hicolor >&/dev/null || : + + +%postun +/sbin/ldconfig +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor >&/dev/null || : + gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/null || : + /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : +fi + +%posttrans +gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/null || : +/usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : + +%files -f %{name}.lang +%doc README AUTHORS NEWS TODO COPYING +%{_datadir}/%{name} +%{_bindir}/%{name} +%{_libexecdir}/* +%{_datadir}/dbus-1/services/* +%{_datadir}/glib-2.0/schemas/* +%{_datadir}/applications/* +%{_datadir}/icons/hicolor/*/apps/gnome-documents.png +%{_libdir}/gnome-documents/ +# co-own these directories +%dir %{_datadir}/gnome-shell +%dir %{_datadir}/gnome-shell/search-providers +%{_datadir}/gnome-shell/search-providers/gnome-documents-search-provider.ini +%{_mandir}/man1/gnome-documents.1.gz + +%changelog +* Thu Oct 24 2013 Debarshi Ray - 3.8.5-1 +- Update to 3.8.5 + +* Fri Aug 30 2013 Debarshi Ray - 3.8.4-1 +- Update to 3.8.4 + +* Thu Jul 11 2013 Debarshi Ray - 3.8.3.1-2 +- Backport support for previewing password protected PDFs (GNOME #700716) + +* Fri Jun 14 2013 Debarshi Ray - 3.8.3.1-1 +- Update to 3.8.3.1 + +* Sun Jun 9 2013 Matthias Clasen - 3.8.3-1 +- Update to 3.8.3 + +* Mon May 13 2013 Matthias Clasen - 3.8.2.1-1 +- Update to 3.8.2.1 + +* Tue Apr 16 2013 Richard Hughes - 3.8.1-1 +- Update to 3.8.1 + +* Thu Mar 28 2013 Cosimo Cecchi - 3.8.0-2 +- Enable generation of getting-started tutorial PDF + +* Tue Mar 26 2013 Kalev Lember - 3.8.0-1 +- Update to 3.8.0 + +* Wed Mar 20 2013 Kalev Lember - 3.7.92-1 +- Update to 3.7.92 + +* Thu Mar 7 2013 Matthias Clasen - 3.7.91-1 +- Update to 3.7.91 + +* Tue Feb 26 2013 Kalev Lember - 3.7.90-1 +- Update to 3.7.90 + +* Thu Feb 21 2013 Kalev Lember - 3.7.5-3 +- Rebuilt for cogl soname bump + +* Wed Feb 20 2013 Kalev Lember - 3.7.5-2 +- Rebuilt for libgnome-desktop soname bump + +* Thu Feb 07 2013 Richard Hughes - 3.7.5-1 +- Update to 3.7.5 + +* Fri Jan 25 2013 Peter Robinson 3.7.4-2 +- Rebuild for new cogl + +* Tue Jan 15 2013 Matthias Clasen - 3.7.4-1 +- Update to 3.7.4 + +* Fri Dec 21 2012 Kalev Lember - 3.7.3-1 +- Update to 3.7.3 + +* Tue Nov 20 2012 Richard Hughes - 3.7.2-1 +- Update to 3.7.2 + +* Tue Nov 13 2012 Kalev Lember - 3.6.2-1 +- Update to 3.6.2 + +* Mon Oct 15 2012 Cosimo Cecchi - 3.6.1-1 +- Update to 3.6.1 + +* Tue Sep 25 2012 Cosimo Cecchi - 3.6.0-1 +- Update to 3.6.0 + +* Tue Sep 18 2012 Cosimo Cecchi - 3.5.92-1 +- Update to 3.5.92 + +* Sun Sep 09 2012 Kalev Lember - 3.5.91-2 +- Rebuild against new cogl/clutter + +* Tue Sep 04 2012 Cosimo Cecchi - 3.5.91-1 +- Update to 3.5.91 + +* Tue Aug 28 2012 Matthias Clasen - 3.5.90-2 +- Rebuild against new cogl/clutter + +* Tue Aug 21 2012 Elad Alfassa - 3.5.90-1 +- Update to latest upstream release + +* Fri Aug 10 2012 Cosimo Cecchi - 0.5.5-1 +- Update to 0.5.5 + +* Thu Jul 19 2012 Fedora Release Engineering - 0.5.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jul 17 2012 Richard Hughes - 0.5.4-1 +- Update to 0.5.4 + +* Wed Jun 27 2012 Cosimo Cecchi - 0.5.3-1 +- Update to 0.5.3 + +* Thu Jun 07 2012 Matthias Clasen - 0.5.2.1-2 +- Rebuild + +* Thu Jun 07 2012 Richard Hughes - 0.5.2.1-1 +- Update to 0.5.2.1 + +* Sat May 05 2012 Kalev Lember - 0.5.1-1 +- Update to 0.5.1 + +* Tue Apr 17 2012 Kalev Lember - 0.4.1-1 +- Update to 0.4.1 + +* Mon Mar 26 2012 Cosimo Cecchi - 0.4.0.1-1 +- Update to 0.4.0.1 + +* Mon Mar 26 2012 Cosimo Cecchi - 0.4.0-2 +- Rebuild against current libevdocument3 soname + +* Mon Mar 26 2012 Cosimo Cecchi - 0.4.0-1 +- Update to 0.4.0 + +* Wed Mar 21 2012 Kalev Lember - 0.3.92-4 +- Rebuild for libevdocument3 soname bump + +* Tue Mar 20 2012 Adam Williamson - 0.3.92-3 +- revert unoconv requirement, it pulls LO into the live image + +* Tue Mar 20 2012 Adam Williamson - 0.3.92-2 +- requires: unoconv (RHBZ #754516) + +* Tue Mar 20 2012 Cosimo Cecchi - 0.3.92-1 +- Update to 0.3.92 + +* Sat Mar 10 2012 Matthias Clasen - 0.3.91-2 +- Rebuild against new cogl + +* Tue Mar 06 2012 Cosimo Cecchi - 0.3.91-1 +- Update to 0.3.91 + +* Sun Feb 26 2012 Matthias Clasen - 0.3.90-1 +- Update to 0.3.90 + +* Thu Jan 19 2012 Matthias Clasen - 0.3.4-2 +- Rebuild against new cogl + +* Tue Jan 17 2012 Cosimo Cecchi - 0.3.4-1 +- Update to 0.3.4 + +* Fri Jan 13 2012 Fedora Release Engineering - 0.3.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Dec 20 2011 Matthias Clasen - 0.3.3-1 +- Update to 0.3.3 + +* Wed Nov 23 2011 Matthias Clasen - 0.3.2-1 +- Update to 0.3.2 + +* Tue Oct 18 2011 Elad Alfassa - 0.2.1-1 +- New upstream release + +* Tue Sep 27 2011 Ray - 0.2.0-1 +- Update to 0.2.0 + +* Tue Sep 20 2011 Matthias Clasen - 0.1.92-2 +- Rebuild against newer clutter + +* Tue Sep 20 2011 Elad Alfassa - 0.1.92-1 +- Update to 0.1.92 + +* Wed Sep 7 2011 Matthias Clasen - 0.1.91-1 +- Update to 0.1.91 + +* Sat Sep 03 2011 Elad Alfassa - 0.1.90-2 +- Fix #735341 + +* Fri Sep 02 2011 Elad Alfassa - 0.1.90-1 +- Initial packaging. +