15
0
forked from pool/python-exiv2

- Update to 0.12.3:

- upstream doesn't release proper changelog
- Remove the exiv2_0-28-0.patch patch again.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-exiv2?expand=0&rev=20
This commit is contained in:
2023-08-10 22:17:50 +00:00
committed by Git OBS Bridge
parent f9f7f527ff
commit f7b2c29b18
5 changed files with 15 additions and 653 deletions

View File

@@ -1,643 +0,0 @@
---
src/exiv2wrapper.cpp | 171 +++++++++++++++++++++++++--------------------------
src/exiv2wrapper.hpp | 2
2 files changed, 86 insertions(+), 87 deletions(-)
--- a/src/exiv2wrapper.cpp
+++ b/src/exiv2wrapper.cpp
@@ -51,7 +51,7 @@ using std::auto_ptr;
// Custom macros
#ifdef HAVE_EXIV2_ERROR_CODE
#define CHECK_METADATA_READ \
- if (!_dataRead) throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
+ if (!_dataRead) throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, "metadata not read");
#else
#define CHECK_METADATA_READ \
if (!_dataRead) throw Exiv2::Error(METADATA_NOT_READ);
@@ -67,7 +67,7 @@ void Image::_instantiate_image()
// If an exception is thrown, it has to be done outside of the
// Py_{BEGIN,END}_ALLOW_THREADS block.
#ifdef HAVE_EXIV2_ERROR_CODE
- Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
+ Exiv2::Error error = Exiv2::Error(Exiv2::ErrorCode::kerSuccess);
#else
Exiv2::Error error(0);
#endif
@@ -96,7 +96,7 @@ void Image::_instantiate_image()
// Re-acquire the GIL
Py_END_ALLOW_THREADS
- if (error.code() == 0)
+ if (error.code() == Exiv2::ErrorCode::kerSuccess)
{
assert(_image.get() != 0);
_dataRead = false;
@@ -153,7 +153,7 @@ void Image::readMetadata()
// If an exception is thrown, it has to be done outside of the
// Py_{BEGIN,END}_ALLOW_THREADS block.
#ifdef HAVE_EXIV2_ERROR_CODE
- Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
+ Exiv2::Error error = Exiv2::Error(Exiv2::ErrorCode::kerSuccess);
#else
Exiv2::Error error(0);
#endif
@@ -180,7 +180,7 @@ void Image::readMetadata()
// Re-acquire the GIL
Py_END_ALLOW_THREADS
- if (error.code() != 0)
+ if (error.code() != Exiv2::ErrorCode::kerSuccess)
{
throw error;
}
@@ -193,7 +193,7 @@ void Image::writeMetadata()
// If an exception is thrown, it has to be done outside of the
// Py_{BEGIN,END}_ALLOW_THREADS block.
#ifdef HAVE_EXIV2_ERROR_CODE
- Exiv2::Error error = Exiv2::Error(Exiv2::kerSuccess);
+ Exiv2::Error error = Exiv2::Error(Exiv2::ErrorCode::kerSuccess);
#else
Exiv2::Error error(0);
#endif
@@ -216,7 +216,7 @@ void Image::writeMetadata()
// Re-acquire the GIL
Py_END_ALLOW_THREADS
- if (error.code() != 0)
+ if (error.code() != Exiv2::ErrorCode::kerSuccess)
{
throw error;
}
@@ -263,7 +263,7 @@ const ExifTag Image::getExifTag(std::str
if(_exifData->findKey(exifKey) == _exifData->end())
#ifdef HAVE_EXIV2_ERROR_CODE
{
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
}
#else
{
@@ -283,7 +283,7 @@ void Image::deleteExifTag(std::string ke
if(datum == _exifData->end())
#ifdef HAVE_EXIV2_ERROR_CODE
{
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
}
#else
{
@@ -321,7 +321,7 @@ const IptcTag Image::getIptcTag(std::str
if(_iptcData->findKey(iptcKey) == _iptcData->end())
#ifdef HAVE_EXIV2_ERROR_CODE
{
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
}
#else
{
@@ -341,7 +341,7 @@ void Image::deleteIptcTag(std::string ke
if (dataIterator == _iptcData->end())
#ifdef HAVE_EXIV2_ERROR_CODE
{
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
}
#else
{
@@ -385,7 +385,7 @@ const XmpTag Image::getXmpTag(std::strin
if(_xmpData->findKey(xmpKey) == _xmpData->end())
#ifdef HAVE_EXIV2_ERROR_CODE
{
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
}
#else
{
@@ -409,7 +409,7 @@ void Image::deleteXmpTag(std::string key
else
#ifdef HAVE_EXIV2_ERROR_CODE
{
- throw Exiv2::Error(Exiv2::kerInvalidKey, key);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, key);
}
#else
{
@@ -461,7 +461,7 @@ void Image::copyMetadata(Image& other, b
{
#ifdef HAVE_EXIV2_ERROR_CODE
{
- throw Exiv2::Error(Exiv2::kerErrorMessage, "metadata not read");
+ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, "metadata not read");
}
#else
{
@@ -570,7 +570,7 @@ boost::python::list Image::getExifThumbn
Exiv2::DataBuf buffer = _getExifThumbnail()->copy();
// Copy the data buffer in a list.
boost::python::list data;
- for(unsigned int i = 0; i < buffer.size_; ++i)
+ for(unsigned int i = 0; i < buffer.size; ++i)
{
unsigned int datum = buffer.pData_[i];
data.append(datum);
@@ -688,7 +688,7 @@ void ExifTag::setRawValue(const std::str
{
std::string message("Invalid value: ");
message += value;
- throw Exiv2::Error(Exiv2::kerInvalidDataset, message);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidDataset, message);
}
#else
{
@@ -708,7 +708,7 @@ void ExifTag::setParentImage(Image& imag
return;
}
_data = data;
- Exiv2::Value::AutoPtr value = _datum->getValue();
+ Exiv2::Value::UniquePtr value = _datum->getValue();
delete _datum;
_datum = &(*_data)[_key.key()];
_datum->setValue(value.get());
@@ -810,7 +810,7 @@ IptcTag::IptcTag(const std::string& key,
{
std::string mssg("Tag not repeatable: ");
mssg += key;
- throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, mssg);
}
#else
{
@@ -838,7 +838,7 @@ void IptcTag::setRawValues(const boost::
// one value.
#ifdef HAVE_EXIV2_ERROR_CODE
{
- throw Exiv2::Error(Exiv2::kerInvalidDataset, "Tag not repeatable");
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidDataset, "Tag not repeatable");
}
#else
{
@@ -864,7 +864,7 @@ void IptcTag::setRawValues(const boost::
mssg += value;
// there's no invalid value error in libexiv2, so we use
// kerInvalidDataset wich raise a Python ValueError
- throw Exiv2::Error(Exiv2::kerInvalidDataset, mssg);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidDataset, mssg);
}
#else
{
@@ -888,7 +888,7 @@ void IptcTag::setRawValues(const boost::
{
std::string mssg("Invalid value: ");
mssg += value;
- throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, mssg);
}
#else
{
@@ -901,7 +901,7 @@ void IptcTag::setRawValues(const boost::
{
std::string mssg("Tag not repeatable: ");
mssg += _key.key();
- throw Exiv2::Error(Exiv2::kerErrorMessage, mssg);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, mssg);
}
#else
{
@@ -1089,7 +1089,7 @@ void XmpTag::setParentImage(Image& image
// anything (see https://bugs.launchpad.net/pyexiv2/+bug/622739).
return;
}
- Exiv2::Value::AutoPtr value = _datum->getValue();
+ Exiv2::Value::UniquePtr value = _datum->getValue();
delete _datum;
_from_datum = true;
_datum = &(*image.getXmpData())[_key.key()];
@@ -1221,331 +1221,330 @@ void translateExiv2Error(Exiv2::Error co
// defined by Exiv2 (file 'src/error.cpp') are changed
switch (error.code())
{
- case 1:
+ case Exiv2::ErrorCode::kerErrorMessage:
// kerErrorMessage Unidentified error
PyErr_SetString(PyExc_RuntimeError, message);
break;
- case 2:
+ case Exiv2::ErrorCode::kerCallFailed:
// kerCallFailed {path}: Call to `{function}' failed: {strerror}
// May be raised when reading a file
PyErr_SetString(PyExc_RuntimeError, message);
break;
- case 3:
+ case Exiv2::ErrorCode::kerNotAnImage:
// kerNotAnImage This does not look like a {image type} image
// May be raised by readMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 4:
+ case Exiv2::ErrorCode::kerInvalidDataset:
// kerInvalidDataset Invalid dataset name `{dataset name}'
PyErr_SetString(PyExc_ValueError, message);
break;
- case 5:
+ case Exiv2::ErrorCode::kerInvalidRecord:
// kerInvalidRecord Invalid record name `{record name}'
// May be raised when instantiating an IptcKey from a string
PyErr_SetString(PyExc_KeyError, message);
break;
- case 6:
+ case Exiv2::ErrorCode::kerInvalidKey:
// kerInvalidKey Invalid key `{key}'
// May be raised when instantiating an ExifKey, an IptcKey or an
// XmpKey from a string
PyErr_SetString(PyExc_KeyError, message);
break;
- case 7:
+ case Exiv2::ErrorCode::kerInvalidTag:
// kerInvalidTag
// Invalid tag name or ifdId `{tag name}', ifdId {ifdId}
// May be raised when instantiating an ExifKey from a string
PyErr_SetString(PyExc_KeyError, message);
break;
- case 8:
+ case Exiv2::ErrorCode::kerValueNotSet:
// kerValueNotSet Value not set
// May be raised when calling value() on a datum
PyErr_SetString(PyExc_ValueError, message);
break;
- case 9:
+ case Exiv2::ErrorCode::kerDataSourceOpenFailed:
// kerDataSourceOpenFailed
// {path}: Failed to open the data source: {strerror}
// May be raised by readMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 10:
+ case Exiv2::ErrorCode::kerFileOpenFailed:
// kerFileOpenFailed
// {path}: Failed to open file ({mode}): {strerror}
// May be raised by writeMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 11:
+ case Exiv2::ErrorCode::kerFileOpenFailed:
// kerFileOpenFailed
// {path}: The file contains data of an unknown image type
// May be raised when opening an image
PyErr_SetString(PyExc_TypeError, message);
break;
- case 12:
+ case Exiv2::ErrorCode::kerMemoryContainsUnknownImageType:
// kerMemoryContainsUnknownImageType
//The memory contains data of an unknown image type
// May be raised when instantiating an image from a data buffer
PyErr_SetString(PyExc_IOError, message);
break;
- case 13:
+ case Exiv2::ErrorCode::kerUnsupportedImageType:
// kerUnsupportedImageType Image type {image type} is not supported
// May be raised when creating a new image
PyErr_SetString(PyExc_IOError, message);
break;
- case 14:
+ case Exiv2::ErrorCode::kerFailedToReadImageData:
// kerFailedToReadImageData Failed to read image data
// May be raised by readMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 15:
+ case Exiv2::ErrorCode::kerNotAJpeg:
// kerNotAJpeg This does not look like a JPEG image
// May be raised by readMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 17:
+ case Exiv2::ErrorCode::kerFileRenameFailed:
// kerFileRenameFailed
// {old path}: Failed to rename file to {new path}: {strerror}
// May be raised by writeMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 18:
+ case Exiv2::ErrorCode::kerTransferFailed:
// kerTransferFailed {path}: Transfer failed: {strerror}
// May be raised by writeMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 19:
+ case Exiv2::ErrorCode::kerMemoryTransferFailed:
// kerMemoryTransferFailed Memory transfer failed: {strerror}
// May be raised by writeMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 20:
+ case Exiv2::ErrorCode::kerInputDataReadFailed:
// kerInputDataReadFailed Failed to read input data
// May be raised by writeMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 21:
+ case Exiv2::ErrorCode::kerImageWriteFailed:
// kerImageWriteFailed Failed to write image
// May be raised by writeMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 22:
+ case Exiv2::ErrorCode::kerNoImageInInputData:
// kerNoImageInInputData Input data does not contain a valid image
// May be raised by writeMetadata()
PyErr_SetString(PyExc_IOError, message);
break;
- case 23:
+ case Exiv2::ErrorCode::kerInvalidIfdId:
// kerInvalidIfdId Invalid ifdId {ifdId}
// May be raised when instantiating an ExifKey from a tag and
// IFD item string
PyErr_SetString(PyExc_KeyError, message);
break;
- case 24:
+ case Exiv2::ErrorCode::kerValueTooLarge:
// kerValueTooLarge
// Entry::setValue: Value too large {tag}, {size}, {requested}
PyErr_SetString(PyExc_ValueError, message);
break;
- case 25:
+ case Exiv2::ErrorCode::kerDataAreaValueTooLarge:
// kerDataAreaValueTooLarge
// Entry::setDataArea: Value too large {tag}, {size}, {requested}
PyErr_SetString(PyExc_ValueError, message);
break;
- case 26:
+ case Exiv2::ErrorCode::kerOffsetOutOfRange:
// kerOffsetOutOfRange Offset out of range
// May be raised by writeMetadata() (TIFF)
PyErr_SetString(PyExc_IOError, message);
break;
- case 27:
+ case Exiv2::ErrorCode::kerUnsupportedDataAreaOffsetType:
// kerUnsupportedDataAreaOffsetType
// Unsupported data area offset type
// May be raised by writeMetadata() (TIFF)
PyErr_SetString(PyExc_IOError, message);
break;
- case 28:
+ case Exiv2::ErrorCode::kerInvalidCharset:
// kerInvalidCharset Invalid charset: `{charset name}'
// May be raised when instantiating a CommentValue from a string
PyErr_SetString(PyExc_ValueError, message);
break;
- case 29:
+ case Exiv2::ErrorCode::kerUnsupportedDateFormat:
// kerUnsupportedDateFormat Unsupported date format
// May be raised when instantiating a DateValue from a string
PyErr_SetString(PyExc_ValueError, message);
break;
- case 30:
+ case Exiv2::ErrorCode::kerUnsupportedTimeFormat:
// kerUnsupportedTimeFormat Unsupported time format
// May be raised when instantiating a TimeValue from a string
PyErr_SetString(PyExc_ValueError, message);
break;
- case 31:
+ case Exiv2::ErrorCode::kerWritingImageFormatUnsupported:
// kerWritingImageFormatUnsupported
// Writing to {image format} images is not supported
// May be raised by writeMetadata() for certain image types
PyErr_SetString(PyExc_IOError, message);
break;
- case 32:
+ case Exiv2::ErrorCode::kerInvalidSettingForImage:
// kerInvalidSettingForImage
// Setting {metadata type} in {image format} images is not supported
// May be raised when setting certain types of metadata for certain
// image types that don't support them
PyErr_SetString(PyExc_ValueError, message);
break;
- case 33:
+ case Exiv2::ErrorCode::kerNotACrwImage:
// kerNotACrwImage This does not look like a CRW image
// May be raised by readMetadata() (CRW)
PyErr_SetString(PyExc_IOError, message);
break;
- case 34:
+ case Exiv2::ErrorCode::kerFunctionNotSupported:
// kerFunctionNotSupported {function}: Not supported
PyErr_SetString(PyExc_IOError, message);
break;
- case 35:
+ case Exiv2::ErrorCode::kerNoNamespaceInfoForXmpPrefix:
// kerNoNamespaceInfoForXmpPrefix
// No namespace info available for XMP prefix `{prefix}'
// May be raised when retrieving property info for an XmpKey
PyErr_SetString(PyExc_KeyError, message);
break;
- case 36:
+ case Exiv2::ErrorCode::kerNoPrefixForNamespace:
// kerNoPrefixForNamespace
// No prefix registered for namespace `{namespace}', needed for
// property path `{property path}'
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_KeyError, message);
break;
- case 37:
+ case Exiv2::ErrorCode::kerTooLargeJpegSegment:
// kerTooLargeJpegSegment
// Size of {type of metadata} JPEG segment is larger than
// 65535 bytes
// May be raised by writeMetadata() (JPEG)
PyErr_SetString(PyExc_ValueError, message);
break;
- case 38:
+ case Exiv2::ErrorCode::kerUnhandledXmpdatum:
// kerUnhandledXmpdatum
// Unhandled Xmpdatum {key} of type {value type}
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_TypeError, message);
break;
- case 39:
+ case Exiv2::ErrorCode::kerUnhandledXmpNode:
// kerUnhandledXmpNode
// Unhandled XMP node {key} with opt={XMP Toolkit option flags}
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_TypeError, message);
break;
- case 40:
+ case Exiv2::ErrorCode::kerXMPToolkitError:
// kerXMPToolkitError
// XMP Toolkit error {error id}: {error message}
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_RuntimeError, message);
break;
- case 41:
+ case Exiv2::ErrorCode::kerDecodeLangAltPropertyFailed:
// kerDecodeLangAltPropertyFailed
// Failed to decode Lang Alt property {property path}
// with opt={XMP Toolkit option flags}
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_ValueError, message);
break;
- case 42:
+ case Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed:
// kerDecodeLangAltQualifierFailed
// Failed to decode Lang Alt qualifier {qualifier path}
// with opt={XMP Toolkit option flags}
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_ValueError, message);
break;
- case 43:
+ case Exiv2::ErrorCode::kerEncodeLangAltPropertyFailed:
// kerEncodeLangAltPropertyFailed
// Failed to encode Lang Alt property {key}
// May be raised by writeMetadata()
PyErr_SetString(PyExc_ValueError, message);
break;
- case 44:
+ case Exiv2::ErrorCode::kerPropertyNameIdentificationFailed:
// kerPropertyNameIdentificationFailed
// Failed to determine property name from path {property path},
// namespace {namespace}
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_KeyError, message);
break;
- case 45:
+ case Exiv2::ErrorCode::kerSchemaNamespaceNotRegistered:
// kerSchemaNamespaceNotRegistered
// Schema namespace {namespace} is not registered with
// the XMP Toolkit
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_ValueError, message);
break;
- case 46:
+ case Exiv2::ErrorCode::kerNoNamespaceForPrefix:
// kerNoNamespaceForPrefix
// No namespace registered for prefix `{prefix}'
// May be raised when instantiating an XmpKey from a string
PyErr_SetString(PyExc_KeyError, message);
break;
- case 47:
+ case Exiv2::ErrorCode::kerAliasesNotSupported:
// kerAliasesNotSupported
// Aliases are not supported. Please send this XMP packet
// to ahuggel@gmx.net `{namespace}', `{property path}', `{value}'
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_ValueError, message);
break;
- case 48:
+ case Exiv2::ErrorCode::kerInvalidXmpText:
// kerInvalidXmpText
// Invalid XmpText type `{type}'
// May be raised when instantiating an XmpTextValue from a string
PyErr_SetString(PyExc_TypeError, message);
break;
- case 49:
+ case Exiv2::ErrorCode::kerTooManyTiffDirectoryEntries:
// kerTooManyTiffDirectoryEntries
// TIFF directory {TIFF directory name} has too many entries
// May be raised by writeMetadata() (TIFF)
PyErr_SetString(PyExc_IOError, message);
break;
// Added in py3exiv2
- case 50:
+ case Exiv2::ErrorCode::kerMultipleTiffArrayElementTagsInDirectory:
// kerMultipleTiffArrayElementTagsInDirectory
// Multiple TIFF array element tags {number} in one directory")
// May be raised by readMetadata() (TIFF)
PyErr_SetString(PyExc_IOError, message);
break;
- case 51:
+ case Exiv2::ErrorCode::kerWrongTiffArrayElementTagType:
// kerWrongTiffArrayElementTagType
// TIFF array element tag {number} has wrong type") }, // %1=tag number
// May be raised by readMetadata() (TIFF)
PyErr_SetString(PyExc_TypeError, message);
break;
// Added in libexiv2 0.27
- case 52:
+ case Exiv2::ErrorCode::kerInvalidKeyXmpValue:
// kerInvalidKeyXmpValue {key} has invalid XMP value type {type}
// May be raised by readMetadata() when reading the XMP data
PyErr_SetString(PyExc_ValueError, message);
break;
- case 53:
+ case Exiv2::ErrorCode::kerInvalidIccProfile:
// kerInvalidIccProfile Not a valid ICC Profile
PyErr_SetString(PyExc_ValueError, message);
break;
- case 54:
+ case Exiv2::ErrorCode::kerInvalidXMP:
// kerInvalidXMP Not valid XMP
PyErr_SetString(PyExc_TypeError, message);
break;
- case 55:
+ case Exiv2::ErrorCode::kerTiffDirectoryTooLarge:
// kerTiffDirectoryTooLarge tiff directory length is too large
PyErr_SetString(PyExc_ValueError, message);
break;
- case 56:
+ case Exiv2::ErrorCode::kerInvalidTypeValue:
// kerInvalidTypeValue
// Invalid type value detected in Image::printIFDStructure
PyErr_SetString(PyExc_TypeError, message);
break;
- case 57:
+ case Exiv2::ErrorCode::kerInvalidMalloc:
// kerInvalidMalloc
// Invalid memory allocation request
PyErr_SetString(PyExc_MemoryError, message);
break;
- case 58:
+ case Exiv2::ErrorCode::kerCorruptedMetadata:
// kerCorruptedMetadata Corrupted image metadata
PyErr_SetString(PyExc_IOError, message);
break;
- case 59:
+ case Exiv2::ErrorCode::kerArithmeticOverflow:
// kerArithmeticOverflow Arithmetic operation overflow
PyErr_SetString(PyExc_OverflowError, message);
break;
- case 60:
+ case Exiv2::ErrorCode::kerMallocFailed:
// kerMallocFailed Memory allocation failed
PyErr_SetString(PyExc_MemoryError, message);
break;
-
// Default handler
default:
PyErr_SetString(PyExc_RuntimeError, message);
@@ -1896,7 +1895,7 @@ void registerXmpNs(const std::string& na
{
std::string mssg("Namespace already exists: ");
mssg += prefix;
- throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, mssg);
}
#else
{
@@ -1925,7 +1924,7 @@ void unregisterXmpNs(const std::string&
{
std::string mssg("Can't unregister builtin namespace: ");
mssg += name;
- throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, mssg);
}
#else
{
@@ -1938,7 +1937,7 @@ void unregisterXmpNs(const std::string&
{
std::string mssg("Namespace does not exists: ");
mssg += name;
- throw Exiv2::Error(Exiv2::kerInvalidKey, mssg);
+ throw Exiv2::Error(Exiv2::ErrorCode::kerInvalidKey, mssg);
}
#else
{
--- a/src/exiv2wrapper.hpp
+++ b/src/exiv2wrapper.hpp
@@ -271,7 +271,7 @@ private:
std::string _filename;
Exiv2::byte* _data;
long _size;
- Exiv2::Image::AutoPtr _image;
+ Exiv2::Image::UniquePtr _image;
Exiv2::ExifData* _exifData;
Exiv2::IptcData* _iptcData;
Exiv2::XmpData* _xmpData;

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6600da6b897199d4da66191b96045f3ccc5f57010da76b3ac5d292b83fcca844
size 36255

3
py3exiv2-0.12.3.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c97d0cc8db8d579f8709876879faff9809c4000279d4cdd3d0fb2fa7cdcbf0b6
size 47062

View File

@@ -1,7 +1,13 @@
-------------------------------------------------------------------
Thu Aug 10 21:33:24 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Update to 0.12.3:
- upstream doesn't release proper changelog
- Remove the exiv2_0-28-0.patch patch again.
-------------------------------------------------------------------
Fri Aug 4 23:06:13 UTC 2023 - Matej Cepl <mcepl@suse.com>
- WIP INCOMPLETE
- Add exiv2_0-28-0.patch making the package compatible with the
latest exiv2 0.28 (lp#2027823).

View File

@@ -17,7 +17,7 @@
Name: python-exiv2
Version: 0.11.0
Version: 0.12.3
Release: 0
Summary: Python3 bindings for the exiv2 library
License: GPL-3.0-only
@@ -27,9 +27,6 @@ URL: https://launchpad.net/py3exiv2
Source0: https://files.pythonhosted.org/packages/source/p/py3exiv2/py3exiv2-%{version}.tar.gz
#
Patch0: py3exiv2-link-boost.patch
# PATCH-FIX-UPSTREAM exiv2_0-28-0.patch lp#2027823 mcepl@suse.com
# Fix compilation errors with exiv2 0.28.0+
Patch1: exiv2_0-28-0.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -58,9 +55,11 @@ easy manipulation of image metadata.
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%files %{python_files}
%{python_sitearch}/*
%{python_sitearch}/libexiv2python.*.so
%{python_sitearch}/pyexiv2
%{python_sitearch}/py3exiv2-%{version}*-info
%changelog