Your message dated Sun, 21 Jan 2018 13:14:36 +0000
with message-id <e1edfsg-000gud...@fasolo.debian.org>
and subject line Bug#886906: Removed package(s) from unstable
has caused the Debian Bug report #573166,
regarding libkexiv2-7: libkexiv2 doesn't extract language alternative value
correctly
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
573166: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=573166
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: libkexiv2-7
Version: 4:4.3.4-1
Severity: normal
Tags: patch
The KExiv2::getXmpTagStringLangAlt() fails to extract a language
alternative value, no matter what the specified language alternative
is. A detailed description how I came across this problem is described
@ https://bugs.kde.org/show_bug.cgi?id=199317 - a result of using
kipi-plugins.
Please, consider the attached patch for the Debian package until it is
accepted/reworked upstream.
The patch itself has a header describing all the implementation
details.
Thank you,
Jan Capek
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.30-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=cs_CZ.UTF-8, LC_CTYPE=cs_CZ.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libkexiv2-7 depends on:
ii kdelibs5 4:4.3.4-3 core libraries for all KDE 4 appli
ii libc6 2.10.2-2 GNU C Library: Shared libraries
ii libexiv2-6 0.19-1 EXIF/IPTC metadata manipulation li
ii libgcc1 1:4.4.2-9 GCC support library
ii libqtcore4 4:4.5.3-4 Qt 4 core module
ii libqtgui4 4:4.5.3-4 Qt 4 GUI module
ii libstdc++6 4.4.2-9 The GNU Standard C++ Library v3
libkexiv2-7 recommends no packages.
libkexiv2-7 suggests no packages.
-- no debconf information
Language alternative accessor fix (KExiv2::getXmpTagStringLangAlt())
- removed broken code that was using toString(long index) method of
the iterator to extract a particular language alternative
value. This maybe a bug in libexiv2, however, there is no need for
handwritten parsing of the value via detectLanguageAlt() since
libexiv2 provides all the necessary functionality for this - see the
next point
- the proposed mechanism iterates through all language alternatives
stored in an Exiv2::LangAltValue instance and selects only the
requested one
- NOTE: the implementation of KExiv2::getXmpTagStringLangAlt() may
also use getXmpTagStringListLangAlt() to extract the list of
language alternatives into a hash map and then extract only the
relevant item from it. This would be slightly slower but a much
nicer code ;-).
Index: kdegraphics-4.3.4/libs/libkexiv2/libkexiv2/kexiv2xmp.cpp
===================================================================
--- kdegraphics-4.3.4.orig/libs/libkexiv2/libkexiv2/kexiv2xmp.cpp
+++ kdegraphics-4.3.4/libs/libkexiv2/libkexiv2/kexiv2xmp.cpp
@@ -420,19 +420,22 @@ QString KExiv2::getXmpTagStringLangAlt(c
{
Exiv2::XmpData xmpData(d->xmpMetadata);
Exiv2::XmpKey key(xmpTagName);
- for (Exiv2::XmpData::iterator it = xmpData.begin(); it !=
xmpData.end(); ++it)
+ /* TODO: we should consider using getXmpTagStringListLangAlt() method
and extract only the
+ * requested language alternative. This would allow eliminating all
this code but would
+ * become more memory intensive. In reality, how many language
alternatives users have..? */
+ for (Exiv2::XmpData::const_iterator it = xmpData.begin(); it !=
xmpData.end(); ++it)
{
if (it->key() == xmpTagName && it->typeId() == Exiv2::langAlt)
{
- for (int i = 0; i < it->count(); i++)
- {
- std::ostringstream os;
- os << it->toString(i);
- QString lang;
- QString tagValue = QString::fromUtf8(os.str().c_str());
- tagValue = detectLanguageAlt(tagValue, lang);
+ const Exiv2::LangAltValue &lav = dynamic_cast<const
Exiv2::LangAltValue&>(it->value());
+ for(std::map<std::string, std::string>::const_iterator lit =
lav.value_.begin();
+ lit != lav.value_.end(); ++lit) {
+ QString lang = QString::fromUtf8(lit->first.c_str());
+ QString tagValue = QString::fromUtf8(lit->second.c_str());
if (langAlt == lang)
{
+ kDebug(51003) << "Extracting XMP tag='" << xmpTagName
<< "' lang='" << lang << "' value='"
+ << tagValue << "'" << endl;
if (escapeCR)
tagValue.replace("\n", " ");
--- End Message ---
--- Begin Message ---
Version: 4:15.04.3-1+rm
Dear submitter,
as the package libkexiv2 has just been removed from the Debian archive
unstable we hereby close the associated bug reports. We are sorry
that we couldn't deal with your issue properly.
For details on the removal, please see https://bugs.debian.org/886906
The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.
This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmas...@ftp-master.debian.org.
Debian distribution maintenance software
pp.
Luca Falavigna (the ftpmaster behind the curtain)
--- End Message ---