Opened 4 months ago

Closed 4 months ago

Last modified 4 months ago

#9112 closed defect (wontfix)

libavfilter: build failure in vf_lensfun.c

Reported by: Hanspeter Niederstrasser Owned by:
Priority: normal Component: avfilter
Version: git-master Keywords: lensfun
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


Summary of the bug:
On macOS 10.13, compiling libavfilter/vf_lensfun.c from git HEAD fails like this:

clang -I. -Isrc/ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -Isrc/compat/dispatch_semaphore -DPIC -DZLIB_CONST
-DHAVE_AV_CONFIG_H -DBUILDING_avfilter -I/sw/include -std=c11
-Werror=partial-availability -fomit-frame-pointer -fPIC -pthread
-I/sw/include -I/sw/include -I/sw/include/bs2b -I/sw/include
-I/sw/include -I/sw/include/freetype2 -I/sw/include/fribidi
-I/sw/include -I/sw/include -I/sw/include -I/sw/include/lensfun
-I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/include
-I/sw/include/openjpeg-2.1 -I/sw/include -I/sw/include/opus
-I/sw/include/opus -I/sw/include -I/sw/include -I/sw/include
-I/sw/include -I/sw/include -I/sw/include -I/sw/include -I/sw/include
-I/sw/include -I/sw/include -I/sw/include -I/sw/include -I/sw/include
-I/sw/include -I/sw/include -I/sw/include -I/sw/include -I/sw/include
-I/sw/lib/libcdio-2.1/include -I/opt/X11/include -I/opt/X11/include
-I/opt/X11/include -I/opt/X11/include -g -Wdeclaration-after-statement
-Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls
-Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes
-Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body
-Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign
-Wno-unused-const-variable -Wno-char-subscripts -O3 -fno-math-errno
-fno-signed-zeros -mstack-alignment=16 -Qunused-arguments
-Werror=implicit-function-declaration -Werror=missing-prototypes
-Werror=return-type -I/sw/include/SDL2 -D_THREAD_SAFE   -MMD -MF
libavfilter/vf_lensfun.d -MT libavfilter/vf_lensfun.o -c -o
libavfilter/vf_lensfun.o src/libavfilter/vf_lensfun.c
In file included from src/libavfilter/vf_lensfun.c:40:
/sw/include/lensfun/lensfun.h:252:33: warning: this function
declaration is not a prototype [-Wstrict-prototypes]
LF_EXPORT lfMount *lf_mount_new ();
/sw/include/lensfun/lensfun.h:397:35: warning: this function
declaration is not a prototype [-Wstrict-prototypes]
LF_EXPORT lfCamera *lf_camera_new ();
/sw/include/lensfun/lensfun.h:1177:31: warning: this function
declaration is not a prototype [-Wstrict-prototypes]
LF_EXPORT lfLens *lf_lens_new ();
src/libavfilter/vf_lensfun.c:139:10: error: implicit declaration of
function 'lf_db_create' is invalid in C99
    db = lf_db_create();

There are a bunch of other implicit declaration errors against several
other lf_* functions. Furthermore, there is another error:

src/libavfilter/vf_lensfun.c:181:59: error: too many arguments to
function call, expected 3, have 5
    lenses = lf_db_find_lenses(db, lensfun->camera, NULL,
lensfun->lens_model, 0);

I run configure with this:

../configure --prefix=/usr/local/ffmpeg-clang --enable-autodetect
--enable-gpl --enable-version3 --disable-static --enable-shared <bunch
of other --enable-libFOO> --enable-liblensfun

I have lensfun-0.3.1 installed and none of those functions are
declared in lensfun.h. Should there be a versioned check for lensfun (presumably 0.3.2?) in configure or a check for other functions besides lf_db_new ?

Change History (6)

comment:1 by richardpl, 4 months ago

Resolution: wontfix
Status: newclosed

comment:2 by Carl Eugen Hoyos, 4 months ago

Keywords: lensfun added

comment:3 by Hanspeter Niederstrasser, 4 months ago

Why is this wontfix? It's a build failure in the current codebase.

comment:4 by richardpl, 4 months ago

Only latest lensfun is supported. Obsolete versions are not.

comment:5 by Hanspeter Niederstrasser, 4 months ago

Latest non-alpha release is 0.3.2, which also fails. Only debian-experimental seems to be carrying the alpha release lensfun-0.3.95; gentoo, fedora, ubuntu, opensuse, centos all have just 0.3.2.

comment:6 by Hanspeter Niederstrasser, 4 months ago

Also, the Ffmpeg build worked fine with lensfun-0.3.1 until 8b78eb312de948c408c2437674e6ebf8971857c4 was checked in 2 weeks ago.

And ./configure still checks for lf_db_new(), which the code no longer uses, and has been marked as deprecated upstream.

So this should be reframed as 'avfilter uses (unreleased) lensfun API but doesn't check for its presence".

Note: See TracTickets for help on using tickets.