Page MenuHomePhabricator

efl 1.25.1 or git master fails to compile with libavif v0.8.2
Closed, ResolvedPublic

Description

efl 1.25.1 or git master fails to compile with libavif v0.8.2 as:

/builddir/build/BUILD/efl-1.25.1/src/modules/evas/image_loaders/avif/evas_image_load_avif.c:68:10: error: too many arguments to function ‘avifDecoderParse’
   68 |    res = avifDecoderParse(decoder, &raw);
      |          ^~~~~~~~~~~~~~~~
In file included from /builddir/build/BUILD/efl-1.25.1/src/modules/evas/image_loaders/avif/evas_image_load_avif.c:7:
/usr/include/avif/avif.h:707:12: note: declared here
  707 | avifResult avifDecoderParse(avifDecoder * decoder);
      |            ^~~~~~~~~~~~~~~~
/builddir/build/BUILD/efl-1.25.1/src/modules/evas/image_loaders/avif/evas_image_load_avif.c: In function ‘evas_image_load_file_data_avif_internal’:
/builddir/build/BUILD/efl-1.25.1/src/modules/evas/image_loaders/avif/evas_image_load_avif.c:155:15: error: too many arguments to function ‘avifDecoderParse’
  155 |         res = avifDecoderParse(decoder, &raw);
      |               ^~~~~~~~~~~~~~~~
In file included from /builddir/build/BUILD/efl-1.25.1/src/modules/evas/image_loaders/avif/evas_image_load_avif.c:7:
/usr/include/avif/avif.h:707:12: note: declared here
  707 | avifResult avifDecoderParse(avifDecoder * decoder);
      |            ^~~~~~~~~~~~~~~~

libavif side change starts with https://github.com/AOMediaCodec/libavif/commit/be4cbb92c087349bdd0df35bd202a711e29f988d

mtasaka created this task.Oct 26 2020, 4:23 AM

Trial patch to fix FTBFS with libavif 0.8.2, but completely UNTESTED.

Note that avifDecoderSetIOMemory API changed also at https://github.com/AOMediaCodec/libavif/commit/7de4445a3929847f28bb8bae45b42f81053dad7b

ProhtMeyhet added a project: Restricted Project.Oct 26 2020, 5:41 AM
ProhtMeyhet triaged this task as Showstopper Issues priority.
ProhtMeyhet added a subscriber: bu5hm4n.
ProhtMeyhet added a subscriber: raster.
ProhtMeyhet added a subscriber: stefan_schmidt.

+1 EFL-1.25.1 on FreeBSD-12.2 with libavif-0.8.4 :-(

FAILED: src/modules/evas/image_loaders/libshared_loader_avif.so.p/_usr_ports_devel_efl-1.25.1_work_efl-1.25.1_src_modules_evas_image_loaders_avif_evas_image_load_avif.c.o   cc -Isrc/modules/evas/image_loaders/libshared_loader_avif.so.p -Isrc/modules/evas/image_loaders -I../src/modules/evas/image_loaders -I. -I.. -Isrc/lib/evil -I../src/lib/evil -Isrc/lib/eina -I../src/lib/eina -Isrc/lib/eo -I../src/lib/eo -Isrc/lib/efl -I../src/lib/efl -Isrc/lib/emile -I../src/lib/emile -Isrc/lib/eet -I../src/lib/eet -Isrc/lib/eco
re -I../src/lib/ecore -Isrc/lib/eldbus -I../src/lib/eldbus -Isrc/lib/ecore_audio -I../src/lib/ecore_audio -Isrc/lib/ecore_con -I../src/lib/ecore_con -Isrc/lib/ecore_file -I.
./src/lib/ecore_file -Isrc/lib/ecore_input -I../src/lib/ecore_input -Isrc/lib/ecore_x -I../src/lib/ecore_x -Isrc/lib/ecore_win32 -I../src/lib/ecore_win32 -Isrc/lib/ecore_ipc
 -I../src/lib/ecore_ipc -Isrc/lib/ector -I../src/lib/ector -Isrc/lib/evas/software_generic -I../src/lib/evas/software_generic -I../src/modules/evas/engines/software_generic/
filters -Isrc/lib/evas -I../src/lib/evas -Isrc/lib/evas/common -I../src/lib/evas/common -Isrc/lib/evas/include -I../src/lib/evas/include -Isrc/lib/evas/filters -I../src/lib/
evas/filters -Isrc/lib/evas/canvas -I../src/lib/evas/canvas -Isrc/lib/efreet -I../src/lib/efreet -Isrc/lib/ecore_input_evas -I../src/lib/ecore_input_evas -Isrc/modules/evas/
engines/buffer -I../src/modules/evas/engines/buffer -Isrc/lib/ecore_evas -I../src/lib/ecore_evas -Isrc/lib/ecore_imf -I../src/lib/ecore_imf -Isrc/lib/embryo -I../src/lib/emb
ryo -Isrc/lib/eio -I../src/lib/eio -Isrc/lib/ecore_imf_evas -I../src/lib/ecore_imf_evas -Isrc/lib/ephysics -I../src/lib/ephysics -Isrc/lib/edje -I../src/lib/edje -Isrc/lib/e
motion -I../src/lib/emotion -Isrc/lib/ethumb -I../src/lib/ethumb -Isrc/lib/ethumb_client -I../src/lib/ethumb_client -Isrc/lib/elementary -I../src/lib/elementary -Isrc/static
_libs/buildsystem -I../src/static_libs/buildsystem -Isrc/lib -I../src/lib -Isrc/static_libs/libunibreak -I../src/static_libs/libunibreak -Isrc/lib/efl/interfaces -Isrc/lib/e
ctor/gl -Isrc/lib/ector/software -Isrc/lib/evas/gesture -I/usr/local/include/luajit-2.0 -I/usr/local/include/freetype2 -I/usr/local/include -I/usr/local/include/fribidi -I/u
sr/local/include/harfbuzz -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -f
visibility=hidden -Wall -Wpointer-arith -Wunused-parameter -Wsign-compare -Wno-missing-field-initializers -DHAVE_CONFIG_H=1 -D_GNU_SOURCE=1 -DEFL_BETA_API_SUPPORT=1 -DELM_IN
TERNAL_API_ARGESFSDFEFC=1 -O2 -fstack-protector-strong -fno-strict-aliasing -DLIBICONV_PLUG -fPIC -pthread '-DPACKAGE_DATA_DIR="/usr/local/share/evas"' -DNEED_RUN_IN_TREE=1 
-DEFL_BUILD=1 -MD -MQ src/modules/evas/image_loaders/libshared_loader_avif.so.p/_usr_ports_devel_efl-1.25.1_work_efl-1.25.1_src_modules_evas_image_loaders_avif_evas_image_lo
ad_avif.c.o -MF src/modules/evas/image_loaders/libshared_loader_avif.so.p/_usr_ports_devel_efl-1.25.1_work_efl-1.25.1_src_modules_evas_image_loaders_avif_evas_image_load_avi
f.c.o.d -o src/modules/evas/image_loaders/libshared_loader_avif.so.p/_usr_ports_devel_efl-1.25.1_work_efl-1.25.1_src_modules_evas_image_loaders_avif_evas_image_load_avif.c.o
 -c /usr/ports/devel/efl-1.25.1/work/efl-1.25.1/src/modules/evas/image_loaders/avif/evas_image_load_avif.c                                                                   
/usr/ports/devel/efl-1.25.1/work/efl-1.25.1/src/modules/evas/image_loaders/avif/evas_image_load_avif.c:68:36: error: too many arguments to function call, expected single arg
ument 'decoder', have 2 arguments                                                                                                                                            
   res = avifDecoderParse(decoder, &raw);                                                                                                                                    
         ~~~~~~~~~~~~~~~~          ^~~~                                                                                                                                      
/usr/local/include/avif/avif.h:741:1: note: 'avifDecoderParse' declared here                                                                                                 
avifResult avifDecoderParse(avifDecoder * decoder);
^                                          
/usr/ports/devel/efl-1.25.1/work/efl-1.25.1/src/modules/evas/image_loaders/avif/evas_image_load_avif.c:155:41: error: too many arguments to function call, expected single ar
gument 'decoder', have 2 arguments         
        res = avifDecoderParse(decoder, &raw);
              ~~~~~~~~~~~~~~~~          ^~~~
/usr/local/include/avif/avif.h:741:1: note: 'avifDecoderParse' declared here
avifResult avifDecoderParse(avifDecoder * decoder);
^                                          
2 errors generated.

looks like avif broke api. hooray!