[pyexiv2/el6] Make the package building with exiv 0.18.2 on EL-6 (#753322)
Matej Cepl
mcepl at fedoraproject.org
Wed Dec 14 19:15:12 UTC 2011
commit 61e5bc3c0efec5a4222f22016993a3ddb1d9c7b2
Author: Matěj Cepl <mcepl at redhat.com>
Date: Wed Dec 14 20:15:17 2011 +0100
Make the package building with exiv 0.18.2 on EL-6 (#753322)
.gitignore | 2 +
exiv-0-18-2.patch | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++++
pyexiv2.spec | 13 ++++-
3 files changed, 179 insertions(+), 2 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 45921fe..451ac79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@ pyexiv2-0.1.3.tar.bz2
/pyexiv2-0.2.2.tar.bz2
/pyexiv2-0.3.0.tar.bz2
/pyexiv2-0.3.1.tar.bz2
+/pyexiv2-0.3.1
+/x86_64
diff --git a/exiv-0-18-2.patch b/exiv-0-18-2.patch
new file mode 100644
index 0000000..34da36d
--- /dev/null
+++ b/exiv-0-18-2.patch
@@ -0,0 +1,166 @@
+diff -up pyexiv2-0.3.1/src/exiv2wrapper.cpp.exiv0182 pyexiv2-0.3.1/src/exiv2wrapper.cpp
+--- pyexiv2-0.3.1/src/exiv2wrapper.cpp.exiv0182 2011-10-23 18:44:56.000000000 +0200
++++ pyexiv2-0.3.1/src/exiv2wrapper.cpp 2011-12-14 19:26:19.533659344 +0100
+@@ -521,15 +521,7 @@ void Image::setExifThumbnailFromData(con
+ const std::string Image::getIptcCharset() const
+ {
+ CHECK_METADATA_READ
+- const char* charset = _iptcData->detectCharset();
+- if (charset != 0)
+- {
+- return std::string(charset);
+- }
+- else
+- {
+- return std::string();
+- }
++ return std::string();
+ }
+
+
+diff -up pyexiv2-0.3.1/test/metadata.py.exiv0182 pyexiv2-0.3.1/test/metadata.py
+--- pyexiv2-0.3.1/test/metadata.py.exiv0182 2011-10-23 18:44:56.000000000 +0200
++++ pyexiv2-0.3.1/test/metadata.py 2011-12-14 19:26:32.371784500 +0100
+@@ -562,7 +562,7 @@ class TestImageMetadata(unittest.TestCas
+ self.metadata.iptc_keys + \
+ self.metadata.xmp_keys
+ for key in keys:
+- self.metadata[key] = self.metadata[key]
++ self.metadata[key] = self.metadata[key]
+
+ def test_nonexistent_tag_family(self):
+ self.metadata.read()
+@@ -574,7 +574,7 @@ class TestImageMetadata(unittest.TestCas
+ ##########################
+ # Test the image comment #
+ ##########################
+-
++
+ def test_get_comment(self):
+ self.metadata.read()
+ self.failUnlessEqual(self.metadata.comment, 'Hello World!')
+@@ -643,10 +643,10 @@ class TestImageMetadata(unittest.TestCas
+ self.assertTrue('Exif.Image.DateTimeOriginal' not in self.clean)
+
+ key = 'Exif.Image.DateTimeOriginal'
+- correctDate = datetime.datetime(2007,03,11)
+- incorrectDate = datetime.datetime(2009,03,25)
+- tag_date = ExifTag(key,correctDate)
+- false_tag_date = ExifTag(key,incorrectDate)
++ correctDate = datetime.datetime(2007, 03, 11)
++ incorrectDate = datetime.datetime(2009, 03, 25)
++ tag_date = ExifTag(key, correctDate)
++ false_tag_date = ExifTag(key, incorrectDate)
+ self.clean[key] = tag_date
+
+ self.assertEqual(len(self.clean), 1)
+@@ -655,11 +655,11 @@ class TestImageMetadata(unittest.TestCas
+ self.assertEqual(self.clean.get('Exif.Image.DateTime', tag_date), tag_date)
+
+ key = 'Exif.Photo.UserComment'
+- tag = ExifTag(key,'UserComment')
+- self.clean[key] = tag
++ tag = ExifTag(key, 'UserComment')
++ self.clean[key] = tag
+ key = 'Iptc.Application2.Caption'
+- tag = IptcTag(key,['Caption'])
+- self.clean[key] = tag
++ tag = IptcTag(key, ['Caption'])
++ self.clean[key] = tag
+ key = 'Xmp.dc.subject'
+ tag = XmpTag(key, ['subject', 'values'])
+ self.clean[key] = tag
+@@ -785,24 +785,24 @@ class TestImageMetadata(unittest.TestCas
+ # Test the IPTC charset #
+ #########################
+
+- def test_guess_iptc_charset(self):
+- # If no charset is defined, exiv2 guesses it from the encoding of the
+- # metadata.
+- self.metadata.read()
+- self.assertEqual(self.metadata.iptc_charset, 'ascii')
+- self.metadata['Iptc.Application2.City'] = [u'Córdoba']
+- self.assertEqual(self.metadata.iptc_charset, 'utf-8')
+-
+- def test_set_iptc_charset_utf8(self):
+- self.metadata.read()
+- self.assert_('Iptc.Envelope.CharacterSet' not in self.metadata.iptc_keys)
+- self.assertEqual(self.metadata.iptc_charset, 'ascii')
+- values = ('utf-8', 'utf8', 'u8', 'utf', 'utf_8')
+- for value in values:
+- self.metadata.iptc_charset = value
+- self.assertEqual(self.metadata.iptc_charset, 'utf-8')
+- self.metadata.iptc_charset = value.upper()
+- self.assertEqual(self.metadata.iptc_charset, 'utf-8')
++# def test_guess_iptc_charset(self):
++# # If no charset is defined, exiv2 guesses it from the encoding of the
++# # metadata.
++# self.metadata.read()
++# self.assertEqual(self.metadata.iptc_charset, 'ascii')
++# self.metadata['Iptc.Application2.City'] = [u'Córdoba']
++# self.assertEqual(self.metadata.iptc_charset, 'utf-8')
++
++# def test_set_iptc_charset_utf8(self):
++# self.metadata.read()
++# self.assert_('Iptc.Envelope.CharacterSet' not in self.metadata.iptc_keys)
++# self.assertEqual(self.metadata.iptc_charset, 'ascii')
++# values = ('utf-8', 'utf8', 'u8', 'utf', 'utf_8')
++# for value in values:
++# self.metadata.iptc_charset = value
++# self.assertEqual(self.metadata.iptc_charset, 'utf-8')
++# self.metadata.iptc_charset = value.upper()
++# self.assertEqual(self.metadata.iptc_charset, 'utf-8')
+
+ def test_set_invalid_iptc_charset(self):
+ self.metadata.read()
+@@ -821,27 +821,27 @@ class TestImageMetadata(unittest.TestCas
+ self.assertRaises(ValueError, self.metadata.__setattr__,
+ 'iptc_charset', value)
+
+- def test_delete_iptc_charset(self):
+- self.metadata.read()
+- key = 'Iptc.Envelope.CharacterSet'
+-
+- self.assertEqual(self.metadata.iptc_charset, 'ascii')
+- self.assert_(key not in self.metadata.iptc_keys)
+- del self.metadata.iptc_charset
+- self.assertEqual(self.metadata.iptc_charset, 'ascii')
+- self.assert_(key not in self.metadata.iptc_keys)
+-
+- self.metadata.iptc_charset = 'utf-8'
+- self.assertEqual(self.metadata.iptc_charset, 'utf-8')
+- self.assert_(key in self.metadata.iptc_keys)
+- del self.metadata.iptc_charset
+- self.assertEqual(self.metadata.iptc_charset, 'ascii')
+- self.assert_(key not in self.metadata.iptc_keys)
+-
+- self.metadata.iptc_charset = 'utf-8'
+- self.assertEqual(self.metadata.iptc_charset, 'utf-8')
+- self.assert_(key in self.metadata.iptc_keys)
+- self.metadata.iptc_charset = None
+- self.assertEqual(self.metadata.iptc_charset, 'ascii')
+- self.assert_(key not in self.metadata.iptc_keys)
++# def test_delete_iptc_charset(self):
++# self.metadata.read()
++# key = 'Iptc.Envelope.CharacterSet'
++#
++# self.assertEqual(self.metadata.iptc_charset, 'ascii')
++# self.assert_(key not in self.metadata.iptc_keys)
++# del self.metadata.iptc_charset
++# self.assertEqual(self.metadata.iptc_charset, 'ascii')
++# self.assert_(key not in self.metadata.iptc_keys)
++#
++# self.metadata.iptc_charset = 'utf-8'
++# self.assertEqual(self.metadata.iptc_charset, 'utf-8')
++# self.assert_(key in self.metadata.iptc_keys)
++# del self.metadata.iptc_charset
++# self.assertEqual(self.metadata.iptc_charset, 'ascii')
++# self.assert_(key not in self.metadata.iptc_keys)
++#
++# self.metadata.iptc_charset = 'utf-8'
++# self.assertEqual(self.metadata.iptc_charset, 'utf-8')
++# self.assert_(key in self.metadata.iptc_keys)
++# self.metadata.iptc_charset = None
++# self.assertEqual(self.metadata.iptc_charset, 'ascii')
++# self.assert_(key not in self.metadata.iptc_keys)
+
diff --git a/pyexiv2.spec b/pyexiv2.spec
index 979d639..9cb06e7 100644
--- a/pyexiv2.spec
+++ b/pyexiv2.spec
@@ -3,7 +3,7 @@
Name: pyexiv2
Version: 0.3.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Python binding to exiv2
Group: Development/Languages
@@ -12,6 +12,9 @@ URL: http://tilloy.net/dev/pyexiv2/
Source0: http://launchpad.net/pyexiv2/0.3.x/%{version}/+download/pyexiv2-%{version}.tar.bz2
# Upstream patch from https://bugs.launchpad.net/pyexiv2/+bug/880659
Patch0: pyexiv2-python26-compatible.patch
+%if 0%{?rhel} > 0 && 0%{?rhel} <= 7
+Patch1: exiv-0-18-2.patch
+%endif
BuildRequires: python-devel exiv2-devel boost-devel scons pytz
%description
@@ -22,7 +25,10 @@ embedded in image files (JPEG, TIFF, ...).
%prep
%setup -q
-%patch0 -p1
+%patch0 -p1 -b .python26
+%if 0%{?rhel} > 0 && 0%{?rhel} <= 7
+%patch1 -p1 -b .exiv0182
+%endif
%build
# Remove CFLAGS=... for noarch packages (unneeded)
@@ -53,6 +59,9 @@ popd
%changelog
+* Wed Dec 14 2011 Matěj Cepl <mcepl at redhat.com> 0.3.1-2
+- Make the package building with exiv 0.18.2 on EL-6 (#753322)
+
* Fri Nov 11 2011 'Matěj Cepl <mcepl at redhat.com>' - 0.3.1-1
- Add pytz to the BuildRequires (so that more tests are run).
More information about the scm-commits
mailing list