Hello community, here is the log from the commit of package shotwell for openSUSE:Factory checked in at 2019-01-28 20:48:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/shotwell (Old) and /work/SRC/openSUSE:Factory/.shotwell.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shotwell" Mon Jan 28 20:48:02 2019 rev:86 rq:666452 version:0.30.1 Changes: -------- --- /work/SRC/openSUSE:Factory/shotwell/shotwell.changes 2018-10-02 19:47:54.577800596 +0200 +++ /work/SRC/openSUSE:Factory/.shotwell.new.28833/shotwell.changes 2019-01-28 20:49:08.273861303 +0100 @@ -1,0 +2,17 @@ +Tue Jan 15 22:41:15 UTC 2019 - [email protected] + +- Add shotwell-Adapt-to-gexiv2-changes.patch: Fix build with new + libgexiv2, rebased patch from master branch. +- Add bug fix patches from upstream stable branch: + + shotwell-Fix_double-click_maximize.patch: Fix double-click + maximize artifacts on Wayland. + + shotwell-slideshow_Suspend_hiding_cursor.patch: slideshow: + Suspend hiding the cursor. + + shotwell-vala-fixes.patch: vala: Accept + string.index_of_nth_char() to return long or int for new valac. + + shotwell-Fix_crash_when_dismissing_modifications.patch: direct: + Fix crash when dismissing modifications. + + shotwell-authenticator_Fix_google_and_flickr_auth.patch: + authenticator: Fix google and flickr authenticator. + +------------------------------------------------------------------- New: ---- shotwell-Adapt-to-gexiv2-changes.patch shotwell-Fix_crash_when_dismissing_modifications.patch shotwell-Fix_double-click_maximize.patch shotwell-authenticator_Fix_google_and_flickr_auth.patch shotwell-slideshow_Suspend_hiding_cursor.patch shotwell-vala-fixes.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ shotwell.spec ++++++ --- /var/tmp/diff_new_pack.qcszA2/_old 2019-01-28 20:49:08.805860743 +0100 +++ /var/tmp/diff_new_pack.qcszA2/_new 2019-01-28 20:49:08.809860738 +0100 @@ -26,6 +26,18 @@ Source0: https://download.gnome.org/sources/%{name}/0.30/%{name}-%{version}.tar.xz Source99: shotwell-rpmlintrc +# PATCH-FIX-UPSTREAM shotwell-Adapt-to-gexiv2-changes.patch -- Fix build with new libgexiv2 +Patch0: shotwell-Adapt-to-gexiv2-changes.patch +# PATCH-FIX-UPSTREAM shotwell-Fix_double-click_maximize.patch -- Fix double-click maximize artifacts on Wayland +Patch1: shotwell-Fix_double-click_maximize.patch +# PATCH-FIX-UPSTREAM shotwell-slideshow_Suspend_hiding_cursor.patch -- slideshow: Suspend hiding the cursor +Patch2: shotwell-slideshow_Suspend_hiding_cursor.patch +# PATCH-FIX-UPSTREAM shotwell-vala-fixes.patch -- Accept string.index_of_nth_char() to return long or int for new valac +Patch3: shotwell-vala-fixes.patch +# PATCH-FIX-UPSTREAM shotwell-Fix_crash_when_dismissing_modifications.patch -- direct: Fix crash when dismissing modifications +Patch4: shotwell-Fix_crash_when_dismissing_modifications.patch +# PATCH-FIX-UPSTREAM shotwell-authenticator_Fix_google_and_flickr_auth.patch -- authenticator: Fix google and flickr authenticator +Patch5: shotwell-authenticator_Fix_google_and_flickr_auth.patch BuildRequires: appstream-glib BuildRequires: fdupes @@ -41,7 +53,7 @@ BuildRequires: pkgconfig(gdk-2.0) BuildRequires: pkgconfig(gdk-x11-2.0) BuildRequires: pkgconfig(gee-0.8) >= 0.10.0 -BuildRequires: pkgconfig(gexiv2) >= 0.10.4 +BuildRequires: pkgconfig(gexiv2) >= 0.11.0 BuildRequires: pkgconfig(gio-unix-2.0) >= 2.20 BuildRequires: pkgconfig(glib-2.0) >= 2.40.0 BuildRequires: pkgconfig(gstreamer-1.0) >= 1.0.0 @@ -68,7 +80,7 @@ %lang_package %prep -%autosetup +%autosetup -p1 %build %meson \ ++++++ shotwell-Adapt-to-gexiv2-changes.patch ++++++ >From c6443546beaec0aacbef7b6c092b4472a1f48f7b Mon Sep 17 00:00:00 2001 From: Jens Georg <[email protected]> Date: Sun, 18 Nov 2018 11:40:29 +0100 Subject: [PATCH] Adapt to gexiv2 master --- flatpak/org.gnome.Shotwell.json | 7 ++++--- meson.build | 2 +- src/photos/PhotoMetadata.vala | 8 ++++---- vapi/libexif.vapi | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) Index: shotwell-0.30.1/meson.build =================================================================== --- shotwell-0.30.1.orig/meson.build 2019-01-15 23:43:06.621485513 +0100 +++ shotwell-0.30.1/meson.build 2019-01-15 23:43:20.777702862 +0100 @@ -52,7 +52,7 @@ gstreamer = dependency('gstreamer-1.0', gstreamer_pbu = dependency('gstreamer-pbutils-1.0', version : '>= 1.0') gphoto2 = dependency('libgphoto2', version : '>= 2.5.0') gudev = dependency('gudev-1.0', version : '>= 145', required: false) -gexiv2 = dependency('gexiv2', version: '>= 0.10.4') +gexiv2 = dependency('gexiv2', version: '>= 0.11.0') libraw = dependency('libraw', version : '>= 0.13.2') libexif = dependency('libexif', version : '>= 0.6.16') unity = dependency('unity', required : false) Index: shotwell-0.30.1/src/photos/PhotoMetadata.vala =================================================================== --- shotwell-0.30.1.orig/src/photos/PhotoMetadata.vala 2019-01-15 23:43:06.621485513 +0100 +++ shotwell-0.30.1/src/photos/PhotoMetadata.vala 2019-01-15 23:43:20.777702862 +0100 @@ -276,8 +276,8 @@ public class PhotoMetadata : MediaMetada exiv2 = new GExiv2.Metadata(); exif = null; - exiv2.open_buf(buffer, length); - exif = Exif.Data.new_from_data(buffer, length); + exiv2.open_buf(buffer[0:length]); + exif = Exif.Data.new_from_data(buffer[0:length]); source_name = "<memory buffer %d bytes>".printf(length); } @@ -285,8 +285,8 @@ public class PhotoMetadata : MediaMetada exiv2 = new GExiv2.Metadata(); exif = null; - exiv2.from_app1_segment(buffer.get_data(), (long) buffer.get_size()); - exif = Exif.Data.new_from_data(buffer.get_data(), buffer.get_size()); + exiv2.from_app1_segment(buffer.get_data()); + exif = Exif.Data.new_from_data(buffer.get_data()); source_name = "<app1 segment %zu bytes>".printf(buffer.get_size()); } Index: shotwell-0.30.1/vapi/libexif.vapi =================================================================== --- shotwell-0.30.1.orig/vapi/libexif.vapi 2019-01-15 23:43:06.621485513 +0100 +++ shotwell-0.30.1/vapi/libexif.vapi 2019-01-15 23:43:20.777702862 +0100 @@ -79,7 +79,7 @@ namespace Exif { [CCode (cname="exif_data_new")] public Data(); public static Data? new_from_file(string path); - public static Data? new_from_data(uint8 *data, size_t count); + public static Data? new_from_data([CCode (array_length_pos=1)]uint8[] data); public void dump(); public void fix(); public void foreach_content(ForeachContentFunc cb, void *user = null); ++++++ shotwell-Fix_crash_when_dismissing_modifications.patch ++++++ >From f4f5e8226aa08fcb585e6018bf85deb1d402410b Mon Sep 17 00:00:00 2001 From: Jens Georg <[email protected]> Date: Tue, 6 Nov 2018 23:30:55 +0100 Subject: [PATCH] direct: Fix crash when dismissing modifications Fixes obscure crash on g_menu_model_get_n_items seen in various downstream crash collectors, e.g. https://retrace.fedoraproject.org/faf/reports/2020125/ https://bugs.launchpad.net/ubuntu/+source/shotwell/+bug/1723973 --- src/Photo.vala | 16 ++++++---------- src/direct/DirectPhotoPage.vala | 8 ++++---- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/Photo.vala b/src/Photo.vala index 0d8e955d..ae0f489c 100644 --- a/src/Photo.vala +++ b/src/Photo.vala @@ -429,7 +429,7 @@ public abstract class Photo : PhotoSource, Dateable { // need to remove all transformations as they're keyed to the editable's // coordinate system - internal_remove_all_transformations(false); + remove_all_transformations(false); } } @@ -1519,7 +1519,7 @@ public abstract class Photo : PhotoSource, Dateable { row.master = original_master; row.master.copy_from(reimport_state.row.master); if (!reimport_state.metadata_only) - internal_remove_all_transformations(false); + remove_all_transformations(false); } if (reimport_state.metadata != null) @@ -1596,7 +1596,7 @@ public abstract class Photo : PhotoSource, Dateable { lock (row) { editable = reimport_state.backing_state; set_orientation(reimport_state.backing_state.original_orientation); - internal_remove_all_transformations(false); + remove_all_transformations(false); } } else { set_orientation(reimport_state.backing_state.original_orientation); @@ -2820,11 +2820,7 @@ public abstract class Photo : PhotoSource, Dateable { return committed; } - public void remove_all_transformations() { - internal_remove_all_transformations(true); - } - - private void internal_remove_all_transformations(bool notify) { + public void remove_all_transformations(bool notify = true) { bool is_altered = false; lock (row) { is_altered = PhotoTable.get_instance().remove_all_transformations(row.photo_id); @@ -3907,7 +3903,7 @@ public abstract class Photo : PhotoSource, Dateable { // transformations are in the master's coordinate system, not the editable's ... don't // notify photo is altered *yet* because update_editable will notify, and want to avoid // stacking them up - internal_remove_all_transformations(false); + remove_all_transformations(false); update_editable(false, file_format.create_reader(file.get_path())); } @@ -4077,7 +4073,7 @@ public abstract class Photo : PhotoSource, Dateable { } if (remove_transformations) - internal_remove_all_transformations(false); + remove_all_transformations(false); if (has_editable) { notify_baseline_replaced(); diff --git a/src/direct/DirectPhotoPage.vala b/src/direct/DirectPhotoPage.vala index 8b31503f..8eb2e3ff 100644 --- a/src/direct/DirectPhotoPage.vala +++ b/src/direct/DirectPhotoPage.vala @@ -301,7 +301,7 @@ public class DirectPhotoPage : EditingHostPage { base.update_actions(selected_count, count); } - private bool check_ok_to_close_photo(Photo? photo) { + private bool check_ok_to_close_photo(Photo? photo, bool notify = true) { // Means we failed to load the photo for some reason. Do not block // shutdown if (photo == null) @@ -313,7 +313,7 @@ public class DirectPhotoPage : EditingHostPage { if (drop_if_dirty) { // need to remove transformations, or else they stick around in memory (reappearing // if the user opens the file again) - photo.remove_all_transformations(); + photo.remove_all_transformations(notify); return true; } @@ -326,7 +326,7 @@ public class DirectPhotoPage : EditingHostPage { _("Close _without Saving")); if (response == Gtk.ResponseType.YES) - photo.remove_all_transformations(); + photo.remove_all_transformations(notify); else if (response == Gtk.ResponseType.NO) { if (is_writeable) save(photo.get_file(), 0, ScaleConstraint.ORIGINAL, Jpeg.Quality.HIGH, @@ -342,7 +342,7 @@ public class DirectPhotoPage : EditingHostPage { } public bool check_quit() { - return check_ok_to_close_photo(get_photo()); + return check_ok_to_close_photo(get_photo(), false); } protected override bool confirm_replace_photo(Photo? old_photo, Photo new_photo) { -- 2.18.1 ++++++ shotwell-Fix_double-click_maximize.patch ++++++ >From af0c54df807d288b10ce9aeff420b6526c3f2ca1 Mon Sep 17 00:00:00 2001 From: Jens Georg <[email protected]> Date: Mon, 8 Oct 2018 13:29:52 +0200 Subject: [PATCH] Fix double-click maximize artifacts on Wayland Listen to the double-click on the window contents rather than the whole window. This makes the maximize functionality work on Wayland as expected and fixes the screen artifacts. Fixes #26 --- src/direct/DirectPhotoPage.vala | 6 ++++++ src/direct/DirectWindow.vala | 15 +++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/direct/DirectPhotoPage.vala b/src/direct/DirectPhotoPage.vala index 14b54bca..8b31503f 100644 --- a/src/direct/DirectPhotoPage.vala +++ b/src/direct/DirectPhotoPage.vala @@ -218,6 +218,12 @@ public class DirectPhotoPage : EditingHostPage { fs.close(); return true; + } else { + if (get_container() is DirectWindow) { + (get_container() as DirectWindow).do_fullscreen(); + + return true; + } } return base.on_double_click(event); diff --git a/src/direct/DirectWindow.vala b/src/direct/DirectWindow.vala index e1cbf759..1f33a761 100644 --- a/src/direct/DirectWindow.vala +++ b/src/direct/DirectWindow.vala @@ -42,6 +42,11 @@ public class DirectWindow : AppWindow { get_display_pathname(file.get_parent()), Resources.APP_TITLE); } + // Expose on_fullscreen publicly so we can call it from the DirectPhotoPage + public void do_fullscreen() { + on_fullscreen(); + } + protected override void on_fullscreen() { File file = get_direct_page().get_current_file(); @@ -74,16 +79,6 @@ public class DirectWindow : AppWindow { return (base.delete_event != null) ? base.delete_event(event) : false; } - public override bool button_press_event(Gdk.EventButton event) { - if (event.type == Gdk.EventType.2BUTTON_PRESS) { - on_fullscreen(); - - return true; - } - - return false; - } - public override bool key_press_event(Gdk.EventKey event) { // check for an escape if (Gdk.keyval_name(event.keyval) == "Escape") { -- 2.18.1 ++++++ shotwell-authenticator_Fix_google_and_flickr_auth.patch ++++++ >From b918b3739c3b2b5f13f0eabaa71cb5b23ef92405 Mon Sep 17 00:00:00 2001 From: Jens Georg <[email protected]> Date: Tue, 13 Nov 2018 19:27:34 +0100 Subject: [PATCH] authenticator: Fix google and flickr authenticator There is probably an issue with webkit or how we are using webkit since the custom scheme is registered, but out call-back is not called. Fixes #80 --- .../authenticator/shotwell/FlickrPublishingAuthenticator.vala | 3 ++- plugins/authenticator/shotwell/GoogleAuthenticator.vala | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala b/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala index 97629ed0..c26f89c3 100644 --- a/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala +++ b/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala @@ -55,7 +55,8 @@ namespace Publishing.Authenticator.Shotwell.Flickr { public override void on_page_load() { var uri = new Soup.URI(get_view().get_uri()); if (uri.scheme == "shotwell-auth" && this.auth_code == null) { - this.error(); + var form_data = Soup.Form.decode (uri.query); + this.auth_code = form_data.lookup("oauth_verifier"); } if (this.auth_code != null) { diff --git a/plugins/authenticator/shotwell/GoogleAuthenticator.vala b/plugins/authenticator/shotwell/GoogleAuthenticator.vala index f561197c..75d8f37f 100644 --- a/plugins/authenticator/shotwell/GoogleAuthenticator.vala +++ b/plugins/authenticator/shotwell/GoogleAuthenticator.vala @@ -23,7 +23,8 @@ namespace Publishing.Authenticator.Shotwell.Google { public override void on_page_load() { var uri = new Soup.URI(get_view().get_uri()); if (uri.scheme == REVERSE_CLIENT_ID && this.auth_code == null) { - this.error(); + var form_data = Soup.Form.decode (uri.query); + this.auth_code = form_data.lookup("code"); } if (this.auth_code != null) { -- 2.18.1 ++++++ shotwell-slideshow_Suspend_hiding_cursor.patch ++++++ >From 0cb965dd76f491971f1c3342771a8395c75fc83f Mon Sep 17 00:00:00 2001 From: Jens Georg <[email protected]> Date: Fri, 12 Oct 2018 08:35:44 +0000 Subject: [PATCH] slideshow: Suspend hiding the cursor When showing the settings dialog, suspend hiding the cursor on the slideshow to make it easier to navigate back into the settings dialog Fixes #67 (cherry picked from commit 8b3a8a8645fe1cfcba2744c730d933f71600a4c7) --- src/SlideshowPage.vala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SlideshowPage.vala b/src/SlideshowPage.vala index 18fef7f3..da1306cc 100644 --- a/src/SlideshowPage.vala +++ b/src/SlideshowPage.vala @@ -362,6 +362,7 @@ class SlideshowPage : SinglePhotoPage { bool slideshow_playing = playing; playing = false; hide_toolbar(); + suspend_cursor_hiding(); if (settings_dialog.run() == Gtk.ResponseType.OK) { // sync with the config setting so it will persist @@ -375,6 +376,7 @@ class SlideshowPage : SinglePhotoPage { } settings_dialog.destroy(); + restore_cursor_hiding(); playing = slideshow_playing; timer.start(); } -- 2.18.1 ++++++ shotwell-vala-fixes.patch ++++++ >From dec3ce3f6cb8a2be409a160aed2fea8dce555660 Mon Sep 17 00:00:00 2001 From: Jens Georg <[email protected]> Date: Mon, 29 Oct 2018 19:58:28 +0000 Subject: [PATCH] Merge branch 'wip/ricotz/vala' into 'master' Accept string.index_of_nth_char() to return long or int for new valac See merge request GNOME/shotwell!12 (cherry picked from commit 6df577e6e22c465501f451098abc077dfd7a2424) c1f5149b Accept string.index_of_nth_char() to return long or int for new valac --- src/NaturalCollate.vala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/NaturalCollate.vala b/src/NaturalCollate.vala index 4adb0273..6d38a08d 100644 --- a/src/NaturalCollate.vala +++ b/src/NaturalCollate.vala @@ -20,7 +20,7 @@ private const unichar SUPERDIGIT = ':'; private const unichar NUM_SENTINEL = 0x2; // glib uses these, so do we private const string COLLATION_SENTINEL = "\x01\x01\x01"; -private static int read_number(owned string s, ref int byte_index) { +private static int read_number(owned string s, ref long byte_index) { /* * Given a string in the form [numerals]*[everythingelse]* * returns the int value of the first block and increments index @@ -33,7 +33,7 @@ private static int read_number(owned string s, ref int byte_index) { while (s.length != 0 && s.get_char(0).isdigit()) { number = number*10; number += s.get_char(0).digit_value(); - int second_char = s.index_of_nth_char(1); + var second_char = s.index_of_nth_char(1); s = s.substring(second_char); byte_index += second_char; } @@ -56,7 +56,7 @@ public static string collate_key(owned string str) { while (!eos) { assert(str.validate()); - int position = 0; + long position = 0L; while (!(str.get_char(position).to_string() in "0123456789")) { // We only care about plain old 0123456789, aping what g_utf8_collate_key_for_filename does position++; @@ -69,7 +69,7 @@ public static string collate_key(owned string str) { str = str.substring(position); eos = (str.length == 0); - position = 0; + position = 0L; if (!eos) { // We have some numbers to handle in front of us -- 2.18.1
