Hello community,

here is the log from the commit of package libgexiv2 for openSUSE:Factory 
checked in at 2020-01-28 10:48:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgexiv2 (Old)
 and      /work/SRC/openSUSE:Factory/.libgexiv2.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libgexiv2"

Tue Jan 28 10:48:28 2020 rev:37 rq:767377 version:0.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libgexiv2/libgexiv2.changes      2019-01-26 
22:16:27.079145847 +0100
+++ /work/SRC/openSUSE:Factory/.libgexiv2.new.26092/libgexiv2.changes   
2020-01-28 10:48:34.256567235 +0100
@@ -1,0 +2,14 @@
+Mon Mar 18 02:23:45 UTC 2019 - Alexei Podvalsky <[email protected]>
+
+- Update to version 0.12.0:
+  + Include a test for glgo#GNOME/shotwell!94.
+  + Disable autoptr test when not running on GCC/Clang.
+  + Revert symbol hiding script.
+  + Improve building the vapi using meson's vala support.
+  + Add canary test for glgo#GNOME/gexiv2!27.
+  + Promote gexiv2-dump to a tool.
+  + Documentation fixes.
+  + flake8 fixes for python code.
+  + Bugs fixed: glgo#GNOME/gexiv2!27.
+
+-------------------------------------------------------------------

Old:
----
  gexiv2-0.11.0.tar.xz

New:
----
  gexiv2-0.12.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libgexiv2.spec ++++++
--- /var/tmp/diff_new_pack.4cFdg9/_old  2020-01-28 10:48:36.020569300 +0100
+++ /var/tmp/diff_new_pack.4cFdg9/_new  2020-01-28 10:48:36.024569306 +0100
@@ -21,13 +21,13 @@
 %bcond_without python2
 %bcond_without python3
 Name:           libgexiv2
-Version:        0.11.0
+Version:        0.12.0
 Release:        0
 Summary:        A GObject-based Exiv2 wrapper
 License:        GPL-2.0-or-later
 Group:          Development/Libraries/C and C++
 URL:            https://wiki.gnome.org/Projects/gexiv2
-Source0:        
https://ftp.gnome.org/pub/gnome/sources/gexiv2/0.11/%{tarname}-%{version}.tar.xz
+Source0:        
https://ftp.gnome.org/pub/gnome/sources/gexiv2/0.12/%{tarname}-%{version}.tar.xz
 Source99:       baselibs.conf
 
 BuildRequires:  %{python_module devel}

++++++ gexiv2-0.11.0.tar.xz -> gexiv2-0.12.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/GExiv2.py new/gexiv2-0.12.0/GExiv2.py
--- old/gexiv2-0.11.0/GExiv2.py 2019-01-08 20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/GExiv2.py 2019-03-11 21:46:27.000000000 +0100
@@ -21,7 +21,6 @@
 from datetime import datetime
 from fractions import Fraction
 
-from gi.repository import GObject
 from ..overrides import override
 from ..module import get_introspection_module
 
@@ -105,8 +104,8 @@
     
     __setitem__ = GExiv2.Metadata.set_tag_string
 
+
 __all__.append('Metadata')
 
 if not GExiv2.initialize():
     raise RuntimeError("GExiv2 couldn't be initialized")
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/NEWS new/gexiv2-0.12.0/NEWS
--- old/gexiv2-0.11.0/NEWS      2019-01-08 20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/NEWS      2019-03-11 21:46:27.000000000 +0100
@@ -1,3 +1,22 @@
+gexiv2 0.12.0 - 11 Mar 2019
+
+ * Include a test for https://gitlab.gnome.org/GNOME/shotwell/issues/94
+ * Disable autoptr test when not running on GCC/Clang
+ * Revert symbol hiding script
+ * Improve building the vapi using meson's vala support
+ * Add canary test for https://gitlab.gnome.org/GNOME/gexiv2/issues/27
+ * Promote gexiv2-dump to a tool
+ * Documentation fixes
+ * flake8 fixes for python code
+
+Bugs fixed in this release:
+ - https://gitlab.gnome.org/GNOME/gexiv2/issues/27
+
+All contributors to this release:
+ - Jens Georg <[email protected]>
+ - Chris Mayo <[email protected]>
+ - Marty E. Plummer <[email protected]>
+
 gexiv2 0.11.0 - 8 Jan 2019
 
   * Remove autotools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gexiv2-0.11.0/build-aux/org.gnome.GExiv2-oldstable.json 
new/gexiv2-0.12.0/build-aux/org.gnome.GExiv2-oldstable.json
--- old/gexiv2-0.11.0/build-aux/org.gnome.GExiv2-oldstable.json 1970-01-01 
01:00:00.000000000 +0100
+++ new/gexiv2-0.12.0/build-aux/org.gnome.GExiv2-oldstable.json 2019-03-11 
21:46:27.000000000 +0100
@@ -0,0 +1,67 @@
+{
+    "app-id" : "org.gnome.GExiv2",
+    "runtime" : "org.gnome.Platform",
+    "runtime-version" : "3.30",
+    "sdk" : "org.gnome.Sdk",
+    "command" : "gexiv2",
+    "tags" : [
+        "nightly"
+    ],
+    "desktop-file-name-prefix" : "(Nightly) ",
+    "cleanup" : [
+        "/include",
+        "/lib/pkconfig",
+        "/share/pkgconfig",
+        "/share/gtk-doc",
+        "/share/man",
+        "/share/vala",
+        "/lib/girepository",
+        "*.la",
+        "*.a"
+    ],
+    "modules" : [
+        {
+            "name" : "exiv2",
+            "cleanup" : [
+                "/bin"
+            ],
+            "buildsystem" : "cmake-ninja",
+            "config-opts" : [
+                "-DCMAKE_INSTALL_LIBDIR=lib",
+                "-DEXIV2_BUILD_EXIV2_COMMAND=OFF",
+                "-DEXIV2_BUILD_SAMPLES=OFF"
+            ],
+            "sources" : [
+                {
+                    "type" : "git",
+                    "url" : "https://github.com/Exiv2/exiv2/";,
+                    "branch" : "0.26"
+                }
+            ]
+        },
+        {
+            "name" : "gexiv2",
+            "buildsystem" : "meson",
+            "cleanup" : [
+                "/lib/girepository-1.0",
+                "/share/gir-1.0"
+            ],
+            "config-opts" : [
+                "-Dpython2-girdir=no",
+                "-Dpython3-girdir=no"
+            ],
+            "build-options" : {
+                "env" : {
+                    "PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR" : 
"/app/share/gir-1.0",
+                    "PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR" : 
"/app/lib/girepository-1.0"
+                }
+            },
+            "sources" : [
+                {
+                    "type" : "git",
+                    "url" : "https://gitlab.gnome.org/GNOME/gexiv2.git/";
+                }
+            ]
+        }
+    ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/build-aux/org.gnome.GExiv2-stable.json 
new/gexiv2-0.12.0/build-aux/org.gnome.GExiv2-stable.json
--- old/gexiv2-0.11.0/build-aux/org.gnome.GExiv2-stable.json    1970-01-01 
01:00:00.000000000 +0100
+++ new/gexiv2-0.12.0/build-aux/org.gnome.GExiv2-stable.json    2019-03-11 
21:46:27.000000000 +0100
@@ -0,0 +1,67 @@
+{
+    "app-id" : "org.gnome.GExiv2",
+    "runtime" : "org.gnome.Platform",
+    "runtime-version" : "3.30",
+    "sdk" : "org.gnome.Sdk",
+    "command" : "gexiv2",
+    "tags" : [
+        "nightly"
+    ],
+    "desktop-file-name-prefix" : "(Nightly) ",
+    "cleanup" : [
+        "/include",
+        "/lib/pkconfig",
+        "/share/pkgconfig",
+        "/share/gtk-doc",
+        "/share/man",
+        "/share/vala",
+        "/lib/girepository",
+        "*.la",
+        "*.a"
+    ],
+    "modules" : [
+        {
+            "name" : "exiv2",
+            "cleanup" : [
+                "/bin"
+            ],
+            "buildsystem" : "cmake-ninja",
+            "config-opts" : [
+                "-DCMAKE_INSTALL_LIBDIR=lib",
+                "-DEXIV2_BUILD_EXIV2_COMMAND=OFF",
+                "-DEXIV2_BUILD_SAMPLES=OFF"
+            ],
+            "sources" : [
+                {
+                    "type" : "git",
+                    "url" : "https://github.com/Exiv2/exiv2/";,
+                    "branch" : "0.27-maintenance"
+                }
+            ]
+        },
+        {
+            "name" : "gexiv2",
+            "buildsystem" : "meson",
+            "cleanup" : [
+                "/lib/girepository-1.0",
+                "/share/gir-1.0"
+            ],
+            "config-opts" : [
+                "-Dpython2-girdir=no",
+                "-Dpython3-girdir=no"
+            ],
+            "build-options" : {
+                "env" : {
+                    "PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR" : 
"/app/share/gir-1.0",
+                    "PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR" : 
"/app/lib/girepository-1.0"
+                }
+            },
+            "sources" : [
+                {
+                    "type" : "git",
+                    "url" : "https://gitlab.gnome.org/GNOME/gexiv2.git/";
+                }
+            ]
+        }
+    ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/build-aux/org.gnome.GExiv2.json 
new/gexiv2-0.12.0/build-aux/org.gnome.GExiv2.json
--- old/gexiv2-0.11.0/build-aux/org.gnome.GExiv2.json   2019-01-08 
20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/build-aux/org.gnome.GExiv2.json   2019-03-11 
21:46:27.000000000 +0100
@@ -25,7 +25,7 @@
             "cleanup" : [
                 "/bin"
             ],
-            "buildsystem" : "cmake",
+            "buildsystem" : "cmake-ninja",
             "config-opts" : [
                 "-DCMAKE_INSTALL_LIBDIR=lib",
                 "-DEXIV2_BUILD_EXIV2_COMMAND=OFF",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/docs/reference/gexiv2-docs.xml 
new/gexiv2-0.12.0/docs/reference/gexiv2-docs.xml
--- old/gexiv2-0.11.0/docs/reference/gexiv2-docs.xml    2019-01-08 
20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/docs/reference/gexiv2-docs.xml    2019-03-11 
21:46:27.000000000 +0100
@@ -11,8 +11,8 @@
     <title>&package_name; Reference Manual</title>
     <releaseinfo>
       for &package_string;.
-      The latest version of this documentation can be found on-line at
-      <ulink role="online-location" 
url="http://developer.gnome.org/&package_name;/unstable/";>http://developer.gnome.org/&package_name;/unstable</ulink>.
+      The latest version of this documentation can be found online at
+      <ulink role="online-location" 
url="https://gnome.pages.gitlab.gnome.org/&package_name;/docs/";>https://gnome.pages.gitlab.gnome.org/&package_name;/docs</ulink>.
     </releaseinfo>
   </bookinfo>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/docs/reference/gexiv2-sections.txt 
new/gexiv2-0.12.0/docs/reference/gexiv2-sections.txt
--- old/gexiv2-0.11.0/docs/reference/gexiv2-sections.txt        2019-01-08 
20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/docs/reference/gexiv2-sections.txt        2019-03-11 
21:46:27.000000000 +0100
@@ -22,6 +22,7 @@
 gexiv2_metadata_open_path
 gexiv2_metadata_open_buf
 gexiv2_metadata_open_stream
+gexiv2_metadata_from_stream
 gexiv2_metadata_from_app1_segment
 gexiv2_metadata_save_external
 gexiv2_metadata_save_file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/docs/reference/xml/meson.build 
new/gexiv2-0.12.0/docs/reference/xml/meson.build
--- old/gexiv2-0.11.0/docs/reference/xml/meson.build    2019-01-08 
20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/docs/reference/xml/meson.build    2019-03-11 
21:46:27.000000000 +0100
@@ -2,7 +2,7 @@
 ent_conf.set('PACKAGE', 'GExiv2')
 ent_conf.set('PACKAGE_BUGREPORT', 
'https://gitlab.gnome.org/GNOME/gexiv2/issues/new')
 ent_conf.set('PACKAGE_NAME', 'gexiv2')
-ent_conf.set('PACKAGE_STRING', 'GExiv2')
+ent_conf.set('PACKAGE_STRING', 'GExiv2 ' + meson.project_version())
 ent_conf.set('PACKAGE_TARNAME', 'gexiv2-' + meson.project_version())
 ent_conf.set('PACKAGE_URL', 'https://wiki.gnome.org/Projects/gexiv2')
 ent_conf.set('PACKAGE_VERSION', meson.project_version())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/gexiv2/gexiv2-metadata.h 
new/gexiv2-0.12.0/gexiv2/gexiv2-metadata.h
--- old/gexiv2-0.11.0/gexiv2/gexiv2-metadata.h  2019-01-08 20:28:07.000000000 
+0100
+++ new/gexiv2-0.12.0/gexiv2/gexiv2-metadata.h  2019-03-11 21:46:27.000000000 
+0100
@@ -260,6 +260,8 @@
  * @error: (allow-none): A return location for a #GError or %NULL
  *
  * Read meta-data from a GIO stream
+ *
+ * Returns: Boolean success indicator
  */
 gboolean               gexiv2_metadata_from_stream                     
(GExiv2Metadata *self, GInputStream* stream, GError **error);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/gexiv2/gexiv2.map 
new/gexiv2-0.12.0/gexiv2/gexiv2.map
--- old/gexiv2-0.11.0/gexiv2/gexiv2.map 2019-01-08 20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/gexiv2/gexiv2.map 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-{
-  global:
-    gexiv2_*;
-  local:
-    *;
-};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/gexiv2/meson.build 
new/gexiv2-0.12.0/gexiv2/meson.build
--- old/gexiv2-0.11.0/gexiv2/meson.build        2019-01-08 20:28:07.000000000 
+0100
+++ new/gexiv2-0.12.0/gexiv2/meson.build        2019-03-11 21:46:27.000000000 
+0100
@@ -33,14 +33,6 @@
 
 install_headers(gexiv2_headers, subdir : 'gexiv2')
 
-# Static map file
-mapfile = 'gexiv2.map'
-if host_machine.system() == 'darwin'
-    vflag = ''
-else
-    vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), 
mapfile)
-endif
-
 gexiv2 = library('gexiv2',
                  ['gexiv2-metadata.cpp',
                   'gexiv2-metadata-exif.cpp',
@@ -60,7 +52,6 @@
                  gexiv2_headers +
                  [version_header] +
                  enum_sources,
-                 link_args : vflag,
                  include_directories : include_directories('..'),
                  version: '2.0.0',
                  dependencies : [gobject, exiv2, gio],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/meson.build 
new/gexiv2-0.12.0/meson.build
--- old/gexiv2-0.11.0/meson.build       2019-01-08 20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/meson.build       2019-03-11 21:46:27.000000000 +0100
@@ -1,7 +1,7 @@
 project(
     'gexiv2',
     ['c', 'cpp'],
-    version : '0.11.0',
+    version : '0.12.0',
     default_options : [
         'cpp_std=c++11'
     ]
@@ -15,11 +15,9 @@
 gio = dependency('gio-2.0', version : '>= 2.32.0')
 
 gir = find_program('g-ir-scanner', required: false)
-vapigen = find_program('vapigen', required: false)
-vala = find_program('valac', required: false)
 
 introspection_available = gir.found() and get_option('introspection')
-vapi_available = introspection_available and vapigen.found() and 
get_option('vapi')
+vapi_available = introspection_available and add_languages('vala', required: 
get_option('vapi')) and get_option('vapi')
 
 subdir('gexiv2')
 
@@ -64,3 +62,7 @@
 endif
 
 subdir('test')
+
+if get_option('tools')
+  subdir('tools')
+endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/meson_options.txt 
new/gexiv2-0.12.0/meson_options.txt
--- old/gexiv2-0.11.0/meson_options.txt 2019-01-08 20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/meson_options.txt 2019-03-11 21:46:27.000000000 +0100
@@ -1,5 +1,6 @@
 option('gtk_doc', type: 'boolean', value: false, description: 'Enable or 
disable generating the API reference (depends on GTK-Doc)')
 option('introspection', type: 'boolean', value : true, description: 'Enable or 
disable GObject Introspection')
 option('vapi', type: 'boolean', value: true, description: 'Enable or disable 
generation of vala vapi file')
+option('tools', type: 'boolean', value: true, description: 'Enable or disable 
building the commandline tools')
 option('python2_girdir', type: 'string', value : 'auto', description : 
'Installation dir for PyGObject2 overrides (default = auto, no disables 
python2)')
 option('python3_girdir', type: 'string', value : 'auto', description : 
'Installation dir for PyGObject3 overrides (default = auto, no disables 
python3)')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/test/gexiv2-dump.vala 
new/gexiv2-0.12.0/test/gexiv2-dump.vala
--- old/gexiv2-0.11.0/test/gexiv2-dump.vala     2019-01-08 20:28:07.000000000 
+0100
+++ new/gexiv2-0.12.0/test/gexiv2-dump.vala     1970-01-01 01:00:00.000000000 
+0100
@@ -1,49 +0,0 @@
-/*
- * gexiv2-dump.vala
- *
- * Author(s)
- *  Jim Nelson <[email protected]>
- *
- * This is free software. See COPYING for details.
- */
-
-int main(string[] args) {
-    if (args.length < 2 || ("--help" in args) || ("-h" in args)) {
-        usage();
-        
-        return 1;
-    }
-    
-    // skip args[0]
-    foreach (string filename in args[1:args.length]) {
-        try {
-            GExiv2.Metadata metadata = new GExiv2.Metadata();
-//            metadata.open_path(filename);
-            var file = File.new_for_path (filename);
-            metadata.from_stream (file.read ());
-            
-            dump_tags(metadata, metadata.get_exif_tags());
-            dump_tags(metadata, metadata.get_iptc_tags());
-            dump_tags(metadata, metadata.get_xmp_tags());
-        } catch (Error err) {
-            stderr.printf("Unable to dump metadata for %s: %s\n", filename, 
err.message);
-        }
-    }
-    
-    return 0;
-}
-
-void usage() {
-    stdout.printf("usage: gexiv2-dump FILE...\n\n");
-}
-
-void dump_tags(GExiv2.Metadata metadata, string[] tags) throws Error {
-    foreach (string tag in tags) {
-        stdout.printf("%s%*s%s\n",
-            tag,
-            (64 - tag.length).clamp(1, 64), "",
-            metadata.get_tag_interpreted_string(tag)
-        );
-    }
-}
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/test/gexiv2-regression.c 
new/gexiv2-0.12.0/test/gexiv2-regression.c
--- old/gexiv2-0.11.0/test/gexiv2-regression.c  2019-01-08 20:28:07.000000000 
+0100
+++ new/gexiv2-0.12.0/test/gexiv2-regression.c  2019-03-11 21:46:27.000000000 
+0100
@@ -14,6 +14,22 @@
 
 #include <string.h>
 
+const char LOREM_IPSUM[] =
+"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy 
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam 
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita 
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem 
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod 
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At 
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd 
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum 
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor 
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero 
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no 
sea takimata sanctus est Lorem ipsum dolor sit amet." \
+"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie 
consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan 
et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis 
dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer 
adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore 
magna aliquam erat volutpat." \
+"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit 
lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure 
dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore 
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui 
blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla 
facilisi." \
+"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet 
doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut 
laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis 
nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea 
commodo consequat." \
+"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie 
consequat, vel illum dolore eu feugiat nulla facilisis." \
+"At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd 
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum 
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor 
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero 
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no 
sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit 
amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores 
duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet 
clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero 
voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, 
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore 
et dolore magna aliquyam erat." \
+"Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore 
et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et 
justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata 
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur 
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore 
magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo 
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est 
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing 
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna 
aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores 
et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus." \
+"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy 
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam 
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita 
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem 
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod 
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At 
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd 
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum 
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor 
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero 
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no 
sea takimata sanctus est Lorem ipsum dolor sit amet." \
+" Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse 
molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et 
accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit 
augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut 
laoreet dolore magna aliquam erat volutpat." \
+"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit 
lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure 
dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore 
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui 
blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla 
facilisi." \
+"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet 
doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut 
laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis 
nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea 
commodo consequat." \
+"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie 
consequat, vel illum dolore eu feugiat nulla facilisis." \
+"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit 
lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure 
dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore 
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui 
blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla 
facilisi." \
+"===== EOM =====";
+
 /* Regression test for https://gitlab.gnome.org/GNOME/gexiv2/issues/31 */
 static void test_ggo_31(void)
 {
@@ -180,6 +196,7 @@
 
 static void test_bgo_790925(void)
 {
+#if defined(__GNUC__) /* This should include clang */
     g_autoptr(GExiv2Metadata) meta = NULL;
     g_autoptr(GExiv2PreviewImage) image = NULL;
     GExiv2PreviewProperties **props = NULL;
@@ -198,6 +215,59 @@
 
     image = gexiv2_metadata_get_preview_image (meta, *props);
     g_assert_nonnull(image);
+#endif
+}
+
+static void test_ggo_xx(void)
+{
+    GExiv2Metadata *meta = NULL;
+    gboolean result = FALSE;
+    GError *error = NULL;
+    char *tmp_file = NULL;
+    char *comment = NULL;
+    GFile *src = NULL, *dest = NULL;
+
+    meta = gexiv2_metadata_new ();
+    g_assert_nonnull (meta);
+
+    result = gexiv2_metadata_open_path (meta, SAMPLE_PATH "/no-metadata.jpg", 
&error);
+    g_assert_no_error(error);
+    g_assert_true(result);
+
+    gexiv2_metadata_set_comment (meta, LOREM_IPSUM);
+    tmp_file = g_strdup ("lorem-ipsum.jpg"); //g_build_filename (g_get_tmp_dir 
(), "lorem-ipsum.jpg", NULL);
+
+    src = g_file_new_for_path (SAMPLE_PATH "/no-metadata.jpg");
+    dest = g_file_new_for_path (tmp_file);
+
+    result = g_file_copy (src, dest,
+                          G_FILE_COPY_OVERWRITE,
+                          NULL, NULL, NULL,
+                          &error);
+    g_assert_no_error(error);
+    g_assert_true(result);
+
+    result = gexiv2_metadata_save_file (meta, tmp_file, &error);
+    g_assert_no_error(error);
+    g_assert_true(result);
+
+    result = gexiv2_metadata_open_path (meta, tmp_file, &error);
+    g_assert_no_error(error);
+    g_assert_true(result);
+
+    comment = gexiv2_metadata_get_comment (meta);
+    g_assert_nonnull (comment);
+    g_assert_cmpstr (LOREM_IPSUM, ==, comment);
+
+    g_object_unref (src);
+    g_object_unref (dest);
+    g_free (tmp_file);
+    g_free (comment);
+}
+
+static void test_ggo_27(void)
+{
+    gexiv2_metadata_register_xmp_namespace ("http://www.gnome.org/xmp";, 
"gnome");
 }
 
 int main(int argc, char *argv[static argc + 1])
@@ -210,6 +280,8 @@
     g_test_add_func("/bugs/gnome/gitlab/31", test_ggo_31);
     g_test_add_func("/bugs/gnome/gitlab/32", test_ggo_32);
     g_test_add_func("/bugs/gnome/gitlab/33", test_ggo_33);
+    g_test_add_func("/bugs/gnome/gitlab/27", test_ggo_27);
+    g_test_add_func("/bugs/gnome/gitlab/xx", test_ggo_xx);
 
     return g_test_run();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/test/meson.build 
new/gexiv2-0.12.0/test/meson.build
--- old/gexiv2-0.11.0/test/meson.build  2019-01-08 20:28:07.000000000 +0100
+++ new/gexiv2-0.12.0/test/meson.build  2019-03-11 21:46:27.000000000 +0100
@@ -9,25 +9,13 @@
             ]
 
 regression_test = executable('gexiv2-regression', 'gexiv2-regression.c',
-                             dependencies : gobject,
+                             dependencies : [gobject, gio],
                              include_directories : include_directories('..'),
                              c_args : 
'-DSAMPLE_PATH="@0@"'.format(test_sample_path),
                              link_with : gexiv2)
 
 test('regression', regression_test, env : test_env)
 
-if vapi_available
-  valac = find_program('valac')
-  if valac.found()
-    add_languages('vala')
-    executable('gexiv2-dump',
-               'gexiv2-dump.vala',
-               include_directories : include_directories('..'),
-               dependencies : [gobject, vapi, gio],
-               link_with : gexiv2)
-  endif
-endif
-
 if python2_available
   python2_test_conf = configuration_data()
   python2_test_conf.set('PYTHON2_PATH', python2.path())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/tools/gexiv2-dump.vala 
new/gexiv2-0.12.0/tools/gexiv2-dump.vala
--- old/gexiv2-0.11.0/tools/gexiv2-dump.vala    1970-01-01 01:00:00.000000000 
+0100
+++ new/gexiv2-0.12.0/tools/gexiv2-dump.vala    2019-03-11 21:46:27.000000000 
+0100
@@ -0,0 +1,47 @@
+/*
+ * gexiv2-dump.vala
+ *
+ * Author(s)
+ *  Jim Nelson <[email protected]>
+ *
+ * This is free software. See COPYING for details.
+ */
+
+int main(string[] args) {
+    if (args.length < 2 || ("--help" in args) || ("-h" in args)) {
+        usage();
+        
+        return 1;
+    }
+    
+    // skip args[0]
+    foreach (string filename in args[1:args.length]) {
+        try {
+            GExiv2.Metadata metadata = new GExiv2.Metadata();
+            var file = File.new_for_commandline_arg (filename);
+            metadata.from_stream (file.read ());
+            
+            dump_tags(metadata, metadata.get_exif_tags());
+            dump_tags(metadata, metadata.get_iptc_tags());
+            dump_tags(metadata, metadata.get_xmp_tags());
+        } catch (Error err) {
+            stderr.printf("Unable to dump metadata for %s: %s\n", filename, 
err.message);
+        }
+    }
+    
+    return 0;
+}
+
+void usage() {
+    print("usage: gexiv2-dump FILE...\n\n");
+}
+
+void dump_tags(GExiv2.Metadata metadata, string[] tags) throws Error {
+    foreach (string tag in tags) {
+        print("%-64s%s\n",
+            tag,
+            metadata.get_tag_interpreted_string(tag)
+        );
+    }
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gexiv2-0.11.0/tools/meson.build 
new/gexiv2-0.12.0/tools/meson.build
--- old/gexiv2-0.11.0/tools/meson.build 1970-01-01 01:00:00.000000000 +0100
+++ new/gexiv2-0.12.0/tools/meson.build 2019-03-11 21:46:27.000000000 +0100
@@ -0,0 +1,7 @@
+if vapi_available
+  executable('gexiv2-dump',
+             'gexiv2-dump.vala',
+             include_directories : include_directories('..'),
+             dependencies : [gobject, vapi, gio],
+             link_with : gexiv2)
+endif


Reply via email to