View Issue Details

IDProjectCategoryView StatusLast Update
0007970libextractorpluginspublic2023-12-03 14:37
ReporterDavid Geiger Assigned ToChristian Grothoff  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version1.11 
Target Version1.12Fixed in Version1.13 
Summary0007970: exiv2_extractor.cc fails to build on 32bit system with exiv2 0.28.0 patch from bug#7889
DescriptionHi,

On Mageia Cauldron I tried to build libextractor 1.11 against new exiv2 0.28.0 with proposed patch from bug#7889 but it fails to build on 32bit system (on 64bit system no build issue) with the following error:

exiv2_extractor.cc: In function 'void EXTRACTOR_exiv2_extract_method(EXTRACTOR_ExtractContext*)':
exiv2_extractor.cc:826:61: error: invalid new-expression of abstract class type 'ExtractorIO'
  826 | std::unique_ptr<Exiv2::BasicIo> eio (new ExtractorIO (ec));
      | ^
exiv2_extractor.cc:42:7: note: because the following virtual functions are pure within 'ExtractorIO':
   42 | class ExtractorIO : public Exiv2::BasicIo
      | ^~~~~~~~~~~
In file included from /usr/include/exiv2/exiv2.hpp:8,
                 from exiv2_extractor.cc:30:
/usr/include/exiv2/basicio.hpp:165:15: note: 'virtual int Exiv2::BasicIo::seek(int64_t, Position)'
  165 | virtual int seek(int64_t offset, Position pos) = 0;
      | ^~~~
make[4]: *** [Makefile:2335: exiv2_extractor.lo] Error 1


You can found our RPM spec file here:

https://svnweb.mageia.org/packages/cauldron/libextractor/current/SPECS/libextractor.spec

https://svnweb.mageia.org/packages/cauldron/libextractor/current/SOURCES/libextractor-1.11-exiv2-0.28.patch

Additional InformationI attached full build log:
TagsNo tags attached.
Attached Files
build.i586.0.20231029122240.log (130,916 bytes)   

Activities

Christian Grothoff

2023-12-02 13:26

manager   ~0020706

Fix committed to master branch.

Christian Grothoff

2023-12-02 13:26

manager   ~0020707

Thanks for the report! Fixed in 7a6166a..9b3ab72

David Geiger

2023-12-02 15:34

reporter   ~0020708

Hi, thanks for the fix but now I get:

exiv2_extractor.cc:461:1: error: no declaration matches 'int ExtractorIO::seek(int64_t, Exiv2::BasicIo::Position)'
  461 | ExtractorIO::seek (int64_t offset,
      | ^~~~~~~~~~~
exiv2_extractor.cc:175:13: note: candidate is: 'virtual int ExtractorIO::seek(long int, Exiv2::BasicIo::Position)'
  175 | virtual int seek (long offset,
      | ^~~~
exiv2_extractor.cc:42:7: note: 'class ExtractorIO' defined here
   42 | class ExtractorIO : public Exiv2::BasicIo
      | ^~~~~~~~~~~
exiv2_extractor.cc: In member function 'virtual const std::string& ExtractorIO::path() const':
exiv2_extractor.cc:598:3: warning: 'throw' will always call 'terminate' [-Wterminate]
  598 | throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
exiv2_extractor.cc: In function 'void EXTRACTOR_exiv2_extract_method(EXTRACTOR_ExtractContext*)':
exiv2_extractor.cc:826:61: error: invalid new-expression of abstract class type 'ExtractorIO'
  826 | std::unique_ptr<Exiv2::BasicIo> eio (new ExtractorIO (ec));
      | ^
exiv2_extractor.cc:42:7: note: because the following virtual functions are pure within 'ExtractorIO':
   42 | class ExtractorIO : public Exiv2::BasicIo
      | ^~~~~~~~~~~
In file included from /usr/include/exiv2/exiv2.hpp:8,
                 from exiv2_extractor.cc:30:
/usr/include/exiv2/basicio.hpp:165:15: note: 'virtual int Exiv2::BasicIo::seek(int64_t, Position)'
  165 | virtual int seek(int64_t offset, Position pos) = 0;
      | ^~~~
make[4]: *** [Makefile:2335: exiv2_extractor.lo] Error 1
make[4]: Leaving directory '/home/iurt/rpmbuild/BUILD/libextractor-1.11/src/plugins'
make[4]: *** Waiting for unfinished jobs....

Christian Grothoff

2023-12-02 16:08

manager   ~0020711

Fix committed to master branch.

Christian Grothoff

2023-12-02 16:09

manager   ~0020712

Hi David, can you please try again with Git master?

Related Changesets

libextractor: master 9b3ab72b

2023-12-02 14:25

Christian Grothoff


Details Diff
fix 0007970 Affected Issues
0007970
mod - src/plugins/exiv2_extractor.cc Diff File

libextractor: master 92a28617

2023-12-02 17:08

Christian Grothoff


Details Diff
try again to fix 0007970 Affected Issues
0007970
mod - src/plugins/exiv2_extractor.cc Diff File

Issue History

Date Modified Username Field Change
2023-10-30 05:08 David Geiger New Issue
2023-10-30 05:08 David Geiger File Added: build.i586.0.20231029122240.log
2023-12-02 12:13 Christian Grothoff Assigned To => Christian Grothoff
2023-12-02 12:13 Christian Grothoff Status new => assigned
2023-12-02 13:26 Christian Grothoff Changeset attached => libextractor master 9b3ab72b
2023-12-02 13:26 Christian Grothoff Note Added: 0020706
2023-12-02 13:26 Christian Grothoff Status assigned => resolved
2023-12-02 13:26 Christian Grothoff Resolution open => fixed
2023-12-02 13:26 Christian Grothoff Note Added: 0020707
2023-12-02 13:27 Christian Grothoff Fixed in Version => 1.12
2023-12-02 13:27 Christian Grothoff Target Version => 1.12
2023-12-02 13:46 Christian Grothoff Status resolved => closed
2023-12-02 15:34 David Geiger Status closed => feedback
2023-12-02 15:34 David Geiger Resolution fixed => reopened
2023-12-02 15:34 David Geiger Note Added: 0020708
2023-12-02 16:08 Christian Grothoff Changeset attached => libextractor master 92a28617
2023-12-02 16:08 Christian Grothoff Note Added: 0020711
2023-12-02 16:08 Christian Grothoff Status feedback => resolved
2023-12-02 16:08 Christian Grothoff Resolution reopened => fixed
2023-12-02 16:09 Christian Grothoff Fixed in Version 1.12 => 1.13
2023-12-02 16:09 Christian Grothoff Note Added: 0020712