Opened 21 months ago

Closed 21 months ago

Last modified 20 months ago

#18208 closed defect (fixed)

gexiv2 FTBFS with exiv2-0.28 on i686

Reported by: Douglas R. Reno Owned by: Douglas R. Reno
Priority: normal Milestone: 12.0
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

It appears that gexiv2 fails to build on i686 with exiv2-0.28, but works fine on x86_64.

The fix is pretty simple, just creating a ticket to document it. I'll add a separate patch in :)

Some of the output:

[5/21] Compiling C++ object gexiv2/libgexiv2.so.2.14.1.p/gexiv2-preview-
properties.cpp.o
[6/21] Compiling C++ object gexiv2/libgexiv2.so.2.14.1.p/gexiv2-
metadata.cpp.o
FAILED: gexiv2/libgexiv2.so.2.14.1.p/gexiv2-metadata.cpp.o
c++ -Igexiv2/libgexiv2.so.2.14.1.p -Igexiv2 -I../gexiv2 -I. -I.. -I/usr
/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libmount -I/usr
/include/blkid -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall 
-Winvalid-pch -std=c++17 -O0 -g -fPIC -pthread -MD -MQ 
gexiv2/libgexiv2.so.2.14.1.p/gexiv2-metadata.cpp.o -MF 
gexiv2/libgexiv2.so.2.14.1.p/gexiv2-metadata.cpp.o.d -o gexiv2/libgexiv2.so.2.14.1.p/gexiv2-metadata.cpp.o -c ../gexiv2/gexiv2-
metadata.cpp
In file included from ../gexiv2/gexiv2-metadata.cpp:21:
../gexiv2/gexiv2-stream-io.h:49:13: error: ‘int StreamIo::seek(long int, 
Exiv2::BasicIo::Position)’ marked ‘override’, but does not override
   49 |         int seek (long offset, Position pos) override;
      |             ^~~~
../gexiv2/gexiv2-metadata.cpp:152:9: error: ‘int 
{anonymous}::GioIo::seek(seek_offset_t, Exiv2::BasicIo::Position)’ marked 
‘override’, but does not override
  152 |     int seek(seek_offset_t offset, Exiv2::BasicIo::Position position) 
override {
      |         ^~~~
../gexiv2/gexiv2-metadata.cpp: In function ‘gboolean 
gexiv2_metadata_open_stream(GExiv2Metadata*, ManagedStreamCallbacks*, 
GError**)’:
../gexiv2/gexiv2-metadata.cpp:533:55: error: invalid new-expression of 
abstract class type ‘StreamIo’
  533 |         StreamIo::ptr_type stream_ptr{new StreamIo (cb)};
      |                                                       ^
../gexiv2/gexiv2-stream-io.h:23:7: note:   because the following virtual 
functions are pure within ‘StreamIo’:
   23 | class StreamIo : public Exiv2::BasicIo {
      |       ^~~~~~~~
In file included from /usr/include/exiv2/exiv2.hpp:8,
                 from ../gexiv2/gexiv2-metadata-private.h:14,
                 from ../gexiv2/gexiv2-metadata.cpp:16:

/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;
      |               ^~~~
../gexiv2/gexiv2-metadata.cpp:533:56: error: no matching function for call to 
‘std::unique_ptr<Exiv2::BasicIo>::unique_ptr(<brace-enclosed initializer 
list>)’
  533 |         StreamIo::ptr_type stream_ptr{new StreamIo (cb)};
      |

Change History (4)

comment:1 by Douglas R. Reno, 21 months ago

Owner: changed from blfs-book to Douglas R. Reno
Status: newassigned

comment:2 by Douglas R. Reno, 21 months ago

Type: enhancementdefect

comment:3 by Douglas R. Reno, 21 months ago

Resolution: fixed
Status: assignedclosed

comment:4 by Bruce Dubbs, 20 months ago

Milestone: 11.412.0

Milestone renamed

Note: See TracTickets for help on using tickets.