You are not logged in.

#1 2010-10-10 03:35:18

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

[SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Hi,

Digikam goes incredibly slowly and eats up to 100% of CPU when importing photos taken on my Nikon D90.

It is the same whether using a card reader or USB connection to the camera.


Having googled around I think the problem is related to exiv2, and the writing of exif data to the image files as happens when portrait images are automatically rotated.

Google also tells me that this may be fixed in exiv2 version 0.20 whereas the latest Arch package is 0.19.


Does anybody else have this problem, or can exiv2 be updated in the repositories?

Thanks
Francis

Last edited by fdac (2010-10-21 04:31:23)

Offline

#2 2010-10-10 03:40:19

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Offline

#3 2010-10-10 03:46:01

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Have you tried http://aur.archlinux.org/packages.php?ID=2667 ?

I've modified the PKGBUILD to use http://www.exiv2.org/exiv2-0.20.tar.gz and 3173d08a4313dc94b7bd1b7cdbda2093 md5sum. I don't know if any other changes are needed:

pkgname=exiv2
pkgver=0.20
pkgrel=1
pkgdesc="Exif and Iptc metadata manipulation library and tools."
arch=('i686' 'x86_64')
url="http://exiv2.org"
license=('GPL2')
depends=('gcc-libs' 'zlib' 'expat')
options=('!libtool')
source=("http://www.exiv2.org/${pkgname}-${pkgver}.tar.gz")
md5sums=('3173d08a4313dc94b7bd1b7cdbda2093')

build() {
  cd ${srcdir}/${pkgname}-${pkgver}
  ./configure --prefix=/usr
  make || return 1
}

package() {
  cd ${srcdir}/${pkgname}-${pkgver}
  make DESTDIR=${pkgdir} install
}

Last edited by karol (2010-10-10 03:54:37)

Offline

#4 2010-10-13 10:14:13

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Okay - tried simply updating exiv2 via ABS to version 0.20.  This was easy enough but when installed by pacman -U, digikam fails to start with error

digikam: error while loading shared libraries: libexiv2.so.6: cannot open shared object file: No such file or directory

Does digikam needs to be recompiled too?  Or is there a simpler way? 

Thanks
Francis

Offline

#5 2010-10-13 11:42:05

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Are you sure you have that file? Where is it located?

Offline

#6 2010-10-14 12:03:24

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Hi,

With exiv2 0.19-1 from repositories:

fdac ~  $  ls -la /usr/lib/ | grep exiv                                                                                                                                            
-rw-r--r--   1 root root  3217000 Mar  8  2010 libexiv2.a                                                                                                                          
lrwxrwxrwx   1 root root       17 Mar  8  2010 libexiv2.so -> libexiv2.so.6.0.0                                                                                                    
lrwxrwxrwx   1 root root       17 Mar  8  2010 libexiv2.so.6 -> libexiv2.so.6.0.0                                                                                                  
-rw-r--r--   1 root root  2003690 Mar  8  2010 libexiv2.so.6.0.0                                                                                                                   
lrwxrwxrwx   1 root root       14 Oct  5 05:06 libkexiv2.so -> libkexiv2.so.8                                                                                                      
lrwxrwxrwx   1 root root       18 Oct  5 05:06 libkexiv2.so.8 -> libkexiv2.so.8.1.0                                                                                                
-rwxr-xr-x   1 root root   570812 Oct  5 05:06 libkexiv2.so.8.1.0                                                                                                                  

After installing my newly built exiv2 0.20 package:

fdac ~  $  ls -la /usr/lib/ | grep exiv                                                                                                       
-rw-r--r--   1 root root  3876026 Oct 13 20:08 libexiv2.a                                                                                                                          
lrwxrwxrwx   1 root root       17 Oct 13 20:08 libexiv2.so -> libexiv2.so.9.0.0                                                                                                    
lrwxrwxrwx   1 root root       17 Oct 13 20:08 libexiv2.so.9 -> libexiv2.so.9.0.0                                                                                                  
-rw-r--r--   1 root root  2247976 Oct 13 20:08 libexiv2.so.9.0.0                                                                                                                   
lrwxrwxrwx   1 root root       14 Oct  5 05:06 libkexiv2.so -> libkexiv2.so.8                                                                                                      
lrwxrwxrwx   1 root root       18 Oct  5 05:06 libkexiv2.so.8 -> libkexiv2.so.8.1.0                                                                                                
-rwxr-xr-x   1 root root   570812 Oct  5 05:06 libkexiv2.so.8.1.0                        

So it looks like the new package replaces libexiv2.so.6* with libexiv2.so.9*.

Can this simply be symlinked or are changes required to the digikam package, I wonder?

Francis

Offline

#7 2010-10-14 12:05:44

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

For reference here is the PKGBUILD I used (just copied from the standard ABS tree, changed version and checksum to match 0.20 source.

pkgname=exiv2
pkgver=0.20
pkgrel=1
pkgdesc="Exif and Iptc metadata manipulation library and tools."
arch=('i686' 'x86_64')
url="http://exiv2.org"
license=('GPL2')
depends=('gcc-libs' 'zlib' 'expat')
options=('!libtool')
source=("http://www.exiv2.org/${pkgname}-${pkgver}.tar.gz")
md5sums=('3173d08a4313dc94b7bd1b7cdbda2093')

build() {
  cd ${srcdir}/${pkgname}-${pkgver}
  ./configure --prefix=/usr
  make || return 1
}

package() {
  cd ${srcdir}/${pkgname}-${pkgver}
  make DESTDIR=${pkgdir} install
}

Last edited by fdac (2010-10-14 12:06:19)

Offline

#8 2010-10-14 12:25:47

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

If you need a quick'n'dirty fix, just symlink it and make a note about it somewhere, so you're not surprised if something mysteriously breaks because of this.

You can rebuild digikam if you want to do it the right way.
'<-' means 'depends on': digikam <- kdepimlibs <- kdelibs <- strigi <- exiv2

Last edited by karol (2010-10-14 12:33:14)

Offline

#9 2010-10-15 07:45:42

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Hmm.  Symlinking doesn't seem to work very well as digikam still exits with a 'symbol lookup error'.


I tried recompiling digikam with the new exiv2 library installed but that fails too.

The tail end of the build messages looked like this:

-----
-----
[ 36%] Building CXX object digikam/CMakeFiles/digikamcore.dir/__/utilities/imageeditor/rawimport/rawpostprocessing.o                                                               
[ 36%] Building CXX object digikam/CMakeFiles/digikamcore.dir/__/utilities/imageeditor/rawimport/rawimport.o                                                                       
[ 37%] Building CXX object digikam/CMakeFiles/digikamcore.dir/__/utilities/imageeditor/rawimport/rawpreview.o                                                                      
[ 37%] Building CXX object digikam/CMakeFiles/digikamcore.dir/__/utilities/imageeditor/rawimport/rawsettingsbox.o                                                                  
[ 37%] Building CXX object digikam/CMakeFiles/digikamcore.dir/digikamconfig.o                                                                                                      
Linking CXX shared library ../lib/libdigikamcore.so                                                                                                                                
[ 37%] Built target digikamcore                                                                                                                                                    
Scanning dependencies of target testlensfuniface_automoc
[ 37%] Built target testlensfuniface_automoc                                                                                                                                       
Scanning dependencies of target testlensfuniface
[ 37%] Building CXX object libs/dimg/filters/lens/CMakeFiles/testlensfuniface.dir/testlensfuniface_automoc.o                                                                       
[ 38%] Building CXX object libs/dimg/filters/lens/CMakeFiles/testlensfuniface.dir/testlensfuniface.o                                                                               
Linking CXX executable testlensfuniface                                                                                                                                            
/usr/bin/ld: warning: libexiv2.so.6, needed by /usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so, not found (try using -rpath or -rpath-link)                             
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifData::erase(__gnu_cxx::__normal_iterator<Exiv2::Exifdatum*, std::vector<Exiv2::Exifdatum, std::allocator<Exiv2::Exifdatum> > >)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpProperties::registerNs(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcKey::~IptcKey()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::TypeInfo::typeSize(Exiv2::TypeId)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PreviewImage::size() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpParser::encode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, Exiv2::XmpData const&, unsigned short, unsigned int)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpParser::initialize()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcParser::decode(Exiv2::IptcData&, unsigned char const*, unsigned int)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PreviewImage::~PreviewImage()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifParser::decode(Exiv2::ExifData&, unsigned char const*, unsigned int)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifData::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::CanonMakerNote::tagListSi()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::operator=(Exiv2::Exifdatum const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::operator=(unsigned short const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::add(Exiv2::XmpKey const&, Exiv2::Value const*)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Value::create(Exiv2::TypeId)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PreviewImage::pData() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::CanonMakerNote::tagListCf()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcData::sortByKey()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Photoshop::setIptcIrb(unsigned char const*, long, Exiv2::IptcData const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcKey::key() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagListCs()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifKey::key() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Value::Value(Exiv2::TypeId)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifTags::tagTitle(unsigned short, Exiv2::IfdId)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Iptcdatum::operator=(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpKey::key() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifThumb::erase()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagListRi()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::DataBuf::DataBuf(unsigned char const*, long)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::findKey(Exiv2::XmpKey const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifTags::iopTagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PanasonicMakerNote::tagListRaw()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpProperties::propertyTitle(Exiv2::XmpKey const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::Exifdatum(Exiv2::Exifdatum const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpKey::~XmpKey()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::operator=(Exiv2::Value const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagListRd2()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifTags::gpsTagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::operator=(int const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpProperties::propertyDesc(Exiv2::XmpKey const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifThumb::setJpegThumbnail(unsigned char const*, long)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::MinoltaMakerNote::tagListCs7D()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ImageFactory::open(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PentaxMakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagListFe()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::CanonMakerNote::tagListCs()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifKey::tag() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Value::~Value()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::DataValue::DataValue(unsigned char const*, long, Exiv2::ByteOrder, Exiv2::TypeId)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifParser::encode(std::vector<unsigned char, std::allocator<unsigned char> >&, unsigned char const*, unsigned int, Exiv2::ByteOrder, Exiv2::ExifData const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpParser::terminate()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifTags::exifTagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpParser::decode(Exiv2::XmpData&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifData::findKey(Exiv2::ExifKey const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifKey::ExifKey(unsigned short, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::clear()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::begin()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::SonyMakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Iptcdatum::operator=(unsigned short const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpProperties::propertyList(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::DataBuf::reset(std::pair<unsigned char*, long>)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::Exifdatum(Exiv2::ExifKey const&, Exiv2::Value const*)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Iptcdatum::operator=(Exiv2::Value const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifData::clear()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PreviewManager::getPreviewImage(Exiv2::PreviewProperties const&) const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcDataSets::dataSetDesc(unsigned short, unsigned short)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::version()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Xmpdatum::Xmpdatum(Exiv2::Xmpdatum const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Image::checkMode(Exiv2::MetadataId) const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `typeinfo for Exiv2::Error'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::operator=(std::pair<int, int> const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifTags::tagDesc(unsigned short, Exiv2::IfdId)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcParser::encode(Exiv2::IptcData const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcData::add(Exiv2::IptcKey const&, Exiv2::Value*)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagListFi()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ImageFactory::open(unsigned char const*, long)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::CanonMakerNote::tagListPi()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagListEq()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcDataSets::application2RecordList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::operator=(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpKey::XmpKey(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifTags::ifdTagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcDataSets::envelopeRecordList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpKey::XmpKey(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcData::erase(__gnu_cxx::__normal_iterator<Exiv2::Iptcdatum*, std::vector<Exiv2::Iptcdatum, std::allocator<Exiv2::Iptcdatum> > >)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpProperties::unregisterNs(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcDataSets::dataSetTitle(unsigned short, unsigned short)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::MinoltaMakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::operator=(unsigned int const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Exifdatum::~Exifdatum()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifData::add(Exiv2::ExifKey const&, Exiv2::Value const*)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::MinoltaMakerNote::tagListCs5D()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::FujiMakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::MinoltaMakerNote::tagListCsStd()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifThumb::ExifThumb(Exiv2::ExifData&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::erase(__gnu_cxx::__normal_iterator<Exiv2::Xmpdatum*, std::vector<Exiv2::Xmpdatum, std::allocator<Exiv2::Xmpdatum> > >)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::CanonMakerNote::tagListPa()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::CanonMakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Nikon1MakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::sortByKey()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagListRd()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Nikon2MakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifThumbC::copy() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Metadatum::print(Exiv2::ExifData const*) const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ul2Data(unsigned char*, unsigned int, Exiv2::ByteOrder)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `typeinfo for Exiv2::Value'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcKey::IptcKey(unsigned short, unsigned short)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcData::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Nikon3MakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcKey::record() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PreviewManager::PreviewManager(Exiv2::Image const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifKey::~ExifKey()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::end()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifTags::ifdItem(Exiv2::IfdId)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PanasonicMakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::OlympusMakerNote::tagListIp()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcKey::IptcKey(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::XmpData::empty() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::DataBuf::release()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Error::setMsg()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifKey::ExifKey(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::DataValue::DataValue(Exiv2::TypeId)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcData::findKey(Exiv2::IptcKey const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::AnyError::~AnyError()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Iptcdatum::Iptcdatum(Exiv2::Iptcdatum const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::DataValue::read(unsigned char const*, long, Exiv2::ByteOrder)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifData::sortByKey()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::ExifThumbC::ExifThumbC(Exiv2::ExifData const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::PreviewManager::getPreviewProperties() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `vtable for Exiv2::Error'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Iptcdatum::operator=(Exiv2::Iptcdatum const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Xmpdatum::operator=(Exiv2::Xmpdatum const&)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::SigmaMakerNote::tagList()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::getULong(unsigned char const*, Exiv2::ByteOrder)'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::IptcKey::tag() const'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::DataValue::~DataValue()'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../libkexiv2.so: undefined reference to `Exiv2::Error::~Error()'
collect2: ld returned 1 exit status
make[2]: *** [libs/dimg/filters/lens/testlensfuniface] Error 1
make[1]: *** [libs/dimg/filters/lens/CMakeFiles/testlensfuniface.dir/all] Error 2
make: *** [all] Error 2
    Aborting...

This is getting to the end of my packaging knowledge (and time frame to get my camera working properly with Arch!)

Should I file this as a bug?

Thanks

Offline

#10 2010-10-15 10:15:45

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Let's start from the beginning: why isn't exiv2 updated yet? It's flagged out of date, but it's not yet replaced by the 0.20 version - maybe there is a reason to hold back.

Offline

#11 2010-10-17 12:34:22

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

karol - thank you very much for your advice.

I have filed a bug report to see what the Arch developers have to say.

https://bugs.archlinux.org/task/21290

Offline

#12 2010-10-17 12:48:50

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

fdac wrote:

karol - thank you very much for your advice.

I have filed a bug report to see what the Arch developers have to say.

https://bugs.archlinux.org/task/21290

fdac wrote:

Steps to reproduce:
Import any image taken by a Nikon camera (e.g. D90 digital SLR) using the digikam 'import' dialog. Sample attached.

There's a limit on the filesize, so you have to upload it somewhere and post a link - I don't see any sample in the bugtracker.

Offline

#13 2010-10-17 13:17:44

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

http://img233.imageshack.us/img233/3712/dsc0028gt.jpg

Last edited by fdac (2010-10-17 13:18:33)

Offline

#14 2010-10-19 05:45:30

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Looks like it could take a while for Arch to update to exiv2 0.20.

Since I really only need Digikam at this point, does anybody have any clues on why my attempt at rebuilding digikam failed?     Is there a simple fix?

(See makepkg output pasted above)

Offline

#15 2010-10-19 12:42:07

broch
Banned
From: L.A. California
Registered: 2006-11-13
Posts: 975

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

sure:
you need to rebuilt strigi with a new exiv2 first because digikam does not directly depend on evix2,
http://www.archlinux.org/packages/extra/i686/exiv2/
http://www.archlinux.org/packages/extra/i686/strigi/
http://www.archlinux.org/packages/extra/i686/digikam/

which in general points to the fact that providing new package (e.g. exiv2 0.20) without understanding how it works (dependencies) is at least useless.

however be aware that there other strigi dependencies so it is a lot of work really. Or you mess up your DE.

In short: no simple fix.

another (temporary) option is to transfer raw files to hd and then import to digikam, this will work faster (probably). In the meantime maybe new exiv2 will end up in Arch (again this needs time as a lot of dependencies is involved)

Though I have Canon (so no issues at all with raw import), I use lightzone for cataloging editing. This is anyway best photo editor for linux (similar to lightroom). It is not free though but you can use trial for some time and see if it does what you want (and fits your budget). Of course there may be another exiv2 independent software.

hopefully this will help a little

Offline

#16 2010-10-19 12:50:25

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

@ fdac
I'm a bit confused. Have you tried rebuilding the whole dependency chain: https://bbs.archlinux.org/viewtopic.php … 64#p840264 or just Digikam?

Offline

#17 2010-10-19 12:58:05

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Ok, thanks broch and karol.  I misunderstood and was just rebuilding digikam alone.  If time permits I'll try doing the whole chain but I do understand it gets risky if there are other dependencies.

Learning as I go.

Offline

#18 2010-10-21 04:30:59

fdac
Member
From: Brisbane, Australia
Registered: 2005-06-19
Posts: 96

Re: [SOLVED] Digikam slow, eats CPU when importing Nikon DSLR photos

Bug has been closed within 4 days and exiv2 version 0.20 is in the repositories now.  Thanks to Ionut Biru (wonder).

Offline

Board footer

Powered by FluxBB