Hello community,
here is the log from the commit of package python-exiv2 for openSUSE:Factory checked in at 2019-07-04 15:43:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-exiv2 (Old)
and /work/SRC/openSUSE:Factory/.python-exiv2.new.4615 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-exiv2"
Thu Jul 4 15:43:00 2019 rev:5 rq:713077 version:0.7.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-exiv2/python-exiv2.changes 2019-04-23 14:35:23.725444879 +0200
+++ /work/SRC/openSUSE:Factory/.python-exiv2.new.4615/python-exiv2.changes 2019-07-04 15:43:01.598086256 +0200
@@ -1,0 +2,6 @@
+Tue Jul 2 14:47:21 UTC 2019 - Tomáš Chvátal
+
+- Update to 0.7.1:
+ * Various fixes to work with new exiv releases
+
+-------------------------------------------------------------------
Old:
----
py3exiv2-0.6.1.tar.gz
New:
----
py3exiv2-0.7.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-exiv2.spec ++++++
--- /var/tmp/diff_new_pack.d6CFe7/_old 2019-07-04 15:43:02.582087794 +0200
+++ /var/tmp/diff_new_pack.d6CFe7/_new 2019-07-04 15:43:02.582087794 +0200
@@ -20,7 +20,7 @@
# This is a python3 only package
%define skip_python2 1
Name: python-exiv2
-Version: 0.6.1
+Version: 0.7.1
Release: 0
Summary: Python3 bindings for the exiv2 library
License: GPL-3.0-only
++++++ py3exiv2-0.6.1.tar.gz -> py3exiv2-0.7.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/DESCRIPTION.rst new/py3exiv2-0.7.1/DESCRIPTION.rst
--- old/py3exiv2-0.6.1/DESCRIPTION.rst 2019-02-06 15:38:28.000000000 +0100
+++ new/py3exiv2-0.7.1/DESCRIPTION.rst 2015-02-04 14:56:25.000000000 +0100
@@ -9,8 +9,6 @@
python3-exiv2 is distributed under the GPL version 3 license.
-[![Downloads](https://pepy.tech/badge/py3exiv2)](https://pepy.tech/project/py3exiv2)
-
The main content of the code was initially written by Olivier Tilloy for Python 2 under the name pyexiv2.
py3exiv2 depends on the following libraries:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/PKG-INFO new/py3exiv2-0.7.1/PKG-INFO
--- old/py3exiv2-0.6.1/PKG-INFO 2019-02-06 20:33:41.000000000 +0100
+++ new/py3exiv2-0.7.1/PKG-INFO 2019-05-29 12:22:12.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: py3exiv2
-Version: 0.6.1
+Version: 0.7.1
Summary: A Python3 binding to the library exiv2
Home-page: https://launchpad.net/py3exiv2
Author: Vincent Vande Vyvre
@@ -17,8 +17,6 @@
python3-exiv2 is distributed under the GPL version 3 license.
- [![Downloads](https://pepy.tech/badge/py3exiv2)](https://pepy.tech/project/py3exiv2)
-
The main content of the code was initially written by Olivier Tilloy for Python 2 under the name pyexiv2.
py3exiv2 depends on the following libraries:
@@ -46,3 +44,4 @@
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/README new/py3exiv2-0.7.1/README
--- old/py3exiv2-0.6.1/README 2018-05-15 11:11:47.000000000 +0200
+++ new/py3exiv2-0.7.1/README 2019-04-13 10:44:33.000000000 +0200
@@ -1,5 +1,5 @@
py3exiv2
-********
+*******
Welcome to py3exiv2, a python 3 binding to exiv2 (http://exiv2.org/), the C++
library for manipulation of EXIF, IPTC and XMP image metadata.
@@ -16,13 +16,17 @@
py3exiv2 depends on the following libraries:
- * python (≥ 3.2)
+ * python (≥ 3.3)
* boost.python3 (http://www.boost.org/libs/python/doc/index.html)
* exiv2 (http://www.exiv2.org/)
+Some examples in src/ use PyGTK (http://www.pygtk.org/) and PyQt
+(http://www.riverbankcomputing.co.uk/software/pyqt/) to display image previews,
+those are optional dependencies.
+
This is a typical list of build dependencies for a Debian/Ubuntu system:
- * python-all-dev (≥ 3.2)
+ * python-all-dev (≥ 3.3)
* libexiv2-dev (≥ 0.20)
* libboost-python-dev (≥ 1.48)
* g++
@@ -72,7 +76,7 @@
=======
Copyright (C) 2006-2011 Olivier Tilloy
-Copyright (C) 2015-2018 Vincent Vande Vyvre
+Copyright (C) 2015-2019 Vincent Vande Vyvre
py3exiv2 is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License version 3 as published by the Free
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/setup.py new/py3exiv2-0.7.1/setup.py
--- old/py3exiv2-0.6.1/setup.py 2019-02-06 20:31:14.000000000 +0100
+++ new/py3exiv2-0.7.1/setup.py 2019-05-28 10:13:30.000000000 +0200
@@ -1,10 +1,14 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
+# Replacement setup.py for py3exiv2, that allows building on OSX
+# https://gist.github.com/ndevenish/6410cab393bd8dec1b016061ddb5573b
+
import sys
import os
import glob
import subprocess
+import platform
from setuptools import setup, find_packages, Extension
@@ -17,33 +21,28 @@
with open(path.join(here, 'DESCRIPTION.rst'), encoding='utf-8') as f:
long_description = f.read()
-def get_libboost_name():
- """Returns the name of the lib libboost_python 3
-
- """
- # libboost libs are provided without .pc files, so we can't use pkg-config
- places = ('/usr/lib/', '/usr/local/lib/', '/usr/')
+def get_libboost_osx():
+ places = ["/usr/local/lib/"]
for place in places:
- cmd = ['find', place, '-name', 'libboost_python*']
- rep = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
- if not rep:
- continue
-
- # rep is type bytes
- libs = rep.decode(sys.getfilesystemencoding()).split('\n')
- for l in libs:
- _, l = os.path.split(l)
- if '.so' in l:
- l = l.split('.so')[0]
- # Assume there's no longer python2.3 in the wild
- if '3' in l[-2:]:
- return l.replace('libboost', 'boost')
+ lib = place + "libboost_python3*.dylib"
+ files = glob.glob(lib)
+ for f in files:
+ if not "-mt" in f:
+ return os.path.basename(f).replace("lib", "").split(".")[0]
+
+ print("NOT FOUND", files)
+ sys.exit()
+
+if platform.system() == "Darwin":
+ boostlib = get_libboost_osx()
+ print(boostlib)
-libboost = get_libboost_name()
+else:
+ boostlib = 'boost_python3'
setup(
name='py3exiv2',
- version='0.6.1',
+ version='0.7.1',
description='A Python3 binding to the library exiv2',
long_description=long_description,
url='https://launchpad.net/py3exiv2',
@@ -63,18 +62,17 @@
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8'
],
keywords='exiv2 pyexiv2 EXIF IPTC XMP image metadata',
packages = find_packages('src'),
package_dir = {'': 'src'},
package_data={'':['src/*.cpp', 'src/*.hpp',]},
- #cmdclass={'install': install}
+ #cmdclass={'install': install},
ext_modules=[
Extension('libexiv2python',
['src/exiv2wrapper.cpp', 'src/exiv2wrapper_python.cpp'],
- include_dirs=[],
- library_dirs=[],
- libraries=[libboost, 'exiv2'],
+ libraries=[boostlib, 'exiv2'],
extra_compile_args=['-g']
)
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/exiv2wrapper.cpp new/py3exiv2-0.7.1/src/exiv2wrapper.cpp
--- old/py3exiv2-0.6.1/src/exiv2wrapper.cpp 2019-02-05 09:28:36.000000000 +0100
+++ new/py3exiv2-0.7.1/src/exiv2wrapper.cpp 2019-04-13 09:28:07.000000000 +0200
@@ -1835,6 +1835,42 @@
}
#endif
+bool initialiseXmpParser()
+{
+ if (!Exiv2::XmpParser::initialize())
+ return false;
+
+ std::string prefix("py3exiv2");
+ std::string name("www.py3exiv2.tuxfamily.org/");
+
+ try
+ {
+ const std::string& ns = Exiv2::XmpProperties::ns(prefix);
+ }
+
+ catch (Exiv2::Error& error)
+ {
+ // No namespace exists with the requested prefix, it is safe to
+ // register a new one.
+ Exiv2::XmpProperties::registerNs(name, prefix);
+ }
+
+ return true;
+}
+
+bool closeXmpParser()
+{
+ std::string name("www.py3exiv2.tuxfamily.org/");
+ const std::string& prefix = Exiv2::XmpProperties::prefix(name);
+ if (prefix != "")
+ {
+ Exiv2::XmpProperties::unregisterNs(name);
+ }
+
+ Exiv2::XmpParser::terminate();
+
+ return true;
+}
void registerXmpNs(const std::string& name, const std::string& prefix)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/exiv2wrapper.hpp new/py3exiv2-0.7.1/src/exiv2wrapper.hpp
--- old/py3exiv2-0.6.1/src/exiv2wrapper.hpp 2019-02-06 20:30:31.000000000 +0100
+++ new/py3exiv2-0.7.1/src/exiv2wrapper.hpp 2019-05-29 12:11:36.000000000 +0200
@@ -29,8 +29,7 @@
#include <string>
-#include "exiv2/image.hpp"
-#include "exiv2/preview.hpp"
+#include "exiv2/exiv2.hpp"
#include "boost/python.hpp"
@@ -285,6 +284,8 @@
// Functions to manipulate custom XMP namespaces
+bool initialiseXmpParser();
+bool closeXmpParser();
void registerXmpNs(const std::string& name, const std::string& prefix);
void unregisterXmpNs(const std::string& name);
void unregisterAllXmpNs();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/exiv2wrapper_python.cpp new/py3exiv2-0.7.1/src/exiv2wrapper_python.cpp
--- old/py3exiv2-0.6.1/src/exiv2wrapper_python.cpp 2019-02-05 09:41:52.000000000 +0100
+++ new/py3exiv2-0.7.1/src/exiv2wrapper_python.cpp 2019-05-28 10:09:33.000000000 +0200
@@ -24,6 +24,8 @@
*/
// *****************************************************************************
+#include<iostream>
+
#include "exiv2wrapper.hpp"
#include "exiv2/exv_conf.h"
@@ -157,6 +159,8 @@
.def("_getIptcCharset", &Image::getIptcCharset)
;
+ def("_initialiseXmpParser", initialiseXmpParser);
+ def("_closeXmpParser", closeXmpParser);
def("_registerXmpNs", registerXmpNs, args("name", "prefix"));
def("_unregisterXmpNs", unregisterXmpNs, args("name"));
def("_unregisterAllXmpNs", unregisterAllXmpNs);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/py3exiv2.egg-info/PKG-INFO new/py3exiv2-0.7.1/src/py3exiv2.egg-info/PKG-INFO
--- old/py3exiv2-0.6.1/src/py3exiv2.egg-info/PKG-INFO 2019-02-06 20:33:41.000000000 +0100
+++ new/py3exiv2-0.7.1/src/py3exiv2.egg-info/PKG-INFO 2019-05-29 12:22:11.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: py3exiv2
-Version: 0.6.1
+Version: 0.7.1
Summary: A Python3 binding to the library exiv2
Home-page: https://launchpad.net/py3exiv2
Author: Vincent Vande Vyvre
@@ -17,8 +17,6 @@
python3-exiv2 is distributed under the GPL version 3 license.
- [![Downloads](https://pepy.tech/badge/py3exiv2)](https://pepy.tech/project/py3exiv2)
-
The main content of the code was initially written by Olivier Tilloy for Python 2 under the name pyexiv2.
py3exiv2 depends on the following libraries:
@@ -46,3 +44,4 @@
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/py3exiv2.egg-info/SOURCES.txt new/py3exiv2-0.7.1/src/py3exiv2.egg-info/SOURCES.txt
--- old/py3exiv2-0.6.1/src/py3exiv2.egg-info/SOURCES.txt 2019-02-06 20:33:41.000000000 +0100
+++ new/py3exiv2-0.7.1/src/py3exiv2.egg-info/SOURCES.txt 2019-05-29 12:22:11.000000000 +0200
@@ -1,7 +1,6 @@
DESCRIPTION.rst
MANIFEST.in
README
-setup.cfg
setup.py
src/exiv2wrapper.cpp
src/exiv2wrapper.hpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/pyexiv2/__init__.py new/py3exiv2-0.7.1/src/pyexiv2/__init__.py
--- old/py3exiv2-0.6.1/src/pyexiv2/__init__.py 2018-07-09 11:16:56.000000000 +0200
+++ new/py3exiv2-0.7.1/src/pyexiv2/__init__.py 2019-05-28 10:17:32.000000000 +0200
@@ -3,7 +3,7 @@
# ******************************************************************************
#
# Copyright (C) 2006-2011 Olivier Tilloy
-# Copyright (C) 2015-2018 Vincent Vande Vyvre
+# Copyright (C) 2015-2019 Vincent Vande Vyvre
#
# This file is part of the py3exiv2 distribution.
#
@@ -75,7 +75,7 @@
#: A tuple containing the three components of the version number: major, minor, micro.
-version_info = (0, 4, 0)
+version_info = (0, 7, 1)
#: The version of the module as a string (major.minor.micro).
__version__ = _make_version(version_info)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/pyexiv2/exif.py new/py3exiv2-0.7.1/src/pyexiv2/exif.py
--- old/py3exiv2-0.6.1/src/pyexiv2/exif.py 2018-02-02 14:19:27.000000000 +0100
+++ new/py3exiv2-0.7.1/src/pyexiv2/exif.py 2019-01-30 08:40:36.000000000 +0100
@@ -3,7 +3,7 @@
# ******************************************************************************
#
# Copyright (C) 2006-2011 Olivier Tilloy
-# Copyright (C) 2015-2018 Vincent Vande Vyvre
+# Copyright (C) 2015-2019 Vincent Vande Vyvre
#
# This file is part of the py3exiv2 distribution.
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/pyexiv2/iptc.py new/py3exiv2-0.7.1/src/pyexiv2/iptc.py
--- old/py3exiv2-0.6.1/src/pyexiv2/iptc.py 2018-02-02 14:29:01.000000000 +0100
+++ new/py3exiv2-0.7.1/src/pyexiv2/iptc.py 2019-01-30 08:40:55.000000000 +0100
@@ -3,7 +3,7 @@
# ******************************************************************************
#
# Copyright (C) 2006-2011 Olivier Tilloy
-# Copyright (C) 2015-2018 Vincent Vande Vyvre
+# Copyright (C) 2015-2019 Vincent Vande Vyvre
#
# This file is part of the py3exiv2 distribution.
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/pyexiv2/utils.py new/py3exiv2-0.7.1/src/pyexiv2/utils.py
--- old/py3exiv2-0.6.1/src/pyexiv2/utils.py 2018-02-02 15:26:42.000000000 +0100
+++ new/py3exiv2-0.7.1/src/pyexiv2/utils.py 2019-01-30 08:42:17.000000000 +0100
@@ -3,7 +3,7 @@
# ******************************************************************************
#
# Copyright (C) 2006-2012 Olivier Tilloy
-# Copyright (C) 2015-2018 Vincent Vande Vyvre
+# Copyright (C) 2015-2019 Vincent Vande Vyvre
#
# This file is part of the py3exiv2 distribution.
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3exiv2-0.6.1/src/pyexiv2/xmp.py new/py3exiv2-0.7.1/src/pyexiv2/xmp.py
--- old/py3exiv2-0.6.1/src/pyexiv2/xmp.py 2018-05-15 08:52:04.000000000 +0200
+++ new/py3exiv2-0.7.1/src/pyexiv2/xmp.py 2019-04-25 06:07:43.000000000 +0200
@@ -3,7 +3,7 @@
# ******************************************************************************
#
# Copyright (C) 2006-2011 Olivier Tilloy
-# Copyright (C) 2015-2018 Vincent Vande Vyvre
+# Copyright (C) 2015-2019 Vincent Vande Vyvre
#
# This file is part of the py3exiv2 distribution.
#
@@ -522,6 +522,33 @@
self._tag = libexiv2python._XmpTag(key)
self.raw_value = raw_value
+def initialiseXmpParser():
+ """Initialise the xmp parser.
+
+ Calling this method is usually not needed, as encode() and decode() will
+ initialize the XMP Toolkit if necessary.
+
+ The function takes optional pointers to a callback function xmpLockFct and
+ related data pLockData that the parser uses when XMP namespaces are
+ subsequently registered.
+
+ This function itself still is not thread-safe and needs to be
+ called in a thread-safe manner (e.g., on program startup), but if used with
+ suitable additional locking parameters, any subsequent registration of
+ namespaces will be thread-safe.
+ """
+ libexiv2python._initialiseXmpParser()
+
+def closeXmpParser():
+ """Close the xmp parser.
+
+ Terminate the XMP Toolkit and unregister custom namespaces.
+
+ Call this method when the XmpParser is no longer needed to allow the XMP
+ Toolkit to cleanly shutdown.
+ """
+ libexiv2python._closeXmpParser()
+
def register_namespace(name, prefix):
"""Register a custom XMP namespace.
@@ -539,6 +566,8 @@
Raise ValueError: if the name doesn’t end with a ``/``
Raise KeyError: if a namespace already exist with this prefix
"""
+ # How to set the type of tag 'XmpAlt', 'XmpBag', 'XmpSeq'
+ # See: https://www.exiv2.org/doc/xmpsample_8cpp-example.html#a18
if not name.endswith('/'):
raise ValueError('Name should end with a /')