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


Reply via email to