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
